Семейство в помещении
Главная › Форумы › Задать вопрос › Семейство в помещении
- В этой теме 19 ответов, 7 участников, последнее обновление 10 месяцев, 1 неделя назад сделано Yana.
-
АвторСообщения
-
День добрый, может кто-нибудь подскажет в каком направлении двигаться при достаточно сложной задаче – перенос параметров в семейство (или из семейства) из помещений (или в помещение), где это семейство находится. Для небольших объектов я нашёл простое решение – это создание трёх списков. Первый список, это список объёмов помещений, второй список это список локаций семейств, два этих списка сопоставляются в третий, который используется далее как маска для передачи выбранного параметра в семейство. Ниже пример, как номер помещения записывается в комментарий семейства.
В пределах небольшого проекта всё прекрасно работает. Но:
- Когда дело касается объекта минимум со 100 помещениями и 100 семействами, мы получаем три списка по 10 000 строк и динамо виснет.
- Если помещения берутся из связного файла, динамо их не видит.
- С 2015 версии Ревит, программа умеет считывать расположение семейства в том или ином помещений безо всяких сопоставлений, но данный параметр я не могу вытащить в динамо.
- Сборки нодов на dynamopackages, такие как Get Family Instances from Revit link, Get Linked Documents, Families in Rooms уже давно не работают на последних версиях, нет возможности посмотреть что внутри.
http://dynamobim.ru/forums/topic/как-вытащить-кол-во-светильников-из-од/#post-2629
нод Tools.GetSurrounding из пакета SteamNodes
Ого. Legantmar низкий поклон! Но я что то делаю не так
попробуй помещения не из линкованного файла, я думаю это с этим связано
Именно Линк то мне и нужен, пробовал конвертировать помещения в солиды, список всё равно пуст
Если я правильно понял, то одного раза размножить раковины по помещениям будет достаточно.
а так да всё верно надо Geometry DoesIntersect сравнивать. Вам ведь решения с питоном не интересны? а ListMap ещё один забыл убрать. И вообще я бы попробовал в ноде DoesIntersect перекрестную работу включить на каждый с каждым и подать просто 2 списка Geometry.
Ну да вот сравнивает
Александр спасибо, но нет. Во первых списки должны быть идентичны, если раковина одна а помещений 4, я копирую 4 раза раковину, если раковин 4 а помещение одно я копирую 4 раза помещение. Во вторых Geometry.DoesIntersect не подходит т.к. очень прожорлив. У меня в объекте 150 помещений и 150 семейств сложного оборудования, просчёт шёл около суток. Ну и самое главное – все помещения линкованные.
И да, питон подойдёт прекрасно, если ты знаешь какой именно АПИ использовать. На данный момент SteamNodes вроде справляется, проблема с линком, выше, открыта.
Валер если еще актуально, то вот пример для твоего случая. https://yadi.sk/d/QJJqbyGCuFqqg
Описание:
- из линк файла вытаскиваются помещения (rooms)
- выбираются все элементы категории раковина по OST
- создаются bounding box для помещений и для раковин
- определяются пересечения этих bounding box и если они пересекаются, то в параметр раковины “Комментарии” записывается номер помещения
Michael PlatУчастник@Legantmar: сильный скрипт, круто! по идее можно всё что угодно из линкованного файла вытаскивать.
Никто не видел/делал скрипт, который помещения копирует из линкованного файла в актуальный проект?выкладывай файлы, будем смотреть
ВСЕ координаты ВСЕХ объектов находятся в области помещении, это можно легко проверить не линковав помещения.
Всё прекрасно замечательно работает, только нужны именно линованные помещения, и именно с ними не работают те ноды, что я использую (из общедоступных, а не написанных под мою ситуацию, т.к. задача намного шире чем просто найти пересечения). Не мог бы ты скинуть скриншот где у тебя всё получилось? Спасибо.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.