我目前正在使用 PyRevit CLI 和 Revit API 自动执行一些任务。我的目标是在不实际打开 Revit GUI 的情况下运行 Python 脚本。
具体来说,我编写了一个简单的脚本来打开 IFC 文件并将其另存为 RVT 文件。这是脚本:
import clr
import math
clr.AddReference('RevitAPI')
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Architecture import *
from Autodesk.Revit.DB.Analysis import *
app = __revit__.Application
ifc_doc = app.OpenIFCDocument('Room.ifc')
print("Open")
save_options = SaveAsOptions()
save_options.OverwriteExistingFile = True
ifc_doc.SaveAs('output_room.rvt', save_options)
print("Saved")
当我使用命令
pyrevit run script.py "revitproject.rvt"
运行此脚本时,Revit 会再次打开并关闭,显示有关执行 ID、产品、克隆、引擎、脚本、工作目录、日志文件、清单文件和日志文件的信息。
我正在寻找有关如何正确使用 PyRevit CLI 来实现我的目标而不弹出 Revit GUI 的指导。是否有任何特定的资源、文档或教程可以帮助解决此问题?
Revit API 完全是事件驱动的。如果没有有效的 Revit API 上下文,则无法成功调用 Revit API,并且此类上下文仅在 Revit API 定义的事件的事件处理程序中提供。因此,您的代码无法成功执行。请查看 The Building Coder 入门材料 或阅读有关实施 Revit API 插件的官方开发人员指南,以及有关无模式访问的空闲和外部事件以及从外部驱动 Revit 的大量文章 .