Can a relationship be used to update two layer by editing only one of them?

04-02-2014 05:21 PM
New Contributor II

I am frustrated with something that seems so easy within the ArcGIS help when trying to apply a relationship between two feature classes.

Within the 10.2 ArcGIS help the following is stated and I would like to apply the bold/underline portion pertaining to attribute updating.

Message notification direction

As previously discussed, when you delete an origin object in a composite relationship, related destination objects are automatically deleted.

Whether you're working with simple or composite relationships, there may be other actions that require an update of one feature to trigger an update in its related features. Furthermore, updates can be required in one direction or another, or both.
�?�When you move or rotate a feature, you want related features to move or rotate along with it.
�?�When you update a feature, you want an attribute in a related feature to update automatically.
�?�Updating an origin can require related destination objects to update.
�?�Updating destination objects can require related origin objects to update.

I have one point FC [destination] and one polygon FC [origin] with the following relationship

One to one relationship
forward - Origin to destination
I am using a text field named [test_id] as my primary and foreign keys within both FC.

When I have an editing session in progress, I can select a polygon, move the polygon, and have the point relocate.

However, what I would like to occur is that when I adjust the value of [map label] field within the polygon that it automatically update the [map_label] field of the related feature to update automatically.

I know there is something simple that I am missing, but I've spent about 3 hours trying to figure this out without any luck.

Any help in the right direction would be greatly appreciated.

Thank you in advance,

1 Reply
MVP Regular Contributor
From what I have read in Esri's help, once you've created the relationship you must then program behavior into the objects that receive the messages so they can respond.  In other words, I think custom programming is required to accomplish what you're looking to do.  Rotating and moving a related feature is one thing, but firing off an attribute update on the destination when editing the origin is another thing.  Unless you're intending to program custom behavior, set the message notification to None or else messages will needlessly generate each time you perform an edit operation, thus slowing performance.  This is covered at the following URL, along with a chart the delineates the relationship effect based on direction (you'll notice that the chart doesn't seem cover attribute updates as out of the box behavior):

The scenario you outlined seems to be classified as "No other effect unless custom behavior is programmed" according to the chart. 

What is your backend data store (Oracle, SQL Server, file geodatabase)?  If you're using an RDBMS, you could consider using database triggers.  However, this can be very tricky/risky in a versioned environment.  I would recommend this type of "auto updater" approach to someone only if they are a DBA, are very comfortable at the RDBMS level, and fully understand how ArcSDE behaves.  It depends on your requirements, architecture, and comfort level with this approach.
0 Kudos