You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

未打开项目时在Revit Python Shell调用Revit API NewProjectDocument报错如何解决

Revit无已打开项目时调用NewProjectDocument接口报错的解决方案

该报错的核心原因是默认场景下Revit Python Shell(RPS)的执行上下文绑定到当前活动文档对象,无已打开项目时ActiveUIDocument为空值,直接调用NewProjectDocument会因上下文缺失触发异常。当存在已打开项目时,上下文有效所以调用正常。

可行解决办法

  • 调用应用层(Application)的NewProjectDocument方法而非UI层(UIApplication)的对应方法
    无已打开项目时,Revit应用本身的实例对象始终有效,不需要依赖活动文档即可完成新项目创建,参考代码如下:
    import clr
    # 引入Revit API程序集
    clr.AddReference('RevitAPI')
    clr.AddReference('RevitAPIUI')
    from Autodesk.Revit.DB import *
    from Autodesk.Revit.UI import *
    
    # 获取RPS内置的Revit UI应用实例
    uiapp = __revit__
    # 提取应用层实例
    app = uiapp.Application
    
    # 替换为你本地对应Revit版本的项目模板路径
    revit_template_path = r"C:\ProgramData\Autodesk\RVT 2024\Templates\Chinese\Architectural-DefaultCHSCHS.rte"
    
    # 直接调用应用层方法创建新项目
    new_project_doc = app.NewProjectDocument(revit_template_path)
    
  • 调整RPS上下文绑定设置
    旧版本RPS会强制校验活动文档存在性,可在RPS启动后的设置界面,关闭绑定执行上下文到活动文档选项,执行代码时仅调用应用层接口即可避免报错。
  • 新增项目激活逻辑(如需后续UI操作)
    如果你创建新项目后需要进行选择元素、调用UI命令等操作,可在创建完成后添加文档激活逻辑:
    # 保存新建项目到本地路径后激活
    save_path = r"D:\Test\new_project.rvt"
    new_project_doc.SaveAs(save_path)
    uiapp.OpenAndActivateDocument(save_path)
    

内容的提问来源于stack exchange,提问作者ftroshani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 15:54:04