【问题标题】:python for revit - collect views in active viewpython for revit - 在活动视图中收集视图
【发布时间】:2019-02-05 04:05:54
【问题描述】:

我正在尝试在我的 pyRevit 脚本中使用 FilteredElementCollector 来收集活动视图中的所有视图(剖面、立面、平面标注等)。

from pyrevit.framework import clr
from pyrevit import revit, DB

clr.AddReference('RevitAPI')
clr.AddReference('RevitAPIUI')

from Autodesk.Revit.DB import *
from pyrevit import forms

doc = __revit__.ActiveUIDocument.Document

view = doc.ActiveView
AllStuff = FilteredElementCollector(doc,doc.ActiveView.Id).WhereElementIsNotElementType().ToElements()

AllViews = []

try:
    for x in AllStuff:
        if "View" in x.Category.Name:
            AllViews.append(x)

这将返回一些,但不是所有的意见。例如,有些部分包括在内,但有些部分没有,我不知道为什么。

如果我添加“.OfCategory(BuiltInCategory.OST_Views)”,我什么也得不到。我需要把它分解成几个更具体的类别吗?感谢您的帮助。

【问题讨论】:

    标签: python revit-api revit pyrevit


    【解决方案1】:

    FilteredElementCollector(doc, doc.ActiveView.Id) 中没有视图,你可以这样做:

    for el in FilteredElementCollector(doc, doc.ActiveView.Id):
        print(el)
    

    有一个元素不属于 OST_Views 类别,即使它与您的视图同名,也不是视图。要查看此内容,您可以使用RevitLookUp

    我通过查看 VIEW_FIXED_SKETCH_PLANE BuiltInParameter 找到了一种检索实际视图的方法(我目前不知道任何其他方法),它引用了 SketchPlane,它将实际视图引用为 Element.OwnerViewId。然后您可以确保该元素属于 View 类:

    for el in FilteredElementCollector(doc,doc.ActiveView.Id):
        sketch_parameter = el.get_Parameter(BuiltInParameter.VIEW_FIXED_SKETCH_PLANE)
        # If parameter do not exist skip the element
        if not sketch_parameter:
            continue
        view_id = doc.GetElement(sketch_parameter.AsElementId()).OwnerViewId
        view = doc.GetElement(view_id)
        if isinstance(view, View):
            print(view)
    

    【讨论】:

    • 非常感谢您的回复西里尔。我应该更清楚我想要做什么:我的最终目标是在活动视图中隐藏部分、标注等,而不是引用另一个视图(换句话说,原始视图)。因此,如果我在平面图中看到的部分、立面等不属于“视图”类别,我需要找到一个不同的类别来收集。在这方面,感谢您向我展示 Revit Lookup。我没听说过,它看起来真的很有用。
    • 跟进:Revit Lookup 向我展示了如何找到我需要的类别(查看器)和参数值。非常感谢!
    猜你喜欢
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多