ИИ и Revit: обзор функций плагина с GitHub для MCP-сервера
Это статья про плагин mcp-servers-for-revit с GitHub. Он добавляет в Revit MCP-сервер и превращает программу в собеседника, с которым можно работать текстом, а не только мышкой. Скачать плагин можно со страницы релизов проекта.
Что за плагин и сколько в нём функций
Прежде чем переходить к возможностям, коротко о требованиях для установки. Плагин работает только на Windows 10/11, поскольку и сам Revit существует только под Windows. Поддерживаются версии Revit 2023, 2024, 2025, 2026 и 2027 - под каждую версию нужно скачать соответствующий готовый архив со страницы релизов, а не клонировать исходный код напрямую. Дополнительно на компьютере должен быть установлен Node.js версии 18 или новее - через него запускается сама MCP-часть, которая связывает Revit с ИИ. Отдельный ключ Anthropic API нужен только тем, кто хочет пользоваться встроенной панелью чата внутри Revit - если ИИ подключается снаружи, например через Claude Desktop, он использует свою собственную авторизацию, и отдельный ключ не требуется. Особых требований к мощности компьютера сверх того, что и так нужно для комфортной работы в самом Revit, разработчики не указывают.
MCP - это открытый протокол, а не технология одного ИИ. Подключиться может любой совместимый клиент: в документации упомянуты Claude и Cline, но принцип общий - будет это Claude, Codex или другой ассистент, разницы нет. У плагина есть встроенная панель чата, где ИИ работает в "автономном режиме" - выполняет действия без подтверждения на каждом шаге. Это простой пример "харнесса" - обвязки, которая даёт ИИ решать самому, какой инструмент вызвать дальше. Насколько это безопасно - отдельная тема в одной из следующих частей.
Всего заявлено 138 инструментов, а в основной таблице README документированы 124 - однако если сложить количество функций по всем перечисленным ниже десяти группам, получается 71. Такое расхождение не поясняется в самой документации проекта, поэтому дальше в статье мы указываем именно то количество функций по каждой группе, которое явно перечислено в таблицах README, без попытки объяснить разницу с заявленными 124 и 138 - вероятно, часть инструментов существует, но не описана в README подробно, но подтвердить это по документации не удалось.
- Информация о проекте и модели (11): данные проекта, инфо об активном виде и его элементах, выделенные элементы, доступные типоразмеры семейств, параметры элементов, предупреждения модели, фазы, рабочие наборы, общие параметры, управление связанными файлами.
- Анализ и аудит модели (6): умный фильтр элементов, статистика по модели, оценка "здоровья" модели от A до F, поиск коллизий, измерение расстояний, поиск элементов в заданном объёме.
- Материалы и объёмы (3): список материалов, их свойства, подсчёт объёмов и площадей.
- Создание элементов (9): линейные элементы (стены, балки, трубы), точечные элементы (двери, окна, мебель), поверхностные элементы (полы, крыши), создание пола, помещения, сетки осей, уровня, системы балок, массива элементов.
- Изменение элементов (10): перемещение и копирование, выбор/скрытие/изоляция/удаление, массовая замена типа семейства, запись параметров, смена фазы, смена рабочего набора, копирование параметров между элементами, копирование между видами, удаление, загрузка семейства.
- Виды и листы (11): создание видов, дублирование видов, фильтры видов, шаблоны видов, графические переопределения, покраска элементов по параметру, создание листа, массовое создание листов, размещение вида на листе, создание спецификации, работа с ревизиями.
- Аннотации (5): размеры, текстовые надписи, штриховки/заливки, автомаркировка стен, автомаркировка помещений.
- Экспорт данных (5): данные по помещениям, массовый экспорт данных элементов, экспорт спецификаций, чтение спецификаций, пакетный экспорт в PDF/DWG/IFC.
- Пакетные операции и очистка (6): массовое переименование, перенумерация, запись параметров из CSV, удаление неиспользуемого, очистка CAD-подложек, добавление общих параметров.
- Продвинутые функции (5): среди них - выполнение произвольного кода C# внутри модели, сохранение и запрос данных проекта во внутренней базе, тестовая функция связи.
Итого по таблицам - 71 задокументированная функция, что расходится с заявленными в описании проекта 124 и 138. Дальше по циклу мы будем ссылаться именно на 71 функцию, реально описанную в документации, а не на заявленные общие цифры.
Последний пункт стоит выделить отдельно: возможность выполнять код C# с прямым доступом к документу проекта - это не заготовленная кнопка, а фактически открытый доступ к "внутренностям" Revit. Этому будет посвящена отдельная часть цикла (часть 7/7) - там другой уровень риска.
Если посмотреть на список групп в целом, видно главное: часть функций, за которыми раньше приходилось идти в отдельное специализированное ПО - чекеры коллизий, среды общих данных с их модулями проверки атрибутов и подсчёта объёмов - здесь доступна прямо внутри Revit, одной текстовой командой, без переключения между программами и без экспорта модели куда-то ещё.
Чтение и аудит модели
Разбираем первые две группы из десяти - информацию о модели и её анализ. Это самая безопасная часть возможностей: ИИ здесь только смотрит и считает, но не создаёт и не меняет ни одного элемента.
Первая группа - информация о проекте и модели, 11 функций. Это способность быстро "осмотреться" в модели. ИИ может получить общие данные о проекте: этажи, стадии, связанные файлы, рабочие наборы. Может посмотреть, что происходит на текущем виде - какой это тип вида, масштаб, какие элементы на нём показаны. Может вывести все параметры выделенных элементов одним запросом, вместо открытия окна свойств для каждого по отдельности. Может найти доступные типоразмеры семейств - например, все варианты окон в проекте. Может показать предупреждения и ошибки модели, список фаз, список общих параметров, а также посмотреть или перезагрузить связанные модели.
Вторая группа - анализ и аудит модели, 6 функций. Здесь ИИ уже считает и сопоставляет. Умный фильтр находит элементы по категории, типу, видимости или по расположению в пространстве. Отдельная функция считает статистику модели - сколько чего по категориям, типам и этажам. Есть функция оценки "здоровья" модели: балл от 0 до 100 и буквенная оценка от A до F. Есть поиск коллизий - геометрических пересечений между заданными наборами элементов, например между трубами и балками. Есть измерение расстояний между элементами разными способами - от центра до центра, между ближайшими точками, по габаритным контейнерам. И есть поиск всех элементов внутри заданного трёхмерного объёма.
Общее у этих двух групп - 17 функций из 71, и все они предназначены только для чтения. Ни одна не создаёт, не двигает и не удаляет элементы модели. Это делает их самым безопасным способом начать работу с ИИ в Revit: получить отчёт, статистику или список коллизий можно без риска что-то сломать в самой модели.
Практическая ценность этого блока - в скорости. То, что раньше требовало отдельного прохода по спецификациям, ручного клика по каждому элементу или отдельного модуля проверки коллизий, теперь получается одной текстовой командой прямо в Revit.
Материалы, объёмы и экспорт данных
Разбираем две группы - материалы с объёмами и экспорт данных. Обе про то, как достать из модели цифры и передать их дальше, а не про изменение самой модели.
Первая группа - материалы и объёмы, всего 3 функции, но по значимости они весомее своего размера. Первая функция выводит список материалов в проекте с возможностью фильтрации по классу или названию. Вторая показывает свойства материала - физические, конструктивные, теплотехнические. Третья - самая практичная: подсчёт объёмов и площадей по материалам, то есть автоматическая ведомость количеств. Раньше для этого собирали спецификацию вручную или настраивали отдельный отчёт, теперь можно спросить текстом "сколько квадратных метров облицовочного кирпича в проекте" и получить готовую цифру.
Вторая группа - экспорт данных, 5 функций. Первая выгружает все данные по помещениям - площадь, объём, отдел, отделку. Вторая делает массовый экспорт данных по элементам с фильтрацией, в формате JSON или CSV - удобно, если данные из Revit нужны в другой программе или таблице. Третья экспортирует готовые спецификации в CSV или TXT. Четвёртая, наоборот, читает содержимое существующих спецификаций или показывает их список. Пятая - пакетный экспорт листов и видов сразу в PDF, DWG или IFC, то есть массовая выгрузка комплекта чертежей одной командой вместо выгрузки каждого листа по отдельности.
Общая логика этих двух групп простая: данные из закрытой Revit-модели становятся доступны в универсальных форматах - CSV, JSON, PDF, IFC - без ручной пересборки таблиц и без экспорта листа за листом. Это тоже операции только на чтение и выгрузку - они не трогают саму модель, поэтому по уровню риска близки к первым двум группам чтения и аудита модели.
Отдельно стоит отметить пакетную выгрузку в IFC: это открытый формат, который понимают почти все программы для работы с BIM, включая узкоспециализированные чекеры и среды совместной работы. То есть даже там, где сам плагин чего-то не умеет, он как минимум упрощает подготовку данных для передачи в другие инструменты - одной командой, без ручного экспорта каждого листа.
Создание элементов
До сих пор ИИ только смотрел, считал и выгружал данные - модель оставалась нетронутой. С группой создания элементов это меняется: здесь ИИ впервые физически добавляет объекты в проект.
Группа насчитывает 9 функций. Первая - создание линейных элементов: стен, балок, труб - по двум точкам, началу и концу. Вторая - создание точечных элементов: дверей, окон, мебели - по точке вставки. Третья - создание поверхностных элементов: полов, потолков, крыш - по заданному контуру границы. Четвёртая, отдельная функция - создание пола, причём как по точкам контура, так и по границам уже существующего помещения. Пятая - создание помещений в указанных местах. Шестая - создание сетки осей с автоматическим расчётом шага. Седьмая - создание уровня на заданной отметке. Восьмая - создание системы балок каркаса в пределах заданного контура. Девятая - создание массива элементов, линейного или радиального, то есть размножение объекта по прямой или по кругу.
На практике это выглядит как одна текстовая фраза - "поставь дверь вот в эту стену" или "создай пол по границе этого помещения" - после которой элемент физически появляется в модели, со своей геометрией и параметрами, точно так же, как если бы его создал человек вручную инструментами Revit.
Здесь важно понимать разницу с предыдущими тремя частями (части 1/7-3/7). Раньше ошибка ИИ означала в худшем случае неверный отчёт или неточную цифру в выгрузке - досадно, но не разрушительно, поскольку сама модель оставалась нетронутой. Здесь же ошибка ИИ - это уже реальный, физически появившийся в модели объект: не там расположенная стена, лишняя дверь, окно неправильного размера. Такую ошибку не обязательно сразу заметно на общем виде, особенно если элементов создаётся сразу много.
Отсюда практическое следствие, о котором прямо предупреждают и сами разработчики плагина: операции создания элементов создают стандартные транзакции Revit, но не группируются в один шаг отмены. То есть если ИИ по одной команде создал двадцать элементов, а один из них лишний или не в том месте, отменить придётся не одним нажатием Ctrl+Z, а вручную находить и удалять конкретный элемент - либо последовательно откатывать все двадцать шагов, включая нужные.
Практический вывод для этого блока: функции создания элементов удобны для типовых, легко проверяемых на глаз действий - расставить окна по типовому фасаду, создать серию однотипных помещений, быстро набросать сетку осей. Для сложной, ответственной геометрии, где ошибку трудно заметить визуально, результат работы ИИ в этой группе требует более внимательной проверки, чем всё, что было в первых трёх частях цикла.
Изменение и массовая очистка
здесь он работает с уже существующими элементами - двигает, меняет, переименовывает и удаляет. Разбираем две группы: изменение элементов и пакетные операции с очисткой.
Первая группа - изменение элементов, 10 функций. Первая функция двигает, поворачивает, зеркалит или копирует элементы. Вторая - управляет состоянием элемента: выбрать, скрыть, изолировать, подсветить или удалить. Третья - массово меняет тип семейства сразу у группы элементов, например заменить один типоразмер окна на другой везде, где он встречается. Четвёртая - записывает значения параметров в элементы. Пятая - меняет фазу элемента. Шестая - меняет рабочий набор элемента. Седьмая - копирует параметры с одного элемента на другой, то есть переносит настройки образца на остальные. Восьмая - копирует элементы между видами. Девятая - удаляет элементы по идентификатору. Десятая - загружает файл семейства (.rfa) в проект.
Вторая группа - пакетные операции и очистка, 6 функций. Первая - массовое переименование видов, листов, уровней, осей и помещений. Вторая - последовательная перенумерация, например дверей или окон подряд по всему проекту. Третья - запись значений параметров обратно в модель из CSV-таблицы или из данных, подготовленных ИИ. Четвёртая - поиск и удаление неиспользуемых семейств, типов и материалов, то есть очистка "мусора" в проекте. Пятая - аудит и очистка импортированных CAD-подложек и связей. Шестая - добавление общих параметров сразу в несколько категорий.
Разница с блоком создания элементов принципиальная. Там ошибка ИИ добавляла в модель что-то лишнее, что обычно видно и можно удалить. Здесь же операции применяются к уже существующим, часто согласованным элементам - и последствия ошибки не "лишний объект", а испорченный или потерянный уже существовавший результат чьей-то предыдущей работы. Особенно это касается функций массового переименования, перенумерации и удаления неиспользуемого - каждая из них по своей природе затрагивает сразу много элементов одной командой.
Здесь же наиболее заметно ограничение, о котором говорилось в создании элементов: операции ИИ не группируются в единый шаг отмены. Применительно к пакетным функциям это особенно ощутимо - если команда "перенумеруй все окна" зацепила лишний этаж или спутала порядок, откатить это одним нажатием не получится.
Отдельно стоит сказать про функцию удаления элементов и очистку неиспользуемого - по своей сути это необратимые операции, ценность которых в скорости, но которые стоит запускать только на модели, где есть свежая резервная копия, а не на боевом файле, который в этот момент используют другие участники проекта.
Практический вывод: этот блок полезен именно как инструмент массовых, повторяющихся операций - переименовать сотню видов по новому стандарту, перенумеровать помещения на этаже, почистить неиспользуемые семейства после сведения нескольких моделей. Чем шире охват одной команды, тем внимательнее стоит проверять результат до того, как файл будет сохранён и передан дальше.
Виды, листы и аннотации
Здесь ИИ не строит геометрию здания, а занимается оформлением - создаёт виды, листы, размеры и марки. То есть работает не с самим зданием, а с тем, как оно представлено в комплекте документации.
Первая группа - виды и листы, 11 функций. Первая создаёт виды: планы, разрезы, фасады, 3D-виды. Вторая дублирует существующий вид - независимо, как зависимую копию или с сохранением деталировки. Третья создаёт, применяет или выводит список фильтров вида. Четвёртая применяет, выводит список или снимает шаблоны видов. Пятая задаёт графические переопределения для отдельных элементов - цвет, прозрачность, толщину линии. Шестая красит элементы по значению параметра, что удобно для наглядной проверки, например, статуса или фазы. Седьмая создаёт лист с рамкой. Восьмая создаёт сразу несколько листов за одну команду. Девятая размещает вид на листе. Десятая создаёт спецификацию с нужными полями, фильтрами и сортировкой. Одиннадцатая работает с ревизиями - выводит список, создаёт новую или добавляет её на лист.
Вторая группа - аннотации, 5 функций. Первая проставляет размеры между элементами или точками. Вторая создаёт текстовые надписи на виде. Третья создаёт штриховки и заливки. Четвёртая и пятая - автоматическая маркировка: промаркировать сразу все стены или сразу все помещения на активном виде одной командой, вместо клика по каждому элементу отдельно.
По уровню риска для самой модели эти две группы ближе к чтению и аудиту модели и материалам, объёмам и экспорту данных, чем к блокам создания и изменения элементов: они не меняют геометрию здания, а работают с её представлением на бумаге и на экране. Испортить несущую стену командой "создай спецификацию" невозможно.
Но здесь появляется другой, более тонкий вид риска - не для модели, а для самой документации, которая идёт на подпись и на экспертизу. Спецификация с неверно настроенным фильтром, вид с некорректно применённым шаблоном или лист с перепутанной ревизией выглядят технически исправно и не вызывают ошибок в самой модели - однако могут ввести в заблуждение того, кто эту документацию читает и подписывает. Если для блока создания элементов ошибку обычно видно на общем виде, то ошибку в оформлении - например, не ту версию спецификации на листе - можно не заметить, если проверять только саму модель, а не итоговый комплект чертежей.
Отсюда практический вывод: результаты этого блока стоит проверять не так, как проверяют геометрию - визуальным осмотром модели, а так, как проверяют любую документацию перед выпуском - сверяя спецификации, ревизии и состав листов построчно, вне зависимости от того, кто их готовил, человек или ИИ.
Прямой доступ к коду и риски
Разбираем последнюю, десятую группу - продвинутые функции. Здесь находится инструмент, который принципиально отличается от всех остальных, разобранных в прошлых шести частях (части 1/7-6/7).
Группа насчитывает 5 функций. Первая - служебная: показывает диалоговое окно приветствия, простая проверка, что соединение с плагином вообще работает. Вторая и третья - сохранение метаданных проекта и метаданных помещений во внутреннюю базу данных плагина. Четвёртая - запрос ранее сохранённых данных из этой базы. Пятая, самая значимая - выполнение произвольного кода на языке C# прямо внутри открытой модели Revit, с прямым доступом к самому документу проекта.
Разница между этой функцией и всеми остальными 70 принципиальная. Все прошлые шесть частей (части 1/7-6/7) описывали заранее заготовленные, ограниченные по своему действию команды: "создай стену", "перенумеруй окна", "сделай спецификацию" - каждая умеет ровно то, что в неё заложено разработчиком, и не больше. Функция выполнения кода устроена иначе: она не ограничивает ИИ конкретным действием, а даёт ему доступ к тому же самому программному интерфейсу Revit, которым пользуются профессиональные разработчики плагинов. По сути, вместо одной кнопки с одной подписанной функцией ИИ получает в руки саму клавиатуру программиста.
Из документации проекта следует, что эта функция автоматически оборачивает выполняемый код в транзакцию Revit, то есть технически операция обратима через штатную отмену - но это не отменяет главного риска: заранее неизвестно, что именно этот код сделает, потому что он не написан и не проверен человеком заранее, а сгенерирован ИИ под конкретный запрос в моменте.
Разработчики сами прямо обозначают этот риск в документации проекта: ИИ может неверно истолковать инструкцию и выполнить непредусмотренное действие, поэтому результаты работы ИИ рекомендуется проверять перед подтверждением пакетных операций на рабочих моделях. Отдельно там же указано, что программа предоставляется "как есть", без каких-либо гарантий, а авторы не несут ответственности за возможный ущерб, потерю данных или повреждение модели, возникшие в результате использования плагина - и отдельно рекомендуется всегда работать на копии модели, а не на оригинале.
Практический вывод для этой функции самый строгий за весь цикл: её стоит использовать только на тестовой копии модели, никогда - на боевом файле, с которым параллельно работают другие участники проекта, и только тем, кто способен прочитать и понять сгенерированный код прежде, чем подтвердить его выполнение. Это уже не инструмент для человека без технической подготовки, а скорее инструмент для BIM-разработчика, который использует ИИ как более быстрый способ написать нужный ему скрипт, а не как автопилот для модели.
Заключение
Если коротко подвести итог: подавляющее большинство из 71 функций - это чтение, анализ, оформление и типовые пакетные операции с умеренным и предсказуемым риском, требующие обычной проверки результата, как и любая работа, выполненная не лично инженером. И только одна функция - выполнение произвольного кода - выходит за рамки этой логики и требует принципиально иного уровня осторожности и технической квалификации от того, кто её включает.
Наша цель была не просто описать конкретный плагин, а показать BIM-координаторам, BIM-менеджерам и специалистам, работающим с моделями, что подобные решения уже существуют и доступны для изучения. Сами ли вы возьмёте этот инструмент в работу, адаптируете его под свои задачи или создадите что-то своё на основе увиденного здесь подхода - решать вам, а насколько это в итоге отразится на скорости и качестве вашей работы, стоит проверить на собственных задачах, а не принимать на веру из одной статьи.
