【问题标题】:Forge-Get Item Path along with custom attributes in BIM360 documentForge-Get Item Path 以及 BIM360 文档中的自定义属性
【发布时间】:2021-05-28 13:43:30
【问题描述】:

需要两个要求:

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

【问题讨论】:

    标签: node.js access-token autodesk-forge


    【解决方案1】:

    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"
          } 
        ]
      }
      }
     }
    } 
    

    【讨论】:

      【解决方案2】:
      • 在 BIM360 文档管理中获取文档的项路径。

      这个问题是关于获取项目的层次结构吗?例如根文件夹>>子文件夹>>项目?使用端点,通过指定查询参数 includePathInProject=true,它将返回项目(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+ 条记录,而每次调用应该很快(根据我的经验

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

      【讨论】:

      • 感谢梁老师的回复。我能够得到第一个要求的答案,我将“includePathInProject”添加为 True(默认情况下为 false)作为查询字符串参数,这为我提供了项目的完整层次结构。你是对的,我必须调用我的自定义属性 api,它只在 5-6 分钟内完成 50 个批次,但是由于这个自定义属性没有返回我的项目路径,因此我必须调用“forge.autodesk.com/en/docs/data/v2/reference/http/…”一个一个,这很耗时。
      • 我确实错过了那个查询参数!我很抱歉!我将在上面更新我的回复。至于获取自定义属性,我正在与工程师团队核实端点是否有可能。感谢您的回复,这对您的问题有很大帮助。
      • 一个新的答案发布在顶部。请检查是否有帮助
      • 非常感谢梁。如果您获得任何有关在自定义属性 API 中获取项目路径和项目 URL 的信息,请发帖给我们。因为它将节省大量时间。
      猜你喜欢
      • 2019-03-16
      • 2020-05-14
      • 2018-11-17
      • 2018-08-24
      • 2019-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多