|
POST
|
@MarkWasdahl1
If you export to a feature dataset in a file geodatabase you are constrained to the spatial reference of the feature dataset. But if you export to the root level of the file geodatabase you can use any spatial reference.
You can always keeping tidy by creating a feature dataset that matches the spatial reference of the source data and then export to it.
... View more
12-16-2024
07:02 AM
|
0
|
1
|
3380
|
|
POST
|
@MarkWasdahl1
It's great to hear you solved the issue. I would recommend not to use SHAPE files. They will densify your true curves, truncate long field names, have no concept of domains and the list goes on... Instead always export to a file geodatabase.
If you have corrupted your true curves you can either repeat the process using a file geodatabase or use the geoprocessing tool Simplify by Straight Lines and Circular Arc (AKA 'SLACA'). Just make sure to supply all polygons and lines as input in the same run to avoid creating a topological mess.
... View more
12-16-2024
12:30 AM
|
0
|
0
|
3391
|
|
POST
|
The parcel fabric methods have great logging that helps identify the problem when figuring out poor performance. This 4-minute video shows how to find those logs on ArcGIS Server.
... View more
12-12-2024
01:12 AM
|
1
|
0
|
1077
|
|
POST
|
@Michele
Data Reviewer has a community place - https://community.esri.com/t5/arcgis-data-reviewer/ct-p/arcgis-data-reviewer. It includes videos and useful resources and I am sure they can answer your question. While some Data Reviewer checks leverage attribute rules, most Data Reviewer checks do not.
... View more
12-11-2024
06:34 AM
|
0
|
0
|
394
|
|
IDEA
|
12-09-2024
02:57 AM
|
0
|
0
|
2543
|
|
POST
|
@Michele
The first release of the Highlight Gaps and Overlaps contained some bugs that we fixed in later releases. This included allowing the tool to work on non-parcel features. Since then we have also enhanced the tool to work on multiple parcel layers, check between different parcel layers and added a geoprocessing tool for automation. The parcel fabric is designed to manage 'parcels' in the broader cadastral sense. Those are often referred to as the 3 'R's = Rights, Restrictions, and Responsibilities. They are used to manage things like ownership, leases, encumbrances (easements), zoning ... as well as administrative parcels. If your data falls into one of those categories you'll be happy to learn that migrating your data to the parcel fabric is an easy process and that any editing tool you already use can be used against the parcel fabric + (as you have found the hard way) many more useful tools can capabilities.
Apologies for not locking that tool in our first release. We did not expect non-parcels users to find and utilize it.
... View more
12-09-2024
02:05 AM
|
0
|
1
|
2910
|
|
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
|
1737
|
|
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
|
2965
|
|
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
|
1488
|
|
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
|
977
|
|
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
|
1377
|
|
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
|
2019
|
|
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
|
2633
|
|
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
|
1152
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | Friday | |
| 1 | Wednesday | |
| 3 | Wednesday | |
| 2 | Wednesday | |
| 1 | 06-12-2023 01:26 AM |
| Online Status |
Offline
|
| Date Last Visited |
yesterday
|