GP tool to batch-replace geometries from one FC to another (via related IDs)

1195
5
02-01-2022 12:18 PM
Status: In Product Plan
Labels (1)
Bud
by
Frequent Contributor

It would be helpful if there were a out-of-box GP tool that could  batch-replace geometries from one FC to another — via a tabular relationship.

Example:

  • I have a polyline FC called FC-A.
  • And I have an additional polyline FC called FC-B.

I want to update the shapes in FC-A with the shapes from FC-B.

  • I want to update the existing SHAPE values, without replacing the FC or replacing the records.
  • The link between the two FCs is a tabular ID field.


Currently, I don't think there are any tools that can do that.

 

5 Comments
DrewFlater
Status changed to: In Product Plan

The Append tool will do this in Pro 3.1 using addition Update parameters.

DrewFlater_0-1672770004693.png

 

Bud
by

It looks like this idea was implemented in Pro 3.1:

Upsert your datasets using the Append tool in ArcGIS Pro 3.1

DrewFlater

@Bud We had the Upsert development project in our backlog for awhile and were gathering requirements and researching how the capability could be applied to the Append tool. Seeing your Idea about a year ago, we thought it could be satisfied by the Append tool enhancement. So yes, this Idea pushed us in the direction of doing the Upsert development work in 3.1. There are always many factors at play when it comes to prioritizing our development work, and Ideas are a critical way we can work on and deliver capabilities requested by the user community. So keep up your Ideas and I'm sure more will be implemented in future releases.

Bud
by

@DrewFlater 

In scenarios where the user only wants to update existing rows, not insert new ones, how does Esri recommend we do that? For example, how to only select rows in FC-B that already exist in FC-A when upserting?
Use an SQL subquery in the expression parameter to only select rows from FC-B that already exist in FC-A? Or something else?

Also, what happens if there are duplicates in FC-B, but no duplicates in FC-A? What row from FC-B will be used to update the row in FC-A?

DrewFlater

@Bud for scenarios which are updated existing, I suggest to use Add Join with the option to only keep matching records, then Calculate Field to calculate the target fields to get the values from the join fields (whichever fields you want). This is done internally as a sort of pre-process within the upsert option of Append, so the same strategy will work well. If there are duplicates in FC-B it will make a 1:m join.