0

我正在尝试下载计划数据的 pdf 文件。我正在按照如何通过 bim360 api 或 sdk 下载计划 pdf 文件?. 它有效,但我遇到了一个问题。我有一个在 docs.b360.autodesk.com 上似乎可以正常工作的计划文件。但我无法为其获取存储关系。响应如下所示:jsonblob.com/5a604bf0-c969-11e9-9e84-7533c7e873da

4

1 回答 1

0

来自我们的工程师团队:

属性“<strong>storage”仅适用于源文件(种子文件)。客户用来获取“存储”的关系是“<strong>FileToDocument”关系,它从源文件映射到拆分页面,因此它们包括要下载的存储。

对于“copy”创建的文档,将创建新的“CopyDocument”关系,它将复制的源(拆分页面)映射到复制的文档,而不是“文件到文档”。

如果要下载拆分页面,API(称为导出)为: https ://forge.autodesk.com/en/docs/bim360/v1/reference/http/document-management-projects-project_id- versions-version_id-exports-POST/ 检查导出作业的状态,API 是: https ://forge.autodesk.com/en/docs/bim360/v1/reference/http/document-management-projects-project_id -versions-version_id-exports-export_id-GET/

如果要下载“复制”文档的源文件,则需要遍历关系找到源文件并获取存储。

例如,如果我们将文件“A”上传到 Plans,它被拆分为文档“B”和“C”,然后我们将“B”复制到另一个文件夹,新创建的文档为“D”。“D”的关系是:

        [{
            "fromId": "B",
            "toId": "D",
            "extension": {
                "type": "derived:autodesk.bim360:CopyDocument"
            }
        }]

“B”的关系是:

        [{
            "fromId": "B",
            "toId": "D",
            "extension": {
                "type": "derived:autodesk.bim360:CopyDocument"
            }
        },
        {
            "fromId": "A",
            "toId": "B",
            "extension": {
                "type": "derived:autodesk.bim360:FileToDocument"
            }
        }]

所以,下载“D”源文件的步骤是:

  1. 得到“D”的关系。“D”的关系没有“FileToDocument”但有“CopyDocument”,我们需要使用“CopyDocument”的“fromId”-“B”-再次获取关系。
  2. 这次“B”的关系有“FileToDocument”,它的“fromId”是“A”,所以我们可以搜索返回的响应找到“A”的“relationships.storage.meta.link.href”并下载。
  3. 请注意,由于“B”和“D”在不同的文件夹中,有时用户只有“D”的访问权限,而不能访问“A”和“B”,这种情况下,步骤2会返回403错误,客户客户需要处理这种情况。
于 2019-09-16T04:09:18.800 回答