【问题标题】:Is it possible to continue working in Revit while running a python script in pyrevit?在 pyrevit 中运行 python 脚本时是否可以继续在 Revit 中工作?
【发布时间】:2021-03-19 10:58:18
【问题描述】:

在运行 Revitpythonshell 或使用 XAML gui 运行 python 脚本时,我无法在 Revit 中工作,直到关闭 Revitpythonshell 或 python gui。

有没有办法防止 Revit 像这样无法访问?

我想让我的脚本保持打开状态,以便在我工作时继续使用。

【问题讨论】:

    标签: revit-api revitpythonshell pyrevit


    【解决方案1】:

    根据您的脚本要执行的操作,您有几个选项:

    • pyRevit 有一个“非模态”控制台,可让 Revit 保持可访问性。
    • Pythons threading 模块可能是您正在寻找的。当您继续工作时,您可以在后台自动执行许多任务,但需要注意的是:Revit 是一个单核程序,因此如果您从另一个线程接触数据库/API - Revit 将会崩溃。
    • 您可以在线程上启动一个进程,然后关闭控制台。您的线程将继续运行 - 您只需使用 winforms 或其他 UI 工具即可让您知道线程在哪里。我使用它来自动执行需要 30-45 分钟的非数据库任务,同时继续在 Revit 中工作。
    • 如果您需要继续从脚本访问 Revit 数据库/API,我建议您制作一个简单的 UI 并让它与 Revit 中的ExternalEvent 对话。这是 Cyril Waechter 使用带有 ExternalEvent 的表单的绝佳示例:pyRevit WPF non-modal trouble

    【讨论】:

    • 这是我的第一个脚本,它只是获取所选导管和导管配件的总长度并在其中进行一些计算,我只需要整天不断地使用它。感谢您提供的重要信息!
    猜你喜欢
    • 2014-09-14
    • 1970-01-01
    • 2023-02-08
    • 2020-01-02
    • 1970-01-01
    • 2019-01-05
    • 2019-12-26
    • 2022-10-07
    • 2019-09-03
    相关资源
    最近更新 更多