revit-api - 在 pyrevit 中运行 python 脚本时是否可以继续在 Revit 中工作?
问题描述
在运行 Revitpythonshell 或使用 XAML gui 运行 python 脚本时,我无法在 Revit 中工作,直到关闭 Revitpythonshell 或 python gui。
有没有办法让 Revit 不会像这样无法访问?
我想保持我的脚本打开,以便在我工作时继续使用。
解决方案
根据您的脚本要执行的操作,您有几个选项:
- pyRevit 有一个“非模态”控制台,可让 Revit 保持可访问性。
- Pythons
threading
模块可能是您正在寻找的。当您继续工作时,您可以在后台自动执行许多任务,但需要注意的是:Revit 是一个单核程序,因此如果您从另一个线程接触数据库/API - Revit 将会崩溃。 - 您可以在线程上启动一个进程,然后关闭控制台。您的线程将继续运行 - 您只需使用
winforms
或其他 UI 工具来让您知道线程在哪里。我使用它来自动化需要 30-45 分钟的非数据库任务,同时继续在 Revit 中工作。 - 如果您需要继续从您的脚本访问 Revit 数据库/API,我建议您制作一个简单的 UI 并让它与
ExternalEvent
Revit 中的一个对话。这是一个使用ExternalEvent
Cyril Waechter 的表单的绝妙示例:pyRevit WPF non-modal trouble
推荐阅读
- android - Androidx Cardview 上未显示阴影
- javascript - 如何在 ReactJS 中保留新的状态值并将其传递给另一个路由器组件
- python - 有没有办法制作多人骰子游戏,玩家轮流滚动并计算分数?
- excel - 如何使用 SAP GUI 脚本自动禁用 Excel 显示
- html - 如何避免空值插入数据库?
- ios - 使用 base64Data 将图像保存到带有 mediaScanner:true 的相机胶卷,但它在 Ionic 4 中保存了错误的位置
- rust - 如何从 FuturesUnordered 返回错误?
- typescript - 打字稿重载箭头功能不起作用
- sql - PSQL如何使用可变参数进行递归查询
- ios - 如何使用 segue 维护 UITabBar