There needs to be a way to track down and convert Bezier Curves to True Curves in ArcGIS Pro.

1117
6
12-22-2022 10:11 AM
Status: Open
Labels (1)
MatthewBeal
Occasional Contributor III

I recently converted our parcel data to the parcel fabric. At no point in the conversion process are you warned about Bezier curves. I wasn't even aware my parcel data contained them or even how they were introduced into the parcels.

They break the parcel fabric. Almost any interaction with a parcel fabric feature that contains them will lead to software freezes, crashes, or bugs. I verified this by manually converting them all to true curves and retrying the same processes that produced these issues and they worked like a charm once the bezier curves were gone. Currently, there is no easy way to identify bezier curves and there is no way to remove them short of manually converting each segment, one-by-one. When you are dealing with more than 100k features, this is obviously not practical. I would propose two things. 

The parcel fabric documentation should be updated to mention that bezier curves are not supported. It should also document  a procedure for removing them from your data prior to converting to the fabric. 

There should also be a software function for finding them and converting them to true curves. That way, if you are already in the fabric, you can at least track them down and fix them rather than stumble upon them unexpectedly. 

6 Comments
AyanPalit

@MatthewBeal Thanks  for documenting your notes - these are valid points. We run into these situations in other domains as well, where curves are not our friends. Few suggestions for review and testing. Please post if they meet the use-case / requirements.

  1. Nonlinear Segment check:  identifies polyline or polygon features that contain nonlinear segments. Nonlinear segments include those that contain circular or elliptic arcs and Bézier curves. Feature integrity checks are available with ArcGIS Data Reviewer. 
  2.  Generalize feature: Use Densify method  for generalizing selected features (Bezier curves as detected from #1 above). The tool will insert vertices at constant intervals and change curved segments to a series of line segments. You can insert segments that approximate the entire feature or modify only the curved segments within a maximum offset distance or deflection angle.
  3. Densify GP tool:  Adds vertices along line or polygon features and replaces curve segments (Bezier, circular arcs, and elliptical arcs) with line segments. 
  4. Geodetic Densify GP tool: Creates new features by replacing input feature's segments with densified approximations of geodesic segments.
GavinMcDade

@MatthewBeal What do you mean by "converting them to true curves"? I've always used both the proper name Bezier curves and the generic term "true curves" interchangeably, as they're simply mathematical curves (as all curves are). In @AyanPalit 's reply above, all (4) of his proffered solutions involve removing any and all curves - planarizing the linework to densified splines. This seems like a low-tech, retrograde way to go. 

By way of background, we had set upon an aggressive cleanup project about 6 years ago now of our countywide parcel data (in SDE), to remove millions of unnecessary vertices from our splined geometry (originally created in an ArcINFO 7.2 environment), converting them to Bezier/true curves, as a preparatory step to get our data into the Parcel Fabric - specifically because the Fabric at that time couldn't handle the number of vertices during the import process. We spent several months painstakingly creating Bezier curves... In any event, and for a variety of other reasons, we aborted the move to the Fabric. 

Fast forward to now, and we're re-embarking on the effort, albeit w/ a very different version of the Fabric as it exists now. At no point has our consultant indicated any issues whatsoever w/ having Bezier curves in the Fabric (and they know our data is filled with them). 

Gavin

MatthewBeal

@AyanPalit 

1. This does work, however the problem is that it makes no distinction between bezier curves and other types of curves. When working with our parcel fabric, that means manually review almost 30k curves. 

2-4. I think these methods might have worked if they were done prior to migrating to the parcel fabric, but the documentation makes no mention of bezier curves. I know that these tools would probably work on the fabric, but I'd prefer to not densify our entire parcel dataset when it's really just a handful of parcel that we are looking to modify. There should be a targeted way to address them since they break the intended functionality of the Parcel fabric

@GavinMcDade 

When referring to Bezier curves, I mean the curves that are controlled by the "handles". 

MatthewBeal_0-1672752135777.png

I should have said "converting them to circular arcs". Regarding your current data, I would definitely recommend doing a small batch test then. The issues will be immediately apparent. Attempting to use any of the Parcel Fabric tools (at least for me) on features with Bezier curves will make the software lock up. One of the tools (not sure which as I didn't catch it right when it happened) also ended up creating a black hole of points and lines that resulted in about 50k additional points and lines being created in small area which almost resulted in me having to start the parcel fabric from scratch.

I always ended up having to manually kill the process and restart the software. I then went and manually converted the bezier curves in one of the features that was having issues to circular arcs, and tried the tools again. Had no issues at all once they were removed. 

I have since worked with ESRI tech support on this issue and they were able to reproduce it on their end as well, so it is a verified issue. I think if you densify your current data before running the Simplify by Straight Lines and Circular Arcs tool, you should be good to go. My problem is that that was not mentioned so I didn't find out until after I was already in the fabric and having these issues. 

 

 

AyanPalit

@AmirBar-Maor , @DanielStone for review on Parcel Fabric data requirements.

@JayCary Is there a data validation check to differentiate various curve types, non-linear segments?

MatthewBeal

@AyanPalit You might want to check with @TimHodson. He was able to help me find a temporary solution that is not currently possible without an add on. 

JayCary

@AyanPalitAs you mentioned earlier, the Nonlinear Segment check is the best method in Data Reviewer for detecting nonlinear segments in polyline/polygon features. Unfortunately, the current implementation lacks the granularity needed in this scenario.