尝试从 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

使用 Autodesk Forge 从 BIM 360 查找项目的 URL 时遇到问题

如何从 BIM 360 问题有效负载中检索链接的文档?

如何使用 BIM360 存储的 dwfx 文件在网页中实现模型查看器