ArcGIS Pro 3.1 API Reference Guide
ArcGIS.Core.CIM Namespace / CIMPointGraphic Class
Members Example

In This Topic
    CIMPointGraphic Class
    In This Topic
    Represents a point graphic.
    Object Model
    CIMPointGraphic ClassCIMPointGraphic ClassCIMPointGraphic ClassMapPoint ClassCIMSymbolReference Class
    Syntax
    Example
    Point Graphic Element using CIMGraphic
        var graphicsLayer = MapView.Active.Map.GetLayersAsFlattenedList()
    .OfType<ArcGIS.Desktop.Mapping.GraphicsLayer>().FirstOrDefault();
        if (graphicsLayer == null)
          return;
        QueuedTask.Run(() =>
        {
          //Place symbol in the center of the map
          var extent = MapView.Active.Extent;
          var location = extent.Center;
    
          //specify a symbol
          var pt_symbol = SymbolFactory.Instance.ConstructPointSymbol(
                                ColorFactory.Instance.GreenRGB);
    
          //create a CIMGraphic 
          var graphic = new CIMPointGraphic()
          {
            Symbol = pt_symbol.MakeSymbolReference(),
            Location = location //center of map
          };
          graphicsLayer.AddElement(graphic);
        });
    Bulk Graphics creation
    //Point Feature layer to convert into graphics
    var lyr = MapView.Active?.Map?.GetLayersAsFlattenedList().OfType<FeatureLayer>().FirstOrDefault();
    //Graphics layer to store the graphics to
    var gl = MapView.Active.Map.GetLayersAsFlattenedList().OfType<ArcGIS.Desktop.Mapping.GraphicsLayer>().FirstOrDefault();
    if (lyr == null) return;
    QueuedTask.Run(() =>
    {
      //Point symbol for graphics
      var pointSymbol = SymbolFactory.Instance.ConstructPointSymbol(CIMColor.CreateRGBColor(100, 255, 40), 10, SimpleMarkerStyle.Circle);
      //Collection to hold the point graphics
      var listGraphicElements = new List<CIMGraphic>();
      //Iterate through each point feature in the feature layer
      using (RowCursor rows = lyr.Search()) //execute
      {
        int i = 0;
        while (rows.MoveNext())
        {
          using (var feature = rows.Current as Feature)
          {
            //Create a point graphic for the feature
            var crimePt = feature.GetShape() as MapPoint;
            if (crimePt != null)
            {
              var cimGraphicElement = new CIMPointGraphic
              {
                Location = crimePt, //MapPoint
                Symbol = pointSymbol.MakeSymbolReference()
              };
              //Add the point feature to the collection
              listGraphicElements.Add(cimGraphicElement);
              i++;
            }
          }
        }
      }
      //Magic happens...Add all the features to the Graphics layer 
      gl.AddElements(listGraphicElements);
    });
    Create Graphic Element using CIMGraphic
    //on the QueuedTask
    //Place symbol on the layout
    //At 2.x - MapPoint location = MapPointBuilder.CreateMapPoint(
    //                                               new Coordinate2D(9, 1));
    MapPoint location = MapPointBuilderEx.CreateMapPoint(new Coordinate2D(9, 1));
    
    //specify a symbol
    var pt_symbol = SymbolFactory.Instance.ConstructPointSymbol(
                          ColorFactory.Instance.GreenRGB);
    
    //create a CIMGraphic 
    var graphic = new CIMPointGraphic()
    {
      Symbol = pt_symbol.MakeSymbolReference(),
      Location = location //center of map
    };
    //Or use GraphicFactory
    var graphic2 = GraphicFactory.Instance.CreateSimpleGraphic(location, pt_symbol);
    
    //At 2.x - LayoutElementFactory.Instance.CreateGraphicElement(layout, graphic);
    ElementFactory.Instance.CreateGraphicElement(container, graphic);
    ElementFactory.Instance.CreateGraphicElement(container, graphic2);
    Create Graphic Element using CIMSymbol
    //Must be on QueuedTask.Run(() => { ...
    
    //Place symbol on the layout
    //At 2.x - MapPoint location = MapPointBuilder.CreateMapPoint(
    //                                       new Coordinate2D(9, 1));
    MapPoint location = MapPointBuilderEx.CreateMapPoint(new Coordinate2D(9, 1));
    
    //specify a symbol
    var pt_symbol = SymbolFactory.Instance.ConstructPointSymbol(
                          ColorFactory.Instance.GreenRGB);
    //At 2.x -
    //     LayoutElementFactory.Instance.CreateGraphicElement(
    //                                       layout, location, pt_symbol);
    
    ElementFactory.Instance.CreateGraphicElement(container, location, pt_symbol);
    Bulk Element creation
    //Must be on QueuedTask.Run(() => { ...
    
    //List of Point graphics
    var listGraphics = new List<CIMPointGraphic>();
    var listGraphics2 = new List<CIMPointGraphic>();
    //Symbol
    var pointSymbol = SymbolFactory.Instance.ConstructPointSymbol(
                                        ColorFactory.Instance.BlackRGB);
    //Define size of the array
    int dx = 5;
    int dy = 5;
    MapPoint point = null;
    //Create the List of graphics for the array
    for (int row = 0; row <= dx; ++row)
    {
      for (int col = 0; col <= dy; ++col)
      {
        //At 2.x - point = MapPointBuilder.CreateMapPoint(col, row);
        point = MapPointBuilderEx.CreateMapPoint(col, row);
        //create a CIMGraphic 
        var graphic = new CIMPointGraphic()
        {
          Symbol = pointSymbol.MakeSymbolReference(),
          Location = point
        };
        listGraphics.Add(graphic);
        //Or use GraphicFactory
        var graphic2 = GraphicFactory.Instance.CreateSimpleGraphic(
                                      point, pointSymbol) as CIMPointGraphic;
        listGraphics2.Add(graphic2);
      }
    }
    //Draw the array of graphics
    //At 2.x - var bulkgraphics =
    //              LayoutElementFactory.Instance.CreateGraphicElements(
    //                                              layout, listGraphics, null);
    
    var bulkgraphics = ElementFactory.Instance.CreateGraphicElements(
                                                       container, listGraphics);
    var bulkgraphics2 = ElementFactory.Instance.CreateGraphicElements(
                                                       container, listGraphics2);
    Create Element using a CIMGraphicElement
    //Must be on QueuedTask.Run(() => { ...
    
    //Place symbol on the layout
    //At 2.x - MapPoint point = MapPointBuilder.CreateMapPoint(new Coordinate2D(9, 1));
    MapPoint point = MapPointBuilderEx.CreateMapPoint(new Coordinate2D(9, 1));
    
    //specify a symbol
    var pt_symbol = SymbolFactory.Instance.ConstructPointSymbol(
                          ColorFactory.Instance.GreenRGB);
    
    //create a CIMGraphic 
    var graphic = new CIMGraphicElement()
    {
      Graphic = new CIMPointGraphic()
      {
        Symbol = pt_symbol.MakeSymbolReference(),
        Location = point //A point in the layout
      }
    };
    //At 2.x - LayoutElementFactory.Instance.CreateElement(layout, graphic);
    ElementFactory.Instance.CreateElement(container, graphic);
    Create Picture Graphic Element using CIMSymbol
    //Must be on QueuedTask.Run(() => { ...
    
    //Build geometry
    Coordinate2D ll = new Coordinate2D(0.5, 1);
    Coordinate2D ur = new Coordinate2D(2.5, 2);
    Envelope env = EnvelopeBuilderEx.CreateEnvelope(ll, ur);
    
    //Create and add element to layout
    //string picPath = ApplicationUtilities.BASEPATH + _settings.baseFolder + "irefusetowatchthismovi�.jpg";
    var pic_gr = ElementFactory.Instance.CreatePictureGraphicElement(
      layout, env.Center, picPath, "New Picture", true, new ElementInfo() { Anchor = Anchor.CenterPoint });
    Inheritance Hierarchy

    System.Object
       ArcGIS.Core.CIM.CIMObject
          ArcGIS.Core.CIM.CIMGraphic
             ArcGIS.Core.CIM.CIMShapeGraphic
                ArcGIS.Core.CIM.CIMPointGraphic

    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.0 or higher.
    See Also