ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / TerrainDirtyAreaRendererDefinition Class
Members Example

In This Topic
    TerrainDirtyAreaRendererDefinition Class
    In This Topic
    Represents a simple renderer definition to draw dirty areas in a surface layer with a common symbol.
    Object Model
    TerrainDirtyAreaRendererDefinition ClassCIMSymbolReference Class
    Syntax
    public class TerrainDirtyAreaRendererDefinition : TinSimpleRendererDefinition 
    Public Class TerrainDirtyAreaRendererDefinition 
       Inherits TinSimpleRendererDefinition
    Remarks
    The symbol used to define the TinSimpleRendererDefinition.SymbolTemplate should be a ArcGIS.Core.CIM.CIMPolygonSymbol.

    The dirty area renderer is only valid for TerrainLayer.

    Once you define a simple renderer, you can call a surface layer's CanCreateRenderer, CreateRenderer, CanSetRenderer and SetRenderer methods to create and assign a renderer to a surface layer.

    Example
    Create a TerrainLayer with renderers
    //Must be on the QueuedTask.Run()
    
    var terrainCP_renderers = new TerrainLayerCreationParams(terrain);
    terrainCP_renderers.Name = "My LAS Layer";
    terrainCP_renderers.IsVisible = true;
    
    // define the edge type renderer - use defaults
    var edgeRD = new TinBreaklineRendererDefinition();
    
    // define the face/surface renderer
    var faceRD = new TinFaceClassBreaksRendererDefinition();
    faceRD.ClassificationMethod = ClassificationMethod.NaturalBreaks;
    // accept default color ramp, breakCount
    
    // define the dirty area renderer - use defaults
    var dirtyAreaRD = new TerrainDirtyAreaRendererDefinition();
    
    // add renderers to dictionary
    var t_dict = new Dictionary<SurfaceRendererTarget, TinRendererDefinition>();
    t_dict.Add(SurfaceRendererTarget.Edges, edgeRD);
    t_dict.Add(SurfaceRendererTarget.Surface, faceRD);
    t_dict.Add(SurfaceRendererTarget.DirtyArea, dirtyAreaRD);
    
    // assign dictionary to creation params
    terrainCP_renderers.RendererDefinitions = t_dict;
    
    //Create the layer to the terrain
    var terrainLayer_rd = LayerFactory.Instance.CreateLayer<TerrainLayer>(terrainCP_renderers, map);
    Dirty Area Renderer
    // applies to Terrain layers only
    
    var dirtyAreaRendererDef = new TerrainDirtyAreaRendererDefinition();
    // accept default labels, symbolTemplate
    
    var terrainLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<TerrainLayer>().FirstOrDefault();
    if (terrainLayer == null)
      return;
    
    if (terrainLayer.CanCreateRenderer(dirtyAreaRendererDef))
    {
      CIMTinRenderer renderer = terrainLayer.CreateRenderer(dirtyAreaRendererDef);
      if (terrainLayer.CanSetRenderer(renderer, SurfaceRendererTarget.DirtyArea))
        terrainLayer.SetRenderer(renderer, SurfaceRendererTarget.DirtyArea);
    }
    Inheritance Hierarchy

    System.Object
       ArcGIS.Desktop.Mapping.LayerDrawingDefinition
          ArcGIS.Desktop.Mapping.TinRendererDefinition
             ArcGIS.Desktop.Mapping.TinSimpleRendererDefinition
                ArcGIS.Desktop.Mapping.TerrainDirtyAreaRendererDefinition

    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.2 or higher.
    See Also