Autodesk.Revit.DB.PartMaker
是 Revit API 中的一个类,用于创建定制化的构件。
PartMaker
可以创建类别为 "零件" 的构件,并允许用户指定构件的几何形状和材料。它可以通过程序化的方式实现添加、删除和修改构件的几何形状、位置和材料等操作。使用 PartMaker
,用户可以创建一个与 Revit 中自带构件不同的、符合自身需求的、具有独特设计和功能的构件。
创建 PartMaker
的实例时,需要提供一个 Revit 文档对象和一个构件类别对象作为参数,如下所示:
public PartMaker(Document document, ElementId categoryId)
以下代码示例演示了如何创建 PartMaker
的实例,添加几何元素,并在 Revit 文档中创建一个新的构件。
// 创建Revit文档对象
Document doc = commandData.Application.ActiveUIDocument.Document;
// 获取零件类别的ID
ElementId categoryId = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Parts).FirstElementId();
// 创建PartMaker实例
PartMaker pm = new PartMaker(doc, categoryId);
// 添加几何元素
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> profile = new List<Curve>
{
Line.CreateBound(p1, p2),
Line.CreateBound(p2, p3),
Line.CreateBound(p3, p4),
Line.CreateBound(p4, p1)
};
pm.AddOpenProfile(profile, Material.Create(doc, "Red", 255, 0, 0));
// 创建一个新的零件
ElementId partId = pm.CreatePart("MyPart");
// 将零件插入到Revit文档中
doc.Create.NewFamilyInstance(new XYZ(0, 0, 0), doc.GetElement(partId).Symbol, StructuralType.NonStructural);
在上面的代码示例中,我们创建了一个由四个线段组成的矩形几何图形,并将其加入到一个名为 "MyPart" 的新零件中。最后将新零件插入到当前文档中。在 Revit 文档中,我们可以选择新创建的零件,并编辑其形状和材料。
值得注意的是,构件的几何形状必须是连续的,并且任何给定的端点不能在多个曲线中出现。
PartMaker
为用户提供了在 Revit 中创建符合自身需求和设计的构件的机会。通过该类,用户可以实现几何图形和材料的添加、删除和修改,并可在需要时将其应用到 Revit 文档中。值得一提的是,PartMaker
类必须要与 FamilySymbol
结合使用,以创建新的零件。