Координаты электрических приборов из связанного файла

Автор Тема: Координаты электрических приборов из связанного файла  (Прочитано 1604 раз)

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

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

  • ADN OPEN
  • **
  • Сообщений: 64
  • Карма: 0
Подскажите как получить координаты вставки всех электрических приборов из связанного файла (АР) на виде (Уровень 1 КВ) в рабочем файле (ЕОМ)


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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Тема поднималась много раз, в т.ч. и на этом форуме.

Вкратце, получаем экземпляры связей RevitLinkInstance-ы в проекте, у них есть метод GetLinkDocument - получаем документ, ищем в нем FilteredElementCollector нужные элементы, получаем их координаты. Преобразуем их Transform-ом, полученным методом GetTotalTransform RevitLinkInstance-а.

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

  • ADN OPEN
  • **
  • Сообщений: 64
  • Карма: 0
FilteredElementCollector - позволяет выбрать либо все элементы, либо с вида. Как понять что нужный элемент из связанного файла (АР) находится например на плане этажа (Уровень 1 КВ)

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
FilteredElementCollector - позволяет выбрать либо все элементы, либо с вида.

А как же порядка 40 классов наследников ElementFilter?


Задачу
Как понять что нужный элемент из связанного файла (АР) находится например на плане этажа (Уровень 1 КВ)

можно понимать по-разному.

Вариант 1. Найти элементы, попадающие в некий секущий диапазон. Решать с помощью BoundingBoxIntersectsFilter, нужно только перейти от координат модели к координатам связанного файла, т.е. вместо linkInstance.GetTotalTransform() взять linkInstance.GetTotalTransform().Inverse

Вариант 2. Найти элементы из связанного файла, которые видны на конкретном виде ViewPlan. Здесь надо понимать, что может быть заданы различные варианты отображения, по основному виду, по связанному виду, пользовательские варианты + что-то может быть скрыто вручную. Эта задача полностью решается только в Revit 2020+ с помощью CustomExporter-а.