Почему я не вижу все .pf (графические) файлы при использовании Model Derivatives API - PullRequest
0 голосов
/ 13 мая 2018

Вот как я размещаю новую работу:

{
  "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. Однако, когда я использую экстрактор , я получаю полную модель со всеми графическими файлами.

После загрузки всех файлов в манифесте выше и рендеринга средства просмотра я получаю сообщение об ошибке, в котором говорится, что отсутствуют файлы (что имеет смысл, поскольку у меня есть только один файл - 0.svf)

Я пытался как можно точнее следовать документации 1019 *, но она все равно не работает.

Это происходит с каждой загружаемой моделью Navisworks, а не только с конкретной, поэтому я явно что-то не так делаю.

Чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Мне жаль слышать, что у вас проблемы.

(правка) Похоже, мы с Августо отправили сообщение одновременно. Его РЕДАКТИРОВАТЬ к первоначальному посту, скорее всего, более точным, чем мое предположение здесь.

Мне нужно самому пройти весь процесс, чтобы понять, что происходит, так как я не слишком много программирую в Forge. (Похоже, Аугусто наблюдает за обсуждением и, скорее всего, проверит его в конце, вместе с другими сотрудниками из псевдонима forge.help.)

Похоже, вы правильно получили манифест, и вам просто нужно перебрать URN дочерних элементов, чтобы явно получить остальные зависимости. Если вы посмотрите на код github из примера экстрактора, вы увидите некоторые методы, такие как getManifest, listAllDerivativeFiles и downloadAllDerivativeFiles, которые могут продемонстрировать то, что вам не хватает: https://github.com/cyrillef/extract.autodesk.io

(правка) Также стоит отметить, что файл .SVF на самом деле является zip-архивом, в котором зритель сам найдет множество других зависимостей.

0 голосов
/ 14 мая 2018

Фон : API-интерфейс для производных моделей преобразует файл проекта (например, NWD) в дружественный к сети формат (SVF).Этот формат на самом деле представляет собой набор файлов, изображений и баз данных, включая .pf.URN - это просто идентификатор этой коллекции файлов на сервере Forge.

Ответ манифеста указывает, как прошел процесс перевода, и основные выходные данные, такие как миниатюры, видимые элементы или другие, такие как OBJ или IFC (где применимо).

Теперь экстрактор выполняет итерацию по ответу манифестаи перечислить все файлы, которые являются частью URN, включая .pf, он использует этот код Nodejs (также в .NET и PHP ).

РЕДАКТИРОВАТЬ

Если вы правильно загрузили все файлы, вам нужно указать файл SVF в структуре папок.Следующий файл ( отсюда ) показывает супер базовый пример.

  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);
  });
...