ArcGIS Pro 2.5: “Pop-up” fails to bring the history of merged fabric parcels,

2096
11
05-26-2020 12:08 AM
JamalNUMAN
Legendary Contributor

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?

----------------------------------------
Jamal Numan
Geomolg Geoportal for Spatial Information
Ramallah, West Bank, Palestine
11 Replies
jcarlson
MVP Esteemed Contributor

Using an Arcade Expression

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:

  • Details from the record itself (date, document number)
  • Other parcels created by the same record
  • In the case of a complex split/combo record, a subset of historic parcels which actually intersect with the clicked parcel geometry, resulting in something like the parcel's genealogy
  • Parcel "grandparents", i.e., the historic parcels of the historic parcels. Depending on how much historic information your fabric has, this can be resource-intensive!

Using a Query Layer

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.

- Josh Carlson
Kendall County GIS
JamalNUMAN
Legendary Contributor

Thanks Josh

 

Where I need to stuck the codes you have already provided in order to get the parcel history as it is identified?

----------------------------------------
Jamal Numan
Geomolg Geoportal for Spatial Information
Ramallah, West Bank, Palestine
jcarlson
MVP Esteemed Contributor

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.

- Josh Carlson
Kendall County GIS
JamalNUMAN
Legendary Contributor

I managed to configure the pop-up as you have already indicated but it appear to fail to bring the parcel history.

----------------------------------------
Jamal Numan
Geomolg Geoportal for Spatial Information
Ramallah, West Bank, Palestine
IrvanSalim
New Contributor II

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

JamalNUMAN
Legendary Contributor

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?

----------------------------------------
Jamal Numan
Geomolg Geoportal for Spatial Information
Ramallah, West Bank, Palestine
JamalNUMAN
Legendary Contributor

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?

----------------------------------------
Jamal Numan
Geomolg Geoportal for Spatial Information
Ramallah, West Bank, Palestine
AmirBar-Maor
Esri Regular Contributor

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;
}

AmirBar-Maor
Esri Regular Contributor

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