ADN Club > Forge: Data Management API
BIM360 Issue pushpin - в каких координатах?
Александр Игнатович:
И? я и не говорил, что тебе нужен viewer в navis. Я как бы показал, как считается GlobalOffset
Александр Пекшев aka Modis:
Вот как работает плагин автодеска:
Юзер тыкает в элемент модели и плагин получает PickItemResult. У этого результат есть свойство Point, которое:
--- Цитировать ---The picked point on the surface of the picked model item (in world space).
--- Конец цитаты ---
В мировой системе координат!
Дальше плагин делает вот так:
Если это nwd (а именно на таком случае я тестирую), то просто отправляет эту точку.
Значит, логично предположить, что из BIM360 я получаю эту точку в мировой системе координат и мне нужно трансформировать её в систему координат модели. В том-же плагине есть такие методы:
Я попробовал их оба (на всякий случай):
--- Код - C# [Выбрать] ---Transform3D modelToWorldTransform = GetModelToWorldTransform(model);var worldToModelTransform = GetWorldToModelTransform(model);Debug.Print($"Issue origin location: {data.Location[0]}, {data.Location[1]}, {data.Location[2]}");var d = TransformPoint(data.Location, modelToWorldTransform);Debug.Print($"Issue transformed model to world location: {d[0]}, {d[1]}, {d[2]}");d = TransformPoint(data.Location, worldToModelTransform);Debug.Print($"Issue transformed world to model location: {d[0]}, {d[1]}, {d[2]}");
и получил такой результат:
--- Цитировать ---Issue origin location: 201,793944775753, -27,6070030396659, 9,06755644286818
Issue transformed model to world location: 201,793944775753, -27,6070030396659, 9,06755644286818
Issue transformed world to model location: 201,793944775753, -27,6070030396659, 9,06755644286818
--- Конец цитаты ---
А вот как выглядят свойства модели:
т.е. там нет никакого трансформа
Так что это за координаты и как их трансформировать? Где и как я тут могу использовать GlobalOffset?
Александр Игнатович:
GlobalOffset - это вектор в центр bounding box-а модели
Александр Пекшев aka Modis:
Александр Игнатович, да, ты был прав с самого начала. Я не заметил, что GlobalOffset тоже можно получить из Issue. Если банально сложить координаты булавки с координатами GlobalOffset, то получаются вроде нужные значения.
Правда, оказалось, что к Issue можно привязать несколько элементов, поэтому задачу реализовывать не стали и решили пойти другим путем. Спасибо за участие
Александр Игнатович:
You are welcome
Навигация
Перейти к полной версии