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 文档中的自定义属性的主要内容,如果未能解决你的问题,请参考以下文章
Power BI 如何实现具有组织结构层级的RLS、及多条件RLS