访问位于BIM360 Design(旧C4R)的WIP文件夹中的文件

时间:2018-10-01 09:06:59

标签: autodesk-forge autodesk-bim360

我们的一位客户要求访问存储在 BIM360设计(Revit的旧协作-C4R)中的项目文件。我在Forge API的开发人员页面中找不到指向该位置的任何信息。我认为这样的API不是Forge的一部分,但我们想知道是否还有其他API可以提供这些文件。 确切的要求是:

  • 不断监视以查看位于此处的文件的更改。
  • 发生更改时,将所有这些文件检索并备份到本地计算机。

问题是,如何尽可能访问位于BIM360 Design云中的项目文件


更新 (2018年10月4日)

我们找到了these commands-特别是PublishModelGetPublishModelJob。这样可以做一些事情,我们至少可以按需提示发布出版物,而无需Revit。对我来说,何时创建items:autodesk.bim360:C4RModel伪文件并不明确。最重要的是,该API似乎无法接收到首选的输出文件夹,这使得备份BIM360 Design内部信息的预期工作变得非常麻烦。

更新 (25/04/2018)

我们尝试使用两个命令(PublishJobGetPublishModelJob)。我们已经模拟了项目管理员(通过x-user-id),但是Forge返回401错误(甚至没有记录)。以下是我们尝试过的(带有已编辑的documentID):

{
    "jsonapi": {
      "version": "1.0"
    },
    "data": {
      "type": "commands",
      "attributes": {
        "extension": {
          "type": "commands:autodesk.bim360:C4RModelGetPublishJob",
          "version": "1.0.0"
      }
    },
    "relationships": {
      "resources": {
        "data": [ { "type": "items", "id": "<document_id>" } ]
      }
    }
  }
}

这是Forge的回应:

{
    "jsonapi": {
        "version": "1.0"
    },
    "errors": [
        {
            "id": "a4547153-1fd4-4710-b0d1-a7184d9e7e22",
            "status": "401",
            "code": "C4R",
            "detail": "Failed to get publish model job"
        }
    ]
}

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您是否具有对工作共享的Revit文件的访问权限?发布命令是将云中的工作共享中心模型发布到Docs。要使用它,您需要访问云中央的Revit模型。 Forge发布命令与Revit桌面中的发布命令具有相同的作用。您需要相同的访问权限。要使用云工作共享功能,首先需要为您分配设计许可证,然后还需要成为Revit项目的成员。仅受邀参加Docs是不够的。

(随着C4R / Design最近被合并到Docs中,此C4R特定的许可部分有意保持与以前的许可相同。我们还拥有Team的较早版本。这会使它有点复杂。我希望它会变得更容易我们将来会前进。)

答案 1 :(得分:1)

在Forge帮助频道中与@tfrascaroli进行讨论后,我们发现此错误的根本原因是x-user-id的值不正确,因此他无权发布最新版本的将C4R模型转换为BIM360文档。

{
    "jsonapi": {
        "version": "1.0"
    },
    "errors": [
        {
            "id": "a4547153-1fd4-4710-b0d1-a7184d9e7e22",
            "status": "401",
            "code": "C4R",
            "detail": "Failed to get publish model job"
        }
    ]
}

x-user-id不是GUID,也不是我们在GET usersGET users/:user_id的响应中看到的id,它应该是{{1}的值}。将uid的值替换为x-user-id后,错误不再显示。

uid