В этой статье собираю ошибки, которые бывают при выполнении макросов из шаблонов АДСК, и рассказываю, как их исправить.
Ошибка: углеродная форма жизни
В первую очередь нужно убедиться, что проблема именно в макросе, а не в том, кто его запускает.
Перечитайте ещё раз статью о макросах, особенно часть про макросы АДСК. После этого проверьте следующие моменты:
- В проект добавлены нужные параметры, они сделаны по экземпляру и не заблокированы формулами или иным образом. Речь про «ADSK_Наименование», «ADSK_Количество», «ADSK_Позиция» и «ADSK_Примечание» у системных категорий. И глобальный параметр «Запас».
- Спецификации, которые обрабатываются макросом CopyParameters, не переименованы, а если переименованы, то внесены в код макроса.
- Если редактировали макрос, то не забыли пересобрать решение.
- Работаете в Ревите 2019 или 2020. В версиях 2021 и старше изменилось API, поэтому нужно корректировать код макроса. Код можно взять в Телеграме в сообщении Евгения Кондакова. Спасибо Евгению.
Ошибка: The parameter is read-only
![Сообщение об ошибке Сообщение об ошибке](https://muratovbim.pro/wp-content/uploads/2022/12/pub_60e071a085b74724b449da51_60e07266f59c1e7997951cc2.png)
The parameter in read-only обычно означает два варианта ошибок:
- в каком-то семействе у вас вместо параметра экземпляра стоит параметр типа;
- параметр заблокирован формулой, и макрос не может вписать туда значение.
Макрос «CopyParameters» работает со спецификациями с префиксом «В_ОВ» или «В_ВК» и делает три вещи:
- Копирует значения из второго столбца в третий. Третий столбец в этих спецификациях — «ADSK_Наименование», второй — расчётный параметр с наименованиями для прямых и гибких труб, воздуховодов, для фитингов воздуховодов и изоляции;
- Копирует длину прямых и гибких воздуховодов, длину прямых и штуки либо длину гибких трубопроводов, площадь изоляции воздуховодов и объём изоляции трубопроводов из системных параметров, домножает на значение глобального параметра «Запас» и записывает полученные числа в параметр «ADSK_Количество»;
- Для воздуховодов копирует значение из расчётного параметра «Толщина стенки» в «ADSK_Примечание».
Соответственно, макрос будет обращаться к трём параметрам в трубах, воздуховодах и изоляции и к одному параметру у фасонных элементов воздуховодов.
Все эти параметры должны быть по экземпляру, а не по типу.
Все эти параметры не должны быть заблокированы внутри семейства формулами. В первую очередь это касается фитингов воздуховодов и параметра «ADSK_Наименование».
Если столкнулись с такой ошибкой — проверяйте каждое семейство и ищите те, в которых параметры заблокированы или сделаны по типу.
Ошибка: Name must be unique
![Сообщение об ошибке Сообщение об ошибке](https://muratovbim.pro/wp-content/uploads/2022/12/pub_60e071a085b74724b449da51_60e0773f1d2bc37b1813d099.png)
Name must be unique обычно возникает при выполнении макроса по созданию аксонометрических схем воздуховодов.
Зайдите в редактор макросов, найдите строку 202 и удалите второе нижнее подчёркивание в коде
copiedView.Name = "Схема_Возд__"+_systemName;
![Строка 202 в коде макроса Строка 202 в коде макроса](https://muratovbim.pro/wp-content/uploads/2022/12/pub_60e071a085b74724b449da51_60e07972f59c1e7997a7afb6.png)
Код должен принять такой вид:
copiedView.Name = "Схема_Возд_"+_systemName;
![Строка 202 после исполнения Строка 202 после исполнения](https://muratovbim.pro/wp-content/uploads/2022/12/pub_60e071a085b74724b449da51_60e0794d3a70804096d6e234.png)
Не забудьте построить решения. Об этом есть в основной статье про макросы.
Ошибка: Changing the active view is not applicable to inactive documents
![Сообщение об ошибке Сообщение об ошибке](https://muratovbim.pro/wp-content/uploads/2022/12/pub_60e071a085b74724b449da51_60e07f16baf4b439d301a9df.png)
Иногда макрос «CopyParameters» закрывает активный вид при выполнении. Чтобы ошибка не тревожила, откройте какой-нибудь план или ещё что-нибудь такое, потом откройте спецификацию и запустите макрос.
Если макрос закроет вид со спецификацией, то у вас станет активным вид с планом, и всё будет в порядке.
Ошибка: Ссылка на объект не указывает на экземпляр объекта
![Сообщение об ошибке Сообщение об ошибке](https://muratovbim.pro/wp-content/uploads/2022/12/pub_60e071a085b74724b449da51_60e08137ae4f98420e8db948.png)
Одной из причин такой ошибки могут быть неправильные имена параметров или их отсутствие. Например, случайно переименовали параметр «Запас» на «Процент запаса». Макрос не увидит нужный параметр и выдаст ошибку. Или удалили какой-то общий параметр из проекта, макрос вновь не найдёт нужный для его работы параметры и заругается.
***
Как буду узнавать новые варианты — буду дополнять статью.
Если знаете ещё ошибки и их причины — пишите в комментарии или мне в Телеграм @Vadim_Rafi.
Обновления статей удобно получать в Телеграм-канале «Блог Муратова про Revit MEP». Подписывайтесь и приглашайте коллег. Можно обсудить статью и задать вопросы в специальном чате канала.
Читайте методичку для проектировщиков: полезный материал, в котором последовательно рассказываю, как создавать модель.
Бесплатные обзоры ваших моделей
Иногда провожу «Ревит-линчи» — разбираю файлы семейств и проектов пользователей и отвечаю на вопросы по Ревиту и БИМ-технологиям. Дату и ссылку на Ревит-линч публикую в Телеграм-канале. Приходите, там интересно.
Отблагодарить автора
Я много времени уделяю блогу и разработке семейств. Если хотите отблагодарить меня, то можете сделать небольшой подарок (именно подарок, такой перевод не облагается налогом).