TransformWithBoundary
类是Revit API中用于描述包含变换和边界的类型。该类用于创建一个既包括旋转、平移等空间变换操作,也包含边界约束限制的对象。
该类具有以下属性:
Boundary: CurveLoop
- 只读属性,获取该对象所包含的边界。
Transform: Transform
- 读写属性,获取或设置该对象的空间变换操作。
该类具有以下方法:
TransformWithBoundary(CurveLoop, Transform)
- 构造函数,用于创建包含边界和变换的对象。
Equals(Object)
- 判断当前对象是否等于另一个对象。
GetHashCode()
- 获取当前对象的哈希值。
ToString()
- 返回该对象的字符串表示形式。
以下示例展示了如何使用TransformWithBoundary
类。该示例首先创建了一个Box的边界对象,然后再构造一个包含旋转变换和边界的TransformWithBoundary
对象。
Document doc = commandData.Application.ActiveUIDocument.Document;
XYZ p1 = new XYZ(0, 0, 0);
XYZ p2 = new XYZ(10, 0, 0);
XYZ p3 = new XYZ(10, 10, 0);
XYZ p4 = new XYZ(0, 10, 0);
List<Curve> curves = new List<Curve>();
curves.Add(Line.CreateBound(p1, p2));
curves.Add(Line.CreateBound(p2, p3));
curves.Add(Line.CreateBound(p3, p4));
curves.Add(Line.CreateBound(p4, p1));
CurveLoop loop = CurveLoop.Create(curves);
Transform transform = Transform.CreateRotationAtPoint(
XYZ.BasisX, Math.PI / 4, new XYZ(5, 5, 0));
TransformWithBoundary tb = new TransformWithBoundary(loop, transform);
由于该类使用了CurveLoop
类型来描述边界,因此需要使用Autodesk.Revit.DB.GeometryCreationUtilities
类或自定义代码来构造结果。
在调用构造函数时,应保证传入的CurveLoop
对象与Transform
操作的中心点或轴线相交或重叠,否则可能会导致意外的结果。
该类可以用于描述建筑物的楼板、墙面、屋顶等的边界形状,并配合使用FamilyInstance
进行建模操作。