Skip to content
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
45 lines (31 sloc) 5.21 KB


Symbols graphically describe, categorize, or rank geographic features and labels to locate them and show qualitative and quantitative relationships. They display graphical elements on a layout. Symbols can be optionally stored, managed, and shared in collections called styles.

Examples of symbols can be found here.

Symbol layers

Symbols are classified by the type of geometry they depict: CIMPointSymbol, CIMLineSymbol, CIMPolygonSymbol, CIMMeshSymbol, and CIMTextSymbol. Each symbol type has unique characteristics and properties. Symbols are built from component CIMSymbolLayers. These symbol layers are classified by their graphical structure—either CIMMarker, CIMStroke, or CIMFill. These layers are the building blocks of symbols; they combine to make rich graphical depictions. CIMTextSymbol are an exception—they have native properties but no component layers.

CIMFills symbol layers cover areal geometries with either a single solid color (CIMSolidFill), a series of regularly spaced lines (CIMHatchFill), a gradation from one color to another (CIMGradientFill), an image or texture (CIMPictureFill), or a reference to a procedural rule package (CIMProceduralSymbolLayer).

CIMStroke symbol layers can be of type CIMSolidStroke, CIMPictureStroke, or CIMGradientStroke.

CIMMarker symbol layer types include CIMPictureMarker, CIMObjectMarker3D (which are true three-dimensional objects), CIMCharacterMarker (which references a font glyph for its shape), CIMVectorMarker, which are vector-based, and CIMProceduralSymbolLayer (referencing a rule package).

Symbols have at least one symbol layer, but can have more, as outlined below:


  • CIMMarker layers: Draw relative to the point geometry


  • CIMMarker layers: Draw at specified locations relative to the line geometry
  • CIMStroke layers: Draw relative to the line geometry


  • CIMMarker layers: Draw relative to the polygon outline or within the polygon interior, dependent on the marker placement setting
  • CIMStroke layers: Draw relative to the polygon outline
  • CIMFill layers: Draw relative to the polygon interior



Symbol effects

In addition to these arrangements, you can add any symbol layer to any symbol when using a GeometricEffect. Geometric effects dynamically alter symbol geometry to create different appearances. For instance, a GeometricEffectBuffer can be added to a CIMLineSymbol so that the symbol can be drawn with a CIMFill.

Marker placements

CIMMarker layers are most commonly used in CIMPointSymbols, usually placed directly on the point feature geometry. You can adjust the anchor points and offsets of a marker to customize their relative position. CIMMarker layers are also used in CIMLineSymbols and CIMPolygonSymbols, drawn along lines and outlines, at endpoints, or within polygon interiors. This is achieved by selecting a CIMMarkerPlacement that places the symbols where desired.

Mobile symbols

For increased compatibility with mobile devices, a mobile profile of CIMSymbols is used. Mobile versions of symbols differ is a few minor ways:

  • All colors are written as arrays instead of Objects with assumed RGBA values. For example: [0,0,0,255] for a black color.
  • All Geometries are written with straight segments. No curved segments are allowed.
  • No CIMCharacterMarker symbol layers are allowed since the fonts are not easily transferable.
You can’t perform that action at this time.