HOW TO

Identify features with true curves using ArcPy in ArcGIS Pro

Last Published: July 29, 2025

Summary

Publishing features with true curve geometry from ArcGIS Pro may cause compatibility issues in certain ArcGIS workflows. For instance, ArcGIS Field Maps does not support true curves for offline sync, which can prevent datasets from being taken offline. To ensure broader compatibility across ArcGIS platforms, it is useful to identify features that contain true curve segments and, if necessary, remove or convert them to supported geometry types. The hasCurves property in ArcPy can be used to determine whether a feature’s geometry includes true curve segments.

This article outlines the workflow to identify and list features with true curve geometry using ArcPy in ArcGIS Pro.

The line features with true curves and straight lines in ArcGIS Pro

Procedure

Note:
This workflow requires a full script to run in the ArcGIS Pro Python window. The indents must be retained as portrayed in the code block.
  1. In ArcGIS Pro, open the map containing the line or polygon features.
  2. Open the Python window. Refer to ArcGIS Pro: Python window for more information.
  3. Run the following script:
  1. Import the necessary module.
import arcpy
  1. Create an empty list to store the object IDs of features with true curves.
curveFeatures = []
  1. Define the feature class containing the line or polygon features in the file geodatabase.
feature_class = r'<pathname>'
  1. Identify curved geometry using the .hasCurves property and append the object ID of each curved feature to the curveFeatures list.
with arcpy.da.SearchCursor(feature_class, ['OID@', 'SHAPE@']) as cursor:
for row in cursor:
        if (row[1]).hasCurves == True:
            curveFeatures.append(row[0])
  1. Print the results.
print(curveFeatures)
  1. Place the cursor at the end of the script and press Enter twice to run the script.

The code below demonstrates the full working script.

import arcpy
curveFeatures = [] feature_class = r'C:\Users\TrueCurve_ReleaseProject_368d3a\commondata\truecurve_releaselab.gdb\TrueCurves' with arcpy.da.SearchCursor(feature_class, ['OID@', 'SHAPE@']) as cursor: for row in cursor: if (row[1]).hasCurves == True: curveFeatures.append(row[0]) print(curveFeatures)

The image below shows the object IDs of the line or polygon features with true curves printed in the Python window.

The Python window

Article ID: 000035938

Software:
  • ArcGIS Pro

Get support with AI

Resolve your issue quickly with the Esri Support AI Chatbot.

Start chatting now

Related Information

Discover more on this topic

Get help from ArcGIS experts

Contact technical support

Start chatting now

Go to download options