如何解决如何获取revit家族类型的类型参数?
我正在尝试使用pyrevit托管的ironpython创建所有类型参数的列表。我尝试了以下代码
from pyrevit import revit,DB
doc =__revit__.ActiveUIDocument.Document
curview = doc.ActiveView
target_category = DB.BuiltInCategory.OST_StructuralColumns
elements = DB.FilteredElementCollector(doc,curview.Id)\
.OfCategory(target_category)\
.WhereElementIsNotElementType()\
.ToElements()
for ele in elements:
parameters = [i.Definition.Name for i in ele.Parameters]
orderedParas = [i.Definition.Name for i in ele.GetOrderedParameters()]
print(sorted(parameters))
print(sorted(orderedParas))
ele.Parameters
和ele.GetOrderedParameters()
都只能产生实例参数。
我已经阅读到实例参数是元素的类型参数。因此,我尝试捕获家庭类型并应用了与上述相同的代码。
families = DB.FilteredElementCollector(revit.doc)\
.OfClass(DB.FamilyInstance)
for family in families:
x = family.GetOrderedParameters()
if family.Name == "C2 300x600":
for i in x:
print(i.Definition.Name)
不幸的是,以上代码也只能产生实例参数
在解决此问题方面的任何帮助深表赞赏
解决方法
经过更多搜索后,我偶然发现了该帖子How to access all the family types through revit API? 幸运的是,其中有我的问题的答案
from pyrevit import revit,DB
doc =__revit__.ActiveUIDocument.Document
target_category = DB.BuiltInCategory.OST_StructuralColumns
elements = DB.FilteredElementCollector(doc)\
.OfCategory(target_category)\
.WhereElementIsElementType()\
.ToElements()
for ele in elements:
for i in ele.GetOrderedParameters():
print(i.Definition.Name)
看来我不得不使用.WhereElementIsElementType()
而不是.WhereElementIsNotElementType()
来利用Revit系列的类型属性
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。