Point
|
A class used to describe the criteria an application desires when obtaining members of a point cloud.
System
Object
Autodesk.Revit.DB.PointClouds PointCloudFilter
Autodesk.Revit.DB.PointClouds PointCloudFilter
Namespace: Autodesk.Revit.DB.PointClouds
Assembly: RevitAPI (in RevitAPI.dll) Version: 27.0.4.0 (27.0.4.0)
The PointCloudFilter type exposes the following members.
| Name | Description | |
|---|---|---|
|
|
IsValidObject | Specifies whether the .NET object represents a valid Revit entity. |
| Name | Description | |
|---|---|---|
|
|
Clone | Returns a copy of the filter. The engine is permitted to copy the filter multiple times e.g. to parallelize filtering. |
|
|
Dispose | Releases all resources used by the PointCloudFilter |
|
|
Equals |
Determines whether the specified object is equal to the current object.
(Inherited from Object ) |
|
|
GetHashCode |
Serves as the default hash function.
(Inherited from Object ) |
|
|
GetType |
Gets the
Type
of the current instance.
(Inherited from Object ) |
|
|
PrepareForCell | Informs the filter that a series of points within a given cell is about to be checked. |
|
|
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. |
|
|
TestPoint | Checks if a point is inside the volume of interest. |
|
|
ToString |
Returns a string that represents the current object.
(Inherited from Object ) |
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.
C#
// 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;