ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Core.CIM Namespace / MaplexPolygonPlacementMethod Enumeration
Example Example

In This Topic
    MaplexPolygonPlacementMethod Enumeration
    In This Topic
    Maplex polygon placement methods.
    Syntax
    Members
    MemberDescription
    CurvedAroundPolygon Curved outside the polygon.
    CurvedInPolygon Curved in the polygon.
    HorizontalAroundPolygon Horizontal around the polygon.
    HorizontalInPolygon Horizontal in the polygon.
    RepeatAlongBoundary Boundary placement.
    StraightInPolygon Straight in the polygon.
    Example
    Modify the Placement/Position of labels - Polygon geometry
    //Note: call within QueuedTask.Run()
    
    //Get the layer's definition
    var lyrDefn = featureLayer.GetDefinition() as CIMFeatureLayer;
    //Get the label classes - we need the first one
    var listLabelClasses = lyrDefn.LabelClasses.ToList();
    var theLabelClass = listLabelClasses.FirstOrDefault();
    //Modify label Placement 
    //Check if the label engine is Maplex or standard.
    CIMGeneralPlacementProperties labelEngine = MapView.Active.Map.GetDefinition().GeneralPlacementProperties;
    if (labelEngine is CIMStandardGeneralPlacementProperties)
    {
      //Current labeling engine is Standard Labeling engine
      theLabelClass.StandardLabelPlacementProperties.PolygonPlacementMethod = 
               StandardPolygonPlacementMethod.AlwaysHorizontal;
      theLabelClass.StandardLabelPlacementProperties.PlaceOnlyInsidePolygon = true;
    }
    else
    {
      //Current labeling engine is Maplex labeling engine
      theLabelClass.MaplexLabelPlacementProperties.PolygonFeatureType = 
                               MaplexPolygonFeatureType.LandParcel;
      theLabelClass.MaplexLabelPlacementProperties.AvoidPolygonHoles = true;
      theLabelClass.MaplexLabelPlacementProperties.PolygonPlacementMethod = 
                          MaplexPolygonPlacementMethod.HorizontalInPolygon;
      theLabelClass.MaplexLabelPlacementProperties.CanPlaceLabelOutsidePolygon = true;
    }
    
    lyrDefn.LabelClasses = listLabelClasses.ToArray(); //Set the labelClasses back
    featureLayer.SetDefinition(lyrDefn); //set the layer's definition
                                         //set the label's visiblity
    featureLayer.SetLabelVisibility(true);
    Inheritance Hierarchy

    System.Object
       System.ValueType
          System.Enum
             ArcGIS.Core.CIM.MaplexPolygonPlacementMethod

    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also