出处
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) 运行代码后,如果列不可见,则打开三维视图并检查项目中是否存在列。
总结
- 在使用族类型前,先将其激活:FS.Activate()
- 构造柱用的是:BuiltInCategory.OST_StructuralColumns,建筑柱可以用:BuiltInCategory.OST_Columns
其他相关博客
https://blog.csdn.net/weixin_43821256/article/details/134559612
标签:FamilySymbol,FS,创建,Create,doc,二次开发,Revit,BuiltInCategory From: https://www.cnblogs.com/redcode/p/18100979