I've got a question concerning the symbology in ArcMap.

I want to use the Unique values/Many fields option to assign unique values based on three attribute fields. To symbolize the first attribute field, I would like to use a color, the second and third attribute field shall use a symbol. Obviously, this can easily be done manually, but as I have nearly 1000 unique values, I was wondering whether there is a possibility to assign the color first, and then the symbols to each same combination, without having to click every item individually.

I hope I have been clear about what I want to do.

I am running ArcGIS 10.2 Basic, and do not know much, or rather nothing, about python.


The answers so far do not seem to work properly for me. Therefore, I will try to be more clear with what I need.

I have got a point-shape with 3 fields and 988 features. I want to make a layer of this to apply to different shapes afterwards.

So here is what I want:

  • Every unique value (13 unique values) of the first field to have the same color
  • Every unique value (4 unique values) of the second field to have the same symbol
  • Every unique value (18 unique values) of the third field to have the same symbol
  • The different symbols for the second and third field must not superpose each other

I do know how to realise this manually, but I do not want to choose and click every single one of 988 features in the symbology window, especially as they cannot be sorted by the second or third field.


Is there any possibility to automatically assign colours to the values of one field and symbols to the values of another field?

  • 2
    You might consider adding a field and populating it with the different symbol values, using the field calculator or a join to a table from another program. You can also in the Layer-Properties-Symbology-Categories symbology window select multiple layers, right click and choose from several options to apply properties to all the selected entities, including colors.
    – John
    Commented Jul 28, 2014 at 13:02

2 Answers 2


You could definitely do as Johns describes and create an additional field to be your symbol field based on the other three attributes. This could be done by using the field calculator with VB or python. Set the parser as Python, Click "Show Codeblock" For example:

Using if and else statements you can populate your new symbology field with integers or text. Based on this text, you can set your symbology

def symbology (field1, field2, field3):
 #if your 1st field is equal to "sometext" and field 2 is equal to 0.25 populate symbology field with one
  if (field1 == "sometext" and field2 == 0.25):
    return 1
  elif (field1 == "PINE" and field3 > 10):
    return 2
   #if none of the above conditions are met, return 3
    return 3

under your new field = write:

symbology(!field1!, !field2!, !field3!)

As an additional note, make sure none of your if/else conditions overlap or your won't get the correct values!

Hope this helps

  • Thank you. I will try this when I get back to work next week. The code could be helpful, I cannot oversee this, as I have no experience with python or vb.
    – christoph
    Commented Jul 29, 2014 at 15:42

Wanting different colors for your symbology makes this difficult. However, if you don't mind the color portion of your symbol to be always the same shape (say, a circle that fits within your other two symbols), I would simply add the layer to your table of contents three times, and assign symbology by one of your attributes for each layer.

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.