ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / SymbolFactory Class / ConstructPointSymbol Method / ConstructPointSymbol(CIMMarker) Method
ArcGIS.Core.CIM.CIMMarker
Example

In This Topic
    ConstructPointSymbol(CIMMarker) Method
    In This Topic
    Constructs a point symbol from a marker.
    Syntax
    public CIMPointSymbol ConstructPointSymbol( 
       CIMMarker marker
    )
    Public Overloads Function ConstructPointSymbol( _
       ByVal marker As CIMMarker _
    ) As CIMPointSymbol

    Parameters

    marker
    ArcGIS.Core.CIM.CIMMarker

    Return Value

    Example
    How to construct a point symbol from a marker
    await QueuedTask.Run(() =>
    {
      CIMMarker marker = SymbolFactory.Instance.ConstructMarker(ColorFactory.Instance.GreenRGB, 8.0, SimpleMarkerStyle.Pushpin);
      CIMPointSymbol pointSymbolFromMarker = SymbolFactory.Instance.ConstructPointSymbol(marker);
    });
    How to construct a point symbol from a file on disk
    //The following file formats can be used to create the marker: DAE, 3DS, FLT, EMF, JPG, PNG, BMP, GIF
    CIMMarker markerFromFile = await QueuedTask.Run(() => SymbolFactory.Instance.ConstructMarkerFromFile(@"C:\Temp\fileName.dae"));
    
    CIMPointSymbol pointSymbolFromFile = SymbolFactory.Instance.ConstructPointSymbol(markerFromFile);
    
    How to construct a point symbol from a in memory graphic
    //Create a stream for the image
    //At 3.0 you need https://www.nuget.org/packages/Microsoft.Windows.Compatibility
    //System.Drawing
    
    System.Drawing.Image newImage = System.Drawing.Image.FromFile(@"C:\PathToImage\Image.png");
    var stream = new System.IO.MemoryStream();
    newImage.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
    stream.Position = 0;
    //Create marker using the stream
    CIMMarker markerFromStream = SymbolFactory.Instance.ConstructMarkerFromStream(stream);
    //Create the point symbol from the marker
    CIMPointSymbol pointSymbolFromStream = SymbolFactory.Instance.ConstructPointSymbol(markerFromStream);
    Modify a point symbol created from a character marker
    //create marker from the Font, char index,size,color
    var cimMarker = SymbolFactory.Instance.ConstructMarker(125, "Wingdings 3", "Regular", 6, ColorFactory.Instance.BlueRGB) as CIMCharacterMarker;
      var polygonMarker = cimMarker.Symbol;
      //modifying the polygon's outline and fill
      //This is the outline
      polygonMarker.SymbolLayers[0] = SymbolFactory.Instance.ConstructStroke(ColorFactory.Instance.GreenRGB, 2, SimpleLineStyle.Solid);
      //This is the fill
      polygonMarker.SymbolLayers[1] = SymbolFactory.Instance.ConstructSolidFill(ColorFactory.Instance.BlueRGB);
      //create a symbol from the marker 
      //Note this overload of ConstructPointSymbol does not need to be run within QueuedTask.Run.
      var pointSymbol = SymbolFactory.Instance.ConstructPointSymbol(cimMarker);
    Snippet Point Symbol from a font
    /// <summary>
    /// Create a point symbol from a character in a font file
    /// ![PointSymbolFont](http://Esri.github.io/arcgis-pro-sdk/images/Symbology/point-marker.png)
    /// </summary>
    /// <returns></returns>
    internal static Task<CIMPointSymbol> CreateMarkerSymbolAsync()
    {
      //Construct point symbol from marker
      return QueuedTask.Run<CIMPointSymbol>(() =>
      {
        //creating the marker from the Font selected
        var cimMarker = SymbolFactory.Instance.ConstructMarker(47, "Wingdings 3", "Regular", 12);
        return SymbolFactory.Instance.ConstructPointSymbol(cimMarker);
      });
    
    }
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also