|
POST
|
@JasonBessert
In this post, we demonstrate how to use a geoprocessing model to convert CAD data to parcels.
Creating a parcel seed is simple:
It has to be a polygon
It has to have the field IsSeed = 1
It has to be in the parcel fabric
It has to be surrounded by boundary lines
Only one seed is allowed per loop.
The size and the location of the seed is not important
If those are condo units make sure to use the FloorOrder field to separate seeds and lines per floor.
If you comply with the conditions above you should be able to build or use reconstruct from seeds.
Another approach to transfer attributes is by using an attribute rule.
Here is an example:
// Attribute Rule Calculation based on Intersect with another featuer class
var FC2Intersect = FeatureSetByName($datastore, 'FeatureClassName', ["Field1"], false);
var IntersectedFeature = First(Intersects(FC2Intersect, Geometry($feature)))
if (!IsEmpty(IntersectedFeature)){
return IntersectedFeature.Field1;
}
You can also update multiple fields with one rule. This video shows how to do that.
... View more
12-06-2024
08:20 AM
|
4
|
0
|
1552
|
|
POST
|
The Highlight Gaps and Overlaps tool help documentation clearly states that the tool is designed to find gaps and overlaps between parcels.
Did you consider using the Data Reviewer Extension (list of data reviewer checks) to detect gaps and overlaps?
@Michele - what is your use case? What do your polygons represent?
... View more
12-05-2024
01:05 AM
|
0
|
0
|
2696
|
|
POST
|
@SusanJarvis
Thousands of parcel mappers from all around the globe participate in the Parcel Fabric Meetup. The meetup is free to join and includes presentations from organizations on a variety of topics. Next year, we anticipate a presentation from SP Global (Premier Data Services) and the Bureau of Land Management on PLSS (Public Land Survey System). All the meetups are recorded and can be found on the Parcel Fabric Community (video board).
Parcel mapping attracts professionals from a variety of backgrounds as parcels are used for a variety of uses (ownership, leases, taxation, easements, planning...). Are you looking to develop in a specific area? Do you like specific areas like spatial analysis? Least Squares Adjustment? editing? automation? field data collection...
I think all federal agencies have a variety of environmental-related programs. To name a few: forest management, invasive species, off-road vehicles, national parks, water management, wild horses... so you might 'in-house' opportunities.
... View more
12-03-2024
12:34 AM
|
2
|
0
|
1294
|
|
POST
|
Do you run into the issue of entering lot lines (connecting the dots) and wanting the lines to be true to their COGO measurements and in the same time snap to the points.
This is an experiment of using an attribute rule to snap to the nearest vertex (within tolerance).
The other ways of achieving the same result without the attribute rule are:
Using the Traverse tool to set the start and end points, then enter a one line traverse.
Digitizing the line between the 2 points and then using the attribute pane to enter the direction and distance.
Using the Direction and Distance constrain as shown in the video and then use the Extend/Trim tool.
Please leave a comment with your thoughts.
Here is the Arcade expression and the screenshot of the rule:
//name: Auto Snap to Line Ends
//desc: Modify the newly created line feature to snap to the nearest vertex of the nearest line
//The attribute rule searchs for the first line and finds the nearest vertex in that line
//SETTINGS
var tolerance = 0.1; //Set your desired tolerance
var toleranceUnit = 'meter'; //Set to 'feet' or 'meter' or other
var ParcelLinesFS = FeatureSetbyName($datastore,'Parcel_Lines',['*'], true); //Set 'Points' to the fully qualified table name
//Variables
var LineEndVertexGeometry = Geometry($feature).Paths[0][1]; //geometry of end vertex
var EndX = LineEndVertexGeometry.x //the feature end vertex X
var EndY = LineEndVertexGeometry.y //the feature end vertex Y
var BufferedEndPoint = Buffer(LineEndVertexGeometry, tolerance, toleranceUnit); // buffer the $feature end vertex using the set tolerance to find lines
var nearestLine = First(Intersects(ParcelLinesFS, BufferedEndPoint)); //find the nearest line that intersects with the buffered line
var vertex = NearestVertex(nearestLine, LineEndVertexGeometry); // Get the nearest vertex of the nearest line. That's the target location.
if ((Count(Geometry($feature).paths[0]) == 2) && (vertex != null)){ //if the line is a 2 point line (not a curve or polyline) AND the nearest vertex is not empty
var x1 = TEXT(Geometry($feature).Paths[0][0].x); //start X coordinate of $feature
var y1 = TEXT(Geometry($feature).Paths[0][0].y); //start Y coordinate of $feature
var x2 = vertex.coordinate.x; //target X coordinate
var y2 = vertex.coordinate.y; //target Y coordinate
if ((x1 == X2) && (y1 == y2)) return; // safe guard for small lines not to try to snap on their own start point (which is where another line might end)
var dist = sqrt(Pow((x2-EndX),2) + Pow((y2-EndY),2)); // the distance between the end vertext of $feature and the nearest vertext
if (dist > tolerance) return; //must be smaller than set tolernace
//if we got here all that is left is update the geoemtry of $feature :-)
var SR = Geometry($feature).spatialReference; //spatial reference of the line
var polylineJSON = { //create a JSON representation of the updated line
"hasZ":true,
"paths":[[[x1,y1],[x2,y2]]],
"spatialReference":SR
};
return Polyline(polylineJSON); //return the Polyline to update the SHP field
}
... View more
11-29-2024
02:09 AM
|
4
|
0
|
881
|
|
POST
|
@SenecaFrancis
I can reproduce what you are seeing. The exit tangent direction is off by 3 seconds. You can often use ArcLength, Chord Length or a delta angle. Assuming they are all computed properly and free of any blunder, each of those curve parameters contains some type of rounding error. The combination of a radius with chord length might amplify rounding errors. If you have the delta angle exposed in the curve table, you can try to use it and see if you get a better result. Otherwise, you will have to modify the computed exit tangent to match the recorded value.
... View more
11-25-2024
01:39 AM
|
0
|
0
|
1211
|
|
IDEA
|
@jcarlson
Very interesting idea and use of group templates for parcels!
It will have to be specific to Lines in a group template that are both COGO Enabled.
Q: What would happen to attributes that are your lot lines and are also on the ROW lines? Should these be copied if the fields match the name and type?
Any fields that do not match will not get copied over.
Q. Any attribute rules that conflict with copying the COGO values will take precedence - is that OK?
... View more
11-22-2024
02:04 AM
|
0
|
0
|
1775
|
|
POST
|
@Eroberts
Instead of populating the record name (control #) on the parcels, you can add fields and attribute rules that will populate the record name.
To populate the Record the created the parcel you can use this Arcade expression (just change the table name):
var Record = First(FeatureSetByRelationshipName($feature, 'GIS.RecordHasParcel', ['Name'], false));
If (IsEmpty(Record)) {
return "---";
}
return Record.Name;
To populate the record that retired a parcel you can use this expression:
var RecordFS = FeatureSetByName($datastore, 'GIS.PF_Lineage_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;
If you are using 3.4 or higher you can make use of the new triggering fields capability:
Back capturing
I believe there are a few methodologies:
Working backward: assuming your current data is great, in theory, you can try to merge historic splits and split historic merges. It will also involve reversing historic parcels into current and vice versa. you are likely to run into issues with boundary lines and points that became historic and should be current. This method is prone to manual errors and I would avoid it.
Working forward: I believe this is the common case. You come across an area that requires good historic data and because it is missing, or because it is questionable, you decide to capture historic records, and work chronologically through the transactions. This is the safer approach.
Only care about parcel polygons and lineage: if you only care about the parcel polygons and linage, and most of your transactions are 'splits', you could just use the Create Features to digitize missing historic parcels and then manual populate the CreatedByRecord and RetiredByRecord globalID fields (GUIDS).
Quality Assurance
Parcel Lineage depiction: create a link chart to QA that the lineage is correct.
Parcel Count: the record feature keeps count of the parcels it created and retired. This field get's updated after operations like Build, Merge, Split, Divide.
Highlight Gaps and Overlaps: make sure you don't end up with overlapping current parcels by increasing the maximal width tolerance and finding overlapping current parcels.
With ArcGIS Pro 3.4 we have improved the link charts visualization.
I hope this helps.
... View more
11-18-2024
01:14 AM
|
2
|
0
|
2315
|
|
IDEA
|
@Jessica_Watson
I am curious about which organization you belong to because not many organizations manage point lineage.
Regardless:
Object IDs (or GlobalIDs) are used in relationship classes. So if your points feature class have attachments or any other relationship class, it will use the primary key of the point to establish the relationship.
That means that if you choose one point over the other, you effectively choose to maintain its related data as well(if it has a relationship class).
In general, we favor keeping the oldest point. Why? The Generate Parcel Fabric Links geoprocessing tool compares the location of the same point in 2 different moments in time. For it to be the same point it needs to be the older point that survives workflows like alignment.
The ability to preserve one point and use the attributes from a point that will not be preserved is already supported from version 3.3 and was demonstrated in this meetup.
Does this meet your requirements?
Did you consider using the geoprocessing tool Import Parcel Fabric Points?
... View more
11-15-2024
06:58 AM
|
0
|
0
|
1043
|
|
IDEA
|
@Jared_Baloun
There are a few ways to split a parcel using COGO measurements that are more efficient and maintain parcel lineage (historic parcels) in the parcel fabric.
You write " I know this could be done in the parcel fabric but I do not want to utilize the parcel fabric because of the automated shifting that occurs"
The parcel fabric does not perform any "automated shifting" - did you one a case for that? Please describe when and how you see this "automated shifting"?
While it might be possible to manage cartographic representation of parcels outside of the parcel fabric we regard that type of solution as a custom solution.
... View more
11-15-2024
02:33 AM
|
0
|
0
|
1291
|
|
POST
|
@MarkWasdahl1
The "geometry has null Z values" error message has nothing to do with a missing Z Attribute value. It is hard to speculate and would be best to examine the data, environment, and workflow.
Please contact technical support and submit a case.
... View more
11-14-2024
01:47 AM
|
0
|
2
|
3108
|
|
IDEA
|
We plan to display the misclose direction in the near term
... View more
11-13-2024
06:48 AM
|
0
|
0
|
3202
|
|
IDEA
|
Hello @RachelBaca
You will find the command you refer to in the editing toolbar. Those are 'intersection tools' and you can learn more about them in the help documentation.
ArcMap and ArcInfo included functionality that was never used and not needed, so we must examine 'why...?' a capability is required before adding it to ArcGIS Pro. That includes understanding the workflows.
What do you do when a recorded document has an error? Can you reject it and have the surveyor correct and resubmit it?
... View more
11-13-2024
12:04 AM
|
0
|
0
|
3228
|
|
IDEA
|
Thanks for the quick feedback @AbigailSmith18
There are a few methods to try and detect blunders in a traverse as described in this slide deck.
It is also possible to detect a single-direction blunder in a closed traverse using this method:
Would improving blunder detection in the traverse pane make more sense than exposing additional information?
... View more
11-12-2024
12:44 AM
|
0
|
0
|
3261
|
|
POST
|
@MarkWasdahl1
Is this an ArcMap Parcel Fabric you are trying to project? If yes: this is not supported.
Please make sure to provide the FEATURE DATASET as input and not the parcel fabric data controller.
If this is a feature dataset that contains an ArcGIS Pro parcel fabric it should work. If it doesn't;t work with your data please contact technical support.
In this example, I've used ArcGIS Pro 3.3 and accepted the defaults. Make sure to select the
... View more
11-11-2024
01:03 AM
|
1
|
1
|
3138
|
|
IDEA
|
11-11-2024
12:47 AM
|
0
|
0
|
1214
|
| 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
|