如何使用 PyRevit CLI 在不打开 Revit 的情况下运行 Python 脚本?

问题描述 投票:0回答:1

我目前正在使用 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 ifc revitpythonshell pyrevit
1个回答
0
投票

Revit API 完全是事件驱动的。如果没有有效的 Revit API 上下文,则无法成功调用 Revit API,并且此类上下文仅在 Revit API 定义的事件的事件处理程序中提供。因此,您的代码无法成功执行。请查看 The Building Coder 入门材料 或阅读有关实施 Revit API 插件的官方开发人员指南,以及有关无模式访问的空闲和外部事件以及从外部驱动 Revit 的大量文章 .

© www.soinside.com 2019 - 2024. All rights reserved.