Autodesk.Revit.DB.PointOnFace
类表示三维空间中在面(Autodesk.Revit.DB.Face
)上的点。
PointOnFace
类可以通过以下两个构造函数进行实例化:
public PointOnFace(Face face, UV uv);
public PointOnFace(Face face, UV uv, XYZ normal);
其中,参数解释如下:
face
: 代表点所在的面。uv
: 代表点在面上的二维坐标,取值范围为 [0,1]x[0,1]
,其中 (0, 0)
表示面的左下角。normal
: 可选参数,代表点所在的平面的法向量。PointOnFace
类包含以下属性:
Face
属性public Face Face { get; }
代表点所在的面。该属性只读。
UVPoint
属性public UV UVPoint { get; }
代表点在面上的二维坐标。该属性只读。
XYZPoint
属性public XYZ XYZPoint { get; }
代表点在三维空间中的坐标。该属性只读。
Normal
属性public XYZ Normal { get; }
代表点所在的平面的法向量。如果在构造函数中没有提供该值,则返回 (0, 0, 0
)。该属性只读。
PointOnFace
类包含以下方法:
IsValid()
方法public bool IsValid()
判断当前点是否在面上,并且二维坐标的取值范围为 [0,1]x[0,1]
。如果是,则返回 true
;否则返回 false
。
以下代码演示了如何从三维空间中的点实例化 PointOnFace
类:
// 假设有一个三维空间中的点 xyz 和一个面 face
UV uv = face.Project(xyz).UVPoint;
PointOnFace pointOnFace = new PointOnFace(face, uv, face.ComputeNormal(uv));