ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Data.Mapping Namespace / AnnotationFeature Class
Members Example Version

    AnnotationFeature Class
    Represents an annotation feature in an AnnotationFeatureClass.
    Object Model
    AnnotationFeature ClassCIMGraphic ClassGeometry ClassGeometry ClassFeatureClass Class
    Syntax
    public sealed class AnnotationFeature : ArcGIS.Core.Data.Feature, System.IDisposable  
    Example
    Rotate or Move the Annotation
          await QueuedTask.Run(() =>
          {
              //Don't use 'Shape'....Shape is the bounding box of the annotation text. This is NOT what you want...
              //
              //var insp = new Inspector();
              //insp.Load(annoLayer, oid);
              //var shape = insp["SHAPE"] as Polygon;
              //...wrong shape...
    
              //Instead, we must get the TextGraphic from the anno feature.
              //The TextGraphic shape will be the anno baseline...
              //At 2.1 the only way to retrieve this textLine is to obtain the TextGraphic from the AnnotationFeature
              QueryFilter qf = new QueryFilter()
              {
                  WhereClause = "OBJECTID = 1"
              };
    
      //annoLayer is ~your~ Annotation layer
    
      using (var rowCursor = annoLayer.Search(qf))
      {
        if (rowCursor.MoveNext())
        {
          using (var annoFeature = rowCursor.Current as 
                      ArcGIS.Core.Data.Mapping.AnnotationFeature)
          {
            var graphic = annoFeature.GetGraphic();
            var textGraphic = graphic as CIMTextGraphic;
            var textLine = textGraphic.Shape as Polyline;
            // rotate the shape 90 degrees
            var origin = GeometryEngine.Instance.Centroid(textLine);
            Geometry rotatedPolyline = GeometryEngine.Instance.Rotate(textLine, origin, System.Math.PI / 2);
            //Move the line 5 "units" in the x and y direction
            //GeometryEngine.Instance.Move(textLine, 5, 5);
    
            EditOperation op = new EditOperation();
            op.Name = "Change annotation angle";
            op.Modify(annoLayer, oid, rotatedPolyline);
            op.Execute();
          }
        }
      }
    });
    
    Get the Annotation Text Graphic
    await QueuedTask.Run(() =>
    {
        using (var table = annoLayer.GetTable())
        {
            using (var rc = table.Search())
            {
                rc.MoveNext();
                using (var af = rc.Current as AnnotationFeature)
                {
                    var graphic = af.GetGraphic();
                    var textGraphic = graphic as CIMTextGraphic;
    
                    //Note: 
                    //var outline_geom = af.GetGraphicOutline(); 
                    //gets the anno text outline geometry...
                }
            }
        }
    });
    
    Get the Outline Geometry for an Annotation
    var annoLayer = MapView.Active.Map.GetLayersAsFlattenedList()
                                   .OfType<AnnotationLayer>().FirstOrDefault();
    if (annoLayer == null)
        return;
    
    QueuedTask.Run(() =>
    {
        //get the first annotation feature...
        //...assuming at least one feature gets selected
        using (var fc = annoLayer.GetFeatureClass())
        {
            using (var rc = fc.Search())
            {
                rc.MoveNext();
                using (var af = rc.Current as AnnotationFeature)
                {
                    var outline_geom = af.GetGraphicOutline();
                    //TODO - use the outline...
    
                    //Note: 
                    //var graphic = annoFeature.GetGraphic(); 
                    //gets the CIMTextGraphic...
                }
            }
        }
    });
    Inheritance Hierarchy

    System.Object
       ArcGIS.Core.CoreObjectsBase
          ArcGIS.Core.Data.Row
             ArcGIS.Core.Data.Feature
                ArcGIS.Core.Data.Mapping.AnnotationFeature

    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also