ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / PointCloudSceneLayer Class
Members Example

In This Topic
    PointCloudSceneLayer Class
    In This Topic
    Point cloud scene layers allow for fast display and consumption of large volumes of point cloud data.
    Object Model
    PointCloudSceneLayer ClassCIMPointCloudRenderer ClassCIMDataConnection ClassTimeExtent ClassCIMBaseLayer ClassElevationTypeDefinition ClassCIMPointCloudRenderer ClassSpatialReference ClassTimeParameters ClassMap ClassILayerContainer InterfaceEnvelope Class
    Syntax
    Remarks
    The primary source of point cloud data is usually LAS and lidar data. Lidar surveys for terrain, buildings, forest canopy, roads, bridges, overpasses, and more can make up the point cloud data used for a point cloud scene layer.
    Example
    Name of PointCloudSceneLayer
    var pcsl = MapView.Active.Map.GetLayersAsFlattenedList()
                   .OfType<PointCloudSceneLayer>().FirstOrDefault();
    var scenelayerName = pcsl?.Name;
    Edit Color Modulation
    //Must be called on the MCT
    //var pcsl = ...;
    var def = pcsl.GetDefinition() as CIMPointCloudLayer;
    //Get the ColorModulation off the renderer
    var modulation = def.Renderer.ColorModulation;
    if (modulation == null)
      modulation = new CIMColorModulationInfo();
    //Set the minimum and maximum intensity as needed
    modulation.MinValue = 0;
    modulation.MaxValue = 100.0;
    //apply back
    def.Renderer.ColorModulation = modulation;
    //Commit changes back to the CIM
    pcsl.SetDefinition(def);
    
    Edit The Renderer to use Fixed Size
    //Must be called on the MCT
    //var pcsl = ...;
    var def = pcsl.GetDefinition() as CIMPointCloudLayer;
    
    //Set the point shape and sizing on the renderer
    def.Renderer.PointShape = PointCloudShapeType.DiskShaded;
    var pointSize = new CIMPointCloudFixedSizeAlgorithm()
    {
      UseRealWorldSymbolSizes = false,
      Size = 8
    };
    def.Renderer.PointSizeAlgorithm = pointSize;
    //Commit changes back to the CIM
    pcsl.SetDefinition(def);
    Edit the Renderer to Scale Size
    //Must be called on the MCT
    //var pcsl = ...;
    var def = pcsl.GetDefinition() as CIMPointCloudLayer;
    
    //Set the point shape and sizing on the renderer
    def.Renderer.PointShape = PointCloudShapeType.DiskFlat;//default
    var scaleSize = new CIMPointCloudSplatAlgorithm()
    {
      MinSize = 8,
      ScaleFactor = 1.0 //100%
    };
    def.Renderer.PointSizeAlgorithm = scaleSize;
    //Commit changes back to the CIM
    pcsl.SetDefinition(def);
    Edit Density settings
    //Must be called on the MCT
    //var pcsl = ...;
    var def = pcsl.GetDefinition() as CIMPointCloudLayer;
    //PointsBudget - corresponds to Display Limit on the UI
    // - the absolute maximum # of points to display
    def.PointsBudget = 1000000;
    
    //PointsPerInch - corresponds to Density Min --- Max on the UI
    // - the max number of points per display inch to renderer
    def.PointsPerInch = 15;
    //Commit changes back to the CIM
    pcsl.SetDefinition(def);
    
    Inheritance Hierarchy

    System.Object
       ArcGIS.Desktop.Framework.Contracts.PropertyChangedBase
          ArcGIS.Desktop.Mapping.MapMember
             ArcGIS.Desktop.Mapping.Layer
                ArcGIS.Desktop.Mapping.PointCloudSceneLayer

    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also