СПЕЦИФИКАЦИЯ ЗАДАНИЯ
1) Цель и объем проекта
Цель: Создание веб-приложения на основе ИИ, которое автоматически выполняет измерение по проектной документации (архитектура, конструкция, установки/отрасли, ПЗТ), объединяет чертежи в единое целое, идентифицирует элементы (например, стены, окна, двери, штукатурки, конструктивные и установочные элементы), а затем представляет полное измерение в таблицах с возможностью визуальной проверки (2D/3D) и оценки.
На старте:
- Поддержка векторных файлов: *.dwg, *.pdf (векторный)
- Область отраслей: архитектура, конструкция, установки (HVAC, водоснабжение и канализация, электричество), ПЗТ
- Функции: автоматическое объединение документации – для нужд приложения, распознавание элементов и измерение, визуализация, возможность ручной коррекции, добавление цен и создание предварительной сметы
2) Основные продуктовые предпосылки
- Загрузка: пользователь загружает пакет файлов DWG/PDF – векторные файлы (планы, разрезы, фасады, описания, легенды; возможные подложки и XREF).
- Автоматическая обработка: система парсит файлы, нормализует слои, единицы и масштабы, объединение и слияние чертежей в согласованную эталонную модель.
- ИИ распознает элементы: распознает все элементы на проектах
- Измерение: вычисляет количества по правилам измерения (длины, площади, объемы, штуки); учитывает отверстия, толщины, слои – измерения по глобальным правилам
- Проверка: табличный результат + просмотр 2D/3D с подсветкой подсчитанных элементов; режим "сравнить/объяснить" неясности (конфликты между листами, отсутствие размеров, несогласованные масштабы).
- Ручная коррекция: редактируемые классификации и геометрия (рисование/редактирование полилиний/отверстий), принятие/отклонение элементов.
- Цены и смета: привязка ценовых позиций и ставок (цена за единицу, наценки, НДС), экспорт CSV/XLSX/BC3/PDF.
- Аудит и версионирование: история изменений, сравнение измерений, различия между версиями документации
3) Поток пользователя
- Новый проект → название, инвестор, местоположение, стандартные единицы и валюты
- Загрузка файлов → перетаскивание, контроль согласованности
- Обработка → парсинг, нормализация, слияние, классификация ИИ, измерение.
- Обзор → таблицы + вид 2D/3D; панель неясностей; фильтры (отрасль, этаж, слой, тип).
- Коррекция → редактор геометрии, изменение класса, объединение/разделение элементов, принятие.
- Цены → привязка позиций, ставки, наценки.
- Экспорт/отчет → XLSX/CSV/BC3, PDF сводки, отчет о неясностях.
5) Функциональные требования (подробные)
5.1 Импорт и валидация файлов
- Поддержка: векторные файлы: DWG, DXF (по желанию), векторный PDF
- Автоматическое определение масштаба: из вьюпортов (DWG), из заголовочной рамки (OCR), из обозначений (например, 1:100), из размеров (DIMSTYLE / распознавание текстов размеров).
- Нормализация единиц (мм/м) и системы координат (сдвиги, повороты, локальные системы, UCS).
- Обнаружение недостатков и ошибок
5.2 Слияние документации (объединение в целое)
- Группировка листов: этажи, разрезы, фасады, отрасли.
- Регистрация и выравнивание планов/разрезов (подгонка осевых маркеров, сеток, уровней; общая трансформация 2D/3D).
- Объединение архитектуры с конструкцией
5.3 Распознавание элементов (ИИ + правила)
Требование: Распознавание элементов не может основываться исключительно на названиях слоев. Названия слоев рассматриваются исключительно как вспомогательный сигнал с низким весом.
Правила реализации:
- Классификационные решения в первую очередь основываются на геометрии и топологии – на основе машинного обучения
- В случае противоречия информации: приоритет: DIM/размеры > однозначное текстовое описание > легенда/схема > геометрические характеристики > название слоя.
- Система должна работать с любым/нестандартным наименованием слоев (разные языки, сокращения, отсутствие стандарта). Для тестов возможна полная анонимизация названий слоев.
- Компонент ИИ/правил должен позволять отключение влияния слоев (feature flag) – результат все равно должен быть корректным.
5.4 Измерение - измерение на основе принятых правил и распознавания элементов
5.5 Проверка и редактирование
- Вид 2D (план, разрез) и 3D (простой экструзированный модель) с подсветкой подсчитанных элементов.
- Режим проверки: клик по элементу → детали измерения + источники (листы, описания), допустимость/неопределенность.
- Инструменты редактирования: рисование/редактирование полилиний, перемещение/масштабирование, изменение класса, объединение/разделение.
- Список неясностей: вопросы к пользователю, предлагаемые решения, принятие/отклонение.
5.6 Цены и смета
- Словари цен/позиции: база позиций - глобальная (для системы) и локальная для пользователя – пользователь может изменить локальную цену)
- Сопоставление: тип элемента → формула → ценовая позиция.
- Формулы: цена = количество × ставка ± наценки (работа, материал, оборудование, прибыль, общие расходы, НДС).
- Версионирование прайс-листов, валюты, индексация цен (инфляция).
- Экспорт: XLSX/ (Смета), PDF сводки.
5.7 Экспорты и интеграции
- XLSX/CSV/BC3, PDF отчеты (скриншоты визуализации + таблицы).
6) Нефункциональные требования
- Точность измерения: геометрическая ошибка ≤ ±2 мм при корректных масштабах;
- Производительность: проект до 200 листов/2 ГБ – полная обработка ≤ 20 мин; план для просмотра ≤ 3 с.
- Масштабируемость: горизонтальная (очереди задач), хранилище для файлов до 10 ГБ/проект.
- Безопасность: GDPR, шифрование данных в покое и в пути, IAM, журнал аудита, WAF, резервные копии.
- Надежность: SLO обработки 99.5%/мес; повторные попытки/компенсации, версионирование моделей.
8) Процесс обработки (технические шаги)
- Загрузка & валидация → AV сканирование, извлечение метаданных, обнаружение XREF.
- Парсинг:
- DWG/DXF: чтение слоев, ссылок на блоки, геометрии, DIMSTYLE, масштаб вьюпорта, модель/бумажное пространство.
- PDF (вектор): пути, полилинии, тексты (TrueType), слои; OCR только для векторных текстов как резервный вариант.
- Нормализация масштаба и единиц: из вьюпортов и заголовков; автоматическая подгонка; флаги в случае конфликтов.
- Регистрация листов: подгонка осей/сеток/маркировок (ICP/feature matching на векторах), трансформации 2D/3D.
- Извлечение семантических объектов:
- Правила слоев (например, A-WALL, K-…); шаблоны названий; словарная классификация.
- ИИ на векторном графе: полилинии → стены (параллельные линии), заливка → заполнения/полы, блоки → оборудование.
- Тексты и легенды → парсинг параметров (толщины, материалы, типы, номера помещений).
- Слияние: разрешение конфликтов (архитектура против конструкции), иерархия достоверности (DIM > описание > легенда > слой), отслеживание происхождения данных (provenance).
- Измерение: правила, единицы, вычитание отверстий, агрегации по этажам/помещениям.
- Обнаружение неясностей: отсутствующие параметры, несогласованные масштабы, противоречивые толщины – генерация вопросов.
- Визуализация: генерация подложек, наложение объектов, упрощенный 3D (экструзия по высоте этажа).
- Смета: сопоставление элемент→позиция, формулы, наценки, экспорт.
9) Модель ИИ и обучение
- Представление: векторный граф (узлы: вершины геометрии и блоки; ребра: сегменты/полилинии; атрибуты: слой, тип, стиль линии, близкие тексты), дополнительно растеризация для контекстных характеристик.
- Архитектура: графовая нейронная сеть (GAT/GraphSAGE) + трансформер на последовательностях векторов; позднее слияние с правилами и эвристиками CAD.
- Данные для обучения: привязка к реальным DWG (полуавтоматическая аннотация) + синтетические генераторы чертежей; активное обучение из взаимодействия с пользователем (обратная связь в интерфейсе).
- OCR/NLP: распознавание описаний, таблиц, легенд; нормализация единиц (мм/м), парсинг выражений (например, «стена 24 см, гипсовая штукатурка 1,5 см»).
- Метрики: mAP/F1 для классов, MAE/SMAPE для количеств, время обработки.
- MLOps: регистрация моделей, версионирование наборов данных, валидации, A/B в фоновом режиме для проекта.
10) Правила измерения – детали (настраиваемые примеры)
- Стены:
- Длина от оси стены; Высота: из разрезов / по умолчанию из этажа; Толщина: из описания/слоя.
- Площадь штукатурки = 2 × (дл. × выс.) – вычитания отверстий > t_вычитания; правила порогов (например, не вычитаем < 0,5 м²).
- Отверстия: Шир., выс. из размеров/обозначений; количество шт.; пл. в свете.
- Перекрытия/плиты: Пл. из контура; объем = пл. × толщина; периметр (опалубка).
- Лестницы: Количество пролетов, пл. ступеней (антискользящие), подступенки (м), перила (м).
- Полы/покрытия: Чистая пл. после вычитаний; плинтусы (м вдоль стен).
- Установки: Длины трасс по оси; фитинги – правила обнаружения из блоков/словаря символов.
Каждое правило имеет: определение количества, источники данных, формулу, допустимость и приоритет.
11) UI/UX – ключевые экраны
- Панель проектов: статусы обработки, последние измерения.
- Обзор документации: список листов (миниатюры), слои, фильтры.
- Вид проверки: холст 2D/3D с наложением; легенды цветов для классов; панель деталей элемента.
- Таблица измерений: группировка по отрасли/этажу/помещению/типу; редактирование на месте; отслеживание изменений.
- Панель неясностей: вопросы, предложения решений, принятие.
- Прайс-листы и сопоставление: обзор позиций, формулы, просмотр влияния на стоимость.
- Экспорты: мастер выбора диапазона и формата.