Коннектор электрооборудования
Главная › Форумы › Задать вопрос › Коннектор электрооборудования
Помечено: connector, DomainElectrical, MEPModel
- В этой теме 19 ответов, 4 участника, последнее обновление 4 года, 8 месяцев назад сделано Sergey.
-
АвторСообщения
-
Коллеги, добрый день!
Имеется электрооборудование у которого два электрических коннектора (электрических соединителя). Как-то можно понять, что коннектор присоединен в цепь или нет?
Излазили Лукапом это семейство – ничего подходящего не нашли…
Есть параметр isConnected, но независимо от того присоединен или нет – все равно пишется False
Спасибо!
Действительно, такая проблема есть.
Я решил задачу определения коннектора по тому, ссылается ли этот коннектор на другие коннекторы или нет.
Если не ссылается, то коннектор ни к чему не подключен.connector.AllRefs – выдаст коннекторы, с которыми связан. Иначе список будет пустой.
Получается, так можно найти принадлежность к сети. Код ниже проверил на простом семействе. Прелагаю пример ниже.Круто, спасибо
ilgnv88УчастникПриветствую! К сожалению не для всего оборудования есть такая возможность определить соединение через connector.AllRefs. Столкнулся с ситуацией, когда электрическая цепь есть, но коннекторы не видят друг друга. Возможно дело в семействе, но тогда встаёт вопрос единичный ли это случай или всё-таки определять соединение через connector.AllRefs не совсем корректно… Другие свойства и методы для соединённого и не соединённого коннектора одинаковые. Такое ощущение что в электрической цепи у базового оборудования подсоединился коннектор с DomainUndefined, который имеет connector.AllRefs, что очень странно
А можно мне маленький тест-проект куда-то выложить. Щит-цепь-семейство.
У меня такое впечатление, что в семействе есть не связанные с электрикой коннекторы. Вобщем, надо посмотретьilgnv88УчастникИмитировал ситуацию для данного случая (Revit 2020) https://www.dropbox.com/s/8z8zpl1h8kh459d/%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%821.rvt?dl=0
У меня к сожалению только 19 Ревит. Не могу открыть… Можно пожалуйста, в версии помладше?
Подскажите, пожалуйста, можно ли получить объекты подключенные к проводу (тип Wire), если я использую AllRefs, то на выходе получаю только Autodesk.Revit.DB.Connector. А мне нужно идентифицировать объект или другой кабель подключенный к этому кабелю.
ilgnv88Участникilgnv88УчастникМожно пример кода либо логику описать? Доступ можно получить через ElectricalSystem (BaseEquipment и Elements) соответственно к базовому оборудованию и подключенных к нему элементов
Я разобрался.
Прошу обратить внимание, что такая неразбериха получается только с семействами категории электрических щитов.
Мне тяжело объяснить логику программистов, но по факту получается так:
1. У щита, как и у обычного семейства, есть коннектор, который находится в самом семействе.
2. На каждую подключенную к щиту электрическую цепь создается свой виртуальный коннектор.Напоминаю задачу – Как-то можно понять, что коннектор присоединен в цепь или нет?
На этом этапе я уточняю задачу. Как-то можно понять, что НЕ ВИРТУАЛЬНЫЙ коннектор присоединен в цепь или нет?Для начала, надо отфильтровать виртуальные и не виртуальные коннекторы.
Оказалось, что коннекторы отличаются Доменом.У настоящего коннектора домен Autodesk.Revit.DB.Domain.DomainElectrical
У виртуального коннектора домен Autodesk.Revit.DB.Domain.UndefinedВ свой скрипт я добавил дополнительное условие по проверке домена. Заодно получилось,
что это условие не пройдут другие коннекторы, например, коннекторы труб.Скрипт обновил
https://pastebin.com/HWeWmtcAПодскажите, пожалуйста, можно ли получить объекты подключенные к проводу (тип Wire), если я использую AllRefs, то на выходе получаю только Autodesk.Revit.DB.Connector. А мне нужно идентифицировать объект или другой кабель подключенный к этому кабелю.
Сергей, задача не понятна. Что имеется ввиду под “кабель”. Это какая категория?
Кабель в понятии ревита это OST_Wire – 2Д условное обозначение. Кабель с кабелем не соединяются, насколько я знаю.
Тогда какими семейтвами вы иммитируете кабель? Скорее всего гофротрубами OST_Conduit
Тогда предлагаю перейти в другую тему под названием “Что я верчу на конце своей трубы)))”
Тогда мы в качестве входного семейства возмем трубу, найдем ее коннекторы, а их, оказывается, может быть много, найдем семейства, с которыми труба связана. Это могут быть соседние трубы, фитинги труб, либо какие-то семейства с коннектором трубы.Я использую кабель (тип Wire). Про прямое соединение двух кабелей не знал и не использую это. У меня следующая топология, кабель от щита подключается к монтажной коробке, от этой же коробки идут кабели к светильникам и другой монтажной коробке. Мне нужно определить к чему подключены концы кабеля, например, кабель №22 подключен к монтажной коробке № 3 и светильнику №8. Далее эти данные должны заноситься в кабельный журнал.
Не уверен, что предложенный способ получения топологии сети оптимальный. Модель будет сложная, сложно в дальнейшем вручную вносить изменения и нумерацию. У меня есть другие идеи по этому поводу, но тут надо целое видео снимать.
Ну а с проводом все просто. Только скрипт мне лень писать.
1. Выбрали провод
2. С провода получили ConnectorManager
3. Получили 2 коннектора по концам
4. Из каждого коннектора получаем коннекторы, на которые он ссылается AllRefs
5. Получаем список из 2х коннекторов – первый – ссылка на самого себя (нам он не нужен), а вот второй – коннектор семейства, подключенного к проводу.
6. Берем коннектор, подключенный к проводу и получаем из него .Owner – инстанс, к которому пренадлежит коннектор.ilgnv88УчастникИменно так мы и пытались узнать что подключено к электрической цепи
for con in conList: reflist = [x for x in con.AllRefs] isElectrical = con.Domain == Autodesk.Revit.DB.Domain.DomainElectrical if reflist and isElectrical: isConnected = True
Для начала, надо отфильтровать виртуальные и не виртуальные коннекторы.
У настоящего коннектора домен Autodesk.Revit.DB.Domain.DomainElectrical
У виртуального коннектора домен Autodesk.Revit.DB.Domain.Undefined
В нашем случае цепь есть и коннектор с Autodesk.Revit.DB.Domain.DomainElectrical есть, но вот reflist у данного коннектора пустой. Собственно в этом и заключается вопрос, почему так..? -
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.