ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Desktop.Editing.COGO Namespace / CircularArcDefinition Class
Members Example

In This Topic
    CircularArcDefinition Class
    In This Topic
    Defines the parameters for a circular arc in the context of a traverse.
    Syntax
    Public NotInheritable Class CircularArcDefinition 
       Inherits BaseCurveDefinition
    public sealed class CircularArcDefinition : BaseCurveDefinition 
    Remarks
    A non tangent arc must be defined with a BaseCurveDefinition.Radius and one of the following BaseCurveDefinition.ChordLength, BaseCurveDefinition.CentralAngle, BaseCurveDefinition.ArcLength. It must also have a direction defined by one of ChordDirection, TangentDirection, RadialDirection.

    Once the arc parameters have been defined, use the COGOLineBuilder.CreateCOGOCircularArc method to create a COGOLine. Once a line has been created, use Traverse.AddCourse to add it to a traverse.

    Example
    Create a COGOLine defined by a circular arc
    // define with a radius, arcLength and chord direction 
    var circularArcDef = new CircularArcDefinition
    {
      Radius = -201.0,
      ArcLength = 45.29,
      ChordDirection = ParcelUtilities.Instance.ConvertQuadrantBearingDMSToNorthAzimuthDecDeg("N21-47-57W")
    };
    var cogoCircArc = COGOLineBuilder.CreateCOGOCircularArc(circularArcDef);
    
    
    // define with a radius, chordLength and tangent direction 
    var circularArcDef2 = new CircularArcDefinition
    {
      Radius = -201.0,
      ChordLength = 44.0,
      TangentDirection = 340.0
    };
    var cogoCircArc2 = COGOLineBuilder.CreateCOGOCircularArc(circularArcDef2);
    
    // define with a radius, central angle and radial direction
    var circularArcDef3 = new CircularArcDefinition
    {
      Radius = -201.0,
      CentralAngle = 44.0,
      RadialDirection = 340.0
    };
    var cogoCircArc3 = COGOLineBuilder.CreateCOGOCircularArc(circularArcDef3);
    Create a Traverse
    List<COGOLine> lstCOGOLines = new();
    var direction = ParcelUtilities.Instance.ConvertQuadrantBearingDMSToNorthAzimuthDecDeg("S7-46-51-E");
    lstCOGOLines.Add(COGOLineBuilder.CreateCOGOStraightLine(nAzDirection, 61.45)); //1
    lstCOGOLines.Add(COGOLineBuilder.CreateCOGOStraightLine(166.2625, 37.22));//2
    lstCOGOLines.Add(COGOLineBuilder.CreateCOGOStraightLine(255.2833333, 71.4));//3
    var circArcDef = new CircularArcDefinition
    {
      Radius = -201.0,
      ArcLength = 45.29,
      ChordDirection = ParcelUtilities.Instance.ConvertQuadrantBearingDMSToNorthAzimuthDecDeg("N21-47-57W")
    };
    lstCOGOLines.Add(COGOLineBuilder.CreateCOGOCircularArc(circArcDef));//4
    var tangentCurveDef = new TangentCurveDefinition
    {
      Radius = 169.0,
      ArcLength = 52.40
    };
    lstCOGOLines.Add(COGOLineBuilder.CreateCOGOCircularArc(tangentCurveDef));//5
    
    tangentCurveDef = new TangentCurveDefinition
    {
      Radius = 13.0,
      ArcLength = 22.98
    };
    lstCOGOLines.Add(COGOLineBuilder.CreateCOGOCircularArc(tangentCurveDef));//6
    
    tangentCurveDef = new TangentCurveDefinition
    {
      Radius = -281.0,
      ArcLength = 73.68
    };
    lstCOGOLines.Add(COGOLineBuilder.CreateCOGOCircularArc(tangentCurveDef));//7
    
    var spatialReference = map?.SpatialReference;
    var travParcel = new Traverse(spatialReference);
    await travParcel.AddCoursesAsync(lstCOGOLines);
    if (travParcel.IsValid())
    {
      ; //insert code to use the traverse
    }
    Inheritance Hierarchy

    System.Object
       ArcGIS.Desktop.Editing.COGO.BaseCurveDefinition
          ArcGIS.Desktop.Editing.COGO.CircularArcDefinition

    Requirements

    Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.7 or higher.
    See Also