【Revit二次开发】创建建筑柱

出处

https://forums.autodesk.com/t5/revit-api-forum/how-to-create-a-column/m-p/8586697

问题

// Get a Column type from Revit
FilteredElementCollector collector = new FilteredElementCollector(doc);
collector.OfClass(typeof(FamilySymbol)).OfCategory(BuiltInCategory.OST_StructuralColumns);
FamilySymbol columnType = collector.FirstElement() as FamilySymbol;
Level level = Level.Create(doc, 20);
FamilyInstance instance = null;
if (null != columnType)
{
    // Create a column at the origin
    XYZ origin = new XYZ(0, 0, 0);

    instance = doc.Create.NewFamilyInstance(origin, columnType, level, StructuralType.Column);
}

回答

我检查了你的代码,它对我来说很好。

1) 在使用FilteredElementCollector收集结构列之后,检查列元素是否存在于收集器内部

2) 尝试激活族符号

FamilySymbol FS;
if (!FS.IsActive)
{
    FS.Activate();
    doc.Regenerate();
}

3) 运行代码后,如果列不可见,则打开三维视图并检查项目中是否存在列。

总结

  1. 在使用族类型前,先将其激活:FS.Activate()
  2. 构造柱用的是:BuiltInCategory.OST_StructuralColumns,建筑柱可以用:BuiltInCategory.OST_Columns

其他相关博客

https://blog.csdn.net/weixin_43821256/article/details/134559612

https://thebuildingcoder.typepad.com/blog/2009/02/inserting-a-column.html

posted @ 2024-03-28 10:25  greencode  阅读(55)  评论(0编辑  收藏  举报