|
IDEA
|
@JasonBessert
In this post you can learn how to modify the MUST HAVE A RECORD rule such that it only errors for parcel features that were created after the migration date.
Another thing you can do is create a geoprocessing model that iterates on the record features:
Use the geoprocessing tool Select By Location to select all the parcel features that 'have their centroid within
Use the geoprocessing tool Select Parcel Features to select parcel features (lines and points)
Use the geoprocessing tool Select By Attributes to remove features that are already associated to a record
And finally, calculate the record GlobalID as a GUID on the CreatedByRecord field
Let me know if this would work and if you need help with the geoprocessing model
Amir
... View more
10-23-2024
05:35 AM
|
0
|
0
|
582
|
|
POST
|
@JasonBessert
I am happy you have figured it out. Please submit a bug with technical support if you would like us to look into it.
The default layers we add are a starting point. We expect customers to modify the symbology, labels, scale dependency etc. to meet their business needs.
... View more
10-22-2024
11:37 PM
|
0
|
0
|
1701
|
|
BLOG
|
The previous blog shows how you can keep a line as fixed, while still being able to add vertices to it.
But can you use attribute rules to prevent lines from bending?
The answer is yes.
The Arcade method Generalize removes vertices within a giving tolerance. So we can compare the geometry of the feature to the generalized geometry to find out if they are different.
In this example, lines are allowed to bend up to 1 meter, but you can change that to your desired tolerance.
This is the Arcade expression:
var MaxOffset = 1;
Var OffsetUnit = 'meters';
if (Equals(Geometry($feature), Generalize($feature, 1, true, 'meters'))) { return false; }
return true;
Simply create a constraint rule and set it to be triggered on 'update'.
If you are using ArcGIS Pro 3.4 or above, only trigger it when the shape is updated:
Disclaimer: This example is the first draft that has not been thoroughly tested. You can add the logic to only constraint the update for specific lines, else you'll not be able to align any parcel to each other.
Please leave comments if this is useful, thoughts etc.
Amir
... View more
10-22-2024
02:58 AM
|
7
|
0
|
636
|
|
IDEA
|
@-_Ashley-B-Potter_-
Could you please be more specific about the type of issue. Is this a data quality issue, server timing out when processing too much data, etc.
If the system 'locks up' this is a bug. Surely you don't want Shrink to Seed to do the same.
... View more
10-21-2024
07:25 AM
|
0
|
0
|
1047
|
|
BLOG
|
Can I keep lines fixed?
The simple way to keep a line fixed is to make sure the line is attached on both ends to a point that is fixed. As long as the topology is on in the editing tab, a fixed point will prevent any attached line or polygon from moving.
But what if you wanted to keep specific lines as fixed based on an attribute?
We can try to copy the attribute rule constraint that is used in the point feature class to the lines. That rule is triggered on 'Update' and compares the geometry of the feature before and after the edit using the arcade method Geometry($OrigianlFeature).
But topology validation should be able to add a vertex in that line (cracking and clustering), so we should instead only make sure the end points of that line do not move.
Can this be done using Attribute Rules for specific lines?
Yes - here is a sample you can use. It checks that the start vertex and the end vertex do not changes during an edit by comparing their X and Y coordinates. You can probably condense this expression and adjust it to your specific lines:
var IsSameFromX = (Equals(Geometry($feature).paths[0][0].x, Geometry($originalFeature).paths[0][0].x));
var IsSameFromY = (Equals(Geometry($feature).paths[0][0].y, Geometry($originalFeature).paths[0][0].y));
var IsSameToX = (Equals(Geometry($feature).paths[-1][-1].x, Geometry($originalFeature).paths[-1][-1].x));
var IsSameToY = (Equals(Geometry($feature).paths[-1][-1].y, Geometry($originalFeature).paths[-1][-1].y));
// if $feature.LineType == 1){ //comment out
if (!IsSameFromX) return false;
if (!IsSameFromY) return false;
If (!IsSameToX )return false;
If (!IsSameToY )return false;
//} //comment out
return true;
To use this in an attribute rule make sure to only trigger it on 'Update'. If you are using ArcGIS Pro 3.4 and above, limit the attribute rule to get triggered when the SHP field is modified.
... View more
10-21-2024
03:03 AM
|
0
|
0
|
528
|
|
POST
|
Thanks @SamMontoia1
I've also added 2 text fields on the parcels and lines to store the record names of the records that created and retired the feature.
It turns out that SQL Server requires the special "@" added. Since parcel lines don't have a relationship class a SQL Filter is used.
For the 'CreatedBy' field on the Lines table:
var RecordFS = FeatureSetByName($datastore, 'GIS.PF_Records',["GlobalID", "Name"], false);
var guid = $feature.CreatedByRecord;
var sql = "Globalid = @guid"
var Record = First(Filter(RecordFS, sql));
If (IsEmpty(Record)) {
return "---";
}
return Record.Name;
For the 'RetiredBy' field on the Lines table:
var RecordFS = FeatureSetByName($datastore, 'GIS.PF_Records',["GlobalID", "Name"], false);
var guid = $feature.RetiredByRecord;
var sql = "Globalid = @guid"
var Record = First(Filter(RecordFS, sql));
If (IsEmpty(Record)) {
return "---";
}
return Record.Name;
In my case I wanted to see the record names in a label, and since labels do not support feature sets in Arcade, I had no choice but to add the fields and use attribute rules to populate them.
In my expressions, 3 dashes '---' are returned if no record name is found (e.g it's NULL).
... View more
10-18-2024
07:32 AM
|
1
|
0
|
1375
|
|
POST
|
@RobertChaney
If I understand you correctly, your expectation is that after you create a new parallel line 53 feet and press Reconstruct from Seeds' the new line will split the existing lines on its sides.
If you want that type of behavior (not everybody does) you can use the editing tool Planarize before you press Reconstruct From Seeds. Another tool that might be interesting to get a label on every parcel edge is to use the Reconstruct Boundaries tool on a parcel.
I hope this helps
... View more
10-09-2024
04:56 AM
|
0
|
1
|
1302
|
|
IDEA
|
@MattSund The reason organizations adopt the parcel fabric is because they want: Increase their efficiency Assess and improve their data quality Associate all features with the legal record (instrument) they originated from, making the data defendable. Improve their spatial accuracy Maintain historic parcels and parcel lineage ... We would love to help you. You can get in touch with our product manager @DanielStone or with your account manager. The workflow you describe is a core workflow of starting connection lines from the commencement point to the point of beginning (POB). That accounts for any rotation (aka Basis of bearing) and scale factor. We call that 'ground to grid' correction and this is how to use it. You can also apply rotation interactivity to a group of lines or a parcel after building it. From your description, I can tell that you close your traverse, which means you are already stretching the geometry to distribute the misclose (using the compass method most likely). Assuming you stitch new parcels to existing parcels (alignment) you effectively stretch and bend geometries. That is not different from what the parcel fabric does. We understand that changing from ArcMap to Pro requires adjusting your workflows and it can be challenging. You can prevent parcel points from moving by simply setting them to fixed. You can easily detect any line that has been stretched or rotated more than you want to allow it. Your workflow explains why you are currently missing COGO dimensions on your lines which is a shame, because it sounds like you put a lot of effort of creating a nearly survey accurate cadastre, and good COGO values would allow you to run weighted LSA (Least Squares Adjustment) should you decide to evaluate and/or improve your spatial accuracy even further.
... View more
09-18-2024
11:55 PM
|
0
|
0
|
2779
|
|
IDEA
|
Thanks @MattSund Are you currently using the parcel fabric? Are you using COGO Enabled lines in ArcGIS Pro? If you use the parcel fabric you can select the parcel polygon and then use the parcel select tool to select the boundary lines. We can also consider improving the 'select by trace' and/or offer another selection method. Would that work?
... View more
09-18-2024
03:22 AM
|
0
|
0
|
2807
|
|
POST
|
@-_Ashley-B-Potter_- To delete a large number of parcels you can use the geoprocessing Delete Parcels. This tool is smart enough not to delete points and lines that are shared by parcels that are not deleted. It will also not delete any point that is either fixed or XY Constraint (this utilizes the field called 'preserve' on the point table). If you are using a file geodatabase you don't have to concern yourself with versioning, but if you are using versioning you'll have to decide if you want to delete the parcels in a child version, then review the changes before you reconcile and post them, or take the risk and running in the default version without the ability to roll those delete back. After every major change to a table (appending or deleting data) it is recommended to recalculate the spatial indices. If you have an enterprise deployment you probably have a nightly script / job that does that already. I hope this helps
... View more
09-13-2024
02:18 AM
|
3
|
0
|
1087
|
|
IDEA
|
TBD: 1. Is this idea only relevant to the unique map configuration posted by @MizukiKayano2 or is it also applicable for customers that use a separate layer for historic parcels? 2. What would be the performance impact of setting a definition query to many layers? Please add your comments to help us answer the first question above
... View more
08-30-2024
02:12 AM
|
0
|
0
|
2215
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 06-12-2023 01:26 AM | |
| 6 | 02-18-2026 07:38 AM | |
| 1 | 02-13-2026 02:25 AM | |
| 1 | 01-08-2026 06:37 AM | |
| 2 | 01-15-2026 08:21 AM |
| Online Status |
Offline
|
| Date Last Visited |
Friday
|