我试图在我的pyrovit脚本中使用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)
这将返回一些视图,但不是所有视图。例如,有些部分包括在内,但其他部分没有,我不知道为什么。在
如果我加上“.of category”(BuiltInCategory.OST_视图)“我什么都得不到。我需要把它分成几个更具体的类别吗?谢谢你的帮助。在
FilteredElementCollector(doc)中没有视图,doc.ActiveView.Id文件),您可以通过执行以下操作来查看:
^{1}$有一个元素不属于OST_视图类别,并且不是视图,即使它与您的视图同名。要查看此内容,可以使用RevitLookUp。
我找到了一种检索实际视图的方法(目前我不知道有其他方法),通过查看view_FIXED_SKETCH_PLANE BuiltInParameter,它引用了草图平面,而实际视图是作为Element.OwnerViewId. 然后可以确保元素是类视图:
^{pr2}$相关问题 更多 >
编程相关推荐