Вопрос или проблема
Я прочитал Сопоставление идентификаторов в 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
) может не содержать непосредственно идентификаторы объектов. Важно следовать следующей последовательности шагов:
-
Понимание структуры OBJ-файла: Обычно строки, начинающиеся с
g
, представляют собой группы объектов, а непосредственно геометрия (вершины, нормали и текстуры) следует за ними. Поэтому вам следует обратить внимание на порядок вхождений в OBJ-файле, поскольку это может подсказать, какие геометрические данные к каким группам относятся. -
Сопоставление объектов и групп: Для определения, какой элемент в исходной модели соответствует группе, вы можете воспользоваться временными метками или другими идентификаторами, если они имеются (например, если несколько групп имеют одинаковые идентификаторы). Но, как правило, прямого соответствия нет, и вам может потребоваться ручное сопоставление.
-
Использование API Autodesk: Вы можете использовать API Autodesk для получения дополнительной информации о каждом элементе. В частности, сделайте следующий запрос, чтобы получить детали о геометрии и их связях:
GET /modelderivative/v2/viewables/{{GUID_VIEWABLE}}/metadata
Это может дать вам детальный объект, который будет содержать элементы и их атрибуты, что поможет вам сопоставить их с объектами из OBJ-файла.
-
Проверка документации: Обязательно ознакомьтесь с документацией Autodesk, касающейся извлечения геометрии и сопоставления (включая раздел, который вы уже читали). В некоторых случаях публикация может дать дополнительные подсказки о структурировании данных.
-
Анализ с использованием сторонних инструментов: Используйте сценарии или инструменты для анализа OBJ-файлов. Некоторые скрипты на Python или другие утилиты могут помочь визуализировать структуру файла и его взаимосвязи более наглядно.
Если все вышеперечисленные шаги не помогли и вы все еще не можете установить соответствие между объектами, возможно, потребуется обратиться в техническую поддержку Autodesk для получения дополнительной информации о специфических параметрах вашей модели.