When editing I want to be able to change the attributes of one field and upon doing this allow for the automatic update of another field in the same attribute table.

Essentially I have one layer with a code, description and legend information.

I would like to be able to edit the code and have the description and the legend information update with this edit with its correct description and legend information.

Is there any way to do this within ArcMap's tools or an associated script?

  • 1
    You could join a table containing the code, description and legend information to the feature class/table with the code you are editing. – blah238 Sep 20 '12 at 17:23

It will depend on the kind of spatial database are you working with e.g. shapefile, Personal or File Geodatabase, ArcSDE, etc

If you are working with an SDE database on traditional RDBMS (MS SQL, ORACLE, Postgres) you could use a database trigger to help automatically update fields when a change is made to another.

If you are working with a shapefile or pgdb/fgdb, you won't have this option as triggers are not supported in their database structures.


You could also try making a relationship table if you are working out of a geodatabase. See the link below:


  • 1
    A join will let you query, label and symbolize on joined columns, while a relate or relationship class will not: help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//… – blah238 Sep 20 '12 at 17:31
  • I suppose I am misunderstanding the question then. I was just thinking back to when we did a city signage project and Public Works was using a different MUTCD code for signs than what we were. We used an attributed relationship class so that as we were adding new signs with our MUTCD code, the code Public Works used was automatically joined to our table so we could label the signs using their code instead of ours. I was just thinking if the description and legend info were tied to a specific value in the attribute table, this would work. – crmackey Sep 20 '12 at 18:07
  • You can certainly use both relationship classes and joins, I was just pointing out that you'll definitely need a join if you want to use the related table for querying/symbolizing/labeling. – blah238 Sep 20 '12 at 20:29

You could create a simple python field calculator script that you run to update the description field values when you are done with your edits, see example below:

def checkValue(c,d):
  if c == 1:
    return 'one'
  if c == 2:
    return 'two'
  if c == 3:
    return 'three'
  if c == 4:
    return 'four'

enter image description here

  • This is exactly what I was looking for: an UPDATE clause. – avguchenko Jan 2 '17 at 17:16

User defined fields in desktop level feature class are not capable of being dynamic. The closest you could get is running an arcpy script on demand or on schedule. You might get nerdy a play with methods to trigger the script.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.