C#-плагин для Autodesk Revit 2021–2025, автоматизирующий полный цикл выпуска документации по сборкам (AssemblyInstance): от создания видов и спецификаций до листов, позиций и марок.
Установка · Быстрый старт · Возможности · Releases · Сообщить о проблеме
- Скачайте
AssemblingManager-<версия>-setup.exeсо страницы Releases и запустите. - Откройте Revit — на ленте появится вкладка Assembling Manager (панели «Сборки», «Листы», «Оформление», «Трубы», «Настройки»).
- Нажмите «Сформировать виды» — плагин создаст по каждой сборке план, четыре разреза, 3D-вид и сборочную спецификацию.
Главное окно: параметр фильтра, набор видов, шаблоны и мастер-спецификация
Основной модуль. По каждой сборке модели создаёт комплект видов: план, четыре разреза (фронт, тыл, слева, справа) и 3D-вид, плюс сборочные спецификации (дубликаты мастер-спецификации с фильтром по имени сборки).
Как это работает:
- Видимые элементы сборки определяются по параметру
AssemblyParameter(или существующемуADSK_Группирование) — на видах остаётся только «своё», посторонние элементы скрываются фильтрами. Категории параметра и фильтров формируются из категорий элементов всех сборок. - Вложенные общие семейства обрабатываются рекурсивно.
- Границы видов вычисляются по габариту элементов сборки (обрезка плана, рамки разрезов); 3D-виды автоматически запираются и создаются без границ 3D-вида — видимость на 3D управляется фильтром, а не обрезкой.
- Применяются выбранные шаблоны видов (план / разрезы / 3D / спецификация).
- Настройки главного окна запоминаются в проекте: после первого нажатия «Сформировать» окно при следующих запусках открывается с тем же выбором видов, шаблонов и типов.
Если виды уже существуют, открывается окно конфликтов с выбором действия для каждого вида:
- Оставить как есть — вид не трогается вообще: ни геометрия, ни значения параметра, ни фильтры этой сборки не проверяются;
- Обновить — геометрия вида (обрезки рамок, развороты разрезов, секущий бокс 3D) и оформление проектировщика не меняются. Плагин записывает значение параметра только элементам сборки с пустым или устаревшим значением (например, в сборку добавились новые элементы) и при необходимости обновляет фильтры и привязку параметра;
- Заменить — вид удаляется и создаётся заново по шаблону.
Спецификации при «Обновлении» не пересоздаются — их поля и форматирование сохраняются. Все операции выполняются в одной транзакции: при ошибке ничего не меняется.
Свои разрезы: если создать разрез вручную и назвать его, начав с имени сборки и подчёркивания (например, «Трубопровод 1.9_Узел А»), плагин считает его разрезом этой сборки — модули «Проставить позиции», «Ближайшие оси» и «Оси трубопроводов» обрабатывают его наравне со своими разрезами.
Переименовали сборку вручную? Один клик находит все несоответствия и приводит их к текущему имени сборки: имена видов и спецификаций, имена своих пользовательских разрезов (с префиксом имени сборки), значения параметра AssemblyParameter на элементах — включая «существующие» элементы вне сборки, фильтры видов и фильтры спецификаций. Новый фильтр назначается и пользовательским разрезам сборки. Перед применением показывает список переименований, после — отчёт.
Существующие элементы (стадия «Существующее») нельзя включить в сборку, но им нужно значение параметра, чтобы они попадали на виды сборки и под её фильтр. Раньше его вписывали вручную — у каждого элемента и у каждого вложенного семейства. Теперь это один прогон:
- Выбираете элементы рамкой или через Ctrl и жмёте «Готово».
- В окне выбираете параметр (
AssemblyParameterили существующийADSK_Группирование) и одну сборку из списка. - Плагин записывает имя выбранной сборки в параметр выбранным элементам и их вложенным семействам (рекурсивно).
- Категории параметра и фильтров формируются из сборок: если категория выбранного элемента не встречается ни в одной сборке, элемент пропускается с предупреждением — в сводке указаны пропущенные категории.
- Если у части элементов параметр уже заполнен — плагин предупредит о перезаписи; после выполнения показывает сводку.
Выбираете лист-образец и группу видов — плагин копирует лист для каждого объекта группы и размещает на нём виды сборок (два режима раскладки: компактный и по сетке). Виды, которые не удалось разместить, попадают на сигнальный лист «(не размещенное)» — по нему видно, что вы забыли разместить или удалить.
Приводит листы выбранной группы к порядку по именам сборок:
- имена листов приводятся к именам сборок;
- перенумерация с естественным порядком чисел («Лист 2» раньше «Листа 10»);
- удаление пустых листов;
- опциональное удаление сигнальных листов «(не размещенное)» вместе с плагиновыми видами и спецификациями на них (посторонние виды сохраняются с предупреждением);
- скорость: листы с уже верными номерами не перезаписываются, а занятость проверяется только у листов, которые нужно изменить;
- в отчёте явно указано, что именно сломалось — нумерация, сортировка по имени или и то и другое — и сколько листов уже имели актуальные номера;
- отчёт с фактическими счётчиками и предупреждениями о занятых другими пользователями элементах.
- Нумерация позиций по строкам выбранных спецификаций: диапазон номеров, сортировка по имени сборки, пропуск строк по ключевым словам. Порядок позиций точно совпадает с порядком строк спецификации — числа внутри текста («Труба о89» против «Труба о108», «DN80» против «DN200») сравниваются как числа, как в Revit.
- Марки позиций на планах и разрезах (включая ваши дополнительные разрезы) с выносками, примыкающими к краю полки, настраиваемыми смещениями и автоподбором свободных мест (пресеты маркировки сохраняются).
- Режим «Только позиции» — проставить номера без размещения марок.
- Объединение спецификаций: при сквозной нумерации нескольких спецификаций их куски подписываются именами сборок и соединяются в одну таблицу на листе.
На планах и разрезах выбранных сборок, где видна только одна ось, ставит маркер «Ближайшие оси — марка» с именами соседних осей. Сборки выбираются в окне с поиском, радиус кружка и рабочий набор осей настраиваются; пресеты сохраняются между запусками.
В дисциплине вида «Координация» Revit не показывает оси труб, а в MEP-дисциплинах все элементы теряют скрытие линий и просвечивают. Модуль рисует осевые линии трубопроводов аннотационными линиями на планах и разрезах выбранных сборок — дисциплина вида не меняется:
- Выбираете сборки (мультивыбор с поиском, «Выбрать всё») и любой существующий стиль линий проекта — стиль служит меткой линий плагина.
- «Нанести оси»: в каждом виде сборки удаляются старые линии выбранного стиля и строятся заново по текущим трубам.
- Обрезка перекрытых участков: труба за отводом или фитингом получает ось только на видимых кусках (проверка перекрытий лучами; чекбокс «Пропускать перекрытые участки», по умолчанию включён).
- «Удалить оси» убирает линии выбранного стиля в видах выбранных сборок.
- Пресет (сборки, стиль, чекбокс) сохраняется в проекте.
Оси статичны: после сдвига трубы повторите «Нанести оси» — линии обновятся, дублей не будет. Вертикальные стояки на планах и трубы вдоль взгляда на разрезах пропускаются (слишком короткая проекция) со счётчиком в отчёте.
В группе Трубы модуль Сортаменты показывает все каталоги размеров (PipeSegment) активного документа. Для выбранного сегмента можно открыть отдельный диалог добавления нового номинального диаметра, изменить наружный диаметр и толщину стенки существующего размера или удалить неиспользуемый размер. Внутренний диаметр рассчитывается автоматически; номинальный диаметр в таблице только для чтения.
Если изменяется любой размер, модуль сначала пытается скопировать исходный сегмент с сохранением материала. Если Revit дублирует материал, копирование откатывается и создаётся замена с исходным материалом и новой Спецификацией/Типом; для сегментов без материала используется только копирование. Затем переносятся все трубы активного документа, обновляются Routing Preferences и удаляется старый сегмент. Изменения нескольких сегментов сохраняются при переключении и применяются одной операцией; успешный отчёт содержит только общие количества изменённых сегментов и размеров, без деталей и предупреждений.
Кнопка «Настройки» показывает текущую версию плагина, проверяет обновления на GitHub и показывает «что нового». Обновление скачивается и применяется автоматически после закрытия Revit.
Плагин рассчитан на совместную работу в workshared-моделях:
- занятые другими пользователями элементы не срывают прогон: операции проверяют занятость, пропускают чужое и подробно отчитываются (кто держит элемент, что не удалено/не перенумеровано);
- фильтры видов переиспользуются, а не пересоздаются — виды, с которыми работают коллеги, не теряют настройки;
- всё, что не удалось сделать из-за занятости, видно в отчётах и в логе; детали — в файле лога в
%APPDATA%\Autodesk\Revit\Addins\AssemblingManager\Logs.
Способ 1 — инсталлятор (рекомендуется): скачайте AssemblingManager-<версия>-setup.exe со страницы Releases, запустите — установщик сам найдёт установленные версии Revit (2021–2025) и зарегистрирует плагин.
Способ 2 — zip вручную: скачайте AssemblingManager-R<XX>.zip для вашей версии Revit и распакуйте содержимое в %APPDATA%\Autodesk\Revit\Addins\<Год>\, либо следуйте инструкции внутри архива.
Способ 3 — из исходников: см. раздел «Сборка» ниже и скрипт build-and-deploy.bat.
Откройте Assembling Manager → Настройки → Проверить обновления. Плагин сверится с последним GitHub-релизом, покажет «что нового» и предложит скачать установку; обновление применится после закрытия Revit.
- Autodesk Revit 2021 / 2022 / 2023 / 2024 / 2025
- Windows 10/11 x64
- .NET SDK 8.0 — только для сборки из исходников.
Плагин ссылается на API Revit через NuGet-пакеты Nice3point.Revit.Api.*, поэтому локально установленный Revit для сборки не требуется.
dotnet build build\AssemblingManager.sln -c Debug.R21Конфигурации: Debug.R21 … Debug.R25 (и соответствующие Release.*). Выходные файлы — в bin\<Конфигурация>\<Год>\.
Скрипт build-and-deploy.bat собирает все версии и устанавливает их в Revit (DLL в %APPDATA%\AssemblingManager\<Год>\, манифесты .addin в %APPDATA%\Autodesk\Revit\Addins\<Год>\). Установленные версии Revit, отсутствующие на машине, пропускаются.
Выпуск релиза: запустите tools\release.bat (нужны GitHub CLI с авторизацией и Inno Setup 6) — он соберёт все конфигурации, упакует zip-архивы и инсталлятор, опубликует GitHub Release по версии из Version.txt.
assembling-manager
├── src/
│ ├── AssemblingManager.Core/ # Общие модели, константы, утилиты
│ ├── AssemblingManager.Revit/ # Точка входа, команды, сервисы, UI
│ └── AssemblingManager.Updater/ # Консольный применитель обновлений
├── build/AssemblingManager.sln # Решение Visual Studio
├── addins/ # Манифесты .addin для каждой версии Revit
├── DOCS/ # Планы фич (realized / in-progress / future)
│ └── images/ # Скриншоты для README
├── tools/ # Релизный конвейер и инсталлятор
├── build-and-deploy.bat # Сборка и установка в Revit
└── Version.txt # Версия плагина (единый источник)
- Запустите
build-and-deploy.bat. - Запустите Revit и любую команду плагина с вкладки Assembling Manager.
- В Visual Studio выберите Debug → Attach to Process и подключитесь к
Revit.exe.
Лог работы плагина пишется в %APPDATA%\Autodesk\Revit\Addins\AssemblingManager\Logs\.
RevitAPI.dllиRevitAPIUI.dllне входят в репозиторий — приходят через NuGet.AddInIdв манифестах задан уникальным GUID. При конфликте с другим плагином замените его.
Нашли ошибку или есть идея? Создайте issue — приложите версию Revit, версию плагина и фрагмент лога из %APPDATA%\Autodesk\Revit\Addins\AssemblingManager\Logs.
Исходный код распространяется по лицензии MIT: можно использовать, изменять и распространять при сохранении копирайта. Собранный плагин публикуется под VendorId автора — если делаете свою сборку, замените VendorId и VendorDescription в addins/20XX/AssemblingManager.addin, чтобы не путать пользователей с обновлениями.
