创建一般风管可以调用RevitAPI的函数Duct.Create:
Duct Create(Document document,Elementld systemTypeld,Elementld ductTypeld,
Elementld levelld, XYZ firstPoint, XYZ secondPoint)
参数含义见下表。
参数 | 描述 |
Document | 文档 |
systemTypeld | 水暖电系统族的Id |
ductTypeld | 风管类型的Id |
levelld | 所在标高的Id |
firstPoint | 起点 |
secondPoint | 终点 |
如果要创建风管,可以根据MEPSystemClassification 过滤出风管类型参数,然后使用Duct.Create创建。
代码如下:
public Duct CreateDuct(Document doc, ElementId levelId, MEPSystemClassification ductSystemType, ElementId ductTypeId, XYZ startPoint, XYZ endPoint)
{
ElementId systemTypeId = ElementId.InvalidElementId;
var systemTypeFilter = new ElementClassFilter(typeof(MEPSystemType));
FilteredElementCollector systemTypes = new FilteredElementCollector(doc);
systemTypes = systemTypes.WherePasses(systemTypeFilter);
List<MEPSystemType> systypes = new List<MEPSystemType>();
foreach (MEPSystemType element in systemTypes)
{
if (element.SystemClassification == ductSystemType)
{
systemTypeId = element.Id;
break;
}
}
if (systemTypeId == ElementId.InvalidElementId)
throw new Exception("无法找到系统类型");
using (Transaction transaction = new Transaction(doc))
{
transaction.Start("创建风管");
Duct duct = Duct.Create(doc, systemTypeId, ductTypeId, levelId, startPoint, endPoint);
transaction.Commit();
return duct;
}
}