ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / PointCloudFilterDefinition Class / FromCIM Method
The input collection of CIMPointCloudFilters
Example Version

FromCIM Method
Creates a PointCloudFilterDefinition based on a collection of ArcGIS.Core.CIM.CIMPointCloudFilter.
Syntax

Parameters

filters
The input collection of CIMPointCloudFilters

Return Value

Example
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());
Get the filters for PointCloudSceneLayer
//Must be called on the MCT
//var pcsl = ...;
IReadOnlyList<CIMPointCloudFilter> updatedFilter = pcsl.GetFilters();
foreach (var filter in updatedFilter)
{
  //There is either 0 or 1 of each
  if (filter is CIMPointCloudReturnFilter returnFilter)
  {
    PointCloudFilterDefinition pcfl = PointCloudFilterDefinition.FromCIM(updatedFilter);
    List<PointCloudReturnType> updatedReturnValues = pcfl.ReturnValues;

  }
  if (filter is CIMPointCloudValueFilter classCodesFilter)
  {
    // do something
  }

  if (filter is CIMPointCloudBitFieldFilter classFlagsFilter)
  {
    // do something
  }
}
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also