Consult Engenharia · Канализационные системы
Лучшее, что я здесь построил, — это список вопросов.
Надстройка Revit, которая строит модель канализационной насосной станции по топографии, плоскому чертежу компоновки и файлу параметров. Когда всё начиналось, я ничего не знал о канализационных системах. Эта страница о том, как такой разрыв закрывается.
- Роль
- Product lead и разработка
- Стек
- .NET 10 · Revit 2027 API · Autodesk APS Design Automation · C#
- Статус
- MVP на проверке у клиента — публичной ссылки нет
Знание было в голове одного инженера.
Насосную станцию рисуют каждый раз одинаково и каждый раз немного иначе. Глубины берутся из топографии. Объём приёмного резервуара — из максимального расхода за три часа. Колодец без параметра глубины нельзя просто опустить, иначе его люк уйдёт из тротуара. Ничего из этого нигде не было записано — всё жило в практике инженера, сделавшего такие станции десятки раз.
Я не знал ничего из этого. Это и есть реальное исходное условие большей части консалтинговой работы, и притворство здесь — верный способ построить уверенно работающую неправильную систему.
Пятьдесят один пронумерованный вопрос, партиями, каждый ответ становится правилом.
Не воркшоп и не discovery-созвон. Документ с пронумерованными вопросами, отправляемый партиями, с письменными ответами, где каждый ответ прослеживается до породившего его правила и до кода, который это правило применяет. Если ответ менял прежнее допущение, правило менялось вместе с ним, со ссылкой на номер вопроса.
Вопросы раньше кода
Запись архитектурного решения по сборщику заканчивается строкой, которую мне нужно было выдержать: ничего из него не реализуется, пока не отвечены открытые вопросы. Открытых пунктов было шесть. Работа там остановилась и ушла на другое направление, пока не пришли ответы.
Решения записаны, включая отменённые
Первый подход размещал станцию, вписывая эталонный проект в новый рельеф: участки совмещались геометрически, а отметка площадки считалась по балансу выемки и насыпи. Потом клиент сказал, что сам даёт плоский чертёж компоновки с готовыми позициями. Геометрическое совмещение не удалили — оно стало проверкой, которая сравнивает чертёж с эталонным проектом и предупреждает, когда расхождение выходит за порог.
Ответы и есть спецификация
Максимальный расход за три часа, внутренний диаметр против наружного, остаётся ли вход на отметке, по каким признакам опознаётся колодец на пути стока. Каждый из этих пунктов вернулся числом или «да» и вошёл в систему правилом с приложенным номером вопроса.
Всё, что не может сдвинуться корректно, останавливается и объясняет почему.
Это система, которая редактирует строительную модель. Значимый режим отказа — не падение, а сдвиг чего-то «почти правильно» с оставленным разорванным соединением трубы там, куда никто не смотрит. Поэтому критерий готовности — это отказ: то, что не может сдвинуться корректно, остаётся на месте с предупреждением о причине, и ни одно соединение не остаётся разорванным.
Десять таких ситуаций внесены в каталог — короткий участок, уклон которого прыгнул бы с 1% до 39%; деталь, закреплённая на стене, которой пришлось бы переехать; колодец без параметра глубины. По каждой записано, что делает надстройка, точный текст предупреждения и где случай встретился впервые. Новый случай, который ничего не ломает, не чинится на месте: он добавляется в этот список как известное предупреждение.
Самой трудной версией этого оказалась обработка ошибок самого Revit. В v1.1 ошибка внутри транзакции позволяла Revit применить своё стандартное решение, а оно может снять ограничение и молча разорвать соединение. В v1.2 любая ошибка Revit отменяет операцию целиком и сообщает причину. Есть ровно одно задокументированное исключение, и оно допустимо лишь потому, что выполняются все три условия: задействованные элементы — аннотации, не меняющие ни геометрию, ни соединения, ни параметры модели; решение выбирает надстройка, а не стандарт Revit; и размер, чья привязка перестала существовать, починить всё равно нельзя. Любая другая ошибка, даже вместе с этой, отменяет всё.
Один и тот же код в Revit у инженера и headless в облаке.
Инженер получает вкладку с четырьмя командами — посадить на новый рельеф, построить станцию, снять инвентаризацию модели и проверить её. Облачный путь запускает тот же генератор без интерфейса через Autodesk Design Automation и возвращает модель и файл результата. Под обоими путями лежит движок, который читает входные данные, проверяет их, переводит единицы и оценивает глубины, и он вообще не зависит от Revit, поэтому тестируется офлайн на каждом пуше. Смену диаметров отдали собственным правилам маршрутизации Revit: генератор выбирает тип, Revit решает соединения.
Я работаю на Mac, где Revit не запускается. Разработка идёт против API через референсные пакеты, которые компилируются без него; тестирование — Revit 2027 в виртуальной машине с Windows; а облачному пути локальный Revit и не требовался.
177 коммитов за семь дней в стеке, который мне не родной.
C#, Revit API и соглашения BIM — не то, откуда я пришёл. Код генерируется и проверяется с ИИ под моим руководством, поэтому за неделю и вышло столько. От превращения этого в уверенную бессмыслицу спасает форма работы, а не объём: движок, работающий без Revit и проверяемый на каждом пуше; решения, записанные до реализации; и клиент, отвечающий письменно.
Честное чтение
Это MVP на проверке. Нет публичной ссылки, нет запуска в продакшене и нет цифры сэкономленных часов, потому что первая настоящая генерация в Revit у клиента ещё не состоялась. Если вам нужны доведённые результаты, читать стоит другие проекты на этом сайте.
Этот показывает то, что происходит до результата: вход в незнакомую область, извлечение правил у того, кто их держит, и система, которая отказывается действовать, когда не уверена. Это ровно та работа, которой я занимался бы в первый месяц где угодно.
Есть знание, живущее в голове одного человека?
Это ситуация, которую я люблю больше всего: правила реальны, эксперт рядом, и никто их ещё не записал.