python for revit在active vi中收集视图

2024-05-23 19:35:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在我的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_视图)“我什么都得不到。我需要把它分成几个更具体的类别吗?谢谢你的帮助。在


Tags: infromimport视图dbdocclrrevit
1条回答
网友
1楼 · 发布于 2024-05-23 19:35:56

FilteredElementCollector(doc)中没有视图,doc.ActiveView.Id文件),您可以通过执行以下操作来查看:

^{1}$

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

我找到了一种检索实际视图的方法(目前我不知道有其他方法),通过查看view_FIXED_SKETCH_PLANE BuiltInParameter,它引用了草图平面,而实际视图是作为Element.OwnerViewId. 然后可以确保元素是类视图:

^{pr2}$

相关问题 更多 >