ADN Club > Forge: Data Management API

BIM360 Issue pushpin - в каких координатах?

<< < (3/3)

Александр Игнатович:
И? я и не говорил, что тебе нужен 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

Навигация

[0] Главная страница сообщений

[*] Предыдущая страница

Перейти к полной версии