UPD: ДАННАЯ ИНФОРМАЦИЯ УСТАРЕЛА! Плагин для полностью автоматической пакетной печати здесь: https://bim-starter.com/plugins/batchprint/
С своё время я облегчал печать разных форматов из Revit при помощи Dynamo, но после этого уважаемый Wrath выложил макрос на C#, сразу формирующий наборы листов по форматам.
Подробнее по работе и установке — ниже.
%PROGRAMDATA%AutodeskRevitMacros2015RevitAppHookup
Но можно код вставить принудительно. Также это пригодится, если у вас на рабочем компьютере нет прав доступа к папке «ProgramData». Нажмите в окне «Создать — Модуль»:
Укажите имя «PrintList» — Ok. Наш язык — C#. Через несколько секунд будет открыто окно SharpDevelop с заготовкой кода макроса.
Откройте из архива папку «Исходный код.txt», скопируйте из него весь код. Перейдите обратно в SharpDevelop. Установите курсор после строки «Revit Macros Generated Code»:
И вставьте скопированный текст:
Вверху на панели инструментов выберите «Собрать текущее решение». Если всё было сделано правильно — в нижней части окна появится «Сборка успешно завершена». Либо появятся ошибки (здесь я не скопировал первую строчку с объявлением класса):
Кстати, вот мой добавленный участок кода:
Два вложенных цикла — еще больше индусского кода! Ну, работает — и ладно :)
«Орг.РазделПроекта» — замените на параметр, который у вас используется для группирования листов в комплекты.
Закрываем SharpDevelop. В окне выбираем добавленный макрос и нажимаем «Выполнить» — запуск формирования наборов листов,
Несмотря на тяжеловесность кода, работает быстро — 10 секунд на 1200 листов.
Как обычно — небольшое кино:
Ну собственно и всё. Удачи!
UPD: в случае, если семейство основной надписи корректное, но листы все равно сваливаются в «Unknown format» — отредактируйте код макроса, замените строчку 33:
На вот такой код:
int d_height = (int)Math.Round(304.799472 * s_height.AsDouble());
Далее нужно «Собрать текущее решение», закрыть окно Sharp Develop и запустить макрос заново.
Проблема была в методе «AsValueString()», который мог выдавать не «594», а «594,0» — и «GetSheetFormat» выполнялся некорректно. Теперь код получает число, округляет до целого, и только после этого превращает в строку.
Спасибо Данилу Медведеву за указание на проблему.