Forge-Get Item Path 以及 BIM360 文档中的自定义属性

Posted

技术标签:

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

需要两个要求:

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

【问题讨论】:

【参考方案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 的信息,请发帖给我们。因为它将节省大量时间。

以上是关于Forge-Get Item Path 以及 BIM360 文档中的自定义属性的主要内容,如果未能解决你的问题,请参考以下文章

PHP实用函数整理

Power BI 如何实现具有组织结构层级的RLS、及多条件RLS

Vue实现登录以及登出

递归遍历多层次菜单

Umbraco 中获取一个media item的文件路径 file path

最近公司要做BI,想购买一套BI平台,不知道该选哪一个,目前想比较下国产思迈特以及oracle biee的平台