Найти в Дзене
БилдСофт

Правка макросов в Revit 2022 на шаблонах ADSK ОВ и ВК v1.2

Всем привет. На связи Евгений Кондаков. Сегодня будет небольшая статья для тех, кто хочет исправить работу макросов на шаблонах ADSK для разделов ОВ и ВК, чтобы они заработали в Revit 2022.

Если Вы так же знаете C#, как знаю его я (никак), то эта статья для Вас 😊

Итак, поехали.

При попытке запустить макрос на Revit 2022 нас встречает замечательное окошко с ошибкой:

Эх!
Эх!

Если внимательно посмотреть на содержимое ошибки, то видно, что написано про отсутствующий метод ConvertFromInternalUnits. Он не то, что бы не существует, а просто аргументы поданы не те. Вообще, этот метод преобразует внутренние единицы Revit (футы и дюймы) в пользовательские (метры, миллиметры и т.д.)

Я первым делом зашёл на revitapidocs.com и посмотрел класс UnitUtils и его метод ConvertFromInternalUnits и сравнил то, что написано для 2021.1 и 2022 версий. И, действительно, ещё в версии 2021.1 он помечен как устаревший (типа такой сигнал разработчикам на будущее). Вот ссылка https://www.revitapidocs.com/2021.1/1eb255ae-0617-7ecf-d4d7-3c1e5977d0b1.htm

-2

В 2022 версии в метод ConvertFromInternalUnits надо подать ещё и ForgeTypeId, а что это за зверь, я пока не разобрался. Поэтому будем править макрос «на коленке». В скором обновлении шаблонов разработчики обещают подправить его, так что, может быть, когда Вы будете читать эту статью, это уже будет неактуально.

Заходим на закладку «Управление» ----> «Диспетчер макросов», выделяем макрос и нажимаем редактировать. Изменения будем вносить в 417, 444, 456 строку. А строки 966 и 1006 я просто закомментировал, т.к. пока не знаю, что с ними делать. Да и не использую я создание пространств по помещениям через макрос: хочется больше контроля 😊

Дальше будут скрины как было и как стало по каждой из строчек:

417 строка — преобразование линейных единиц из футов в метры:

Было
Было
Стало
Стало

444 строка — преобразование объемных единиц из куб. футов в куб. метры:

Было
Было
Стало
Стало

456 строка — преобразование площадных единиц из кв. футов в кв. метры:

Было
Было
Стало
Стало

В конце внесения всех изменений в код макроса в Sharp Develop нажимаем на выпадающее меню «Сборка» и выбираем «Собрать решение» (F8). Ошибок быть не должно. Ну максимум одно предупреждение про неиспользованную переменную. С переводными коэффициентами из футов в метры вроде тоже всё проверил :)

После этого запускаем макрос привычным образом и видим, что спецификация О_ОВ_Спецификация сводная заполнилась, и трубы с воздуховодами в неё тоже попали.

Всё ОК!
Всё ОК!

На сегодня у меня всё. Напишите в комментариях, получилось или нет. Где-то в любом случае должны появиться подводные камни😊