Parcel code spreadsheet integrated into fabric

683
9
04-13-2023 10:49 AM
AdamHart1
New Contributor III

I have a question for anyone that is in a similar situation. I have a spreadsheet of all of the tax parcel codes that have been used in the past. I also have a printed version of it. When I process a split or combination, I write the new code in the book so that we know to not use that code again. I update the spreadsheet with all of the new codes every year or two. My question basically revolves around if anyone knows of a more efficient way to maintain the code spreadsheet whenever I create new parcels in the fabric. I thought about using an attribute rule and found an ESRI blog post that may help, but I thought I would post the question here to see if anyone had other ideas or are using another method. Thanks in advance

0 Kudos
9 Replies
jcarlson
MVP Esteemed Contributor

The attribute rule is the way to go, I'd say.

For us, though, we have to first process things in a separate database, and that system assigns new codes for us, so by the time we're working in the fabric, that is already dealt with. But if I had to manage unique codes by myself, I'd use an attribute rule.

- Josh Carlson
Kendall County GIS
0 Kudos
DianeBaker
New Contributor III

I'm assuming parcel code for you is the equivalent of an assessment parcel number  (APN) to Stanislaus County.  For us I usually take a look at the largest APN on the page for example 075-070-052. I then go to our Assessment database where all the details about a parcel exist and search and see if a 075-070-053 is an unused number. If no results are returned I know its a number I can use.  On a very rare occasion I will get a result.  In those cases I will just keep incrementing up one more parcel number until I find an open one for that page.  That is extremely rare for us.

0 Kudos
AmirBar-Maor
Esri Regular Contributor

This seems like a common requirement that we can consider shipping an attribute rule with the parcel fabric for it.

The increments are done within a 'book' and 'page' or within some other cadastral administrative division. Because of the parcel name prefix components the Arcade NextSequenceVelue method might not work here though.

Should we (esri) try to come up with the Arcade expression or does anyone already have it implemented and can share it with the community?

 

0 Kudos
AdamHart1
New Contributor III

I know that everyone is different on how they handle these types of situations, but here is my general process. I use the hard copy book of parcel numbers and assign new numbers based on which numbers have not been used and the general numbering sequence in the area. The numbering sequence will obviously vary quite a bit depending on how dense the area is. I write the new codes in the book and then process the split/combination in our CAMA system and then parcel fabric. I think an attribute rule would be nice so that when the new parcels get created in the fabric, the digital spreadsheet would also update with the adding of new rows for each new parcel number. I found this blog post, but I'm not sure if it will work in this situation...

https://www.esri.com/arcgis-blog/products/arcgis-pro/data-management/an-attribute-rule-to-keep-two-g...

 

0 Kudos
DianeBaker
New Contributor III

I think that would be quite handy!

AmirBar-Maor
Esri Regular Contributor

@DianeBaker @AdamHart1 

This Arcade expression below can be used in a popup to find the next value in a 'Book' and 'Page'. (right click on the layer, configure popup, add an expression...)

 

// Expression uses the 'Book' and 'Page' fields to find the maximal parcel name in the given 'Book' and 'Page'
// then returns the value + increment 
var ParcelsFS = FeatureSetByName($map, 'Parcels_CREST', ["Name", "Book", "Page"], true);
var book = $feature.Book;
var page = $feature.Page;
var MaxParcelNumber;
// Find the maximal parcel number in a given book and page
if ((!IsEmpty(book))|| (!IsEmpty(page))) {
    var sql = "BOOK = '" + text(book) + "' AND PAGE = '" + text(page) + "'";
    var FilteredParcels = Filter(ParcelsFS, sql);
    MaxParcelNumber = Max(FilteredParcels,"Name");
    //Increment 
    var increment = 1; // change to your increment size
    If (!IsEmpty(MaxParcelNumber)){
        MaxParcelNumber = text(number(MaxParcelNumber) + increment);
        return MaxParcelNumber;
    }
}

 

It assumes you have a 'Book' and  'Page' fields on the parcels layer.

I was about to turn this into an Attribute Rule when I realized that if you create a new parcel, you are unlikely to have the Book and Page fields populated... so when creating a new parcel, the expression will need to intersect with another layer to get the Book and Page values.

Before creating the Attribute Rule:

  1. Do you have a feature class for the Book and Page?
  2. Is this a valid path forward?
AdamHart1
New Contributor III

I'm assuming what you mean by book and page is similar to what Diane said by having a feature class being used for a map series. If that's the case, then yes we have a feature class that has a separate polygon for each PLSS half section (north 1/2 and south 1/2). My map series has a field for each page and grouped by township. What I was kind of envisioning for us is an attribute rule that when a new parcel is created, a new row entry would be created in the table of used parcel ID numbers so that I wouldn't have to maintain the spreadsheet as well. I can see your proposed rule could be helpful, but I'm not sure if it would be ideal for our data. This is because the increment value would vary greatly depending on where you are in our county. Some PLSS sections only have 10-20 parcels and others have 100-200 parcels. I would just have to do some testing to see if I could use that rule.

0 Kudos
DianeBaker
New Contributor III

We do have a Map_Page we use for our Map Series.  Unfortunately, I do not have a complete table with my retired parcels.  I would need to establish that data.  We have at least a dozen pages that I know of that a the highest parcel is no longer active.  What's worse is some of those highest parcel numbers are not even in our historical because they were pre-Fabric. 

I would need to verify the highest parcel number for each page (we have around 4,000 pages)  and make sure at a minimum we add any historical parcels where the historical parcel number is higher than the rest of the page.  At that point despite the highest active parcel being 001-001-065, the expression would know the actual next parcel is 001-001-067 based on the historical values. Once I have that data and it can search both historical and active I can see myself using this tool with glee.  Thanks Amir!

0 Kudos
AmirBar-Maor
Esri Regular Contributor

@DianeBaker 

Since Attribute Rules work on a table, and since the historic parcels are in the same table as the current parcels, the expression (once written) will find the next available number within a 'book and page'  regardless if the parcels are current or historic. I'll probably get to it next week.

0 Kudos