I am working toward a map cache, and therefore have about 12 versions of the same datasets to be shown at different scales. Invariably, the symbol sizes I have set on highway shields (for example) need to be fussed with in order to make them look right. In order to change the symbol size (scale to text size doesn't fit my application), you have to click four times from the label manager, and you have to do it over and over and over until all eight label classes are done. And then you want it just a tad larger....

Can python (or anything else) be used to adjust picture marker symbol size across multiple label classes?

2 Answers 2


ArcPy.Mapping doesn't provide access to these properties. VBA is your best bet for this particular case because, although I'd recommend using label styles of just plain text symbol styles first if you are really applying the same edit over and over.


Python is meant for geoprocessing. Here is a crude solution that will require some initial setup; you could design as many "label" layers as there are scales (1 layer for each scale). Then you could load these labels (from the saved layer files) programatically with ArcObjects whenever you want. (when the scale changes for example) By default, when you import Layer symbology into a layer, Labels are not imported. They are, however, stored in the layer file.

Here is a simple VB example on how to load labels from a saved layer file. You can do this in VBA (easy, but will no longer be available in the next version of ArcGIS) or create a custom add-in in Visual Studio (steeper learning curve).

This way you can design your labels as complex as you like. (SQL Query, Label Expressions, multiple Classes, any symbols, Maplex or Default labeling engine)

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.