如何将Viewer应用连接至Autodesk Construction Cloud项目并访问3D模型
访问ACC项目Document Management中3D模型的步骤
1. 获取有效访问令牌
- 你已经完成应用和ACC账户的集成,接下来要走OAuth 2.0流程拿带用户上下文的访问令牌(别用客户端凭证令牌,因为要访问你有权限的项目资源)
- 调用认证接口时,必须包含
data:read、viewables:read这类必要权限范围 - 令牌要带上用户的账户ID(
account_id)和项目ID(project_id),确保能定位到目标项目
2. 找到项目对应的Document Management容器
- 调用ACC API的项目接口:
GET /data/v1/projects/{project_id}/containers,筛选出类型为DOCUMENT_MANAGEMENT的容器,拿到它的container_id
3. 查找目标3D模型文件
- 用拿到的
container_id调用文件列表接口:GET /data/v1/containers/{container_id}/items - 可以按文件名、CAD格式(比如
.rvt、.dwg)过滤结果,找到你要的3D模型,重点记下文件的urn属性——这是后续Viewer加载模型的关键标识
4. 确认模型完成翻译
- 调用Model Derivative API的翻译状态接口:
GET /modelderivative/v2/designdata/{urn}/manifest - 如果模型还没翻译,触发翻译任务:
POST /modelderivative/v2/designdata/job,指定输出格式为svf或svf2(Viewer支持的格式) - 必须等翻译完成,才能用Viewer加载模型
5. 用Viewer SDK加载模型
- 在你的测试应用里初始化Viewer实例,传入刚才拿到的访问令牌
- 用
viewer.loadDocumentNode方法加载模型,代码示例:
const viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById('viewer')); viewer.start(); const options = { env: 'AutodeskProduction', accessToken: '你的访问令牌' }; Autodesk.Viewing.Initializer(options, () => { const documentId = 'urn:' + encodeURIComponent('模型的urn'); Autodesk.Viewing.Document.load(documentId, (doc) => { const viewables = doc.getRoot().getDefaultGeometry(); viewer.loadDocumentNode(doc, viewables); }, (error) => { console.error('加载文档失败:', error); }); });
注意事项
- 确保访问令牌的权限覆盖了目标项目和文件的访问范围
- 翻译模型时注意文件大小和格式兼容性,部分CAD格式可能需要特定参数
- 如果碰到权限错误,检查你的开发者账户在目标项目里是否有
Document Management的访问权限
内容的提问来源于stack exchange,提问作者Mateusz Sadowski
相关产品推荐
相关产品推荐

