【问题标题】:Why can't I see all .pf (graphics) files when using Model Derivatives API为什么在使用 Model Derivative API 时看不到所有 .of(图形)文件
【发布时间】:2018-10-23 03:45:38
【问题描述】:

这是我发布新工作的方式:

{
  "url": "/modelderivative/v2/designdata/job",
  "method": "POST",
  "headers": {
    "Content-Type": "application/json",
    "x-ads-force": "true"
  },
  "data": {
    "input": {
      "urn": "BASE64_URL_ENCODED_OBJ_URN"
    },
    "output": {
      "formats": [
        {
          "type": "svf",
          "views": [
            "3d",
            "2d"
          ]
        }
      ]
    }
  }
}

这是我在转换结束时看到的清单:

{
  "type": "manifest",
  "hasThumbnail": "true",
  "status": "success",
  "progress": "complete",
  "region": "US",
  "urn": "XXX",
  "version": "1.0",
  "derivatives": [
    {
      "name": "XXX.nwd",
      "hasThumbnail": "true",
      "status": "success",
      "progress": "complete",
      "outputType": "svf",
      "children": [
        {
          "guid": "3c9bb37d-0385-4857-ab04-2e6e3ef6a7c4",
          "type": "geometry",
          "role": "3d",
          "name": "XXX.nwc",
          "status": "success",
          "hasThumbnail": "true",
          "progress": "complete",
          "viewableID": "cache",
          "useAsDefault": true,
          "children": [
            {
              "guid": "XXX",
              "type": "view",
              "role": "3d",
              "name": "Default",
              "status": "success",
              "camera": [
                308.925903,
                507.011261,
                625.618591,
                38.749268,
                -60.60965,
                89.572029,
                -0.27886,
                -0.585863,
                0.760922,
                1.38983,
                0.785398,
                1,
                0
              ],
              "useAsDefault": true,
              "hasThumbnail": "true",
              "children": [
                {
                  "guid": "XXX",
                  "type": "resource",
                  "urn": "urn:adsk.viewing:fs.file:XXX/output/0/0_100.png",
                  "role": "thumbnail",
                  "mime": "image/png",
                  "resolution": [
                    100,
                    100
                  ]
                },
                {
                  "guid": "XXX",
                  "type": "resource",
                  "urn": "urn:adsk.viewing:fs.file:XXX/output/0/0_200.png",
                  "role": "thumbnail",
                  "mime": "image/png",
                  "resolution": [
                    200,
                    200
                  ]
                },
                {
                  "guid": "XXX",
                  "type": "resource",
                  "urn": "urn:adsk.viewing:fs.file:XXX/output/0/0_400.png",
                  "role": "thumbnail",
                  "mime": "image/png",
                  "resolution": [
                    400,
                    400
                  ]
                }
              ]
            },
            {
              "guid": "XXX",
              "type": "resource",
              "urn": "urn:adsk.viewing:fs.file:XXX/output/0/0.svf",
              "role": "graphics",
              "mime": "application/autodesk-svf"
            }
          ]
        },
        {
          "guid": "XXX",
          "type": "resource",
          "urn": "urn:adsk.viewing:fs.file:XXX/output/0/properties.db",
          "role": "Autodesk.CloudPlatform.PropertyDatabase",
          "mime": "application/autodesk-db",
          "status": "success"
        }
      ]
    }
  ]
}

当然,Authorization 标头添加了生成的令牌

由于某种原因,我只能看到只生成了 svf 文件。 然而,当我使用extractor 时,我得到了包含所有图形文件的完整模型。

下载上面清单中的所有文件并渲染查看器后,我收到一个错误,说缺少文件(这是有道理的,因为我只有一个文件 - 0.svf

我试图尽可能地关注documentation,但它仍然不起作用。

我上传的每个 Navisworks 模型都会发生这种情况,而不仅仅是一个特定的模型,所以我显然做错了。

我错过了什么?

【问题讨论】:

    标签: autodesk-forge


    【解决方案1】:

    背景Model Derivative API 将设计文件(例如 NWD)转换为网络友好格式 (SVF)。这种格式实际上是文件、图像和数据库的集合,包括.pfURN 只是 Forge 服务器上此文件集合的标识符。

    清单响应指示翻译过程的进展情况以及主要输出,如缩略图、可视项或其他,如 OBJ 或 IFC(如果适用)。

    现在提取器遍历清单响应并列出属于URN 的所有文件,包括.pf,它使用此Nodejs 代码(也在.NETPHP 中)。

    编辑

    假设您已正确下载所有文件,您需要指向文件夹结构中的 SVF 文件。以下文件 (from here) 展示了一个超级基本的示例。

      var myViewerDiv = document.getElementById('MyViewerDiv');
      var viewer = new Autodesk.Viewing.Private.GuiViewer3D(myViewerDiv);
      var options = {
          'env' : 'Local',
          'document' : './shaver/0.svf'
      };
      Autodesk.Viewing.Initializer(options, function() {
        viewer.start(options.document, options);
      });
    

    【讨论】:

    • 感谢 Augusto,我想我的问题还不清楚。由于某种原因,在下载完上面清单中的所有文件后,查看器会抛出错误,说有文件丢失。如果我使用 Autodesk 提供的提取器,则在提取完全相同的模型时会得到更多文件。在这种情况下,我似乎得到了部分列表,我只是不明白为什么
    • 用更准确的问题描述编辑了问题
    • 使用提取工具后,当您尝试显示模型时,您能分享一下您遇到的错误吗?随时将其私下发送到 autodesk.com 上的 forge.help
    • 发送,附上截图
    • 感谢@Augusto 的更新!但我不确定问题与svf 文件的正确路径有关。原因是我在尝试加载查看器时得到的 404 是针对另一个文件 Materials.json.gz 在清单文件中不存在。如果我使用提取器下载气泡文件,我可以看到更多我在上面共享的清单中不可见的文件。
    【解决方案2】:

    得知您遇到问题,我深感抱歉。

    (编辑)看起来奥古斯托和我同时发帖。他对原始帖子的编辑很可能比我在这里的猜测更准确。

    我需要自己逐步完成该过程以了解正在发生的事情,因为我在 Forge 中没有进行大量编码。 (看起来 Augusto 正在观看讨论,并且很可能会在他的最后与使用 forge.help 别名的其他工作人员一起测试这个。)

    看起来您已正确检索清单,您只需要遍历子项的 URN 即可显式检索剩余的依赖项。如果您查看提取器示例中的 github 代码,您会看到一些方法,例如 getManifest、listAllDerivativeFiles 和 downloadAllDerivativeFiles,它们可能会证明您缺少什么:https://github.com/cyrillef/extract.autodesk.io

    (编辑)还值得注意的是,.SVF 文件实际上是一个 zip 存档,查看者可以在其中找到许多其他依赖项。

    【讨论】:

    • 谢谢大卫!我在 Augusto 的回答中添加了评论
    猜你喜欢
    • 2020-09-30
    • 2021-03-28
    • 2019-10-09
    • 2020-01-26
    • 2020-03-01
    • 2018-05-09
    • 2019-12-06
    • 2020-11-14
    • 2012-08-18
    相关资源
    最近更新 更多