Получение всех элементов в одной системе координат.

Автор Тема: Получение всех элементов в одной системе координат.  (Прочитано 1585 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн shssАвтор темы

  • ADN Club
  • ***
  • Сообщений: 214
  • Карма: 5
  • Sergey
  • Skype: sergey.s.shevtsov
Добрый день!
Есть файл с привязанными  нему ревит файлами, элементы взаимодействуют друг с другом (например, стена из привязанного файла является хостом для розетки и т.д.), начинаю перебирать элементы, включая связанные файлы, и получаю их позицию, но координаты даже близко не лежат. Я так понимаю из-за различных систем координат.
Есть ли вариант трансформировать, полученные координаты из привязанного файла к системе координат оригинала?

Отмечено как Решение Александр Игнатович 23-04-2018, 12:16:27

Оффлайн shssАвтор темы

  • ADN Club
  • ***
  • Сообщений: 214
  • Карма: 5
  • Sergey
  • Skype: sergey.s.shevtsov
Сделал таким образом:

Код - C# [Выбрать]
  1.  
  2. foreach (var collectorItem in new FilteredElementCollector(document).OfClass(typeof(RevitLinkInstance)))
  3. {
  4.      if (collectorItem is RevitLinkInstance revitLinkInstance)
  5.      {
  6.           Transform transform = revitLinkInstance.GetTotalTransform();
  7.           ....
  8.           XYZ pnt = positionPoint.Point;
  9.  
  10.           if (null != transform)
  11.           {
  12.                pnt = transform.OfPoint(pnt);
  13.            }
  14.      }
  15. }
  16.  
  17.  

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Да, всё правильно, так и должно быть  ;)