我尝试使用 pyRevit 设置透明墙。我执行以下操作:
categories = List[ElementId]()
wallCatId = ElementId(BuiltInCategory.OST_Walls)
categories.Add(wallCatId)
ogs = OverrideGraphicSettings()
ogs.SetSurfaceTransparency(70)
t = Transaction(doc, "New parameter filter")
t.Start()
filter = ParameterFilterElement.Create(doc, "Walls filter", categories)
t.Commit()
all_views = FilteredElementCollector(doc).OfClass(View).ToElements()
for i in all_views:
if (i.ViewType == ViewType.ThreeD) or (i.ViewType == ViewType.FloorPlan):
views_to_treat.append(i)
t = Transaction(doc, "New visibility filter")
t.Start()
for i in views_to_treat:
i.AddFilter(filter.Id)
i.SetFilterOverrides(filter.Id, ogs)
t.Commit()
什么都没发生,我不知道为什么。是不是我的“类别”定义错误(我怎么知道它期望什么样的 ElementId?它是 Wall 类别的 Id 吗?在那种情况下,这里应该没问题)?还是在将过滤器覆盖应用于视图时?
任何帮助将不胜感激!阿尔诺。