ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / PointCloudSceneLayer Class / SetFilters Method
The enumeration of filters to set
Example

In This Topic
    SetFilters Method
    In This Topic
    Sets a collection of filters. This method must be called on the MCT. Use QueuedTask.Run.
    Syntax

    Parameters

    filters
    The enumeration of filters to set
    Exceptions
    ExceptionDescription
    This method or property must be called within the lambda passed to QueuedTask.Run.
    Example
    Set a Filter for PointCloudSceneLayer
    //Must be called on the MCT
    //var pcsl = ...;
    //Retrieve the available classification codes
    //At 2.x - var dict = pcsl.QueryAvailableClassCodesAndLabels();
    var dict = pcsl.GetAvailableClassCodesAndLabels();
    
    //Filter out low noise and unclassified (7 and 1 respectively)
    //consult https://pro.arcgis.com/en/pro-app/help/data/las-dataset/storing-lidar-data.htm
    var filterDef = new PointCloudFilterDefinition()
    {
      ClassCodes = dict.Keys.Where(c => c != 7 && c != 1).ToList(),
      ReturnValues = new List<PointCloudReturnType> { 
                             PointCloudReturnType.FirstOfMany }
    };
    //apply the filter
    pcsl.SetFilters(filterDef.ToCIM());
    
    Update the ClassFlags for PointCloudSceneLayer
    //Must be called on the MCT
    //var pcsl = ...;
    var filters = pcsl.GetFilters();
    PointCloudFilterDefinition fdef = null;
    if (filters.Count() == 0)
    {
      fdef = new PointCloudFilterDefinition()
      {
        //7 is "edge of flight line" - exclude
        ClassFlags = new List<ClassFlag> { 
           new ClassFlag(7, ClassFlagOption.Exclude) }
      };
    }
    else
    {
      fdef = PointCloudFilterDefinition.FromCIM(filters);
      //keep any include or ignore class flags
      var keep = fdef.ClassFlags.Where(
             cf => cf.ClassFlagOption != ClassFlagOption.Exclude).ToList();
      //7 is "edge of flight line" - exclude
      keep.Add(new ClassFlag(7, ClassFlagOption.Exclude));
      fdef.ClassFlags = keep;
    }
    //apply
    pcsl.SetFilters(fdef.ToCIM());
    
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also