Согласно документации Revit API для хранения информации об элементах во внешних хранилищах данных рекомендуется использовать UniqueId.
Это надёжно, UniqueId остаётся неизменным в пределах модели в отличие от ElementId.
Однако UniqueId всё же может меняться в процессе работы в модели при казалось бы безобидной операции - "Зеркало".
Выберите какой-нибудь элемент, запишите его UniqueId и ElementId:
Я выбрал балку, вот её свойства:
Затем примените команду "Зеркало".
Перед заданием оси симметрии убираем галочку "Копировать" в панели параметров.
UniqueId и ElementId элемента изменились после выполнения команды:
На мой взгляд это явная недоработка, я не обнаружил описания такого поведения в документации. Рекомендаций для разрешения этой проблемы я не даю, зависит от конкретной задачи. Учитывайте эту особенность при разработке плагинов, где предполагается обновление элементов в пределах модели, либо работа с внешними источниками данных.
При разработке приложения на AutoLISP столкнулся с утечкой памяти. На тестах под нагрузкой сжиралась вся оперативная память (всего - 16 Гб).
Запуск сборщика мусора не помог, все переменные проекта проверил, всё в порядке.
При отладке выявил, что виновником утечки памяти является функция
vlax-ename->vla-object
После безуспешных попыток найти решение помог уже не раз выручавший меня способ: последовательное чтение списка всех функций.
В книге "Autolisp и Visual Lisp в среде AutoCAD" есть очень удобное приложение - в одну таблицу собраны все функции и методы, сначала пробежался по ней, но безуспешно. Пошёл шерстить всю книгу и нашёл метод получения vla-объекта по хэндлу примитива HandleToObject.
Ну а дальше дело техники - забираем хэндл из DXF-данных примитива и по нему получаем vla-object:
Готовится к выпуску обновление программы R-One Line Diagrams.
Ключевое изменение - добавлена уменьшенная иконка для размещения кнопки запуска программы
на панели быстрого доступа:
С праздником! :)
UPD 08.04.2018:
1 апреля прошло, настал черёд описания остальных изменений.
1. Повышение производительности.
По сравнению с предыдущим выпуском скорость генерации схем увеличилась в 5-10 раз.
2. Поддержка работы с Revit 2018.
3. Автообновление схем.
Эту функцию ждали от меня практически с самого возникновения программы:
4. Редактирование однолинейных схем.
Вслед за автоматическим обновлением схем появилась потребность обратной связи - от схем к элементам модели Revit.
Наиболее простое решение этого вопроса - по выбранным линиям на схеме найти и выбрать элементы модели Revit. Все изменения автоматически отражаются на схемах.
При такой реализации единым источником данных остаются элементы модели Revit, не требуется отслеживать изменения сгенерированных схем.
5. Задание ширины столбца однолинейной схемы.
В некоторых линиях для имени нагрузки не всегда хватает ширины столбца. Теперь есть возможность задать ширину столбца для отдельных щитов или линий:
6. Нумерация цепей.
Про исправление нумерации трёхфазных цепей было описано и решено уже давно, но на всякий случай напоминаю. Кроме того, добавлена возможность задания суффикса или префикса для отдельных цепей:
Благодарю пользователей программы за обратную связь.
В Revit очень неудобно маркировать элементы, смещённые функцией "Переместить элементы" или "Displace Elements". В этом видео я покажу как решить эту проблему с помощью Revit API
Этот урок я делал с помощью макросов в Revit и так случилось, что я прибил файл rvt и у меня не осталось исходников. Поэтому смотрим то, что записано:
Если выбрать электроприборы с щитом и скопировать их, то цепи пропадают.
Чтобы при копировании электроприборов цепи не пропадали, выбирать их нужно через диспетчер инженерных систем, а не на виде.
Плагин позволяет быстро подключить электрические приборы к электрощиту по одному.
Выбираем элементы, вызываем команду, при необходимости выбираем коннектор и щит, к которому требуется выполнить подсоединение.
Если часть приборов предварительно объединена в цепь, то к электрощиту подсоединяется эта цепь.
Плагин совместим с Revit 2015-2026.
Скачать можно тут
Пароль на архив - 123
По запросу от пользователя добавил настройку "Автоматически применять режим траектории"
Плагин будет автоматически применять выбранный режим траектории при создании цепей стандартным инструментом Revit.
UPD 2025.11.20 - сборка 0.11.79:
1. Добавлена кнопка с настройками
2. В настройках возможно задать:
- выбирать ли щит из выпадающего списка - режим траектории для присоединяемых цепей: - не изменять
- все устройства в этом режиме выполняется переключение в режим "Все устройства" вне зависимости от числа потребителей в цепи
- все устройства (для цепей с двумя потребителями и более) в этом режиме для цепей с одним потребителем переключение в режим "Все устройства" не производится
Если для цепи задан пользовательский режим траектории, то в таком случае плагин не меняет режим траектории
UPD 2025.10.06 - сборка 0.10.77:
1. Выполнена адаптация для Autodesk Revit 2026.
UPD 2024.06.30 - сборка 0.10.76:
Добавлен выбор панели из списка
Небольшая инструкция:
1. Для фильтрации панелей можно начать набирать имя панели, тогда список сократится 2. После выбора панели она подсвечивается в текущем виде (если присутствует в видимой части окна, зум не работает при открытом окошке выбора панелей) 3. Для подтверждения выбора можно нажать клавишу Enter 4. Если необходимо выбрать панель как раньше, то закройте окошко выбора панели и выберите панель мышкой. Окошко выбора панелей можно закрыть, нажав на клавишу Escape
Формат отображения для панелей с дублирующимися именами следующий:
Если в модели нет пространств или щит не поймал пространство, тогда: [Имя щита]-[Питается от]-[Комментарии]-[Id]
Если панель не подключена, то [Питается от] не отображается
Если в панелях с одинаковыми именами есть комментарии и они уникальны, то формат записи следующий: [Имя щита]-[Комментарий] В таком случае Id не отображается
UPD 2024.06.16 - сборка 0.9.75:
1. Выполнена конфигурация установочного комплекта для установки без прав администратора.
В архиве есть два установочных комплекта:
Connect2ElPanel_0.9.75.0.exe - для установки требуются права администратора, плагин устанавливается для всех пользоватей компьютера
Connect2ElPanel_0.9.75.0_SingleUser.exe - для установки не требуются права администратора, плагин устанавливается только для текущего пользователя
2. При подключении потребителей учитывается порядок выбора.
Для подключения потребителей в порядке выбора необходимо:
- нажать на кнопку плагина
- выбрать потребители по одному
- после завершения выбора нажать на кнопку Escape на клавиатуре
- выбрать панель
UPD 2024.04.21 - сборка 0.9.74:
1. Выполнена адаптация для Autodesk Revit 2025.
UPD 2023.07.26 - сборка 0.9.73:
1. Выполнена адаптация для Autodesk Revit 2023, 2024.
UPD 2023.01.16 - сборка 0.9.71:
1. Исправлена ошибка при подключении семейств с напряжением, заданным параметром экземпляра с разными значениями напряжения.
UPD 2022.12.30 - сборка 0.9.70:
1. Исправлена ошибка при подключении семейств с напряжением, заданным параметром экземпляра в случае несоответствия напряжения и типа питающей сети щита.
UPD 2022.02.13 - сборка 0.9.68:
1. Исправлена ошибка при подключении слаботочных коннекторов
UPD 2021.10.24 - сборка 0.8.67:
1. Выполнена адаптация для Autodesk Revit 2022
2. Исправлена ошибка при подключении потребителей с напряжением, заданным параметром экземпляра
UPD 2021.01.18 - сборка 0.8.66:
1. Исправлена ошибка, возникавшая в версии плагина для Autodesk Revit 2021 при подключении потребителей к щиту с типом детали "Силовой щит"
UPD 2020.11.09 - сборка 0.8.64:
1. Исправлена ошибка при подключении потребителей с напряжением, заданным параметром экземпляра
2. Убрано ограничение на число типоразмеров подключаемых семейств с двумя и более коннекторами. Задание подключаемых коннекторов для таких семейств производится один за другим.
3. Выполнена адаптация для Revit 2021.
4. Во всплывающую подсказку на панели инструментов добавлен вывод номера сборки.
5. При нажатии на F1 при отображённой всплывающей подсказке переход производится на это сообщение, а не на главную страницу блога.
UPD 2020.05.24 - сборка 0.8.63:
1. Исправлена ошибка при соединении и пересоединении потребителей с двумя и более коннекторами. UPD 2020.02.24 - сборка 0.8.62:
1. Добавлена уменьшенная иконка для размещения кнопки плагина на панели быстрого доступа.
2. Исправлена ошибка при попытке пересоединения щита. Такая функция не была запланирована в предыдущей версии программы, но бывали случаи когда специалисты пытались выполнить пересоединение щита, что приводило к неожиданным результатам.
3. Добавлена возможность сохранения выбранных коннекторов для присоединения в пределах сеанса Revit.
Достаточно один раз указать коннектор и поставить галку "Запомнить выбор коннекторов в текущем сеансе Revit".
Информация о выборе коннекторов хранится в формате:
[Текущий документ]-[Типоразмер семейства потребителя]-[Список описаний коннекторов],
т.е. хранится отдельно по каждому открытому документу и типоразмеру семейства.
При перезагрузке документа информация о выбранных коннекторах сбросится.
Если появится необходимость переопределить выбор коннектора в текущем сеансе Revit, то выберите один неподсоединённый потребитель (без созданной цепи) и нажмите на кнопку приложения. Откроется окно для выбора коннектора.
4. Если у потребителя два коннектора и более, то возможно выбрать несколько коннекторов для подключения.
5. Добавлена возможность пересоединения потребителей. Достаточно выбрать ранее подключённые потребители, а затем щит, к которому необходимо их пересоединить.
6. Добавлена возможность выбора щитов в соответствии с напряжением, заданным на коннекторе. В строке состояния указывается напряжение подключаемых цепей. Если необходимо подсоединить цепи с различным напряжением к одному щиту, то выберите один щит дважды. UPD 2020.02.24 - создан Telegram каналдля обсуждения программы и оповещении об обновлениях
UPD 2019.06.17 - выполнено обновление:
- присоединение щитов
- пакетное присоединение/пересоединение цепей
- исправлена ошибка при подключении потребителей с напряжением, заданным параметром экземпляра
- точку вставки связанной модели (если точка вставки соответствует началу координат, то не выводится)
- прикреплена ли связанная модель (если точка вставки соответствует началу координат, и модель не прикреплена, то прикрепление выполняется автоматически, информация не выводится)
- рабочие наборы типоразмера и экземпляра связанной модели.