在 Autodesk forge 中选择的项目中获取不同的 3d 视图
Posted
技术标签:
【中文标题】在 Autodesk forge 中选择的项目中获取不同的 3d 视图【英文标题】:Get different 3d views within item selected in Autodesk forge 【发布时间】:2021-06-18 23:25:47 【问题描述】:我们使用 Autodesk Forge 中的数据管理 API 获取中心、文件夹列表、文件夹中的项目。
参考:https://forge.autodesk.com/en/docs/data/v2/reference/http/
如果我们想显示所选项目(例如 file1.rvt)中存在的所有 3d 视图(名称和缩略图),如何获取数据?
【问题讨论】:
【参考方案1】:为此,您需要为要显示视图/缩略图的文件项的版本提取清单和元数据。在您的项目有效负载中,您将找到所有可用的版本。获取最新的并找到它的“id”,如下所示:
"id": "urn:adsk.wipprod:fs.file:vf.7aKButAtTo-VRvSJqZl0jg?version=13",
将其编码为安全的 Base64 编码。对 ID 进行安全编码很重要,否则您可能会得到 '=' '-' '/' 字符,这些字符稍后在 GET URL 路径上无效。
dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLjdhS0J1dEF0VG8tVlJ2U0pxWmwwamc_dmVyc2lvbj0xMw
要获得视图,您通常会拉动metadata 并获得如下内容:
"data":
"type": "metadata",
"metadata": [
"name": "3D View: View 01",
"role": "3d",
"guid": "a6128518-dcf0-967b-31a1-3439a375daeb"
,
"name": "3D View: View 02",
"role": "3d",
"guid": "488e0550-6e79-38b3-9f56-ae8fd21416bb"
,
"name": "Sheet: A00 - SITE PLAN",
"role": "2d",
"guid": "beaab4e2-9abc-8ca2-4e65-23df60e4b6a7"
]
有 2 种缩略图 - 文件缩略图,通常是上次保存文件时处于活动状态的视图。您可以通过GET /thumbnail API 获取该缩略图。但是如果要获取所有视图的缩略图,则需要拉取manifest 并解析JSON 响应。你会得到这样的回复(为了让这篇文章的阅读更容易,我简化了下面的回复)。
您将搜索具有“角色”===“缩略图”的子节点。它的父级会告诉您它附加到哪个视图。值得注意的是,您实际上并不需要调用 /metadata 端点,因为只要您知道在哪里阅读清单,清单就已经为您提供了所有信息。例如,假设我想为工作表视图获取 200x200 的缩略图分辨率。
我将搜索具有“type”===“geometry”&&“role”===“2d”的节点,然后在其子节点中搜索具有“role”===“thumbnail”&&“的节点分辨率” === [200, 200]。从那个节点,我得到了派生URN(即“urn”:“urn:adsk.viewing:fs.file:dXJuOm...uZHdmeA/output/e28378ef-7b4a-878f-cb72-26fbb1a28b2e_f2d/thumbnail_200.png”)现在我可以使用GET :urn/manifest/:derivativeurn 端点来获取缩略图文件。就是这样。
注意,父节点具有视图名称,其子节点之一具有“role” === “graphics” && “mime”:“application/autodesk-f2d”,以及与元数据响应中的条目。因此,您可以从元数据端点的清单中提取名称和 guid 视图。 (对于 3D 视图,您需要搜索“mime”:“application/autodesk-svf”或“mime”:“application/autodesk-svf2”,具体取决于您将模型翻译成的格式)。
"urn": "dXJuOm...uZHdmeA",
"derivatives": [
"hasThumbnail": "true",
"children": [
"role": "3d",
"hasThumbnail": "true",
"children": [
"role": "graphics",
"mime": "application/autodesk-svf2",
"guid": "a6128518-dcf0-967b-31a1-3439a375daeb",
"type": "resource"
,
"urn": "urn:adsk.viewing:fs.file:dXJuOm...uZHdmeA/output/f0224dd3-8767-45c1-ff99-5c9c881b9fee/0.svf.png01_thumb_400x400.png",
"role": "thumbnail",
"mime": "image/png",
"guid": "630d764b-6e55-4d17-8446-6858454d8158",
"type": "resource",
"resolution": [400, 400]
,
"urn": "urn:adsk.viewing:fs.file:dXJuOm...uZHdmeA/output/f0224dd3-8767-45c1-ff99-5c9c881b9fee/0.svf.png01_thumb_200x200.png",
"role": "thumbnail",
"mime": "image/png",
"guid": "7294c4f7-55ec-41d7-94e5-98c7294d1ae1",
"type": "resource",
"resolution": [200, 200]
,
"urn": "urn:adsk.viewing:fs.file:dXJuOm...uZHdmeA/output/f0224dd3-8767-45c1-ff99-5c9c881b9fee/0.svf.png01_thumb_100x100.png",
"role": "thumbnail",
"mime": "image/png",
"guid": "d1f2f54d-1ce7-49e0-8360-24f212a0cb33",
"type": "resource",
"resolution": [100, 100]
,
...
],
"name": "3D View: View 01",
"guid": "f0224dd3-8767-45c1-ff99-5c9c881b9fee",
"progress": "complete",
"type": "geometry",
"properties": ...,
"status": "success",
"viewableID": "f0224dd3-8767-45c1-ff99-5c9c881b9fee"
,
"role": "3d",
"hasThumbnail": "true",
"children": [
"role": "graphics",
"mime": "application/autodesk-svf2",
"guid": "488e0550-6e79-38b3-9f56-ae8fd21416bb",
"type": "resource"
,
"urn": "urn:adsk.viewing:fs.file:dXJuOm...uZHdmeA/output/5f6ae103-9de8-048e-f858-c7b0b0b9f46c/1.svf.png01_thumb_400x400.png",
"role": "thumbnail",
"mime": "image/png",
"guid": "e4ff0fb3-20a0-43c2-b01a-e35f08205ea9",
"type": "resource",
"resolution": [ 400, 400 ]
,
"urn": "urn:adsk.viewing:fs.file:dXJuOm...uZHdmeA/output/5f6ae103-9de8-048e-f858-c7b0b0b9f46c/1.svf.png01_thumb_200x200.png",
"role": "thumbnail",
"mime": "image/png",
"guid": "0fe4e17a-8eb9-49c3-bfca-7f8e747ae779",
"type": "resource",
"resolution": [ 200, 200 ]
,
"urn": "urn:adsk.viewing:fs.file:dXJuOm...uZHdmeA/output/5f6ae103-9de8-048e-f858-c7b0b0b9f46c/1.svf.png01_thumb_100x100.png",
"role": "thumbnail",
"mime": "image/png",
"guid": "b0353527-cade-48bb-bbfc-7b544ea2d0ae",
"type": "resource",
"resolution": [ 100, 100 ]
,
...
],
"name": "3D View: View 02",
"guid": "5f6ae103-9de8-048e-f858-c7b0b0b9f46c",
"progress": "complete",
"type": "geometry",
"properties": ...,
"status": "success",
"viewableID": "5f6ae103-9de8-048e-f858-c7b0b0b9f46c"
,
"guid": "e28378ef-7b4a-878f-cb72-26fbb1a28b2e",
"type": "geometry",
"role": "2d",
"name": "Sheet: A00 - SITE PLAN",
"status": "success",
"hasThumbnail": "true",
"progress": "complete",
"viewableID": "com.autodesk.dwf.ePlot_281AFDC7-8CE7-4D19-BE69-A47E6364BF53",
"children": [
"urn": "urn:adsk.viewing:fs.file:dXJuOm...uZHdmeA/output/e28378ef-7b4a-878f-cb72-26fbb1a28b2e_f2d/primaryGraphics.f2d",
"role": "graphics",
"mime": "application/autodesk-f2d",
"guid": "beaab4e2-9abc-8ca2-4e65-23df60e4b6a7",
"type": "resource",
"status": "success"
,
"guid": "382e91af-fb2f-4782-a058-6bff5a477c89",
"type": "view",
"role": "2d",
"name": "Sheet: A00 - SITE PLAN",
"viewbox": [...]
,
"urn": "urn:adsk.viewing:fs.file:dXJuOm...uZHdmeA/output/e28378ef-7b4a-878f-cb72-26fbb1a28b2e_f2d/thumbnail_400.png",
"role": "thumbnail",
"mime": "image/png",
"guid": "74d8c07b-0703-2505-8c78-c4d7c95fd620",
"type": "resource",
"resolution": [400, 400],
"status": "success"
,
"urn": "urn:adsk.viewing:fs.file:dXJuOm...uZHdmeA/output/e28378ef-7b4a-878f-cb72-26fbb1a28b2e_f2d/thumbnail_200.png",
"role": "thumbnail",
"mime": "image/png",
"guid": "0aec7773-5a02-c9ed-37b2-0e92020dc63a",
"type": "resource",
"resolution": [200, 200],
"status": "success"
,
"urn": "urn:adsk.viewing:fs.file:dXJuOm...uZHdmeA/output/e28378ef-7b4a-878f-cb72-26fbb1a28b2e_f2d/thumbnail_100.png",
"role": "thumbnail",
"mime": "image/png",
"guid": "91011625-63a4-1165-4e6f-700dedff94a7",
"type": "resource",
"resolution": [ 100, 100 ],
"status": "success"
,
...
]
],
"name": "Myfile.rvt",
"progress": "complete",
"outputType": "svf2",
"status": "success"
],
"hasThumbnail": "true",
"progress": "complete",
"type": "manifest",
"region": "US",
"version": "1.0",
"status": "success"
【讨论】:
以上是关于在 Autodesk forge 中选择的项目中获取不同的 3d 视图的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Autodesk Forge 查看器中更改选择颜色?
如何克服 Autodesk Forge Viewer 中的窗口选择限制?
我们可以在 Autodesk forge 中选择和剖切点云吗?
Autodesk forge 查看器 js 依赖项存储在本地项目中