Как узнать, к какому элементу принадлежит переведенная геометрия OBJ?

Вопрос или проблема

Я прочитал Сопоставление идентификаторов в OBJ-файлах с идентификаторами в исходной модели, но не смог найти запрашиваемые objectid в OBJ-файле. Ни один из идентификаторов группы не соответствует ожидаемым objectid: 51, 52, 53, 54:

g Obj.3285
g Obj.3285:1
g Obj.3287
g Obj.3287:1
g Obj.3286
g Obj.3286:1
g Obj.3288
g Obj.3288:1
g Obj.3288:2
g Obj.3287:2
g Obj.3286:2
g Obj.3285:2

Как мы можем выяснить, к какому элементу относится Obj.3285 в исходном проекте?

Перевод и соответствующая часть дерева объектов выглядят следующим образом.

POST /modelderivative/v2/designdata/job
Content-Type: application/json

{
  "input": {
      "urn": "{{URL_SAFE_URN_OF_SOURCE_FILE}}"
  },
  "output": {
      "destination": {
          "region": "us"
      },
      "formats": [
          {
              "type": "obj",
              "advanced": {
                  "modelGuid":"{{GUID_VIEWABLE}}",
                  "objectIds" : [3313] 
              }
          }
      ]
  }
}

...
              {
                "objectid": 3313,
                "objects": [
                  {
                    "objectid": 51,
                    "name": "Основная стена [364277]"
                  },
                  {
                    "objectid": 52,
                    "name": "Основная стена [364425]"
                  },
                  {
                    "objectid": 53,
                    "name": "Основная стена [364512]"
                  },
                  {
                    "objectid": 54,
                    "name": "Основная стена [364593]"
                  }
                ],
                "name": "Экстерьер - Кирпич на CMU"
              }
...

Ответ или решение

Чтобы выяснить, как переведённая геометрия OBJ соотносится с элементами в исходной модели, необходимо понимать структуру OBJ-файлов и как они соотносятся с объектами в модели Autodesk.

В вашем случае вы предоставили информацию о группах в OBJ-файле (например, Obj.3285, Obj.3287 и т.д.) и о соответствующих objectid из модели (51, 52, 53, 54). Однако, как вы уже заметили, objectid в OBJ не совпадают с ожидаемыми значениями.

При анализе OBJ-файлов будет полезно учитывать, что имя группы (например, Obj.3285) может не содержать непосредственно идентификаторы объектов. Важно следовать следующей последовательности шагов:

  1. Понимание структуры OBJ-файла: Обычно строки, начинающиеся с g, представляют собой группы объектов, а непосредственно геометрия (вершины, нормали и текстуры) следует за ними. Поэтому вам следует обратить внимание на порядок вхождений в OBJ-файле, поскольку это может подсказать, какие геометрические данные к каким группам относятся.

  2. Сопоставление объектов и групп: Для определения, какой элемент в исходной модели соответствует группе, вы можете воспользоваться временными метками или другими идентификаторами, если они имеются (например, если несколько групп имеют одинаковые идентификаторы). Но, как правило, прямого соответствия нет, и вам может потребоваться ручное сопоставление.

  3. Использование API Autodesk: Вы можете использовать API Autodesk для получения дополнительной информации о каждом элементе. В частности, сделайте следующий запрос, чтобы получить детали о геометрии и их связях:

    GET /modelderivative/v2/viewables/{{GUID_VIEWABLE}}/metadata

    Это может дать вам детальный объект, который будет содержать элементы и их атрибуты, что поможет вам сопоставить их с объектами из OBJ-файла.

  4. Проверка документации: Обязательно ознакомьтесь с документацией Autodesk, касающейся извлечения геометрии и сопоставления (включая раздел, который вы уже читали). В некоторых случаях публикация может дать дополнительные подсказки о структурировании данных.

  5. Анализ с использованием сторонних инструментов: Используйте сценарии или инструменты для анализа OBJ-файлов. Некоторые скрипты на Python или другие утилиты могут помочь визуализировать структуру файла и его взаимосвязи более наглядно.

Если все вышеперечисленные шаги не помогли и вы все еще не можете установить соответствие между объектами, возможно, потребуется обратиться в техническую поддержку Autodesk для получения дополнительной информации о специфических параметрах вашей модели.

Оцените материал
Добавить комментарий

Капча загружается...