Select to view content in your preferred language

Grammatically correct text scales using dynamic text for Map Series layouts

301
3
02-13-2026 04:16 PM
Status: Already Offered
Labels (1)
scardina
Emerging Contributor

When generating a large number of maps in a Map Series, the user will often use a feature layer that has a relevant polygon or a custom set extent, and have ArcGIS Pro set the extent and scale automatically for each polygon, choosing with or without a buffer around that polygon, and rounding up to some number appropriate to the layout units (e.g. 31680 to round up to the nearest half mile in a 1 inch = X miles series).

This can be automated using dynamic text as follows:

1 inch = <dyn type="mapFrame" name="MainMap" property="scale" pageUnits="in" mapUnits="mi" pageValue="1" decimalPlaces="1"/> miles

In a map series with many different scales, rounding up to the nearest 31680, the output of the above dynamic text might be as follows:

  • 1 inch = 0.5 miles
  • 1 inch = 1 miles
  • 1 inch = 1.5 miles
  • 1 inch = 2 miles

Note that the decimalPlaces attribute strips trailing zeroes, as reported in 2021 in BUG-000141745, but ESRI has classified the behavior as "As Designed".

The problem with the above is primarily when the text reads "1 inch = 1 miles".  Most organizational style guides will flag this as not grammatically correct and acceptable outputs might include "1 inch = 1.0 miles"  (adding an additional decimal place) or "1 inch = 1 mile" (dropping the "s").

One could perform data entry for the polygon layer that is used to generate the map series, and set the dynamic text to pull a value from the attribute table. But for a large map series, this is a lot of unnecessary manual work for something that is already automated by existing map series functionality at the layout level. 

A few options:

  1. Add a format attribute for numeric dynamic text values like this, so that the user can decide whether to strip trailing zeroes.  Similar formatting functionality exists for other dynamic text values (e.g. date and time).
  2. Allow some sort of if/then functionality for selecting "mile" vs "miles".  Expressions are allowed  for dynamic text from attribute tables
3 Comments
AubriOtis
Status changed to: Already Offered

This is available in ArcGIS Pro. You just add the zeroPad = "True" tag to your existing tag. By default when rounding if the decimal is 0 it doesn't show. Adding zeroPad = "True" forces the decimal to display. 

BUG-000141745 is as designed, but only because it referenced map series attribute dynamic text which points to a field. The field could be numeric or text values, resulting in some rounding limitations.

In your case, you are using Scale dynamic text which always returns a numeric value, supporting more rounding and decimal options. 

AubriOtis_0-1771348740154.png

 

AlfredBaldenweck

The zero pad helps with the decimal but doesn't do anything for making "miles" singular 

AlfredBaldenweck_0-1771349919249.png

 

AubriOtis

@AlfredBaldenweck  true it does not help with that. However in the original issue it said "acceptable outputs might include "1 inch = 1.0 miles"  (adding an additional decimal place) or "1 inch = 1 mile" (dropping the "s").". We can do the first acceptable solution already in the software.