Источники чисел страницы: internal-component, контракты данных в internal-component и project-status.json; дата среза показана в карточке состояния.

Раздел 3

Какие данные использует программа

Сначала программа получает требования к секции. Затем она добавляет состав квартир, их места, результаты проверки и координаты для готовой схемы.

Общая модель данныхкаждый шаг добавляет новые сведения ↓
  1. 01Задание
  2. 02Состав квартир
  3. 03План по рядам
  4. 04Проверенные размеры
  5. 05Координаты схемы
  6. 06Данные об ошибке
Каждый шаг дополняет общую модель новыми данными.
Как читатьКаждая карточка показывает, кто создаёт сведения, что в них записано и где программа использует их дальше.
Зачем смотретьПо этой последовательности можно понять, на каком шаге появилась ошибка: в задании, составе квартир, размещении, проверке или схеме.

От задания до схемы

Какие сведения появляются по ходу расчёта

Карточки идут в том же порядке, что и расчёт: каждая часть программы получает уже подготовленные сведения и добавляет свои.

экран

Исходные требования

Здесь указано, какие квартиры нужны, в каком количестве и с какими площадями.

  • Создаёт: экран с требованиями.
  • Используют: размещение и сравнение вариантов.
Контракт данных
Версия
Отдельной версии нет: это текущее задание формы.
Проверка
Тип, количество и диапазон площади приводятся к допустимому виду.
Инвариант
Обязательное количество квартир не бывает отрицательным.
Ошибка
Незаполненное обязательное поле остаётся на экране и не уходит в расчёт.
подбор квартир

Состав квартир для размещения

Например: «0 студий, 1 однокомнатная, 2 двухкомнатные, 1 трёхкомнатная». Места для квартир программа выберет на следующем шаге.

  • Создаёт: подбор квартир.
  • Используют: размещение, проверка размеров и карточки вариантов.
Контракт данных
Версия
Отдельной версии нет: порядок типов задаёт общий справочник квартир.
Проверка
Дробные, отрицательные и нечисловые количества приводятся к целым неотрицательным значениям.
Инвариант
Каждая позиция массива всегда относится к одному и тому же типу квартиры.
Ошибка
Недопустимое количество становится нулём, а не ломает следующий шаг.
расстановка

План по рядам

Здесь уже видно, какая квартира стоит в каком ряду и с каким смещением от края.

  • Создаёт: расстановка.
  • Проверяет: проверка размеров.
Контракт данных
Версия
Отдельной версии нет: план живёт внутри текущего расчёта.
Проверка
План сверяется с рядами выбранного типа секции.
Инвариант
Каждая квартира принадлежит одному ряду и имеет одно смещение от его начала.
Ошибка
Недопустимое перемещение отклоняется, прежний план сохраняется.
проверка размеров

Размеры и предупреждения

Здесь записаны ряды, занятые места, выходы за границы и предупреждения.

  • Создаёт: проверка размеров.
  • Используют: схема, сравнение вариантов и повторение ошибок.
Контракт данных
Версия
Отдельной версии нет: модель строится заново из плана.
Проверка
Сверяются границы рядов, занятые блоки, доступы и переполнение.
Инвариант
Квартира не может молча выйти за ряд или занять защищённую зону.
Ошибка
Проблема становится предупреждением или переполнением и остаётся видимой.
схема

Координаты схемы

Здесь записано, где на экране должны находиться квартиры, коридор и свободные места. Благодаря этому схема сохраняет правильный масштаб.

  • Создаёт: построение схемы.
  • Используют: коридор, квартиры, пустоты и перетаскивание.
Контракт данных
Версия
Отдельной версии нет: координаты производятся из проверенной модели.
Проверка
Рамки рядов и элементов должны иметь конечные размеры и координаты.
Инвариант
Все элементы используют одну систему координат и один масштаб.
Ошибка
Элемент без допустимой рамки не рисуется как достоверная часть схемы.
поиск ошибок

Данные для повторения ошибки

В одном файле сохраняются исходные требования и результат расчёта. Его можно открыть на другом компьютере и повторить ошибку.

  • Создаёт: сохранение данных об ошибке.
  • Использует: повторный запуск расчёта.
Контракт данных
Версия
schemaVersion: 2.
Проверка
При открытии проверяются структура файла и смысловые связи между его частями.
Инвариант
Количество квартир в выбранном составе совпадает с квартирами по рядам.
Ошибка
Файл другой версии или с нарушенной связью отклоняется с объяснением.
Технические сведения
Исходные требования
requirements
Состав квартир
Solution
План по рядам
manualRows
Проверенные размеры
layout rows
Координаты схемы
RowFrame
Данные об ошибке
DebugSnapshot

Словарь

Чем отличаются план, раскладка, модель и схема

Эти слова описывают разные стадии одного результата, поэтому не используются как взаимозаменяемые.

План
Выбранный порядок квартир по рядам: что и в какой последовательности нужно разместить.
Раскладка
Физические места и смещения квартир, ЛЛУ, переходов и свободных интервалов.
Модель
Структурированные данные раскладки, которые можно проверить, пересчитать и передать дальше.
Схема
Визуальное представление уже проверенной модели: SVG с квартирами, коридором, дверями и предупреждениями.

Правило: если меняется набор данных, нужно проверить все части программы, которые его используют. Например, после изменения данных о квартирах по рядам проверяют размещение, размеры, схему и повторение ошибок.