尝试从 BIM 360 URN 显示 SVF 时出错
Posted
技术标签:
【中文标题】尝试从 BIM 360 URN 显示 SVF 时出错【英文标题】:Error while trying to Display an SVF from a BIM 360 URN 【发布时间】:2020-11-18 12:44:04 【问题描述】:我正在尝试使用此存储库中的代码示例显示存储在 BIM 360 中的 Revit 模型:https://github.com/Autodesk-Forge/forge-tutorial-postman/blob/master/docs/display_svf.html
在这个 html 文件中,我只需要提供我的访问令牌和 URN(编码)。如果我的模型是从我创建的存储桶上传的,则此方法有效,但当我尝试从我从 BIM 360 文档获得的 URN 执行此操作时,我收到 Failed fetching Forge manifest
错误。
这些是我正在采取的步骤:
获取文档 URN
我使用了这个端点https://developer.api.autodesk.com/data/v1/projects/b.ef7b0d22-8480-40d6-9749-12e5d7192ac9/folders/urn:adsk.wipprod:fs.folder:co.nAdJ4fwLRRuGem-qpDIlTA/contents
从结果中我得到了我的骨灰盒:
对 URN 进行编码
之后我到达https://www.base64encode.org/ 并对值进行编码
urn:adsk.objects:os.object:wip.dm.prod/ac9e8b48-4a51-4f6a-a7e4-a947c9d6a1e6.rvt
结果是这样的:
dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6d2lwLmRtLnByb2QvYWM5ZThiNDgtNGE1MS00ZjZhLWE3ZTQtYTk0N2M5ZDZhMWU2LnJ2dA
在 display_sfv.html 中设置我的访问令牌和编码的 URN
之后,我放置我的访问令牌和编码的 URN,如下所示:
最后我从控制台得到了这个错误:
如果我从我创建的存储桶中使用和骨灰盒,此示例同样有效,但是当我使用从 BIM 360 文件夹中获取的骨灰盒时,我会收到该错误消息。我的错误在哪里?
【问题讨论】:
【参考方案1】:要从 BIM360 加载模型,您必须使用导数属性下的 urn,如下所示:
"derivatives":
"data":
"type": "derivatives",
"id": "dXJuOmFkc2sud2lwcWE6ZnMuZmlsZTp2Zi50X3hodWwwYVFkbWhhN2FBaVBuXzlnP3ZlcnNpb249MQ"
,
"meta":
"link":
"href": "/modelderivative/v2/designdata/dXJuOmFkc2sud2lwcWE6ZnMuZmlsZTp2Zi50X3hodWwwYVFkbWhhN2FBaVBuXzlnP3ZlcnNpb249MQ/manifest?scopes=b360project.6f8813fe-31a7-4440-bc63-d8ca97c856b4,global,O2tenant.tenantId"
,
参考:https://forge.autodesk.com/en/docs/data/v2/reference/http/projects-project_id-versions-version_id-GET/
【讨论】:
成功了,谢谢。但是这个值urn:adsk.objects:os.object:wip.dm.prod/ac9e8b48-4a51-4f6a-a7e4-a947c9d6a1e6.rvt
是为了什么?
这是您的 RVT 文件存储的 OSS 存储桶位置,请参阅forge.autodesk.com/en/docs/data/v2/reference/http/…
仅供参考,BIM360 中使用的 OSS Bucket 与通过 POST Buckets 创建的其他开发人员不同。它有不同的实现。所以,衍生的URN编码方式会不一样。以上是关于尝试从 BIM 360 URN 显示 SVF 时出错的主要内容,如果未能解决你的问题,请参考以下文章
使用 Model Derivative api 的 BIM 360 设计能够看到 SVF2
如何使用 javascript/Nodejs 从生成的 urn 中查看 Forge 中的 BIM360 Revit 文件
Autodesk Forge:如何在 BIM 360 Docs 中查找模型的 svf 文件的 URL