How can I bulk relate thousands of features to a related table?

1764
5
10-15-2019 10:39 PM
JustinOdell
Occasional Contributor III
  1. I have a point feature class with tens of thousands of features, all with a GUID.
  2. I also have a table with a single record of information I wish to relate to every single feature in my point feature class. This record also has a GUID.
  3. I have successfully set up a relationship class between the point feature class and table inside of my geodatabase, based on the origin and destination GUIDs.

If I start an edit session, I am able to add my selected table record to individual features using the attribute window, as outlined here. However this is not time efficient for the number of features I have.

Is there a way to bulk relate my table record to the thousands of features I have? Is there a geoprocessing tool that will do the job?

I am running ArcGIS 10.3.1.

0 Kudos
5 Replies
JakeSkinner
Esri Esteemed Contributor

Hi Justin,

Are the GUID fields populated with values? 

The manual process you describe above will only need to be used if child GUID is not populated.  For example, say I have the relationship between a feature class called Airports and a table called Districts based on the FCC fields.  I can select the airport, and the field in the Districts table that should be related:

I can then right-click on the District value in the Attributes window and choose to Add Selected to Relationship.

After doing so, the FCC field will be updated with the FCC value from the Airports feature class:

If the FCC fields are not populated, there is no way for the relationship to know which features are related without doing this manually.

JustinOdell
Occasional Contributor III

Thanks Jake. Yes, I did have GUIDs populated in both Origin and Destination tables.

I was able to resolve my situation by doing the following:

  1. Open Origin (feature class) attribute table and select relevant rows.
  2. Open Destination (table) attribute table and select relevant row.
  3. Add Production Editing toolbar to ArcMap
  4. Start Editing (this took a very long time due to the number of features in my feature class - some 30,000+)
  5. In the 'Manage Features' window, click 'Update' tab
  6. Expand the Destination table, and then expand the identified relationship
  7. Right click the Origin feature class under this relationship, and select 'Add Selected'. (This took a very long time!)
  8. Save edits (this took a very long time too).

I'm not sure if there is a more efficient way of establishing relationships in more recent versions of ArcMap or ArcGIS Pro. If there is, then my issue will hopefully be better dealt with in the future. Alternatively, is it not possible to create a 'Relate' geoprocessing tool which can establish relationships between tables once the relationship class has been selected?

0 Kudos
BrittanyBurson
Occasional Contributor III

Unfortunately I don't have access to the Production Mapping extension Justin was able to use to accomplish this in ArcMap. In my case, it would be enough for me to bulk create blank related records in a maintenance table, and then go back and batch edit their fields. For example, select the length of a street containing 15 median features, right click at the table header level >> Add New to Relationship, and it would add a record for each parent GUID selected. Then I'd select those child records and batch edit to "schedule" them for maintenance. However, having to click each one at a time to Add New to Relationship for thousands of street medians isn't feasible... unless I am missing where this is possible? Hopefully it will be considered to add this capability into Pro in the future.

0 Kudos
Will_CulturalFire
New Contributor III

Hi Brittany, 

I know this is an old post, but I recently worked through this problem myself. I don't know if this would work for an attributed relationship, but if the relationship is not attributed, here is the workflow you are looking for:

1. Select all parent features.

2. Use Append tool to append these features to the maintenance table. Map the GlobalID of the parent FC to the foreign key GUID field of the maintenance table, and disable all other fields (unless you want to transfer other attributes).

3. There will now be one blank related record for each parent feature.

AlexMorris
New Contributor

If it is one to many you select the many and the one related parent and just add selected to the parent single feature as shown in the other replys and esri documentation of add selected to relationship. This way you can add many at once and all children will be related to parent. I personally have done it with python / arcpy an example was posted as response to another thread.

https://community.esri.com/t5/arcgis-pro-questions/add-selected-to-relationship-programmatically/m-p...

If the correct field is populated with the feature GUID in the related table the relationship is created from inside out.

0 Kudos