Autodesk Forge 模型衍生 API:在 Autodesk Forge 衍生子项中找不到“图形”角色

Posted

技术标签:

【中文标题】Autodesk Forge 模型衍生 API:在 Autodesk Forge 衍生子项中找不到“图形”角色【英文标题】:Autodesk Forge Model Derivative API: Can't not find 'graphics' role in autodesk forge derivatives children 【发布时间】:2020-11-10 10:20:22 【问题描述】:

我想将 .rvt 文件转换为 .svf。 我正在使用 java SDK。(仅限,不是 node.js,C#)

首先我必须得到衍生子代。

这是我获取衍生子的源代码。

ObjectsApi objectsApi = new ObjectsApi();

ApiResponse<BucketObjects> objects = objectsApi.getObjects("test", 100, null, null, forgeOAuth,
        forgeOAuth.getCredentials());

String base64Urn = "";

// iterate each items of the bucket
for (int i = 0; i < objects.getData().getItems().size(); i++) 

    ObjectDetails eachItem = objects.getData().getItems().get(i);

    base64Urn = DatatypeConverter.printBase64Binary(eachItem.getObjectId().getBytes());



ObjectDetails eachItem = objects.getData().getItems().get(0);

base64Urn = DatatypeConverter.printBase64Binary(eachItem.getObjectId().getBytes());
ApiResponse<Manifest> manifest = derivativesApi.getManifest(base64Urn, "", forgeOAuth, forgeOAuth.getCredentials());

但这不适合获得“图形”角色。 它为我提供 Autodesk.CloudPlatform.PropertyDatabase、3d、一些缩略图

以下是 manifest.getData() 的结果集

class Manifest 
    urn: dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6cDE4MDE3Ni8xODAyMTVfMTAwXzNfQTEwMS5ydnQ
    type: manifest
    progress: complete
    status: success
    hasThumbnail: true
    region: US
    derivatives: [class ManifestDerivative 
        name: 180215_100_3_A101.rvt
        hasThumbnail: true
        outputType: svf
        progress: complete
        status: success
        children: [class ManifestChildren 
            type: resource
            role: Autodesk.CloudPlatform.PropertyDatabase
            guid: 6fac95cb-af5d-3e4f-b943-8a7f55847ff1
            name: null
            phaseNames: null
            viewableID: null
            hasThumbnail: null
            mime: application/autodesk-db
            urn: urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6cDE4MDE3Ni8xODAyMTVfMTAwXzNfQTEwMS5ydnQ/output/Resource/model.sdb
            progress: null
            status: success
            resolution: []
            modelGUID: null
            objectIds: []
            messages: null
            camera: []
        , class ManifestChildren 
            type: geometry
            role: 3d
            guid: 3cb8c807-d232-58e3-31d1-f4f89ad98945
            name: 3D
            phaseNames: Phase 1
            viewableID: ecda35ed-79db-4c54-8ae1-3bb64e7f3640-000473bc
            hasThumbnail: true
            mime: null
            urn: null
            progress: complete
            status: success
            resolution: []
            modelGUID: null
            objectIds: []
            messages: null
            camera: []
        ]
    , class ManifestDerivative 
        name: null
        hasThumbnail: null
        outputType: thumbnail
        progress: complete
        status: success
        children: [class ManifestChildren 
            type: resource
            role: thumbnail
            guid: db899ab5-939f-e250-d79d-2d1637ce4565
            name: null
            phaseNames: null
            viewableID: null
            hasThumbnail: null
            mime: image/png
            urn: urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6cDE4MDE3Ni8xODAyMTVfMTAwXzNfQTEwMS5ydnQ/output/preview1.png
            progress: null
            status: success
            resolution: [100, 100]
            modelGUID: null
            objectIds: []
            messages: null
            camera: []
        , class ManifestChildren 
            type: resource
            role: thumbnail
            guid: 3f6c118d-f551-7bf0-03c9-8548d26c9772
            name: null
            phaseNames: null
            viewableID: null
            hasThumbnail: null
            mime: image/png
            urn: urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6cDE4MDE3Ni8xODAyMTVfMTAwXzNfQTEwMS5ydnQ/output/preview2.png
            progress: null
            status: success
            resolution: [200, 200]
            modelGUID: null
            objectIds: []
            messages: null
            camera: []
        , class ManifestChildren 
            type: resource
            role: thumbnail
            guid: 4e751806-0920-ce32-e9fd-47c3cec21536
            name: null
            phaseNames: null
            viewableID: null
            hasThumbnail: null
            mime: image/png
            urn: urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6cDE4MDE3Ni8xODAyMTVfMTAwXzNfQTEwMS5ydnQ/output/preview4.png
            progress: null
            status: success
            resolution: [400, 400]
            modelGUID: null
            objectIds: []
            messages: null
            camera: []
        ]
    ]

相同的 revit 文件在 C# 中运行良好。


    "urn": "urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6cDE4MDE3Ni90ZXN0LmR3Zng/output/99c9d5d0-fa02-c7ed-15a9-6a62ec928cd2/0.svf",
    "role": "graphics",
    "mime": "application/autodesk-svf",
    "guid": "87f5601a-158a-10fb-f22a-c828d008e178",
    "type": "resource",
    "status": "success"

我能否获得让衍生子项具有“角色”:“图形”、“mime”:“应用程序/autodesk-svf”的方法?

【问题讨论】:

【参考方案1】:

如果您的目标只是“将 .rvt 文件转换为 .svf”,则根本不必担心 Java 代码中清单的结构。使用 Forge Model Derivative 服务转换设计会生成各种输出(缩略图、2D 图纸、3D 视图、属性数据库等),然后,选择所需的 2D 图纸或 3D 视图通常由客户端上的 javascript 代码处理一边。

例如,在这个tutorial 中,JavaScript 代码查找并加载“默认”派生,但您也可以使用search 方法查找具有特定role 和/或mime 值的所有可视项.

【讨论】:

感谢您的回答!但我的目标不仅仅是将 .rvt 文件转换为 .svf。我的最终目标是在本地环境中加载 3D 视图。所以我想下载所有文件以在本地环境中加载 3D 视图,例如 .svf、*.json.gz、.sdb 扩展名。我可以通过客户端的 JavaScript 代码或 java 下载各种输出(缩略图、2D 表、3D 视图、属性数据库等)吗? 啊,我明白了。我不知道 Java 的任何选项,但是是的,有几种方法可以下载整个 SVF 包,例如,通过关注forge.autodesk.com/blog/forge-svf-extractor-nodejs,或使用github.com/petrbroz/forge-convert-utils 作为命令行工具。

以上是关于Autodesk Forge 模型衍生 API:在 Autodesk Forge 衍生子项中找不到“图形”角色的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Autodesk 模型衍生 API 元数据中的 objectids 与 Forge Viewer 模型 dbids 匹配?

Autodesk Forge 设计自动化/模型衍生 API - 查看器缓存 svf 文件

400 错误:错误请求 AutoDesk Forge Api

Autodesk Forge 混乱的视图

Autodesk Forge 查看器:直接加载 SVF?

Autodesk Forge 数据管理 - 对象 ID 与对象名称与对象键