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

如何检索元素属性及获取BIM 360项目URN以调用指定API

关于BIM 360元素属性检索与URN获取的实操指南

嘿,我来帮你拆解这两个Forge API相关的问题——都是和BIM 360模型数据交互时的核心步骤:


1. 如何检索元素属性(项目元数据)?

要获取模型里的元素属性,核心是用Model Derivative API的元数据属性端点,步骤如下:

  • 首先确保你拿到了有效的OAuth 2.0访问令牌,权限需要包含data:read(这是调用数据类API的基础,得先通过Forge的认证流程获取)。
  • 准备好目标模型的URL安全Base64编码URN(这个就是第二个问题要解决的,先记下来)。
  • 第一步先调用GET /modelderivative/v2/designdata/{urn}/metadata API,拿到模型的元数据节点列表,找到你要查询的模型对应的guid(每个节点代表一个模型或嵌套的构件)。
  • 接着调用目标端点:GET /modelderivative/v2/designdata/{urn}/metadata/{guid}/properties,把上面拿到的urn和guid填进去。
  • 响应返回的JSON里就包含了该节点下所有元素的属性,比如族名称、类型参数、自定义属性等,你可以根据业务需求解析这些数据。

2. 如何获取BIM 360项目的URL安全Base64编码URN?

BIM 360的文件存储在Docs的项目存储桶里,要生成符合要求的URN,得按以下步骤来:

  • 第一步:获取项目存储桶和文件信息
    • 调用BIM 360 Docs API的GET /data/v1/projects/{project_id}/storage,拿到该项目对应的bucketKey(格式通常是wip.dm.prod.{project_id})。
    • 调用GET /data/v1/projects/{project_id}/items,找到你要处理的文件,记录它的itemId(文件ID)和最新版本的versionId。
  • 第二步:构造原始URN
    把上面的信息拼成标准的对象存储URN格式:
    urn:adsk.objects:os.object:{bucketKey}/{itemId}/{versionId}
    
  • 第三步:转换为URL安全的Base64编码
    • 先把原始URN字符串做普通Base64编码。
    • 替换掉URL不安全的字符:把+换成-,/换成_,然后去掉末尾所有的=(因为Base64填充符=在URL里可能会有问题)。
    • 如果你用Forge官方SDK(比如Node.js的forge-apis),可以直接用内置的encodeURN方法自动完成这个转换,省得自己处理字符替换,比如:
      const forge = require('forge-apis');
      const safeUrn = forge.MetadataApi.encodeURN(originalUrn);
      

这样生成的URN就可以直接用于Model Derivative API的各个端点了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 17:37:39