Получить список электрических систем щита
Главная › Форумы › Задать вопрос › Получить список электрических систем щита
- В этой теме 5 ответов, 3 участника, последнее обновление 5 лет, 8 месяцев назад сделано Алексей.
-
АвторСообщения
-
Подскажите пожалуйста, как сформировать запрос в питоне, чтобы получить список электрических систем к которым присоединен электрический щит. Через RevitLookup их вижу, но в Питоне не могу к ним подобраться. Что надо писать и какие библиотеки подключать?
Добрый вечер! Пользуйтесь в процессе поиска методом dir().
Пример: пишите в скрипте на выходе
OUT = dir(S) потом посмотрели какие параметры имеются в составе
вашего S (Щит22 в данном случае). Выбрали параметр ,прописали в скрипте например
a = S.ElectricalSystem (если таковой имеется в dir, те методы или свойства, которых там нет выдадут ошибку, как скорее всего у вас и видно). Дальше посмотрели OUT = dir(a) что в списке дальше выпадает и продолжаете поиски. Также не забываем проверять что мы фактически получаем, комментируем #OUT = dir(a) и ниже пишем OUT = a. Иногда необходимо бывает добавить в конце свойства скобки, вот так a = S.ElectricalSystem(), смотря какие характеристики у данных свойств и методов. Успехов!Получать нужно точно также, как вы просматриваете элемент из Лукапа.
Я электрические системы щита получаю так:
https://pastebin.com/MtRUdNa7Если обратить внимние, то в этом списке на одну систему больше, чем подключено на щит. Т.е. в список входят все системы подключенные к щиту + система в которую входит сам щит. Отфильтровать эту систему можно, например, по имени щита, к которой система подключена.
Например щит ЩС1 подключен к ГРЩ. Параметр “Имя панели” для систем ЩС1 – будет “ЩС1”, а для самого щита “ГРЩ”. Условие фильтра – нужны системы для которой “Имя панели” равно имени щита.
Коллеги, большое спасибо за подсказки…Благодаря им я немного расширил область своей безграмотности)
ИваСерж, твой код работает, но я все равно не понимаю как мне добраться до цепей (без фильтров на питающую и отходящие линии).
По идее если смотреть на то,что ты написал строка для вывода всех цепей щита должна выглядеть так:
elSys = board.MEPModel.ElectricalSystems.PanelName
Но она не работает…
Расшифровываю
1. elSys = board.MEPModel.ElectricalSystems
получаем сэт (это не совсем список), всех систем.
На выход OUT для работы методами Динамо надо подать список.
OUT = list(elSys)2. У каждой системы в сэте есть свойство PanelName. Чтобы получить имя щита, к которому подключены все системы, надо применить PanelName к каждой системе через цикл поочередно.
Мне лень пользоваться циклами. Я сделал все то же самое через генератор списков.
Например, для получения списка с PanelName я воспользуюсь таким генератором
nameList = [sys.PanelName for sys in elSys]3. В генератор списков я могу записать условие такое, какое мне надо.
Пример с условием я написал в своём предыдущем коде.Большое спасибо!
идею понял. Что-то даже получилось=))
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.