Существует проблема — в Ревите нет возможности красиво сделать заголовки в спецификации. Как правило, нам нужно выводить заголовок во вторую строку спецификации, а Ревит умеет генерировать заголовки только над первой. Расскажу некоторые варианты решения проблемы.
Все они в той или иной мере трудны и требуют соблюдения определённой технологии работы. Но вроде как в этом и есть смысл работы в Ревите: долго всё переделывать, а потом смириться и забить. Или не в этом смысл? Напишите в комментарии, в чём смысл-то, зачем это всё?
Тупо вставить пробелы
Конечно, самый простой вариант — сделать заголовок стандартными средствами и навставлять пробелов перед текстом так, чтобы он оказался над второй строкой.
Если вставить обычные пробелы, то Ревит их отрежет и выбросит, вернув текст без пробелов впереди. Решение — использовать символы Юникода. В блокноте вставляете нужное количество пробелов и перед ними — невидимый символ. Делается это правой кнопкой мыши.
Эти символы не видны человеку, но Ревит их видит и уже не считает, что перед текстом набор пробелов. В итоге получаем «перенос» текста на заданное количество пробелов. Может получиться даже весьма симпатично, как на иллюстрации ниже.
Однако тут есть и серьёзный минус: нельзя управлять количеством таких пробелов в разных формах. Одно дело, когда заголовок используем в одной форме спецификации, а если нужно использовать в разных с разной шириной столбцов? Всё, приплыли.
Семейство заголовка
Второе решение — использовать дополнительное семейство для генерации заголовка в нужном столбце спецификации. Процитирую Диму Чубрика:
Так что решайте сами, насколько оно вам подходит.
Тут можно использовать два варианта: отдельное семейство, которое размещается в модели (максимальный не бим) и вложенное общее семейство без геометрии, так называемая «пустышка», которую нужно добавлять во все семейства. Наименование пустышки и будет формировать заголовок.
Второй вариант не подходит для системных категорий, однако его применяю в решении конкретной задачи — получении спецификаций на оборудование и арматуру из принципиальных схем. Там не нужны трубы, используются не те семейства, из которых собирается трёхмерная модель, а значит и нет проблем с системными категориями.
Отдельное семейство
С отдельным семейством есть одна проблема — его нужно размещать в модели. Очень не хотелось бы, чтобы где-то в углу 3Д-вида лежали кубики, тем более не хочется создавать какой-то отдельный рабочий набор с такими элементами.
Но размещать всё же нужно. И тут есть компромиссный вариант: делать семейство в категории, например «Обобщенные модели», без геометрии. Чтобы мы глазами видели это семейство и могли выделять его в модели, внутрь вложить семейство в категории «Элементы узлов», которое состоит из чёрной заливки, например в форме кружка или квадратика.
Семейства в итоге не будут отображаться в 3Д-видах, их будет видно исключительно на том плоском виде, на котором вы их разместите. Поэтому создаём отдельный план этажа, называем его «В_Заголовки», и размещаем на нём столько семейств, сколько нужно.
Дальше заполняем параметры с названием заголовка и для сортировки в спецификациях — готово. Для Ревита это полноценный элемент модели, который идёт в спецификацию по нескольким категориям, но визуально их не видно ни на оформленных планах, ни на разрезах, ни на схемах.
Самое сложное тут, конечно же, заполнять все данные руками и правильно выбирать сортировку так, чтобы заголовки появлялись в нужных местах. Я накидал параметры для примера, это не отлаженная схема, только для иллюстрации:
Нижнее подчёркивание средствами Ревита не сделать, поэтому приходится идти на костыльную хитрость — написание текста в две строки, во второй строке добавляю значки верхнего подчёркивания: ¯
Делаю это в блокноте, для заголовка вентиляции текст будет выглядеть так:
СИСТЕМА ВЕНТИЛЯЦИИ ЖИЛОЙ ЧАСТИ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
У этого способа с двумя строками есть неприятный недостаток: для Ревита тут по-прежнему две полноценные строки, поэтому сделать выравнивание видимого текста по центру ячейки не выйдет. Можно сделать ещё красивее: добавить перед текстом абзац и вставить в него символ Юникода. Смотрите в начале статьи, показывал, как добавлять такие символы. Мама мия, посмотрите, как красиво выходит:
Всё сильно зависит от шрифта, который используете в Ревите, поэтому тут только ручная подгонка. Если проектируете примерно одно и то же, ну или заголовки повторяются из проекта в проект, можно сразу наделать либо типоразмеры семейства с нужными заголовками, либо сохранить файл блокнота с заголовками и вставлять по необходимости. Вариант с типами кажется более удобным.
И тут новая проблема — столбец с количеством. Для заголовков он нужен нам пустым, а для позиций спецификации должен быть не просто заполнен, а ещё и суммировать значения.
Решить задачу можно только с помощью расчётных параметров с процентом. Об этом уже была статья в блоге, обязательно прочитайте её, ниже я не буду всё объяснять так досконально.
Теперь задача усложняется из-за необходимости оставлять пустую ячейку в заголовке. Мне повезло, я работаю с крутыми ребятами в Бим2би, которые уже решали аналогичные задачи в шаблонах КР. Так что вот вам алгоритм.
Кстати, у Ковылина есть и другой способ размещать заголовки — через наложение спецификаций. Можете посмотреть его в видеопрезентации шаблонов для Ревита 2021. Ссылка с таймкодом сразу на нужную часть.
У заголовков нужно ввести некий параметр, который будем использовать в условии. Этот параметр укажет, что данное семейство — заголовок. Должен быть не текстовый параметр, текст в условиях не годится. Выбираю «ADSK_Количество» и приравниваю к -1.
Далее создаём условный параметр «Количество без заголовков» и прописываем формулу с условием. Название параметра может быть любым.
В данном случае сразу писать ноль в «ADSK_Количество» не стал, так как такое же значение может быть не только у заголовков, но и у семейств, которые пользователи загрузили в проекте и не адаптировали под шаблон. На всякий случай отвожу заголовкам отдельное значение для «ADSK_Количество».
Далее нужно получить процент для значений из количества без заголовков по общему количеству элементов. Простой расчётный параметр с процентом:
Создаю расчётный параметр, в котором получаю общее количество элементов в каждой строке. Для этого делю количество без заголовков на процентную долю. Для наглядности включил расчёт итогов для количества без заголовков.
Как видите, в местах неопределённости, где 0 делится на 0 % получаем пустые строки.
Теперь нужен ещё один процентный параметр. Дело в том, что нам нужно получить для каждой позиции её суммарное количество. Для наглядности добавил в отопление жилого дома ещё одну трубу с другой длиной и включил отображение каждого экземпляра.
Если умножить общее количество на процентную долю, то мы снова получим длины труб, а в заголовках будет пусто. Вроде бы всё хорошо, но есть нюанс. Чтобы в итоговой спецификации получить общую длину для труб, придётся включить суммирование итогов для количества, и мы тут же потеряем нашу пустую ячейку. Давайте посмотрим.
Теперь отключаю вывод каждого экземпляра в сортировке и указываю, что для «Количество каждой позиции» нужно вычислять итоги. Пустые ячейки пропадают, теперь тут нули.
Такой вид мне не подходит. Удаляю этот параметр и делаю иначе.
Создаю ещё один процентный параметр. В нём беру долю для количества без заголовков по наименованиям. Рассмотрим на примере двух труб. Они одинаковые по наименованию, но с разным количеством. Если брать процент их количества без заголовков по наименованию, то получим:
- первая труба длиной 2,5 метра, вторая — 3,8 метра;
- суммарная длина двух труб с одинаковым наименованием: 2,5 + 3,8 = 6,3 м;
- таким образом доля первой трубы составляет 2,5/6,3 ≈ 40 %;
- доля второй трубы: 3,8/6,3 ≈ 60 %.
То есть внутри одного наименование «Труба 150» есть две позиции с разным процентным соотношением по длинам. Если же взять длину каждой трубы и поделить на этот процент, то получим суммарную длину для всех труб с этим наименованием — то есть без вычисления итогов в спецификации получим суммарную длину в каждой строке.
Если скрыть все неважные сейчас ячейки, то получим прекрасную картинку, в которой у заголовков нет количества, а у элементов модели — есть.
Вложенное семейство
Здесь всё аналогично, просто семейство мы размещаем не отдельно в модели, а вкладываем внутрь загружаемых семейств, связываем параметры родительского и вложенного так, чтобы вписывать в родительские заголовки и сортировку.
Так как заголовок должен всегда идти выше, то число для сортировки приравниваем к комплекту, родительское семейство будет +0.1, а другие вложенные, например начинка пожарного шкафа, будет идти +0.2, +0.3 и так далее. Подробнее об этом смотрите в презентации шаблонов ОВ и ВК версии 2.0.
Спецификация настраивается точно так же, как для отдельного семейства. В общем-то для Ревита это одно и то же: что отдельное семейство, что общее вложенное.
Вот такие способы возможны.
Все полезные ресурсы в одном месте
Видеокурс по семействам трубопроводных фитингов. Подробный 10-часовой курс, в котором научу создавать семейства и поделюсь лайфхаками.
Видеокурс по семействам для вентиляции. Большой курс по созданию оборудования, арматуры, воздухораспределителей и фитингов.
Отблагодарить автора
Если хотите отблагодарить меня, то можете сделать небольшой подарок (именно подарок, такой перевод не облагается налогом). Или подписаться на меня на Бусти.ту и помогать небольшим ежемесячным переводом.
КлаудТипс — можете нажать тут по ссылке и откроется интерфейс для перевода денег или используйте QR-код ниже:
Уведомления о новых статьях
Обновления статей удобно получать в Телеграм-канале «Блог Муратова про Revit MEP». Подписывайтесь и приглашайте коллег. Можно обсудить статью и задать вопросы в специальном чате канала.
Методичка по работе в Ревите
Читайте методичку для проектировщиков: полезный материал, в котором последовательно рассказываю, как создавать модель.
Манифест по разработке семейств для ОВ, ВК, ТМ
Подробная инструкция, как следует разрабатывать семейства для инженерных разделов.
Мини-курс по моделированию ОВ и ВК
В специальный плейлист на Ютубе выкладываю свои ролики по работе в Ревите. Этот курс записывал для студентов, разбираю базовые моменты по моделированию.