Коннектор электрооборудования

Главная Форумы Задать вопрос Коннектор электрооборудования

Помечено: , ,

  • В этой теме 19 ответов, 4 участника, последнее обновление 4 года назад сделано Sergey.
Просмотр 15 сообщений - с 1 по 15 (из 20 всего)
  • Автор
    Сообщения
  • #9719 Score: 0
    Алексей
    Участник
    5 pts

    Коллеги, добрый день!

    Имеется электрооборудование у которого два электрических коннектора (электрических соединителя). Как-то можно понять, что коннектор присоединен в цепь или нет?

    Излазили Лукапом это семейство – ничего подходящего не нашли…

    Есть параметр isConnected, но независимо от того присоединен или нет – все равно пишется False

    Спасибо!

    #9752 Score: 2
    ИваСерж
    Хранитель
    134 pts

    Действительно, такая проблема есть.
    Я решил задачу определения коннектора по тому, ссылается ли этот коннектор на другие коннекторы или нет.
    Если не ссылается, то коннектор ни к чему не подключен.

    connector.AllRefs – выдаст коннекторы, с которыми связан. Иначе список будет пустой.
    Получается, так можно найти принадлежность к сети. Код ниже проверил на простом семействе. Прелагаю пример ниже.

    https://pastebin.com/HWeWmtcA

    #9758 Score: 0
    Алексей
    Участник
    5 pts

    Круто, спасибо

    #9799 Score: 0
    ilgnv88
    Участник

    Приветствую! К сожалению не для всего оборудования есть такая возможность определить соединение через connector.AllRefs. Столкнулся с ситуацией, когда электрическая цепь есть, но коннекторы не видят друг друга. Возможно дело в семействе, но тогда встаёт вопрос единичный ли это случай или всё-таки определять соединение через connector.AllRefs не совсем корректно… Другие свойства и методы для соединённого и не соединённого коннектора одинаковые. Такое ощущение что в электрической цепи у базового оборудования подсоединился коннектор с DomainUndefined, который имеет connector.AllRefs, что очень странно

    #9800 Score: 0
    ИваСерж
    Хранитель
    134 pts

    А можно мне маленький тест-проект куда-то выложить. Щит-цепь-семейство.
    У меня такое впечатление, что в семействе есть не связанные с электрикой коннекторы. Вобщем, надо посмотреть

    #9801 Score: 0
    ilgnv88
    Участник

    Имитировал ситуацию для данного случая (Revit 2020) https://www.dropbox.com/s/8z8zpl1h8kh459d/%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%821.rvt?dl=0

    #9802 Score: 0
    ИваСерж
    Хранитель
    134 pts

    У меня к сожалению только 19 Ревит. Не могу открыть… Можно пожалуйста, в версии помладше?

    #9804 Score: 0
    Sergey
    Участник
    1 pt

    Подскажите, пожалуйста, можно ли получить объекты подключенные к проводу (тип Wire), если я использую AllRefs, то на выходе получаю только Autodesk.Revit.DB.Connector. А мне нужно идентифицировать объект или другой кабель подключенный к этому кабелю.

    #9805 Score: 0
    ilgnv88
    Участник
    #9806 Score: 0
    ilgnv88
    Участник

    Можно пример кода либо логику описать? Доступ можно получить через ElectricalSystem (BaseEquipment и Elements) соответственно к базовому оборудованию и подключенных к нему элементов

    #9808 Score: 1
    ИваСерж
    Хранитель
    134 pts

    Я разобрался.
    Прошу обратить внимание, что такая неразбериха получается только с семействами категории электрических щитов.
    Мне тяжело объяснить логику программистов, но по факту получается так:
    1. У щита, как и у обычного семейства, есть коннектор, который находится в самом семействе.
    2. На каждую подключенную к щиту электрическую цепь создается свой виртуальный коннектор.

    Напоминаю задачу – Как-то можно понять, что коннектор присоединен в цепь или нет?
    На этом этапе я уточняю задачу. Как-то можно понять, что НЕ ВИРТУАЛЬНЫЙ коннектор присоединен в цепь или нет?

    Для начала, надо отфильтровать виртуальные и не виртуальные коннекторы.
    Оказалось, что коннекторы отличаются Доменом.

    У настоящего коннектора домен Autodesk.Revit.DB.Domain.DomainElectrical
    У виртуального коннектора домен Autodesk.Revit.DB.Domain.Undefined

    В свой скрипт я добавил дополнительное условие по проверке домена. Заодно получилось,
    что это условие не пройдут другие коннекторы, например, коннекторы труб.

    Скрипт обновил
    https://pastebin.com/HWeWmtcA

    #9809 Score: 0
    ИваСерж
    Хранитель
    134 pts

    Подскажите, пожалуйста, можно ли получить объекты подключенные к проводу (тип Wire), если я использую AllRefs, то на выходе получаю только Autodesk.Revit.DB.Connector. А мне нужно идентифицировать объект или другой кабель подключенный к этому кабелю.

    Сергей, задача не понятна. Что имеется ввиду под “кабель”. Это какая категория?
    Кабель в понятии ревита это OST_Wire – 2Д условное обозначение. Кабель с кабелем не соединяются, насколько я знаю.
    Тогда какими семейтвами вы иммитируете кабель? Скорее всего гофротрубами OST_Conduit
    Тогда предлагаю перейти в другую тему под названием “Что я верчу на конце своей трубы)))”
    Тогда мы в качестве входного семейства возмем трубу, найдем ее коннекторы, а их, оказывается, может быть много, найдем семейства, с которыми труба связана. Это могут быть соседние трубы, фитинги труб, либо какие-то семейства с коннектором трубы.

    #9810 Score: 0
    Sergey
    Участник
    1 pt

    Я использую кабель (тип Wire). Про прямое соединение двух кабелей не знал и не использую это. У меня следующая топология, кабель от щита подключается к монтажной коробке, от этой же коробки идут кабели к светильникам и другой монтажной коробке. Мне нужно определить к чему подключены концы кабеля, например, кабель №22 подключен к монтажной коробке № 3 и светильнику №8. Далее эти данные должны заноситься в кабельный журнал.

    #9811 Score: 1
    ИваСерж
    Хранитель
    134 pts

    Не уверен, что предложенный способ получения топологии сети оптимальный. Модель будет сложная, сложно в дальнейшем вручную вносить изменения и нумерацию. У меня есть другие идеи по этому поводу, но тут надо целое видео снимать.

    Ну а с проводом все просто. Только скрипт мне лень писать.
    1. Выбрали провод
    2. С провода получили ConnectorManager
    3. Получили 2 коннектора по концам
    4. Из каждого коннектора получаем коннекторы, на которые он ссылается AllRefs
    5. Получаем список из 2х коннекторов – первый – ссылка на самого себя (нам он не нужен), а вот второй – коннектор семейства, подключенного к проводу.
    6. Берем коннектор, подключенный к проводу и получаем из него .Owner – инстанс, к которому пренадлежит коннектор.

    #9813 Score: 0
    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 у данного коннектора пустой. Собственно в этом и заключается вопрос, почему так..?

Просмотр 15 сообщений - с 1 по 15 (из 20 всего)
  • Для ответа в этой теме необходимо авторизоваться.