ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / SurfaceRendererTarget Enumeration
Example Example

In This Topic
    SurfaceRendererTarget Enumeration
    In This Topic
    Specifies a valid list of renderer categories that a ArcGIS.Core.CIM.CIMTinRenderer might be applicable for. See SurfaceLayer.CanSetRenderer and SurfaceLayer.SetRenderer.
    Syntax
    Members
    MemberDescription
    Contours Contours.
    DirtyArea Dirty Area.
    Edges Edges.
    Points Points or Nodes.
    Surface Surfaces or Faces.
    Example
    Create a TinLayer with renderers
    {
      var tinCP_renderers = new TinLayerCreationParams(tinDataset)
      {
        Name = "My TIN layer",
        IsVisible = true
      };
    
      // define the node renderer - use defaults
      var node_rd = new TinNodeRendererDefinition();
    
      // define the face/surface renderer
      var face_rd = new TinFaceClassBreaksRendererDefinition();
      face_rd.ClassificationMethod = ClassificationMethod.NaturalBreaks;
      // accept default color ramp, breakCount
    
      // set up the renderer dictionary
      var rendererDict = new Dictionary<SurfaceRendererTarget, TinRendererDefinition>
    {
      { SurfaceRendererTarget.Points, node_rd },
      { SurfaceRendererTarget.Surface, face_rd }
    };
    
      // assign the dictionary to the creation params
      tinCP_renderers.RendererDefinitions = rendererDict;
      // Note: Needs QueuedTask to run
      {
        // create the layer
        var tinLayer_rd = LayerFactory.Instance.CreateLayer<TinLayer>(tinCP_renderers, MapView.Active.Map);
      }
    }
    Create a TerrainLayer with renderers
    {
      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;
      // Note: Needs QueuedTask to run
      {
        //Create the layer to the terrain
        var terrainLayer_rd = LayerFactory.Instance.CreateLayer<TerrainLayer>(terrainCP_renderers, map);
      }
    }
    Create a LasDatasetLayer with renderers
    {
      var lasCP_renderers = new LasDatasetLayerCreationParams(lasDataset);
      lasCP_renderers.Name = "My LAS Layer";
      lasCP_renderers.IsVisible = false;
    
      // create a point elevation renderer
      var ptR = new LasStretchRendererDefinition();
      // accept all defaults
    
      // create a simple edge renderer
      var edgeR = new TinEdgeRendererDefintion();
      // accept all defaults
    
      // add renderers to dictionary
      var l_dict = new Dictionary<SurfaceRendererTarget, TinRendererDefinition>();
      l_dict.Add(SurfaceRendererTarget.Points, ptR);
      l_dict.Add(SurfaceRendererTarget.Edges, edgeR);
    
      // assign dictionary to creation params
      lasCP_renderers.RendererDefinitions = l_dict;
      // Note: Needs QueuedTask to run
      {
        //Create the layer to the LAS dataset
        var lasDatasetLayer_rd = LayerFactory.Instance.CreateLayer<LasDatasetLayer>(lasCP_renderers, map);
      }
    }
    Get Renderers
    {
      // Note: Needs QueuedTask to run
      {
        // get the list of renderers
        IReadOnlyList<CIMTinRenderer> renderers = surfaceLayer.GetRenderers();
    
        // get the renderers as a dictionary
        Dictionary<SurfaceRendererTarget, CIMTinRenderer> dict = surfaceLayer.GetRenderersAsDictionary();
      }
    }
    Simple Node Renderer
    {
      // applies to TIN layers only
      var nodeRendererDef = new TinNodeRendererDefinition();
      nodeRendererDef.Description = "Nodes";
      nodeRendererDef.Label = "Nodes";
      nodeRendererDef.SymbolTemplate = nodeSymbol.MakeSymbolReference();
    
      // Note: Needs QueuedTask to run
      {
        if (tinLayer.CanCreateRenderer(nodeRendererDef))
        {
          CIMTinRenderer renderer = tinLayer.CreateRenderer(nodeRendererDef);
          if (tinLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Points))
            tinLayer.SetRenderer(renderer, SurfaceRendererTarget.Points);
        }
      }
    }
    Elevation Node Renderer - Equal Breaks
    {
      // applies to TIN layers only
      var equalBreaksNodeRendererDef = new TinNodeClassBreaksRendererDefinition();
      equalBreaksNodeRendererDef.BreakCount = 7;
      // Note: Needs QueuedTask to run
      {
        if (tinLayer.CanCreateRenderer(equalBreaksNodeRendererDef))
        {
          CIMTinRenderer renderer = tinLayer.CreateRenderer(equalBreaksNodeRendererDef);
          if (tinLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Edges))
            tinLayer.SetRenderer(renderer, SurfaceRendererTarget.Edges);
        }
      }
    }
    Elevation Node Renderer - Defined Interval
    {
      // applies to TIN layers only
      var defiendIntervalNodeRendererDef = new TinNodeClassBreaksRendererDefinition();
      defiendIntervalNodeRendererDef.ClassificationMethod = ClassificationMethod.DefinedInterval;
      defiendIntervalNodeRendererDef.IntervalSize = 4;
      defiendIntervalNodeRendererDef.SymbolTemplate = nodeSymbol.MakeSymbolReference();
      // Note: Needs QueuedTask to run
      {
        if (tinLayer.CanCreateRenderer(defiendIntervalNodeRendererDef))
        {
          CIMTinRenderer renderer = tinLayer.CreateRenderer(defiendIntervalNodeRendererDef);
          if (tinLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Edges))
            tinLayer.SetRenderer(renderer, SurfaceRendererTarget.Edges);
        }
      }
    }
    Elevation Node Renderer - Standard Deviation
    {
      // applies to TIN layers only
      var stdDevNodeRendererDef = new TinNodeClassBreaksRendererDefinition();
      stdDevNodeRendererDef.ClassificationMethod = ClassificationMethod.StandardDeviation;
      stdDevNodeRendererDef.DeviationInterval = StandardDeviationInterval.OneHalf;
      stdDevNodeRendererDef.ColorRamp = ColorFactory.Instance.GetColorRamp("Cyan to Purple");
      // Note: Needs QueuedTask to run
      {
        if (tinLayer.CanCreateRenderer(stdDevNodeRendererDef))
        {
          CIMTinRenderer renderer = tinLayer.CreateRenderer(stdDevNodeRendererDef);
          if (tinLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Edges))
            tinLayer.SetRenderer(renderer, SurfaceRendererTarget.Edges);
        }
      }
    }
    Simple Edge Renderer
    {
      // applies to TIN or LAS dataset layers only
      var edgeRendererDef = new TinEdgeRendererDefintion();
      edgeRendererDef.Description = "Edges";
      edgeRendererDef.Label = "Edges";
      edgeRendererDef.SymbolTemplate = lineSymbol.MakeSymbolReference();
      // Note: Needs QueuedTask to run
      {
        if (surfaceLayer.CanCreateRenderer(edgeRendererDef))
        {
          CIMTinRenderer renderer = surfaceLayer.CreateRenderer(edgeRendererDef);
          if (surfaceLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Edges))
            surfaceLayer.SetRenderer(renderer, SurfaceRendererTarget.Edges);
        }
      }
    }
    Edge Type Renderer
    {
      var breaklineRendererDef = new TinBreaklineRendererDefinition();
      // use default symbol for regular edge but specific symbols for hard,soft,outside
      breaklineRendererDef.HardEdgeSymbol = hardEdgeSymbol.MakeSymbolReference();
      breaklineRendererDef.SoftEdgeSymbol = softEdgeSymbol.MakeSymbolReference();
      breaklineRendererDef.OutsideEdgeSymbol = outsideEdgeSymbol.MakeSymbolReference();
      // Note: Needs QueuedTask to run
      {
        if (surfaceLayer.CanCreateRenderer(breaklineRendererDef))
        {
          CIMTinRenderer renderer = surfaceLayer.CreateRenderer(breaklineRendererDef);
          if (surfaceLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Edges))
            surfaceLayer.SetRenderer(renderer, SurfaceRendererTarget.Edges);
        }
      }
    }
    Contour Renderer
    {
      var contourDef = new TinContourRendererDefinition();
    
      // now customize with a symbol
      contourDef.Label = "Contours";
      contourDef.SymbolTemplate = contourLineSymbol.MakeSymbolReference();
      contourDef.ContourInterval = 6;
    
      contourDef.IndexLabel = "Index Contours";
      contourDef.IndexSymbolTemplate = indexLineSymbol.MakeSymbolReference();
      contourDef.ContourFactor = 4;
      contourDef.ReferenceHeight = 7;
      // Note: Needs QueuedTask to run
      {
        if (surfaceLayer.CanCreateRenderer(contourDef))
        {
          CIMTinRenderer renderer = surfaceLayer.CreateRenderer(contourDef);
          if (surfaceLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Contours))
            surfaceLayer.SetRenderer(renderer, SurfaceRendererTarget.Contours);
        }
      }
    }
    Simple Face Renderer
    {
      var simpleFaceRendererDef = new TinFaceRendererDefinition();
      simpleFaceRendererDef.SymbolTemplate = polySymbol.MakeSymbolReference();
      // Note: Needs QueuedTask to run
      {
        if (surfaceLayer.CanCreateRenderer(simpleFaceRendererDef))
        {
          CIMTinRenderer renderer = surfaceLayer.CreateRenderer(simpleFaceRendererDef);
          if (surfaceLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Surface))
            surfaceLayer.SetRenderer(renderer, SurfaceRendererTarget.Surface);
        }
      }
    }
    Aspect Face Renderer
    {
      var aspectFaceRendererDef = new TinFaceClassBreaksAspectRendererDefinition();
      aspectFaceRendererDef.SymbolTemplate = polySymbol.MakeSymbolReference();
      // accept default color ramp
    
      // Note: Needs QueuedTask to run
      {
        if (surfaceLayer.CanCreateRenderer(aspectFaceRendererDef))
        {
          CIMTinRenderer renderer = surfaceLayer.CreateRenderer(aspectFaceRendererDef);
          if (surfaceLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Surface))
            surfaceLayer.SetRenderer(renderer, SurfaceRendererTarget.Surface);
        }
      }
    }
    Slope Face Renderer - Equal Interval
    {
      var slopeFaceClassBreaksEqual = new TinFaceClassBreaksRendererDefinition(TerrainDrawCursorType.FaceSlope);
      // accept default breakCount, symbolTemplate, color ramp
      // Note: Needs QueuedTask to run
      {
        if (surfaceLayer.CanCreateRenderer(slopeFaceClassBreaksEqual))
        {
          CIMTinRenderer renderer = surfaceLayer.CreateRenderer(slopeFaceClassBreaksEqual);
          if (surfaceLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Surface))
            surfaceLayer.SetRenderer(renderer, SurfaceRendererTarget.Surface);
        }
      }
    }
    Slope Face Renderer - Quantile
    {
      var slopeFaceClassBreaksQuantile = new TinFaceClassBreaksRendererDefinition(TerrainDrawCursorType.FaceSlope);
      slopeFaceClassBreaksQuantile.ClassificationMethod = ClassificationMethod.Quantile;
      // accept default breakCount, symbolTemplate, color ramp
      // Note: Needs QueuedTask to run
      {
        if (surfaceLayer.CanCreateRenderer(slopeFaceClassBreaksQuantile))
        {
          CIMTinRenderer renderer = surfaceLayer.CreateRenderer(slopeFaceClassBreaksQuantile);
          if (surfaceLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Surface))
            surfaceLayer.SetRenderer(renderer, SurfaceRendererTarget.Surface);
        }
      }
    }
    Elevation Face Renderer - Equal Interval
    {
      var elevFaceClassBreaksEqual = new TinFaceClassBreaksRendererDefinition();
      // accept default breakCount, symbolTemplate, color ramp
      // Note: Needs QueuedTask to run
      {
        if (surfaceLayer.CanCreateRenderer(elevFaceClassBreaksEqual))
        {
          CIMTinRenderer renderer = surfaceLayer.CreateRenderer(elevFaceClassBreaksEqual);
          if (surfaceLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Surface))
            surfaceLayer.SetRenderer(renderer, SurfaceRendererTarget.Surface);
        }
      }
    }
    Dirty Area Renderer
    {
      var dirtyAreaRendererDef = new TerrainDirtyAreaRendererDefinition();
      // accept default labels, symbolTemplate
    
      if (terrainLayer == null)
        return;
      // Note: Needs QueuedTask to run
      {
        if (terrainLayer.CanCreateRenderer(dirtyAreaRendererDef))
        {
          CIMTinRenderer renderer = terrainLayer.CreateRenderer(dirtyAreaRendererDef);
          if (terrainLayer.CanSetRenderer(renderer, SurfaceRendererTarget.DirtyArea))
            terrainLayer.SetRenderer(renderer, SurfaceRendererTarget.DirtyArea);
        }
      }
    }
    Terrain Point Class Breaks Renderer
    {
      var terrainPointClassBreaks = new TerrainPointClassBreaksRendererDefinition();
      // accept defaults
      // Note: Needs QueuedTask to run
      {
        if (terrainLayer.CanCreateRenderer(terrainPointClassBreaks))
        {
          CIMTinRenderer renderer = terrainLayer.CreateRenderer(terrainPointClassBreaks);
          if (terrainLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Points))
            terrainLayer.SetRenderer(renderer, SurfaceRendererTarget.Points);
        }
      }
    }
    LAS Points Classification Unique Value Renderer
    {
      var lasPointsClassificationRendererDef = new LasUniqueValueRendererDefinition(LasAttributeType.Classification);
      // accept the defaults for color ramp, symbolTemplate, symbol scale factor
    
      if (lasDatasetLayer == null)
        return;
      // Note: Needs QueuedTask to run
      {
        if (lasDatasetLayer.CanCreateRenderer(lasPointsClassificationRendererDef))
        {
          CIMTinRenderer renderer = lasDatasetLayer.CreateRenderer(lasPointsClassificationRendererDef);
          if (lasDatasetLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Points))
            lasDatasetLayer.SetRenderer(renderer, SurfaceRendererTarget.Points);
        }
      }
    }
    LAS Points Returns Unique Value Renderer
    {
      var lasPointsReturnsRendererDef = new LasUniqueValueRendererDefinition(LasAttributeType.ReturnNumber);
      lasPointsReturnsRendererDef.ModulateUsingIntensity = true;
      lasPointsReturnsRendererDef.SymbolScaleFactor = 1.0;
      // accept the defaults for color ramp, symbolTemplate
      // Note: Needs QueuedTask to run
      {
        if (lasDatasetLayer.CanCreateRenderer(lasPointsReturnsRendererDef))
        {
          CIMTinRenderer renderer = lasDatasetLayer.CreateRenderer(lasPointsReturnsRendererDef);
          if (lasDatasetLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Points))
            lasDatasetLayer.SetRenderer(renderer, SurfaceRendererTarget.Points);
        }
      }
    }
    LAS Points Elevation Stretch Renderer
    {
      var elevLasStretchRendererDef = new LasStretchRendererDefinition(ArcGIS.Core.CIM.LASStretchAttribute.Elevation);
      // accept the defaults for color ramp, etc
    
      if (lasDatasetLayer.CanCreateRenderer(elevLasStretchRendererDef))
      {
        CIMTinRenderer renderer = lasDatasetLayer.CreateRenderer(elevLasStretchRendererDef);
        if (lasDatasetLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Points))
          lasDatasetLayer.SetRenderer(renderer, SurfaceRendererTarget.Points);
      }
      // OR use a stretch renderer with stretchType standard Deviations
      var elevLasStretchStdDevRendererDef = new LasStretchRendererDefinition(ArcGIS.Core.CIM.LASStretchAttribute.Elevation);
      elevLasStretchStdDevRendererDef.StretchType = LASStretchType.StandardDeviations;
      elevLasStretchStdDevRendererDef.NumberOfStandardDeviations = 2;
      // accept the defaults for color ramp,  etc
      // Note: Needs QueuedTask to run
      {
        if (lasDatasetLayer.CanCreateRenderer(elevLasStretchStdDevRendererDef))
        {
          CIMTinRenderer renderer = lasDatasetLayer.CreateRenderer(elevLasStretchStdDevRendererDef);
          if (lasDatasetLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Points))
            lasDatasetLayer.SetRenderer(renderer, SurfaceRendererTarget.Points);
        }
      }
    }
    LAS Points Classified Elevation Renderer
    {
      var lasPointsClassBreaksRendererDef = new LasPointClassBreaksRendererDefinition();
      lasPointsClassBreaksRendererDef.ClassificationMethod = ClassificationMethod.NaturalBreaks;
      lasPointsClassBreaksRendererDef.ModulateUsingIntensity = true;
      // increase the symbol size by a factor
      lasPointsClassBreaksRendererDef.SymbolScaleFactor = 1.0;
      // Note: Needs QueuedTask to run
      {
        if (lasDatasetLayer.CanCreateRenderer(lasPointsClassBreaksRendererDef))
        {
          CIMTinRenderer renderer = lasDatasetLayer.CreateRenderer(lasPointsClassBreaksRendererDef);
          if (lasDatasetLayer.CanSetRenderer(renderer, SurfaceRendererTarget.Points))
            lasDatasetLayer.SetRenderer(renderer, SurfaceRendererTarget.Points);
        }
      }
    }
    Remove an edge renderer
    {
      // Note: Needs QueuedTask to run
      {
        surfaceLayer.RemoveRenderer(SurfaceRendererTarget.Edges);
      }
    }
    Inheritance Hierarchy

    System.Object
       System.ValueType
          System.Enum
             ArcGIS.Desktop.Mapping.SurfaceRendererTarget

    Requirements

    Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.2 or higher.
    See Also