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

In This Topic
    PointCloudRendererType Enumeration
    In This Topic
    Identifies the different renderer types available for PointCloudSceneLayer.
    Syntax
    Members
    MemberDescription
    ClassBreaksRenderer Class breaks renderer.
    RGBRenderer RGB renderer.
    StretchRenderer Stretch renderer.
    UniqueValueRenderer Unique value renderer.
    UnknownRenderer The renderer is unknown.
    Example
    Get PointCloudSceneLayer Renderer and RendererType
    {
      // Note: call within QueuedTask.Run()
      {
        CIMPointCloudRenderer cimGetPCLRenderer = pointCloudSceneLayer.GetRenderer();
        //Can be one of Unknown, Stretch, ClassBreaks, UniqueValue, RGB
        PointCloudRendererType pclRendererType = pointCloudSceneLayer.RendererType;
      }
    }
    Query PointCloudSceneLayer Renderer fields
    {
      // Note: call within QueuedTask.Run()
      {
        IReadOnlyList<string> flds = pointCloudSceneLayer.GetAvailablePointCloudRendererFields(
                              PointCloudRendererType.UniqueValueRenderer);
        var fldCount = flds.Count;
      }
    }
    Create and Set a Stretch Renderer
    {
      // Note: call within QueuedTask.Run()
      {
        var fields = pointCloudSceneLayer.GetAvailablePointCloudRendererFields(
                                PointCloudRendererType.StretchRenderer);
        var stretchDef = new PointCloudRendererDefinition(
                                  PointCloudRendererType.StretchRenderer)
        {
          //Will be either ELEVATION or INTENSITY
          Field = fields[0]
        };
        //Create the CIM Renderer
        var stretchRenderer = pointCloudSceneLayer.CreateRenderer(stretchDef)
                                            as CIMPointCloudStretchRenderer;
        //Apply a color ramp
        var style = Project.Current.GetItems<StyleProjectItem>()
                                        .First(s => s.Name == "ArcGIS Colors");
        var colorRamp = style.SearchColorRamps("").First();
        stretchRenderer.ColorRamp = colorRamp.ColorRamp;
        //Apply modulation
        stretchRenderer.ColorModulation = new CIMColorModulationInfo()
        {
          MinValue = 0,
          MaxValue = 100
        };
        //apply the renderer
        pointCloudSceneLayer.SetRenderer(stretchRenderer);
      }
    }
    Create and Set a ClassBreaks Renderer
    {
      // Note: call within QueuedTask.Run()
      {
        var fields = pointCloudSceneLayer.GetAvailablePointCloudRendererFields(
                           PointCloudRendererType.ClassBreaksRenderer);
        var classBreakDef = new PointCloudRendererDefinition(
                                  PointCloudRendererType.ClassBreaksRenderer)
        {
          //ELEVATION or INTENSITY
          Field = fields[0]
        };
        //create the renderer
        var cbr = pointCloudSceneLayer.CreateRenderer(classBreakDef)
                                  as CIMPointCloudClassBreaksRenderer;
        //Set up a color scheme to use
        var style = Project.Current.GetItems<StyleProjectItem>()
                                   .First(s => s.Name == "ArcGIS Colors");
        var rampStyle = style.LookupItem(
          StyleItemType.ColorRamp, "Spectrum By Wavelength-Full Bright_Multi-hue_2")
                                                                    as ColorRampStyleItem;
        var colorScheme = rampStyle.ColorRamp;
        //Set up 6 manual class breaks
        var breaks = 6;
        var colors = ColorFactory.Instance.GenerateColorsFromColorRamp(
                                                    colorScheme, breaks);
        var classBreaks = new List<CIMColorClassBreak>();
        var min = cbr.Breaks[0].UpperBound;
        var max = cbr.Breaks[cbr.Breaks.Count() - 1].UpperBound;
        var step = (max - min) / (double)breaks;
    
        //add in the class breaks
        double upper = min;
        for (int b = 1; b <= breaks; b++)
        {
          double lower = upper;
          upper = b == breaks ? max : min + (b * step);
          var cb = new CIMColorClassBreak()
          {
            UpperBound = upper,
            Label = string.Format("{0:#0.0#} - {1:#0.0#}", lower, upper),
            Color = colors[b - 1]
          };
          classBreaks.Add(cb);
        }
        cbr.Breaks = classBreaks.ToArray();
        pointCloudSceneLayer.SetRenderer(cbr);
      }
    }
    Inheritance Hierarchy

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

    Requirements

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

    ArcGIS Pro version: 3.0 or higher.
    See Also