Документы
Текст может содержать неточности, устаревшие данные или технические ошибки. Пожалуйста, проверяйте критически важную информацию перед использованием.
Документ — блочный редактор и одновременно модель проекта. В нём пишут текст — заголовки, абзацы, списки, таблицы, код, медиа — и вставляют значения, вычисленные по другим моделям.
Содержимое пересчитывается при каждом открытии документа, и правите вы готовый текст.

Создание документа
- Откройте меню проекта, выберите Новая модель, укажите Имя, выберите Тип модели — Документ — и нажмите Создать.
- Щёлкните правой кнопкой мыши по документу в навигаторе моделей, выберите Новое представление, укажите имя и нажмите Создать. Откроется блочный редактор.
- Выделите документ и добавьте в поле Данные его формы корни моделей, из которых документ берёт значения.
Выражения обращаются к привязанным корням через self.data. Это всегда
коллекция, даже если корень один. Привязать можно и корни из других моделей
проекта.
В той же форме задаётся Язык выражений: AQL, OCL, SPARQL, CEL или EOL. Язык один на весь документ; если он не выбран, выражения вычисляются на AQL.
Поля
Поле — строчный фрагмент, значение которого вычисляется из модели.
- Наберите
/, откройте в меню группу Динамические и выберите Поле. - Введите выражение, например
self.data.elements->size(), и нажмите Enter.
Дальше поле показывает вычисленное значение. Выражение правится в поле Выражение формы свойств.
Число, строка и логическое значение выводятся как есть, объект модели — в виде
Label (EClassName), коллекция — поэлементно, пустой результат — заполнителем
…. Если выражение не вычислилось, поле показывает ошибку, а остальной документ
собирается как обычно.
Поля только читают модель. Выражение, которое изменило бы её, не выполняется.

Повторяющиеся блоки
Репликация отрисовывает блок по разу на каждый элемент коллекции.

- Поставьте курсор в блок и заполните в форме свойств два поля: Выражение —
коллекцию, например
self.data.elements, и Переменную — имя, к которому каждая копия привязывает свой элемент, напримерcls. - Вставьте в блок поле с выражением
cls.name.
Повторяются абзацы, элементы списка, цитаты, блоки кода, таблицы, строки и ячейки. Заголовок повторяется вместе со своим разделом, то есть со всеми блоками до следующего заголовка того же или более высокого уровня. Разделитель, изображение, видео, аудио и файл не повторяются.
Правка любой копии меняет единственный оригинал, после чего перерисовываются остальные копии. Вложенные реплицированные блоки перемножают коллекции, и внутренняя копия видит обе переменные.
Число копий задаёт коллекция: чтобы копий стало меньше, удалите элементы из
модели. Пустая коллекция даёт одну копию с заполнителем … в полях.
Оглавление
Навигатор моделей собирает оглавление из заголовков документа — по нему удобно перемещаться в длинном тексте.
