Extracts a collection of points based on a filter.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 24.0.0.0 (24.0.0.0)
Since:
2014
Syntax
Parameters
- filter
- Type: Autodesk.Revit.DB.PointClouds..::..PointCloudFilter
The filter to control which points are extracted. The filter should be passed in the coordinates
of the Revit model.
- averageDistance
- Type: System..::..Double
Desired average distance between "adjacent" cloud points (Revit units of length).
The smaller the averageDistance the larger number of points will be returned up to the numPoints limit.
Specifying this parameter makes actual number of points returned for a given filter independent of the
density of coverage produced by the scanner.
- numPoints
- Type: System..::..Int32
The maximum number of points requested.
Return Value
A collection object containing points that pass the filter, but no more than the maximum number requested.
Remarks
Examples
CopyC#
private void GetPointCloudDataByIteration(PointCloudInstance pcInstance, PointCloudFilter pointCloudFilter)
{
double averageDistance = 0.001;
int numberOfPoints= 10000;
PointCollection points = pcInstance.GetPoints(pointCloudFilter, averageDistance, numberOfPoints);
foreach (CloudPoint point in points)
{
System.Drawing.Color color = System.Drawing.ColorTranslator.FromWin32(point.Color);
String pointDescription = String.Format("({0}, {1}, {2}, {3}", point.X, point.Y, point.Z, color.ToString());
}
}
public unsafe void GetPointCloudDataByPointer(PointCloudInstance pcInstance, PointCloudFilter pointCloudFilter)
{
double averageDistance = 0.001;
int numOfPoints = 10000;
PointCollection points = pcInstance.GetPoints(pointCloudFilter, averageDistance, numOfPoints);
CloudPoint* pointBuffer = (CloudPoint*)points.GetPointBufferPointer().ToPointer();
int totalCount = points.Count;
for (int numberOfPoints = 0; numberOfPoints < totalCount; numberOfPoints++)
{
CloudPoint point = *(pointBuffer + numberOfPoints);
System.Drawing.Color color = System.Drawing.ColorTranslator.FromWin32(point.Color);
String pointDescription = String.Format("({0}, {1}, {2}, {3}", point.X, point.Y, point.Z, color.ToString());
}
}
Exceptions
See Also