ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / SurfaceLayer Class / CreateRenderer Method
A renderer definition object.
Example

In This Topic
    CreateRenderer Method (SurfaceLayer)
    In This Topic
    Creates a renderer for a surface layer using a TinRendererDefinition. This method must be called on the MCT. Use QueuedTask.Run.
    Syntax

    Parameters

    rendererDefinition
    A renderer definition object.

    Return Value

    Exceptions
    ExceptionDescription
    This method or property must be called within the lambda passed to QueuedTask.Run.
    Cannot create renderer for layer. The renderer definition is invalid.
    Failed to create renderer. There was a processing error.
    Remarks
    Use CanCreateRenderer to determine if the renderer is valid for the layer before creating it.
    Example
    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);
        }
      }
    }
    Requirements

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

    ArcGIS Pro version: 3.2 or higher.
    See Also