0

I need help with the syntax with my label expression. I have a specific set of parameters I need to display but I need to change only one attribute to label as something else.

I have AC pipeline that I need to label as NM. How do I get everything else to label but have anything that equals AC change to NM?

A quick work around for me was to duplicate the layer and do a Definition Query and do a simple label expression. My other layer excluded my AC mains and labeled them normally. I know there is a way to build a more complex syntax to complete this task without having to duplicate layers and create Definition queries. Here is the VBScript I have currently.

I am assuming is it would be an if then else statement...not sure how to actually write it correctly though.

enter image description here

PolyGeo
65.5k29 gold badges115 silver badges350 bronze badges
asked Feb 23, 2015 at 21:33
3
  • If you are using ArcGIS 10.1 or later then using Python for labelling like this would be my preference. Commented Feb 23, 2015 at 21:53
  • I am using 10.2.2 - I guess I should have included that. Even with that said PolyGeo...what would the syntax look like? That is where I am running into problems. I will admit though that I am not skilled in Python (yet!) Commented Feb 23, 2015 at 22:06
  • 2
    I'd use 'Define classes of features and label each class differently' in Layer Property-Labels window. This is much more flexible tool, you might change fonts and color etc Commented Feb 23, 2015 at 22:23

1 Answer 1

1

What I think you really need is to use label classes. More info is available in the help documentation at http://resources.arcgis.com/en/help/main/10.2/index.html#//00s80000000v000000

Basically though, what you would be doing is creating different classes of labels that you can label differently, just like you can classify your symbology so different features draw differently within the same layer. The easiest way to work with label classes is if you already have them classified for symbology, to just go to the labels tab of layer properties and under method tell it to define classes of features and then use the button Get Symbol Classes. Otherwise, follow those same steps except don't click the get symbol classes button, but instead use the add button and the SQL Query buttons to add classes as necessary. Truth be told though, to work with labels easiest, I would recommend opening up the label toolbar and using the label manager (available from that toolbar).

If you use label classes, you can set it so features that meet your criteria ex:[FIELD] = "AC" are labeled differently than the rest of the features.

Additionally, I think if you change the label expression parser to Python, you should be able to simply use the .replace() method, depending on how your data is set up to replace the AC with NM. For example, the label expression might be something similar to str([Diameter]) + " " + str([Material]).replace('AC','NM') + " " + str([Date])

answered Feb 23, 2015 at 22:29
2
  • I understand where you are going with this John. I need some clarification. Let's say I call my label class AC to NM, then I would build a SQL Query to say [Material]= 'AC' correct? This is telling the class to find everything that is AC. Then in my Text String expression if where I would add addition formatting for the label like [Diameter] & " '' " & "NM"? Is this correct? Commented Feb 23, 2015 at 23:19
  • 1
    I got it to work John! Label classes was the way to go. I learned something very cool today. Thank you guys! Commented Feb 23, 2015 at 23:48

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.