СПЕЦИФІКАЦІЯ ЗАВДАННЯ
1) Мета та обсяг проекту
Мета: Створення веб-додатку на основі ШІ, який автоматично виконує вимірювання з проектної документації (архітектура, конструкція, інсталяції/галузі, пзт), об'єднує креслення в єдине ціле, ідентифікує елементи (наприклад, стіни, вікна, двері, штукатурки, конструктивні та інсталяційні елементи), а потім представляє повне вимірювання у таблицях з можливістю візуальної перевірки (2D/3D) та оцінки.
На старт:
- Обробка векторних файлів: *.dwg, *.pdf (векторний)
- Обсяг галузей: архітектура, конструкція, інсталяції (HVAC, водопостачання, електрика), пзт
- Функції: автоматичне об'єднання документації – для потреб додатку, розпізнавання елементів та вимірювання, візуалізація, можливість ручного коригування, додавання цін та створення попереднього кошторису
2) Основні продуктові припущення
- Завантаження: користувач завантажує пакет файлів DWG/PDF – векторні файли (плани, перерізи, фасади, описи, легенди; можливі підкладки та XREFи).
- Автоматична обробка: система парсить файли, нормалізує шари, одиниці та масштаби, об'єднання та злиття креслень в єдину референсну модель.
- ШІ розпізнає елементи: розпізнає всі елементи на проектах
- Вимірювання: обчислює кількості за правилами вимірювання (довжини, площі, об'єми, одиниці); враховує отвори, товщини, шари – вимірювання за глобальними правилами
- Перевірка: табличний результат + перегляд 2D/3D з підсвічуванням обчислених елементів; режим "порівняти/пояснити" неясності (конфлікти між аркушами, відсутність розмірів, несумісні масштаби).
- Ручне коригування: редаговані класифікації та геометрії (малювання/редагування полігонів/отворів), прийняття/відхилення елементів.
- Ціни та кошторис: прив'язка цінових позицій та ставок (ціна за одиницю, націнки, ПДВ), експорт CSV/XLSX/BC3/PDF.
- Аудит та версійність: історія змін, порівняння вимірювань, різниці між версіями документації
3) Потік користувача
- Новий проект → назва, інвестор, місцезнаходження, стандартні одиниці та валюти
- Завантаження файлів → drag&drop, контроль цілісності
- Обробка → парсинг, нормалізація, злиття, класифікація ШІ, вимірювання.
- Огляд → таблиці + вигляд 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, шифрування at-rest та in-transit, IAM, журнал аудиту, WAF, резервні копії.
- Надійність: SLO обробки 99.5%/міс; повторні спроби/компенсації, версійність моделей.
8) Конвеєр обробки (технічні кроки)
- Завантаження & валідація → AV сканування, екстракція метаданих, виявлення XREF.
- Парсинг:
- DWG/DXF: читання шарів, посилань на блоки, геометрії, DIMSTYLE, масштаб вікна перегляду, Модель/Паперовий простір.
- PDF (вектор): шляхи, полігони, тексти (TrueType), шари; OCR лише для векторних текстів як резервний варіант.
- Нормалізація масштабу та одиниць: з вікон перегляду та заголовків; автоматичне підгонка; прапорці у разі конфліктів.
- Реєстрація аркушів: підгонка осей/сіток/позначок (ICP/підгонка ознак на векторах), трансформації 2D/3D.
- Екстракція семантичних об'єктів:
- Правила шарів (наприклад, A-WALL, K-…); шаблони назв; класифікація словникова.
- ШІ на векторному графі: полігони → стіни (паралельні лінії), hatch → заповнення/підлоги, блоки → обладнання.
- Тексти та легенди → парсинг параметрів (товщини, матеріали, типи, номери приміщень).
- Злиття: вирішення конфліктів (архітектура проти конструкції), ієрархія достовірності (DIM > опис > легенда > шар), відстеження походження даних (provenance).
- Вимірювання: правила, одиниці, віднімання отворів, агрегації по поверхах/приміщеннях.
- Виявлення неясностей: відсутні параметри, несумісні масштаби, суперечливі товщини – генерація питань.
- Візуалізація: генерація підкладок, накладення об'єктів, спрощене 3D (екструзія за висотою поверху).
- Кошторис: картографування елемент→позиція, формули, націнки, експорт.
9) Модель ШІ та навчання
- Представлення: векторний граф (вузли: вершини геометрії та блоки; ребра: сегменти/полігони; атрибути: layer, тип, стиль лінії, тексти поблизу), додатково растеризація для контекстуальних характеристик.
- Архітектура: Графова Нейронна Мережа (GAT/GraphSAGE) + Трансформер на послідовностях векторів; пізнє злиття з правилами та евристиками CAD.
- Дані для навчання: закріплення в реальних DWG (напівавтоматичне анотування) + синтетичні генератори креслень; активне навчання з взаємодії користувача (зворотний зв'язок в UI).
- OCR/NLP: розпізнавання описів, таблиць, легенд; нормалізація одиниць (мм/м), парсинг виразів (наприклад, «стіна 24 см, гіпсова штукатурка 1,5 см»).
- Метрики: mAP/F1 для класів, MAE/SMAPE для кількостей, час обробки.
- MLOps: реєстрація моделей, версійність наборів даних, валідації, A/B у фоновому режимі на проект.
10) Правила вимірювання – деталі (приклади, що налаштовуються)
- Стіни:
- Довжина з осі стіни; Висота: з перерізів / стандартна з поверху; Товщина: з опису/шару.
- Пл. штукатурки = 2 × (довж. × вис.) – віднімання отворів > t_віднімання; правила порогів (наприклад, не віднімемо < 0,5 м²).
- Отвори: Шир., вис. з розмірів/позначок; кількість шт.; пл. у світлі.
- Перекриття/плити: Пл. з контуру; об'єм = пл. × товщина; обвід (опалубка).
- Сходи: Кількість прольотів, пл. ступенів (антиковзкі), косоури (м), перила (м).
- Підлоги/покриття: Пл. нетто після віднімання; цоколь (м вздовж стін).
- Інсталяції: Довжини трас по осі; фітинги – правила виявлення з блоків/словника символів.
Кожне правило має: визначення кількості, джерела даних, формулу, толерантність та пріоритет.
11) UI/UX – ключові екрани
- Дашборд проектів: статуси обробки, останні вимірювання.
- Огляд документації: список аркушів (мініатюри), шари, фільтри.
- Вигляд перевірки: полотно 2D/3D з накладкою; легенди кольорів для класів; панель деталей елемента.
- Таблиця вимірювання: групування за галуззю/поверхом/приміщенням/типом; in-line редагування; відстеження змін.
- Панель неясностей: питання, пропозиції рішень, прийняття.
- Прайс-листи та картографування: огляд позицій, формули, перегляд впливу на вартість.
- Експорти: майстер вибору обсягу та формату.