【问题标题】:Autodesk Forge Model Derivative API: Can't not find 'graphics' role in autodesk forge derivatives childrenAutodesk Forge 模型衍生 API:在 Autodesk Forge 衍生子项中找不到“图形”角色
【发布时间】: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”的方法?

【问题讨论】:

    标签: java autodesk-forge autodesk-viewer autodesk-model-derivative


    【解决方案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 作为命令行工具。
    猜你喜欢
    • 2021-12-31
    • 2021-03-09
    • 2020-05-27
    • 2016-12-15
    • 2017-10-02
    • 2021-06-02
    • 2021-04-10
    • 2017-11-29
    • 2017-12-06
    相关资源
    最近更新 更多