В этой статье собираю ошибки, которые бывают при выполнении макросов из шаблонов АДСК, и рассказываю, как их исправить.

Ошибка: углеродная форма жизни

В первую очередь нужно убедиться, что проблема именно в макросе, а не в том, кто его запускает.

Перечитайте ещё раз статью о макросах, особенно часть про макросы АДСК. После этого проверьте следующие моменты:

  1. В проект добавлены нужные параметры, они сделаны по экземпляру и не заблокированы формулами или иным образом. Речь про «ADSK_Наименование», «ADSK_Количество», «ADSK_Позиция» и «ADSK_Примечание» у системных категорий. И глобальный параметр «Запас».
  2. Спецификации, которые обрабатываются макросом CopyParameters, не переименованы, а если переименованы, то внесены в код макроса.
  3. Если редактировали макрос, то не забыли пересобрать решение.
  4. Работаете в Ревите 2019 или 2020. В версиях 2021 и старше изменилось API, поэтому нужно корректировать код макроса. Код можно взять в Телеграме в сообщении Евгения Кондакова. Спасибо Евгению.

Ошибка: The parameter is read-only

Сообщение об ошибке
Сообщение об ошибке

The parameter in read-only обычно означает два варианта ошибок:

  • в каком-то семействе у вас вместо параметра экземпляра стоит параметр типа;
  • параметр заблокирован формулой, и макрос не может вписать туда значение.

Макрос «CopyParameters» работает со спецификациями с префиксом «В_ОВ» или «В_ВК» и делает три вещи:

  1. Копирует значения из второго столбца в третий. Третий столбец в этих спецификациях — «ADSK_Наименование», второй — расчётный параметр с наименованиями для прямых и гибких труб, воздуховодов, для фитингов воздуховодов и изоляции;
  2. Копирует длину прямых и гибких воздуховодов, длину прямых и штуки либо длину гибких трубопроводов, площадь изоляции воздуховодов и объём изоляции трубопроводов из системных параметров, домножает на значение глобального параметра «Запас» и записывает полученные числа в параметр «ADSK_Количество»;
  3. Для воздуховодов копирует значение из расчётного параметра «Толщина стенки» в «ADSK_Примечание».

Соответственно, макрос будет обращаться к трём параметрам в трубах, воздуховодах и изоляции и к одному параметру у фасонных элементов воздуховодов.

Все эти параметры должны быть по экземпляру, а не по типу.

Все эти параметры не должны быть заблокированы внутри семейства формулами. В первую очередь это касается фитингов воздуховодов и параметра «ADSK_Наименование».

Если столкнулись с такой ошибкой — проверяйте каждое семейство и ищите те, в которых параметры заблокированы или сделаны по типу.

Ошибка: Name must be unique

Сообщение об ошибке
Сообщение об ошибке

Name must be unique обычно возникает при выполнении макроса по созданию аксонометрических схем воздуховодов.

Зайдите в редактор макросов, найдите строку 202 и удалите второе нижнее подчёркивание в коде

copiedView.Name = "Схема_Возд__"+_systemName;

Строка 202 в коде макроса
Строка 202 в коде макроса

Код должен принять такой вид:

copiedView.Name = "Схема_Возд_"+_systemName;

Строка 202 после исполнения
Строка 202 после исполнения

Не забудьте построить решения. Об этом есть в основной статье про макросы.

Ошибка: Changing the active view is not applicable to inactive documents

Сообщение об ошибке
Сообщение об ошибке

Иногда макрос «CopyParameters» закрывает активный вид при выполнении. Чтобы ошибка не тревожила, откройте какой-нибудь план или ещё что-нибудь такое, потом откройте спецификацию и запустите макрос.

Если макрос закроет вид со спецификацией, то у вас станет активным вид с планом, и всё будет в порядке.

Ошибка: Ссылка на объект не указывает на экземпляр объекта

Сообщение об ошибке
Сообщение об ошибке

Одной из причин такой ошибки могут быть неправильные имена параметров или их отсутствие. Например, случайно переименовали параметр «Запас» на «Процент запаса». Макрос не увидит нужный параметр и выдаст ошибку. Или удалили какой-то общий параметр из проекта, макрос вновь не найдёт нужный для его работы параметры и заругается.

***

Как буду узнавать новые варианты — буду дополнять статью.

Если знаете ещё ошибки и их причины — пишите в комментарии или мне в Телеграм @Vadim_Rafi.

Обновления статей удобно получать в Телеграм-канале «Блог Муратова про Revit MEP». Подписывайтесь и приглашайте коллег. Можно обсудить статью и задать вопросы в специальном чате канала.

Читайте методичку для проектировщиков: полезный материал, в котором последовательно рассказываю, как создавать модель.

Бесплатные обзоры ваших моделей

Иногда провожу «Ревит-линчи» — разбираю файлы семейств и проектов пользователей и отвечаю на вопросы по Ревиту и БИМ-технологиям. Дату и ссылку на Ревит-линч публикую в Телеграм-канале. Приходите, там интересно.

Отблагодарить автора

Я много времени уделяю блогу и разработке семейств. Если хотите отблагодарить меня, то можете сделать небольшой подарок (именно подарок, такой перевод не облагается налогом).