ArcGIS Pro 3.0 API Reference Guide
ArcGIS.Core.Geometry Namespace / EllipticArcBuilderEx Class
Members Example

In This Topic
    EllipticArcBuilderEx Class
    In This Topic
    A builder for creating an EllipticArcSegment whose methods can be called on any thread.
    Object Model
    EllipticArcBuilderEx ClassCoordinate2D StructureEllipticArcSegment ClassEllipticArcSegment ClassEllipticArcSegment ClassEllipticArcSegment ClassMapPoint ClassSpatialReference ClassMapPoint ClassEllipticArcSegment Class
    Syntax
    public sealed class EllipticArcBuilderEx : SegmentBuilderEx 
    Public NotInheritable Class EllipticArcBuilderEx 
       Inherits SegmentBuilderEx
    Remarks
    Use the EllipticArcBuilderEx class to create and/or modify an EllipticArcSegment shape. An EllipticArcSegment is based upon the parent Segment class. The Segment class is immutable which means that you cannot change its shape once it is created. Hence, the EllipticArcBuilderEx provides the way to make changes when working with an EllipticArcSegment. Use the EllipticArcBuilderEx.ToSegment method to get the EllipticArcSegment from the builder.

    An elliptic arc is the portion of the boundary of a 2D ellipse that connects two points.

    Most of the EllipticArcBuilderEx methods can be called on any thread. If a method must be called on the MCT thread, it is noted in the summary.

    Example
    Create_circle
    //Create a circle graphic element using a simple line and fill styles.
    
    //Construct on the worker thread
    await QueuedTask.Run(() =>
    {
      //Build geometry
      Coordinate2D center = new Coordinate2D(2, 4);
      //At 2.x - EllipticArcBuilder eabCir = new EllipticArcBuilder(center, 0.5, esriArcOrientation.esriArcClockwise);
      var eabCir = new EllipticArcBuilderEx(center, 0.5, ArcOrientation.ArcClockwise);
      EllipticArcSegment cir = eabCir.ToSegment();
    
      //Set symbolology, create and add element to layout
      CIMStroke outline = SymbolFactory.Instance.ConstructStroke(ColorFactory.Instance.BlackRGB, 2.0, SimpleLineStyle.Dash);
      CIMPolygonSymbol circleSym = SymbolFactory.Instance.ConstructPolygonSymbol(ColorFactory.Instance.RedRGB, SimpleFillStyle.Solid, outline);
      //At 2.x - GraphicElement cirElm = LayoutElementFactory.Instance.CreateCircleGraphicElement(layout, cir, circleSym);
      //         cirElm.SetName("New Circle");
    
      var polyLine = PolylineBuilderEx.CreatePolyline(cir);
      GraphicElement cirElm = ElementFactory.Instance.CreateGraphicElement(layout, polyLine, circleSym, "New Circle");
    });
    Create_ellipse
    //Create an ellipse graphic with simple line and fill styles.
    
    //Construct on the worker thread
    await QueuedTask.Run(() =>
    {
      //Build geometry
      Coordinate2D center = new Coordinate2D(2, 2.75);
      //At 2.x - EllipticArcBuilder eabElp = new EllipticArcBuilder(center, 0, 1, 0.45, esriArcOrientation.esriArcClockwise);
      var eabElp = new EllipticArcBuilderEx(center, 0, 1, 0.45, ArcOrientation.ArcClockwise);
      EllipticArcSegment ellipse = eabElp.ToSegment();
    
      //Set symbolology, create and add element to layout
      CIMStroke outline = SymbolFactory.Instance.ConstructStroke(ColorFactory.Instance.GreenRGB, 2.0, SimpleLineStyle.Dot);
      CIMPolygonSymbol ellipseSym = SymbolFactory.Instance.ConstructPolygonSymbol(ColorFactory.Instance.GreyRGB, SimpleFillStyle.Vertical, outline);
      //At 2.x - GraphicElement elpElm = LayoutElementFactory.Instance.CreateEllipseGraphicElement(layout, ellipse, ellipseSym);
      //         elpElm.SetName("New Ellipse");
    
      var polyLine = PolylineBuilderEx.CreatePolyline(ellipse);
      GraphicElement elpElm = ElementFactory.Instance.CreateGraphicElement(layout, polyLine, ellipseSym, "New Ellipse");
    });
    Create Circle Text Element
    //Must be on QueuedTask.Run(() => { ...
    
    //Build geometry
    Coordinate2D center = new Coordinate2D(4.5, 4);
    var eabCir = new EllipticArcBuilderEx(center, 0.5, ArcOrientation.ArcClockwise);
    var cir = eabCir.ToSegment();
    
    var poly = PolygonBuilderEx.CreatePolygon(
      PolylineBuilderEx.CreatePolyline(cir, AttributeFlags.AllAttributes));
    
    //Set symbolology, create and add element to layout
    CIMTextSymbol sym = SymbolFactory.Instance.ConstructTextSymbol(
                    ColorFactory.Instance.GreenRGB, 10, "Arial", "Regular");
    string text = "Circle, circle, circle";
    
    GraphicElement cirTxtElm = ElementFactory.Instance.CreateTextGraphicElement(
      container, TextType.CircleParagraph, poly, sym, text, "New Circle Text", false);
    
    Inheritance Hierarchy

    System.Object
       ArcGIS.Core.Geometry.SegmentBuilderEx
          ArcGIS.Core.Geometry.EllipticArcBuilderEx

    Requirements

    Target Platforms: Windows 11, Windows 10, Windows 8.1

    See Also