PointCloudFilter
A class used to describe the criteria an application desires when obtaining members of a point cloud.
Inheritance Hierarchy
System.Object
Autodesk.Revit.DB.PointClouds.PointCloudFilter
Namespace: Autodesk.Revit.DB.PointClouds
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public class PointCloudFilter : IDisposable
The PointCloudFilter type exposes the following members.
Properties
Name
Description
Public Property
IsValidObject
Specifies whether the .NET object represents a valid Revit entity.
Methods
Name
Description
Public Method
Clone
Returns a copy of the filter. The engine is permitted to copy the filter multiple times e.g. to parallelize filtering.
Public Method
Dispose
Releases all resources used by the PointCloudFilter
Public Method
Equals
Determines whether the specified object is equal to the current object.
(Inherited from Object)
Public Method
GetHashCode
Serves as the default hash function.
(Inherited from Object)
Public Method
GetType
Gets the Type of the current instance.
(Inherited from Object)
Public Method
PrepareForCell
Informs the filter that a series of points within a given cell is about to be checked.
Public Method
TestCell
Checks whether a given cell, i.e. a box aligned with the XYZ axes, is inside, outside or on the border of the volume of interest.
Public Method
TestPoint
Checks if a point is inside the volume of interest.
Public Method
ToString
Returns a string that represents the current object.
(Inherited from Object)
Remarks
Client applications which wish to obtain points from a point cloud will have to create a PointCloudFilter to define the volume of interest (see PointCloudFilterFactory). Engine implementations will need to use the methods contained within the point cloud to determine which points to return to Revit.
Example
// Filter will match 1/8 of the overall point cloud// Use the bounding box (filter coordinates are in the coordinates of the model)BoundingBoxXYZ boundingBox = pointCloudInstance.get_BoundingBox(null);List<Plane> planes = new List<Plane>();XYZ midpoint = (boundingBox.Min + boundingBox.Max) / 2.0;
// X boundariesplanes.Add(Plane.CreateByNormalAndOrigin(XYZ.BasisX, boundingBox.Min));planes.Add(Plane.CreateByNormalAndOrigin(-XYZ.BasisX, midpoint));
// Y boundariesplanes.Add(Plane.CreateByNormalAndOrigin(XYZ.BasisY, boundingBox.Min));planes.Add(Plane.CreateByNormalAndOrigin(-XYZ.BasisY, midpoint));
// Z boundariesplanes.Add(Plane.CreateByNormalAndOrigin(XYZ.BasisZ, boundingBox.Min));planes.Add(Plane.CreateByNormalAndOrigin(-XYZ.BasisZ, midpoint));
// Create filterPointCloudFilter filter = PointCloudFilterFactory.CreateMultiPlaneFilter(planes);pointCloudInstance.FilterAction = SelectionFilterAction.Highlight;
return filter;