ArcGIS Pro 3.2 API Reference Guide
ArcGIS.Core.CIM Namespace / StandardPolygonPlacementMethod Enumeration
Example Example

In This Topic
    StandardPolygonPlacementMethod Enumeration
    In This Topic
    Standard label engine polygon placement methods.
    Syntax
    public enum StandardPolygonPlacementMethod : System.Enum, System.IComparable, System.IConvertible, System.IFormattable  
    Public Enum StandardPolygonPlacementMethod 
       Inherits System.Enum
       Implements System.IComparable, System.IConvertible, System.IFormattable 
    Members
    MemberDescription
    AlwaysHorizontal Always horizontal.
    AlwaysStraight Always straight.
    MixedStrategy Mixed strategy, prefer horizontal before placing straight.
    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.StandardPolygonPlacementMethod

    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also