访问 BIM 360 Design(旧 C4R)上 WHIP 文件夹中的文件
Access files located in the WIP folder of BIM360 Design (old C4R)
我们的一位客户要求我们访问存储在 BIM360 Design(旧 Collaboration for Revit - C4R)。我在 Forge APIs 的开发者页面中找不到任何指向此位置的信息。我假设这样的 API 不是 Forge 的一部分,但我们想知道是否有任何其他 API 可以提供这些文件。
具体要求是:
- 持续监控 那里的文件变化。
- 发生更改时,检索并备份所有这些文件到本地计算机。
问题是,如果可能的话,我们如何访问位于 BIM360 Design 云中的项目文件?
更新 (10/04/2018)
我们找到了 these commands - 特别是 PublishModel
和 GetPublishModelJob
。这确实有些作用,我们至少可以提示按需发布,而不需要 Revit。我不清楚何时 创建了items:autodesk.bim360:C4RModel
伪文件。最重要的是,API 似乎无法接收首选输出文件夹,这使得备份 BIM360 Design 中的信息的预期目的变得非常麻烦。
更新 (25/04/2018)
我们已经尝试使用这两个命令(PublishJob
和 GetPublishModelJob
)。我们冒充了项目管理员(通过 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"
}
]
}
有什么想法吗?
您是否有权访问工作共享的 Revit 文件?发布命令是将云端的工作共享中心模型发布到文档中。要使用它,您需要访问云中央的 Revit 模型。 Forge 发布命令与 Revit 桌面中的发布命令执行相同的操作。您需要相同的访问权限。要使用云工作共享功能,首先您需要获得分配给您的设计许可,然后您还需要成为 Revit 项目的成员。受邀使用 Docs 是不够的。
(由于最近 C4R/Design 被合并到 Docs,这个 C4R 特定许可部分有意保持与以前的许可相同。我们也有早期版本的团队。这让它有点复杂。我希望它以后我们会更容易。)
在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 users or GET users/:user_id 的响应中看到的 id
,它应该是 uid
的值。用 uid
替换 x-user-id
值后,错误不再出现。
[
{
"id": "a75e8769-621e-40b6-a524-0cffdd2f784e", //!<<< We didn't use it for `x-user-id`
"account_id": "9dbb160e-b904-458b-bc5c-ed184687592d",
"status": "active",
"role": "account_admin",
"company_id": "28e4e819-8ab2-432c-b3fb-3a94b53a91cd",
"company_name": "Autodesk",
"last_sign_in": "2016-04-05T07:27:20.858Z",
"email": "john.smith@mail.com",
"name": "John Smith",
"nickname": "Johnny",
"first_name": "John",
"last_name": "Smith",
"uid": "L9EBJKCGCXBB", //!<<<<< Here is the value for the x-user-id
"image_url": "http://static-dc.autodesk.net/etc/designs/v201412151200/autodesk/adsk-design/images/autodesk_header_logo_140x23.png",
"address_line_1": "The Fifth Avenue",
"address_line_2": "#301",
"city": "New York",
"postal_code": "10011",
"state_or_province": "New York",
"country": "United States",
"phone": "(634)329-2353",
"company": "Autodesk",
"job_title": "Software Developer",
"industry": "IT",
"about_me": "Nothing here",
"created_at": "2015-06-26T14:47:39.458Z",
"updated_at": "2016-04-07T07:15:29.261Z"
}
]
我们的一位客户要求我们访问存储在 BIM360 Design(旧 Collaboration for Revit - C4R)。我在 Forge APIs 的开发者页面中找不到任何指向此位置的信息。我假设这样的 API 不是 Forge 的一部分,但我们想知道是否有任何其他 API 可以提供这些文件。 具体要求是:
- 持续监控 那里的文件变化。
- 发生更改时,检索并备份所有这些文件到本地计算机。
问题是,如果可能的话,我们如何访问位于 BIM360 Design 云中的项目文件?
更新 (10/04/2018)
我们找到了 these commands - 特别是 PublishModel
和 GetPublishModelJob
。这确实有些作用,我们至少可以提示按需发布,而不需要 Revit。我不清楚何时 创建了items:autodesk.bim360:C4RModel
伪文件。最重要的是,API 似乎无法接收首选输出文件夹,这使得备份 BIM360 Design 中的信息的预期目的变得非常麻烦。
更新 (25/04/2018)
我们已经尝试使用这两个命令(PublishJob
和 GetPublishModelJob
)。我们冒充了项目管理员(通过 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"
}
]
}
有什么想法吗?
您是否有权访问工作共享的 Revit 文件?发布命令是将云端的工作共享中心模型发布到文档中。要使用它,您需要访问云中央的 Revit 模型。 Forge 发布命令与 Revit 桌面中的发布命令执行相同的操作。您需要相同的访问权限。要使用云工作共享功能,首先您需要获得分配给您的设计许可,然后您还需要成为 Revit 项目的成员。受邀使用 Docs 是不够的。
(由于最近 C4R/Design 被合并到 Docs,这个 C4R 特定许可部分有意保持与以前的许可相同。我们也有早期版本的团队。这让它有点复杂。我希望它以后我们会更容易。)
在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 users or GET users/:user_id 的响应中看到的 id
,它应该是 uid
的值。用 uid
替换 x-user-id
值后,错误不再出现。
[
{
"id": "a75e8769-621e-40b6-a524-0cffdd2f784e", //!<<< We didn't use it for `x-user-id`
"account_id": "9dbb160e-b904-458b-bc5c-ed184687592d",
"status": "active",
"role": "account_admin",
"company_id": "28e4e819-8ab2-432c-b3fb-3a94b53a91cd",
"company_name": "Autodesk",
"last_sign_in": "2016-04-05T07:27:20.858Z",
"email": "john.smith@mail.com",
"name": "John Smith",
"nickname": "Johnny",
"first_name": "John",
"last_name": "Smith",
"uid": "L9EBJKCGCXBB", //!<<<<< Here is the value for the x-user-id
"image_url": "http://static-dc.autodesk.net/etc/designs/v201412151200/autodesk/adsk-design/images/autodesk_header_logo_140x23.png",
"address_line_1": "The Fifth Avenue",
"address_line_2": "#301",
"city": "New York",
"postal_code": "10011",
"state_or_province": "New York",
"country": "United States",
"phone": "(634)329-2353",
"company": "Autodesk",
"job_title": "Software Developer",
"industry": "IT",
"about_me": "Nothing here",
"created_at": "2015-06-26T14:47:39.458Z",
"updated_at": "2016-04-07T07:15:29.261Z"
}
]