Procedural symbology uses script-based logic to construct complex 3D objects and textures from simple geometries to display point, polygon, or multipatch features. For example, procedural symbology can be used to render point features as realistic-looking trees, polygon features as 17th century Parisian buildings, or multipatch features with rule-based painted textures.
Both fill symbol layers and marker symbol layers can be procedural. These symbol layers can be procedural only when they are in a 3D context. In a 2D context, procedural symbol content is ignored and does not draw.
Procedural symbols leverage the logic in a CityEngine rule package (.rpk) to draw features. Rule packages are designed such that certain symbol properties are exposed for configuration. You can customize the appearance of procedural symbol layers by adjusting these symbol properties or by connecting the properties to feature attribute fields.
ArcGIS Pro includes system styles with symbols that contain procedural symbol layers. Alternatively, you can author your own procedural symbols in CityEngine and export them as *.rpk files for use in ArcGIS Pro. You can find and download additional rule packages in ArcGIS Online.
Make a procedural symbol
In the Contents pane, click the symbol to modify.
The Symbology pane appears in Format Symbol mode, displaying the current symbol.
- In the Symbology pane, switch to the Properties view and click the Layers tab to see the symbol layers of the current symbol. There may be only one symbol layer.
- Highlight a marker or fill symbol layer as appropriate.
Procedural marker symbol layers can only exist within point symbols. Procedural markers along a line, along a polygon outline, or within a polygon, are not supported.
- Click the Rule button to choose a rule package.
marker symbol layer (in a point symbol)
The @StartRule of the rule package must specify @InPoint annotation to indicate that it is intended for point geometry.
fill symbol layer in a polygon, point, or line symbol
The @StartRule of the rule package must specify @InPoly annotation to indicate that it is intended for polygon geometry.
fill symbol layer in a mesh symbol
The @StartRule of the rule package must specify @InMesh annotation to indicate that it is intended for multipatch geometry.
The properties exposed by the rule package are shown in the pane. Symbol properties in a rule package whose name and data type match feature attribute fields are automatically connected to that field.