Skip to content

PointCloudFilter

Public Class

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

Returns a copy of the filter. The engine is permitted to copy the filter multiple times e.g. to parallelize filtering.


Public Method

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

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

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 boundaries
planes.Add(Plane.CreateByNormalAndOrigin(XYZ.BasisX, boundingBox.Min));
planes.Add(Plane.CreateByNormalAndOrigin(-XYZ.BasisX, midpoint));
// Y boundaries
planes.Add(Plane.CreateByNormalAndOrigin(XYZ.BasisY, boundingBox.Min));
planes.Add(Plane.CreateByNormalAndOrigin(-XYZ.BasisY, midpoint));
// Z boundaries
planes.Add(Plane.CreateByNormalAndOrigin(XYZ.BasisZ, boundingBox.Min));
planes.Add(Plane.CreateByNormalAndOrigin(-XYZ.BasisZ, midpoint));
// Create filter
PointCloudFilter filter = PointCloudFilterFactory.CreateMultiPlaneFilter(planes);
pointCloudInstance.FilterAction = SelectionFilterAction.Highlight;
return filter;