在 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 依赖项存储在本地项目中

Autodesk Forge - 发布作业 - 必须将文件放在存储桶中并使用正确的URN

选择要在 Autodesk forge 查看器中显示的特定 3d 视图