I am trying to show the layer names of all visible layers in ArcGis 10.1 when creating a map in layout view.

First I tried to use "insert legend" and show there only the layername, but I can't disable the decription/symbology display. That did not work, so I think it is better to use "insert dynamic text" instead.

That is easy for the Document name Document Name: <dyn type="document" property="name"/> but I don't know, what to insert when I want the layernames.

What is the correct type and property?

  • If you are comfortable with arcpy.mapping and Python this is easy. You create a static Text Element with a string like say layersVisibleListVar in it. Then you use ArcPy to read which layers are visible and get this into a string. Then you can use ListLayoutElements to get hold of that text element and change its text property from layersVisibleListVar to the string you made.
    – PolyGeo
    Mar 6, 2014 at 11:35
  • I call the above pseudo dynamic text and it is most suited when exporting to PDF or saving MXDs i.e. no live update like dynamic text but great for map automation.
    – PolyGeo
    Mar 6, 2014 at 11:41
  • I have no idea about arcpy.mapping and only very little experience with Python :(
    – Iris
    Mar 6, 2014 at 11:46

3 Answers 3


A quick workaround is to add the legend like you have then right click it and choose "Convert to Graphics". That will change your legend to a grouping of text elements and graphics. Then just right click and choose "Ungroup" that will break it down to the individual legend elements, another "Ungroup" on each of these will allow you to delete the patch of symbology.

The problem here is that this disconnects the text elements from the text in the TOC. So make sure you do this after you have everything named the way you want it or you'll have to go in and change the text for each item manually.


I think I know what you're trying to do, because I'm trying the same thing. I've got eight maps I want to create. I want the map title to be whatever layer is visible at the time. All the maps are the same, but only one of the eight layers will be visible.

I didn't find an elegant solution but I found a work-around. I basically just hid the stuff I didn't want to see. I created the legend using the wizard. I made the layer name show and styled it as if it was my map title. Then I made a white box with no outline and covered the boxes from the legend. I then grouped the legend and the white box. Not necessary, but helpful for keeping things straight.


If you want to add the layers to your legend go into legend property's where you can choose to add layers to the legend (unclear on what exactly you are asking)that are only checked (visible) in TOC or add all layers, etc.

  • I tried this at first, but I only want the layer names, not their symbology/decription. And I think, ArcGis does not allow to not show the layer symbologoy in the legend...
    – Iris
    Mar 6, 2014 at 11:50
  • 1
    A (not so) quick workaround might be to add another data frame,copy/paste the layers you wish to label on the document into it, turn the symbology for each off by choosing no colour, and then use that dataframe to populate your legend...
    – user21646
    Mar 6, 2014 at 12:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.