- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 RevitPythonshell 在 Revit 的 3D View 中覆盖墙的图形。我设法使用 Python 节点在 Dynamo 中完成这项工作。
到目前为止我有以下代码;
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
from System.Collections.Generic import List
doc = DocumentManager.Instance.CurrentDBDocument
TransactionManager.Instance.EnsureInTransaction(doc)
walls = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls)
elements = walls.OfCategory(BuiltInCategory.OST_Walls).WhereElementIsNotElementType()
color = Autodesk.Revit.DB.Color(255,50,50)
ogs = OverrideGraphicSettings().SetProjectionFillColor(color)
for i in elements:
doc.ActiveView.SetElementOverrides((i.Id), ogs)
TransactionManager.Instance.TransactionTaskDone()
当我在 RevitPythonShell 中运行它时,它什么也不做。我没有得到任何错误或任何东西。当我打印 doc.ActiveView.SetElementOverrides((i.Id), ogs) 时,它返回 None 。
我在这里缺少什么?我处于 Revit 的 3D View 中,这是事件 View 。我正在开始和结束交易。
Here与 Dynamo 节点中的 Python 节点中的代码有些相同。
最佳答案
经过一些调整,您的代码就可以工作了:
import clr
clr.AddReference('RevitAPI')
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.UI import *
app = __revit__.Application
doc = __revit__.ActiveUIDocument.Document
elements = list(FilteredElementCollector(doc, doc.ActiveView.Id))
color = Color(255,50,50)
ogs = OverrideGraphicSettings().SetProjectionFillColor(color)
t = Transaction(doc, 'Color Walls')
t.Start()
try:
for i in elements:
if i.Category.Name == 'Walls':
doc.ActiveView.SetElementOverrides((i.Id), ogs)
print 'element overridden'
except Exception as e:
print '- Failed to override -'
print '- ' + str(e) + ' -'
t.Commit()
View.Id
传递给 FilteredElementCollector
时,您会收集该 View 中可见的所有内容关于python - 使用 RevitPythonShell 覆盖事件 View 中的图形设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47921606/
我已经根据我在 stackoverflow 上找到的代码片段编写了这个脚本,但在运行时出现了这个错误: System.InvalidOperationException: Cannot create
我正在尝试使用 RevitPythonshell 在 Revit 的 3D View 中覆盖墙的图形。我设法使用 Python 节点在 Dynamo 中完成这项工作。 到目前为止我有以下代码; imp
revitpythonshell 提供了两种非常相似的加载族的方法。 LoadFamily(self: Document, filename:str) -> (bool, Family) LoadFa
RevitPythonShell 脚本和 Revit Python 宏都依赖于 Iron Python。在这两种情况下,至少在 Revit 15 中,都不需要安装 IronPython。我相信 Rev
我是一名建筑师(真正的建筑师,不是软件架构师 :))正在尝试使用 Revit API 并将自己介绍给编码世界。我已经使用 C# 完成了部分工作,但转而使用 Python,希望通过这种方式初始步骤会更快
我是一名优秀的程序员,十分优秀!