伪造 - 获取项目路径以及 BIM360 文档中的自定义属性

Forge-Get Item Path along with custom attributes in BIM360 document

需要两个要求:

  1. 在BIM360文档管理中获取文档的项路径。
  2. 获取该项目的所有自定义属性。 对于要求。 1,存在一个 api 来获取和获取自定义属性,另一个 api 存在并且可以检索数据。 有没有办法在单个 api 调用中同时满足这两个要求,而不是使用两个。 在大量记录的情况下,api 检索项目路径需要一个多小时来获取 19000 多条记录,并且尽管使用刷新令牌,令牌也会过期,而自定义属性 api 会批量处理数据50,仅需 5 分钟即可完成。 请提出建议。
  • 在BIM360文档管理中获取文档的项路径。

这个问题是关于获取项目的层次结构的吗?例如根文件夹>>子文件夹>>项目?对于端点,通过指定查询参数 includePathInProject=true,它将 return 文件夹结构中项目 (pathInProject) 的相对路径。 https://forge.autodesk.com/en/docs/data/v2/reference/http/projects-project_id-items-item_id-GET/

"data": {
    "type": "items",
    "id": "urn:adsk.wipprod:dm.lineage:xxx",
    "attributes": {
        "displayName": "my-issue-att.png",
        "createTime": "2021-03-12T04:51:01.0000000Z",
        "createUserId": "xxx",
        "createUserName": "Xiaodong Liang",
        "lastModifiedTime": "2021-03-12T04:51:02.0000000Z",
        "lastModifiedUserId": "200902260532621",
        "lastModifiedUserName": "Xiaodong Liang",
        "hidden": false,
        "reserved": false,
        "extension": {
            "type": "items:autodesk.bim360:File",
            "version": "1.0",
            "schema": {
                "href": "https://developer.api.autodesk.com/schema/v1/versions/items:autodesk.bim360:File-1.0"
            },
            "data": {
                "sourceFileName": "my-issue-att.png"
            }
        },
        "pathInProject": "/Project Files"
    }

或者如果您可以通过父项的数据进行迭代

"parent": {
    "data": {
      "type": "folders",
      "id": "urn:adsk.wipprod:fs.folder:co.sdfedf8wef"
    },
    "links": {
      "related": {
        "href": "https://developer.api.autodesk.com/data/v1/projects/b.project.id.xyz/items/urn:adsk.wipprod:dm.lineage:hC6k4hndRWaeIVhIjvHu8w/parent"
      }
    }
  },
  • 获取该项目的所有自定义属性。对于要求。 1,存在一个 api 来获取和获取自定义属性,另一个 api 存在并且可以检索数据。有没有办法在单个 api 调用中同时满足这两个要求,而不是使用两个。在大量记录的情况下,api 检索项目路径需要一个多小时来获取 19000 多条记录,并且尽管使用了刷新令牌,令牌也会过期,而自定义属性 api 会批量处理数据50,仅需 5 分钟即可完成。请建议。*

让我试着更好地理解这个问题。首先,有两件事:自定义属性定义和自定义属性值(带有文档)。你能澄清一下他们有 19000 多条记录吗?

如果自定义属性定义,API 获取它们是 https://forge.autodesk.com/en/docs/bim360/v1/reference/http/document-management-custom-attribute-definitions-GET/ 它支持设置每次调用的限制。即一次调用的最大限制是 200,这意味着你可以通过 95 次获取 19000+ 条记录,而每次调用应该很快(以我的经验 < 10 秒)。总共大约 15 分钟,而不是 1 个多小时.. 或者在你这边,每次调用200条记录会花很多时间?

如果自定义属性值,API 获取它们是 https://forge.autodesk.com/en/docs/bim360/v1/reference/http/document-management-versionsbatch-get-POST/ 如您所知,每次 50 条记录。似乎只有在获取 19000 多条记录的值时,您这边才 5 分钟就很快了?

Batch-Get Custom Attributes是针对Document Management特定的附加属性。而项目中的路径是数据管理的一般信息。

数据管理API以命令的形式提供了一些端点,可以要求后端处理一堆项目的数据。 https://forge.autodesk.com/en/docs/data/v2/reference/http/ListItems/

此命令一次最多可以检索 50 个指定项目的元数据。它还支持标志 includePathInProject,但用法很棘手,API 文档没有说明。在响应中,它将告诉这些项目的 pathInProject。它可能比迭代更节省时间。

 {
     "jsonapi": {
      "version": "1.0"
 },
  "data": {
"type": "commands",
"attributes": {
  "extension": {
    "type": "commands:autodesk.core:ListItems",
    "version": "1.0.0" ,
    "data":{
        "includePathInProject":true
    }

  }
},
"relationships": {
  "resources": {
    "data": [
      {
        "type": "items",
        "id": "urn:adsk.wipprod:dm.lineage:vkLfPabPTealtEYoXU6m7w"
      },
      {  
        "type": "items",
        "id": "urn:adsk.wipprod:dm.lineage:bcg7gqZ6RfG4BoipBe3VEQ"
      } 
    ]
  }
  }
 }
}