Сообщество программистов Autodesk в СНГ
ADN Club => Revit API => Тема начата: sdv79 от 07-06-2020, 01:24:24
-
Подскажите как получить координаты вставки всех электрических приборов из связанного файла (АР) на виде (Уровень 1 КВ) в рабочем файле (ЕОМ)
(https://i.postimg.cc/NKYTxjv7/01.png) (https://postimg.cc/NKYTxjv7)
-
Тема поднималась много раз, в т.ч. и на этом форуме.
Вкратце, получаем экземпляры связей RevitLinkInstance-ы в проекте, у них есть метод GetLinkDocument - получаем документ, ищем в нем FilteredElementCollector нужные элементы, получаем их координаты. Преобразуем их Transform-ом, полученным методом GetTotalTransform RevitLinkInstance-а.
-
FilteredElementCollector - позволяет выбрать либо все элементы, либо с вида. Как понять что нужный элемент из связанного файла (АР) находится например на плане этажа (Уровень 1 КВ)
-
FilteredElementCollector - позволяет выбрать либо все элементы, либо с вида.
А как же порядка 40 классов наследников ElementFilter?
(https://i.postimg.cc/PNgY6qCx/13750294391564.jpg) (https://postimg.cc/PNgY6qCx)
Задачу
Как понять что нужный элемент из связанного файла (АР) находится например на плане этажа (Уровень 1 КВ)
можно понимать по-разному.
Вариант 1. Найти элементы, попадающие в некий секущий диапазон. Решать с помощью BoundingBoxIntersectsFilter, нужно только перейти от координат модели к координатам связанного файла, т.е. вместо linkInstance.GetTotalTransform() взять linkInstance.GetTotalTransform().Inverse
Вариант 2. Найти элементы из связанного файла, которые видны на конкретном виде ViewPlan. Здесь надо понимать, что может быть заданы различные варианты отображения, по основному виду, по связанному виду, пользовательские варианты + что-то может быть скрыто вручную. Эта задача полностью решается только в Revit 2020+ с помощью CustomExporter-а.