【问题标题】:How to get type parameters of revit family type?如何获取revit族类型的类型参数?
【发布时间】:2021-02-21 06:14:11
【问题描述】:

我正在尝试使用 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.Parametersele.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)

不幸的是,上面的代码也只能产生实例参数

非常感谢任何解决此问题的帮助

【问题讨论】:

    标签: ironpython revit-api pyrevit


    【解决方案1】:

    经过更多搜索后,我偶然发现了这篇文章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 系列的类型属性

    【讨论】:

      猜你喜欢
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-05
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多