ArcGIS Pro 2.5: “Pop-up” fails to bring the history of merged fabric parcels,
In the screenshots below, parcel #16 and #23 are merged to produce parcel #125. Now. Identifying parcel #125 doesn’t tell its history (that part of it is derived from 16 and the other is from 23).
What could be the issue here?
One way to accomplish such a thing is to use an Arcade Expression in your pop-up. Because all parcel features are tied together by the Records table, we can use the createdbyrecord and retiredbyrecord along with the Filter function in Arcade.
Here is the code we use to find all historic parcels related to the parcel that is clicked on:
// grab record globalid from clicked parcel var record = $feature.createdbyrecord // set empty string var for popup var outstr = '' // filter parcel feature class for parcels retired by same record as defined above var historic = Filter(FeatureSetByName($datastore, "Parcels"), "retiredbyrecord = @record") // iterate through return featureset and append the parcel number to the popup string for (var h in historic){ outstr += h.name + '\n' } // return string of historic parcels return outstr
In practice, this is what it looks like (in a web map, but works the same in Pro):
Using this same type of expression, we can expand the popup to include:
If you're just reviewing the data separately from your editing workspace, another way to accomplish this is with a Query Layer. Keep in mind that you've really got to understand the underlying table structure to get the features you want, but a good query layer can give the appearance of a hard-coded "parent parcel" attribute, without such a field needing to exist.
Here is a brief example of a query layer you might use. Our fabric is in Postgres, by the way.
select distinct on (p.objectid) p.objectid, p.name, p1.name as parent_parcel, p.shape from sdo.ownershipparcels p join sdo.ownershipparcels p1 on p.createdbyrecord = p1.retiredbyrecord where p.gdb_branch_id = 0 and p.gdb_is_delete = 0 order by p.objectid, p.gdb_archive_oid desc, p1.gdb_archive_oid desc
If your parcel has more than one parent parcel, as in a parcel merge or a more complex situation, you will need to do some fancier SQL to avoid duplicating rows in the resulting table, but I'll leave that to you if you go that route. Arcade is probably all you need for the popup.
Thanks Josh
Where I need to stuck the codes you have already provided in order to get the parcel history as it is identified?
Right-click the feature class in the contents and click "Configure Pop-Up".
On the panel that opens there is a button that says "Expressions".
From there, you can create a new expression, which can be added to your popup.
I managed to configure the pop-up as you have already indicated but it appear to fail to bring the parcel history.
Hi Jamal NUMAN,
The record associated to the new parcel (in your case "106") does not have historical parcels associated to it as that record is associated to a parcel that is current, and thus will not show anything under the historical layer on the pop-up.
If you click on any of the historical parcels however, the record associated to any of them will show the historical parcel associated to it since the parcel has been made historical.
Parcel Fabric works in a record-driven workflow and thus tracks all the parcels associated to the legal records from which they are created (or modified).
To better illustrate my explanation, please refer to the picture below:
As you can see above, the historical parcel is listed under the record from which it is created.
Hope this helps!
Cheers,
Irvan
In the screenshots below, I have repeated merging parcel #30 and #38. The result is parcel #126. Identifying parcel #126 doesn’t show its origins that it is created from #30 and #38.
What could be the best practice to merge fabric layers so that their history is obtained as result parcel is identified?
Hi Irvan,
I couldn’t figure out the best practice to merge parcels to ensure keeping the history.
In the screenshots below, I wanted to merge parcel#14 with parcel#7.
First, I created a record and named it as 14+1
Then, I made the 14+7 as an active record
Next, the merge is performed
Now, as the parcel#14+7 is identified, it doesn’t bring the history that it is derived from parcel#14 (when clicking upper parcel) or parcel#7 (when clicking lower parcel)
What might be missing here that caused the failure in bringing the history of merged parcel#7+14
Hi Amir,
Correct. What we need is to be able to get “family tree”! is this coming in 2.6?
Did you get a chance to see this meetup? Video Link : 6468
We used an Arcade expression to retrieve the historic parcels in the pop-up.
It looks like this:
You can create a custom expression in your popup (right-click the parcel layer --> Configure Pop-ups) and paste this:
Expression:
var RecordID = $feature.CreatedByRecord;
var sql = "RetiredByRecord = '" + RecordID + "'";
var fsHisoricParcels = FeatureSetByName($map, 'Historic Tax', ["Name"], false);
var fsParentParcels = Filter(fsHisoricParcels, sql);
var cnt = Count(fsParentParcels);
if (cnt ==0) {return "No Parent Parcels found"}
else{
var ParentParcelsNames = cnt + " Parent Parcels = ";
for (var HistoricParcel in fsParentParcels){
ParentParcelsNames += (HistoricParcel.Name + "; ");
}
return ParentParcelsNames;
}
The parcel fabric tracks the parcel lineage.
We have plans to expose the parcel lineage in a dedicated graphical manner (think of a 'family tree') in future releases.
Amir