Table of Contents

Class IfcMeasureEngine

Namespace
IfcIO.Measure
Assembly
IfcIO.dll

High-precision 3D measurement engine providing point-to-point, point-to-mesh, mesh-to-mesh clearance, triangle area, normal vector, and polyline distance calculations for IFC models.

public static class IfcMeasureEngine

Inheritance

Inherited Members

Methods

ClosestPointOnTriangle(IfcVector3, IfcVector3, IfcVector3, IfcVector3)

Computes the point on a 3D triangle closest to the specified query point. Implements Christer Ericson's Voronoi region algorithm.

public static IfcVector3 ClosestPointOnTriangle(IfcVector3 p, IfcVector3 a, IfcVector3 b, IfcVector3 c)

Parameters

p IfcVector3
a IfcVector3
b IfcVector3
c IfcVector3

Returns

IfcVector3

ComputeMeshCentroid(IfcMesh)

Computes the average vertex centroid of a mesh.

public static IfcVector3 ComputeMeshCentroid(IfcMesh mesh)

Parameters

mesh IfcMesh

Returns

IfcVector3

ComputeMeshSurfaceArea(IfcMesh)

Computes the total surface area of all triangles in a mesh.

public static double ComputeMeshSurfaceArea(IfcMesh mesh)

Parameters

mesh IfcMesh

Returns

double

ComputeMeshVolume(IfcMesh)

Computes the signed volume of a closed 3D manifold solid mesh.

public static double ComputeMeshVolume(IfcMesh mesh)

Parameters

mesh IfcMesh

Returns

double

ComputeTriangleArea(IfcVector3, IfcVector3, IfcVector3)

Computes the surface area of a 3D triangle defined by three vertices.

public static double ComputeTriangleArea(IfcVector3 a, IfcVector3 b, IfcVector3 c)

Parameters

a IfcVector3
b IfcVector3
c IfcVector3

Returns

double

ComputeTriangleNormal(IfcVector3, IfcVector3, IfcVector3)

Computes the unit normal vector of a 3D triangle defined by three vertices in CCW order.

public static IfcVector3 ComputeTriangleNormal(IfcVector3 a, IfcVector3 b, IfcVector3 c)

Parameters

a IfcVector3
b IfcVector3
c IfcVector3

Returns

IfcVector3

MeasureAngle(IfcVector3, IfcVector3)

Computes the angle in degrees between two 3D direction vectors.

public static double MeasureAngle(IfcVector3 dirA, IfcVector3 dirB)

Parameters

dirA IfcVector3
dirB IfcVector3

Returns

double

MeasureAngle(IfcVector3, IfcVector3, IfcVector3)

Computes the angle in degrees between two line segments meeting at a vertex: angle(A - Vertex - B).

public static double MeasureAngle(IfcVector3 a, IfcVector3 vertex, IfcVector3 b)

Parameters

a IfcVector3
vertex IfcVector3
b IfcVector3

Returns

double

MeasureDistance(IfcVector3, IfcVector3)

Measures the 3D Euclidean distance and directional projections between two points.

public static IfcDistanceMeasurement MeasureDistance(IfcVector3 a, IfcVector3 b)

Parameters

a IfcVector3
b IfcVector3

Returns

IfcDistanceMeasurement

MeasureMeshToMesh(IfcMesh, IfcMesh)

Measures the clearance (minimum distance) between two 3D polygon meshes.

public static IfcMeshToMeshMeasurement MeasureMeshToMesh(IfcMesh meshA, IfcMesh meshB)

Parameters

meshA IfcMesh
meshB IfcMesh

Returns

IfcMeshToMeshMeasurement

MeasurePath(IEnumerable<IfcVector3>)

Measures cumulative polyline distance across a sequence of 3D points.

public static IfcPolylineMeasurement MeasurePath(IEnumerable<IfcVector3> points)

Parameters

points IEnumerable<IfcVector3>

Returns

IfcPolylineMeasurement

MeasurePointToMesh(IfcVector3, IfcMesh)

Measures the shortest distance from a 3D point to a mesh surface, locating the closest point.

public static IfcPointToMeshMeasurement MeasurePointToMesh(IfcVector3 point, IfcMesh mesh)

Parameters

point IfcVector3
mesh IfcMesh

Returns

IfcPointToMeshMeasurement