Is there a way to display text that is specific to a single data driven page.

4470
5
Jump to solution
01-14-2015 08:49 AM
DavidJones4
New Contributor

Each storage tank has a name but I only want the names of the tanks to show up on page 2 and 4 of my data driven page.  Not all of the pages.  Some form of dynamic text?  Ideally I would like to be able to add a piece of text and tell it to only display on certain pages.

0 Kudos
1 Solution

Accepted Solutions
DarrenWiens2
MVP Honored Contributor

I  can only think of this somewhat hacky solution, without turning to arcpy.mapping:

1.) add tanks symbolized as usual

2.) add as many text fields as pages on which labels should be displayed (so, one for page 2, and one for page 4).

3.) populate one field with "2", and one field with "4"

4.) copy and paste this layer twice into the table of contents again, so there are three copies of tanks

5.) make the second/third copies with no symbol

6.) turn on labels for the second/third copies

7.) set a Page Definition on each new layer, so that features (and labels) are only displayed if they match the dynamic text name field

This works for two pages, but if you want to automate the process, you should look to arcpy.mapping, specifically the Layer object, to turn labels on and off.

View solution in original post

5 Replies
DarrenWiens2
MVP Honored Contributor

Do you want dynamic text in the layout of your map listing the tanks, or dynamic labels next to your features?

0 Kudos
DavidJones4
New Contributor

Technically I need dynamic labels that show up next to my features.  But I only want them displayed on select pages.  I'm using a strip index map that has significant overlap.  If I use standard labeling techniques I end up sometimes getting that label showing up on neighboring pages of the index map and since the pages have different rotations my labels end up looking bad.  If I rotate the label to look correct on sheet one then it is awkwardly rotated on adjacent sheet 2 in the overlap area.  I'd prefer to not show it at all on sheet 2.  My thinking was that I could just place a piece of text in layout view and have it displayed only when page 1 is active.  The concept would be similar to how I insert Dynamic text like data driven page numbers.  Each step through the pages causes the page number to change. 

0 Kudos
DarrenWiens2
MVP Honored Contributor

I  can only think of this somewhat hacky solution, without turning to arcpy.mapping:

1.) add tanks symbolized as usual

2.) add as many text fields as pages on which labels should be displayed (so, one for page 2, and one for page 4).

3.) populate one field with "2", and one field with "4"

4.) copy and paste this layer twice into the table of contents again, so there are three copies of tanks

5.) make the second/third copies with no symbol

6.) turn on labels for the second/third copies

7.) set a Page Definition on each new layer, so that features (and labels) are only displayed if they match the dynamic text name field

This works for two pages, but if you want to automate the process, you should look to arcpy.mapping, specifically the Layer object, to turn labels on and off.

DavidJones4
New Contributor

Thanks Darren.  I was hoping for a more eloquent solution but sometimes in GIS they just aren't there.  I will look at Arcpy.mapping but I'm not much of a scripter.  IF I can't figure something out I'll try your original approach.  Thanks.

0 Kudos
DavidBarnes
Occasional Contributor III

I haven't treid this, but I wonder if you could do something with data frame clipping, where you can set it to clip to the current data driven page extent. Then, if you want you could also exclude some layers from the clipping if you still want those layers to draw outside the clipped shape. Maybe just include the layer that has the storage tanks, then ones that are not within the extent of the current page extent would be excluded and therefore not labeled.

Another question - given what you said about rotation, are you using annotation or labels to label the tanks?

0 Kudos