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

如何在Dynamo/Python中从Autodesk Docs打开Revit文件?

在Dynamo/Python中从Autodesk Docs打开Revit文件的解决方案

直接使用doc = app.OpenDocumentFile(file_path)会冻结的核心原因是:Autodesk Docs文件属于云模型,常规的本地路径字符串无法被Revit API正确识别,且直接调用会因云授权流程阻塞导致进程无响应。以下是基于Revit API的可行方案:

核心思路

Revit API提供了专门处理云模型的CloudModelPath类,需通过云项目ID和模型ID构建合法的云路径,配合OpenOptions配置打开参数,才能正确打开Autodesk Docs中的Revit文件。

具体实现代码(Dynamo Python节点)

import clr
# 导入Revit API相关程序集
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import CloudModelPath, OpenOptions, DetachFromCentralOption

clr.AddReference('RevitServices')
from RevitServices.Persistence import DocumentManager

# 获取当前Revit应用实例
app = DocumentManager.Instance.CurrentUIApplication.Application

# 替换为你的Autodesk Docs项目ID和模型ID
# 可通过Revit「打开」对话框中云模型的属性查看这两个ID
cloud_project_id = "YOUR_CLOUD_PROJECT_GUID"
cloud_model_id = "YOUR_CLOUD_MODEL_GUID"

# 构建云模型路径
try:
    cloud_model_path = CloudModelPath.Create(cloud_project_id, cloud_model_id)
    
    # 配置打开选项(根据需求调整)
    open_options = OpenOptions()
    # 保持与中心文件关联,如需分离可修改为DetachAndPreserveWorksets等
    open_options.DetachFromCentralOption = DetachFromCentralOption.DoNotDetach
    # 允许非文件所有者打开本地缓存(如果需要)
    open_options.AllowOpeningLocalByWrongUser = True
    
    # 打开云模型
    target_doc = app.OpenDocumentFile(cloud_model_path, open_options)
    # 输出文档对象供后续节点使用
    OUT = target_doc
except Exception as e:
    OUT = f"打开失败:{str(e)}"

关键注意事项

  • 权限验证:确保当前Revit登录账号拥有目标Autodesk Docs文件的访问权限,否则会触发授权失败异常。
  • ID获取:云项目ID和模型ID可通过Revit UI打开云模型时,在「信息」面板中查看,或通过已打开的云模型调用doc.GetCloudModelPath()获取路径后解析。
  • 网络与缓存:首次打开云模型可能因同步缓存耗时较长,避免在Dynamo中频繁触发打开操作;若仍出现短暂无响应,优先通过Revit UI手动打开一次完成缓存同步。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:05:07