ArcGIS Pro 3.6 API Reference Guide
ArcGIS.Desktop.Layouts Namespace / ElementInfo Class / CustomProperties Property
Example

In This Topic
    CustomProperties Property (ElementInfo)
    In This Topic
    Gets and sets any associated custom properties
    Syntax
    public IList<CIMStringMap> CustomProperties {get; set;}
    Public Property CustomProperties As IList(Of CIMStringMap)
    Remarks
    Custom properties, if provided, must be either strings or serializable to string
    Example
    Create Point Element
    //Must be on QueuedTask.Run(() => { ...
    
    //Build geometry
    Coordinate2D coord2D = new Coordinate2D(2.0, 10.0);
    
    //Reference a point symbol in a style
    StyleProjectItem stylePrjItm = Project.Current.GetItems<StyleProjectItem>()
             .FirstOrDefault(item => item.Name == "ArcGIS 2D");
    SymbolStyleItem symStyleItm = stylePrjItm.SearchSymbols(
                          StyleItemType.PointSymbol, "City Hall")[0];
    CIMPointSymbol pointSym = symStyleItm.Symbol as CIMPointSymbol;
    pointSym.SetSize(50);
    
    var elemInfo = new ElementInfo()
    {
      CustomProperties = new List<CIMStringMap>() {
         new CIMStringMap() { Key = "Key1", Value = "Value1"},
         new CIMStringMap() { Key = "Key2", Value = "Value2"}
       },
      Anchor = Anchor.TopRightCorner,
      Rotation = 45.0
    };
    
    var graphic = GraphicFactory.Instance.CreateSimpleGraphic(
                                  coord2D.ToMapPoint(), pointSym);
    
    ElementFactory.Instance.CreateGraphicElement(
      container, graphic, "New Point", true, elemInfo);
    
    Create Table Frame 2
    //Must be on QueuedTask.Run(() => { ...
    
    //Build geometry
    Coordinate2D ll = new Coordinate2D(1, 1);
    Coordinate2D ur = new Coordinate2D(4, 4);
    Envelope env = EnvelopeBuilderEx.CreateEnvelope(ll, ur);
    
    var tableFrameInfo = new TableFrameInfo()
    {
      MapFrameName = mapFrameName,
      MapMemberUri = uri
    };
    var attribs = new List<CIMStringMap>();
    for (int i = 1; i < 6; i++)
    {
      attribs.Add(new CIMStringMap
      {
        Key = $"Key {i}",
        Value = $"Value {i}"
      });
    }
    var elemInfo = new ElementInfo()
    {
      CustomProperties = attribs
    };
    var tableFrameElem = ElementFactory.Instance.CreateMapSurroundElement(
                                  layout, env.Center, tableFrameInfo,
                                  "New Table Frame", false, elemInfo) as TableFrame;
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.0 or higher.
    See Also