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

如何通过APS Viewer获取Revit linkedDocuments的元数据(如链接名称)

通过APS Viewer获取Revit链接文档元数据的方法

核心逻辑

APS Viewer中Revit链接文档的元数据(如名称),可结合Viewer的AEC扩展数据与Model Derivative API获取,或直接从已加载的模型实例中提取。

具体实现步骤

1. 从Viewer AEC数据中获取链接文档的URN

利用Autodesk.AEC.AecPropertiesExtension扩展,通过你已有的documentId和instanceId获取对应链接文档的URN:

const aecExt = viewer.getExtension('Autodesk.AEC.AecPropertiesExtension');
const linkData = aecExt.getDocumentInfo(documentId, instanceId);
const linkUrn = linkData.documentUrn; // 链接文档的唯一标识

2. 调用Model Derivative API获取元数据

使用获取到的linkUrn,调用Model Derivative的获取模型清单接口,解析链接文档的元数据:

// 需确保accessToken具备data:read权限
fetch(`https://developer.api.autodesk.com/modelderivative/v2/designdata/${encodeURIComponent(linkUrn)}/manifest`, {
  headers: { 'Authorization': `Bearer ${accessToken}` }
})
.then(res => res.json())
.then(manifest => {
  const linkName = manifest.name; // 直接获取链接文档名称
  console.log('链接名称:', linkName);
  // 额外元数据(如文件类型、创建时间等)可从manifest的metadata节点或root属性中提取
});

3. 直接从已加载模型中提取(简化方式)

如果链接文档已加载到Viewer中,可遍历模型队列直接获取元数据:

viewer.impl.modelQueue().getModels().forEach(model => {
  if (model.getDocumentId() === documentId && model.getInstanceId() === instanceId) {
    const linkName = model.name;
    console.log('链接名称:', linkName);
    // 更多元数据可从model.getData().metadata中查询
  }
});

注意点

  • 调用API时需确保accessToken拥有data:read权限,否则会返回权限错误。
  • 处理嵌套链接(链接文档内还有子链接)时,需递归重复上述步骤获取层级元数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 10:42:36