如何查找Revit模型对应的BIM 360/ACC云端Item id
Revit云模型关联ACC/BIM360云端Item ID方案优化
核心需求场景说明
需要建立Revit模型与其在ACC/BIM360云端存储位置的关联关系,核心是获取云端对应文件的Item ID。此前的方案是通过Revit API拿到CloudProjectName和ModelGuid后,调用Forge Data Management接口遍历账号、匹配项目、全局搜索模型,该方案可行但搜索接口延迟过高,影响使用体验。
疑问解答
1. 是否有更简便的方法可以直接获取文件对应的云端Item ID?
有,完全不需要调用搜索接口遍历,可直接通过Revit API获取信息拼接得到:
- 调用
Document.GetCloudModelPath()拿到云模型路径对象后,直接调用该对象的GetModelGUID()方法得到模型GUID - ACC/BIM360的云模型Item ID固定格式为
urn:adsk.wipprod:dm.lineage:{模型GUID},直接将你拿到的ModelGuid填入即可得到对应Item ID,无任何延迟,也不需要调用额外的Forge接口 - 如果你同时需要项目ID,也可以通过同一路径对象的
GetProjectGUID()方法直接获取,不需要遍历账号匹配项目名称,还能避免项目名称重复导致的匹配错误
2. 步骤3的搜索接口是否有替代方案?或者是否有官方文档说明搜索接口的数据可查询时效?
- 替代方案:上面提到的直接拼接Item ID的方法是最优替代,完全规避搜索延迟问题。如果有特殊场景必须用接口查询,也可以放弃全局搜索接口,改用查询项目下所有云模型的接口直接过滤ModelGuid,索引延迟远低于全局搜索接口,但依然不如本地拼接高效
- 搜索接口时效:官方没有公开明确的索引更新时效说明,实测延迟受项目规模、服务器负载影响,从数分钟到数小时不等。这个延迟是因为搜索接口依赖后台异步构建索引,新上传/更新的模型必须等索引构建完成才能被检索到,属于正常的接口特性
内容的提问来源于stack exchange,提问作者Henrik Skov
相关产品推荐
相关产品推荐

