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

使用APS从ACC获取Revit模型时遇CentralModelMissingException问题

APS插件访问ACC上Revit文件的问题排查

问题背景

我正在开发一款APS(Autodesk Platform Services)插件,用于访问存储在ACC上的Revit文件。已成功获取项目GUID和模型GUID,但尝试打开模型时遇到CentralModelMissingException错误。

代码片段

var cloudModelPath = ModelPathUtils.ConvertCloudGUIDsToCloudPath(inputParams.Region, inputParams.ProjectGuid, inputParams.ModelGuid);
Document doc = rvtApp.OpenDocumentFile(cloudModelPath, new OpenOptions()); 

错误信息

Autodesk.Revit.Exceptions.CentralModelMissingException: The central model is missing.
at Autodesk.Revit.DB.ModelPathUtils.ConvertCloudGUIDsToCloudPath(String region, Guid projectGuid, Guid modelGuid)

补充详情

通过指定API端点获取项目和模型GUID,返回的project GUID为3fa3b423-3b58-48b8-bccf-c2e32babf431,与最初使用的项目ID不同。后续在Revit中测试代码时,出现新错误:

Warning DynamicCodeUtils: InvalidOperationException - This Document is not a workshared document.

但已通过Revit网页视图确认文档为工作共享模式;调用GetPublishJob API时收到403错误。

提问

  1. Project ID与Project GUID的区别是什么?在ModelPathUtils.ConvertCloudGUIDsToCloudPath中应使用哪一个?
  2. 排查CentralModelMissingException:
    • 中心模型缺失的常见原因有哪些?
    • 如何验证ACC上Revit模型的状态和工作共享配置?
    • 是否可通过API调用预检查ACC模型的可访问性?

解答

1. Project ID与Project GUID的区别及正确使用

  • Project ID:ACC项目的短标识,多为b.xxxx格式的字母数字组合,是面向用户的外部标识,用于网页端或部分API快速定位项目。
  • Project GUID:ACC项目的全局唯一标识符,为标准GUID格式字符串,是系统内部用于唯一识别项目的核心标识。

在ModelPathUtils.ConvertCloudGUIDsToCloudPath方法中必须使用Project GUID,该方法依赖全局唯一标识解析云模型路径,传入Project ID会导致路径解析失败,直接触发CentralModelMissingException。

2. CentralModelMissingException排查

常见原因

  • 标识混淆:传入了Project ID而非Project GUID,或模型GUID对应已删除/迁移的模型。
  • 区域参数错误:ACC区域(如US、EMEA)与项目实际所在区域不匹配,导致无法定位模型存储节点。
  • 权限不足:插件使用的凭据无目标模型访问权限,系统会以“模型缺失”作为权限限制的提示。
  • 模型状态异常:模型被标记为删除、归档,或中心模型文件本身损坏。

验证ACC上Revit模型的状态和工作共享配置

  • ACC网页端:进入项目文档管理模块,找到目标Revit文件,查看详情页的“工作共享”状态,确认是否为中心模型;同时检查版本历史,确认最新版本的中心模型未被删除。
  • Revit桌面端:通过“打开云模型”功能定位目标模型并尝试打开,若能正常打开则说明模型状态和工作共享配置无问题。

通过API预检查模型可访问性

可以通过以下APS API完成预验证:

  • 项目存在性验证:调用ACC项目API,传入Project GUID,确认项目存在且当前凭据有访问权限。
  • 模型状态验证:调用ACC文档管理API,传入Project GUID和模型URN/文件ID,检查文件是否存在、是否为Revit中心模型。
  • 权限验证:调用APS权限API,确认当前用户/服务账户对目标模型拥有read及以上权限,避免403错误。

针对你遇到的“This Document is not a workshared document”错误,可尝试调整OpenOptions指定工作共享相关设置:

var openOptions = new OpenOptions();
openOptions.DetachFromCentralOption = DetachFromCentralOption.DetachAndPreserveWorksets;
Document doc = rvtApp.OpenDocumentFile(cloudModelPath, openOptions);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:53:11