Добрый день. Может быть кто то сталкивался с данной проблемой и нашел решение? У меня на 2022 Ревите сбрасываются некоторые горячие клавиши, а именно: Я удалил стандартные клавиши, которые есть на скрине, и вставил свои с буквой X Пока я работаю в открытом проекте - клавиши исправно работают Когда я перезагружаю Ревит (Например при еженедельной перезагрузке ПК), то клавиши откатываются к стандартным настройкам (при чем не все, а только некоторые) Приходится каждый раз Импортировать в модель свои сохраненные горячие клавиши
Может кто то с этим сталкивался, как это возможно решить?
Revit — программа для создания чертежей, 3D-моделей объектов, эскизов помещений и зданий. Ей пользуются архитекторы, дизайнеры интерьеров и инженеры, чтобы спроектировать комнату, дом или подготовить проектную документацию. Программа ускоряет процесс проектирования зданий, позволяет автоматически получать информацию о проекте, создавать ведомости, спецификации и экспликации.
Последнее обновление: 7 ноября 2023 года.
Мы подготовили для вас 15 курсов, с помощью которых вы можете за 4–8 недель научиться работать в Revit. Также мы добавили в статью бесплатные видеоуроки и список телеграм-каналов для тех, кто хочет изучить возможности этой программы самостоятельно.
ТОП-10 курсов по Revit в 2023 году
«Revit для начинающих» от Skillbox — 2-месячный курс с бессрочным доступом к обновлениям уроков (промокод ГДЕКУРС — скидка 45% на обучение)
«Revit с нуля до PRO» от школы «Графиум» — курс для создания первого полноценного проекта в Revit с бонусными материалами по Enscape
«Revit для архитекторов. Проект и подача» от проекта «Софт Культура» — курс с разнообразными форматами обучения и обратной связью от преподавателя в прямом эфире
🎁 По промокоду ГДЕКУРС доступна скидка 45% на обучение.
На курсе вы пройдете все этапы подготовки модели в Revit: от возведения стен до оформления архитектурного проекта. В программе 12 тематических модулей и множество практических заданий. В результате обучения вы с нуля создадите 2 проекта для портфолио.
Вы будете учиться в свободное время на онлайн-платформе и получать обратную связь по всем домашним заданиям. Курс можно пройти за 2 месяца. Доступ ко всем материалам бессрочный.
Skillbox — Revit с нуля и до первого проекта
Стоимость: 21 791 ₽
Рассрочка: 1 816 ₽/мес. на 12 месяцев
Продолжительность: в своем темпе
Формат: видеоуроки + практические задания
Домашние задания: с проверкой
Документ об окончании: сертификат
Особенности и преимущества школы:
Помощь куратора.
Обучение в удобное для вас время.
Доступ к онлайн-платформе.
Беспроцентная рассрочка.
Год изучения английского языка на платформе школы бесплатно.
Бессрочный доступ к курсу.
Возможность оформить налоговый вычет — 13%.
Скидка при оплате курса одним платежом.
2 проекта для портфолио.
Курс подходит для новичков и опытных проектировщиков.
Здесь вы изучите BIT-моделирование, научитесь проектировать здания в программе Revit, оформлять чертежи по ГОСТу, визуализировать интерьер и даже создавать собственные семейства. После оплаты вы получаете доступ к закрытой онлайн-платформе и сообществу архитекторов. Видеоуроки можно просматривать в удобное время.
Автор курса имеет шестилетний опыт проектирования в Revit. Бонус для учеников — курсы «Визуализация проекта в Enscape» и «Архитектурная подача в Photoshop».
Графиум — BIT-моделирование в Revit для начинающих
Стоимость: от 27 800 ₽
Рассрочка: от 1 158 ₽/мес. до 24 месяцев
Продолжительность: 1,5 месяца
Формат: видеоуроки + практические задания + дополнительные материалы
Домашние задания: с проверкой
Документ об окончании: отсутствует
Особенности и преимущества школы:
Обучение в своем темпе на онлайн-платформе.
Доступ к сообществу архитекторов.
Курс «Визуализация проекта в Enscape» и «Архитектурная подача в Photoshop» в подарок.
Поддержка преподавателей.
Ученики получают шаблоны, семейства и методические материалы.
2 тарифа: с обратной связью и для самостоятельного обучения
Уроки в этой школе проходят в формате онлайн-вебинаров. Школа дает возможность посещать занятия с разными группами и пересматривать вебинары в записи. Обучение длится 21 день, занятия проходят 2 раза в неделю.
В программе 5 блоков: «Обмерная модель помещения», «Возведение и перепланировка», «Отделка», «Установка мебели и сантехники» и «План электрики, освещения и оформление проекта».
Международная школа профессий — Autodesk Revit для создания интерьерных дизайн-проектов
Стоимость: 7 000 ₽
Рассрочка: нет
Продолжительность: 3 недели
Формат: онлайн-вебинары + практические задания
Домашние задания: с проверкой
Документ об окончании: сертификат
Особенности и преимущества школы:
Онлайн-вебинары с возможностью их пересмотра в записи.
Доступ к курсу на 3 месяца.
Гибкий график обучения: возможность заниматься с разными группами.
Здесь вы изучите возможности программы Revit и научитесь проектировать в ней дома, квартиры и офисы. Курс подходит новичкам, опытным дизайнерам и архитекторам.
В программе 58 видеолекций общей длительностью 19 часов. Доступ к курсу бессрочный, поэтому обучаться можно в своем темпе. На сайте можно бесплатно посмотреть первый урок.
Udemy — дизайн интерьеров в REVIT Interior для новичков
Стоимость: 11 990 ₽
Рассрочка: нет
Продолжительность: в своем темпе
Формат: видеоуроки + практические задания
Домашние задания: без проверки
Документ об окончании: сертификат
Особенности и преимущества школы:
Обучение в своем темпе.
Бесплатный первый урок.
Доступ через компьютер, мобильные устройства и телевизор.
Пожизненный доступ ко всем материалам.
Работы для портфолио.
Гарантия возврата денег — 30 дней.
Курс подходит для новичков и опытных специалистов.
В курс входят 29 практических заданий и 98 видеолекций общей продолжительностью 15 часов. Вы изучите инструменты для BIM-проектирования и построения виртуальных зданий и объектов, а также научитесь создавать планы этажей, лифты, разрезы, спецификации, 3D-виды и визуализации.
На протяжении всего обучения вас будет поддерживать наставник. Если будет нужно, он проведет онлайн-консультацию.
ИТМО — курс повышения квалификации Autodesk Revit для архитекторов
Стоимость: 15 000 ₽
Рассрочка: нет
Продолжительность: в своем темпе
Формат: видеолекции + практические задания
Домашние задания: с проверкой
Документ об окончании: удостоверение о повышении квалификации
Здесь вы за 8 недель изучите BIM-моделирование и научитесь работать в Revit. На курсе с нуля обучают проектированию: вы пройдете все шаги — от создания обмерочного плана до получения ведомостей материалов, смет и 3D-видов.
После обучения у вас в портфолио будет лежать дизайн интерьера трехкомнатной квартиры. Учиться можно в своем темпе, доступ к видеоурокам бессрочный. Практические задания проверяются куратором. После окончания обучения школа поможет с трудоустройством.
AMS³ — онлайн-курс ATC Autodesk Revit для дизайнера интерьеров
Стоимость: от 33 000 ₽
Рассрочка: от 5 775 ₽/мес. до 6 месяцев
Продолжительность: 8 недель
Формат: видеоуроки + практические задания
Домашние задания: с проверкой
Документ об окончании: диплом
Особенности и преимущества школы:
Помощь с трудоустройством.
Проверка домашних заданий куратором.
Обучение в своем темпе.
Доступ в общий чат.
Интенсивный и емкий курс.
Бессрочный доступ к видеоурокам.
Работы для портфолио.
Беспроцентная рассрочка.
Курс подходит для новичков и опытных проектировщиков.
На курсе вы создадите проработанную BIM-модель загородного дома, изучите все необходимые для этого инструменты Revit, а еще научитесь создавать простые и параметрические семейства. Как проходит обучение: вы смотрите видеоуроки, делаете практические задания и получаете по ним обратную связь. В материалах курса будет инструкция по установке программы.
После оплаты подписки вам откроется доступ к этому курсу, а еще к интенсивам, лекциям, видеоурокам и воркшопам по Revit, 3ds Max + Corona, Photoshop, SketchUp, Procreate и Twinmotion.
Art Glück Education — онлайн-обучение архитектурному проектированию в Autodesk Revit
Этот курс можно проходить в формате видеоуроков или онлайн-вебинаров. Здесь вы за 7 недель освоите BIM-моделирование и пройдете все этапы работы над проектом в Revil. Проверкой домашних заданий будут заниматься опытные архитекторы-кураторы. Программа курса адаптирована для новичков.
Софт Культура — Revit для концептуального проектирования
Стоимость: от 13 090 ₽
Рассрочка: от 2 345 ₽/мес. до 6 месяцев
Продолжительность: 7 недель
Формат: онлайн-вебинары или видеоуроки + практические задания
Домашние задания: с проверкой
Документ об окончании: сертификат
Особенности и преимущества школы:
Возможность учиться по видеоурокам или посещать онлайн-вебинары.
Здесь вы в сжатые сроки изучите Revit для работы в разделе АР. Уже после первого занятия вы сможете начать работать в Revit и возводить BIM-модель. В курсе более 100 пунктов плана для выполнения, 51 видеоурок и 14 практических заданий. На протяжении всего обучения учеников поддерживает опытный инструктор.
3D Master — Revit для работы в разделе АР в сжатые сроки
Стоимость: 7 980 ₽
Рассрочка: нет
Продолжительность: в своем темпе
Формат: видеоуроки + практические задания
Домашние задания: с проверкой
Документ об окончании: отсутствует
Особенности и преимущества школы:
Обратная связь по домашним заданиям.
Просмотр видеоуроков в свободное время.
Работа с BIM-моделью коттеджа уже после первого занятия.
Здесь вы не только научитесь моделировать здания, настраивать и создавать семейства компонентов, готовить проектную документацию, но и поймете, как организовать совместную работу над проектом. Вы будете работать с последней версией Autodesk Revit Architecture.
Курс можно проходить очно в Москве или присутствовать на онлайн-уроках. Школа предоставляет 20 бесплатных дополнительных часов для самостоятельной работы в компьютерных классах центра «Специалист».
Специалист — проектирование объектов строительства в Revit для дизайнеров и архитекторов
Стоимость: 49 990 ₽
Рассрочка: есть, по запросу
Продолжительность: 40 академических часов
Формат: очные занятия или онлайн-уроки + практические задания + тестирование
Домашние задания: с проверкой
Документ об окончании: свидетельство, сертификат или удостоверение о повышении квалификации
Особенности и преимущества школы:
Можно учиться очно или онлайн.
20 дополнительных бесплатных часов для самостоятельной работы в компьютерных классах.
Работа с последней версией Autodesk Revit Architecture.
Autodesk Revit. Разработка архитектурного проекта от BIM2B — здесь вы узнаете, как работать с программой Autodesk Revit: научитесь создавать и настраивать виды, планы, фасады, 3D-модели, оформлять чертежи. Длительность обучения — 40 часов, курс можно пройти всего за 8 дней.
Проектирование несущих конструкций в Autodesk Revit от Buildsoft — в рамках курса обучают проектировать многоэтажные и малоэтажные здания в среде Autodesk Revit. После завершения обучения у вас в портфолио будет лежать BIM-проект. Курс можно проходить очно или онлайн, его длительность 5–7 дней.
Autodesk Revit для инженеров ЭОМ и СС. Базовый курс от ИНФАРС — здесь вы создадите BIM-модель, познакомьтесь с основами информационного моделирования инженерных систем, научитесь собирать электрические цепи, прокладывать кабельные линии, создавать спецификации и оформлять планы. В программе: видеоуроки, консультация с экспертом и домашние задания.
Revit Architecture от Stepik — здесь 24 урока и 3 крупных раздела: «Моделирование», «Проектирование» и «Разработка семейств». Курс могут проходить архитекторы и любители, которые хотят заниматься проектированием в Revit. Помимо видеоуроков, в программу включены 74 теста для проверки знаний.
Revit MEP от Reegigroup — курс для тех, кто уже знаком с проектированием и базовыми функциями AutoCAD. В программе не только видеоуроки, но и онлайн-поддержка преподавателя в Skype. Вы разберете основные этапы работы над проектом в Autodesk Revit, а еще изучите моделирование и оформление.
***
Полезные телеграм-каналы по Revit
Telegram-каналы помогут вам глубже погрузиться в тему проектирования в Revit, перенять опыт профессионалов и узнать полезные «фишки» в работе.
Revit | BIM | News | ТИМ | Renga— 1500+ подписчиков; видеоуроки и общая информация про проектирование, технологии информационного моделирования и работу с Autodesk
Блог Муратова про Revit MEP— 5000+ подписчиков; уроки по Revit, обзор инструментов программы, разработка BIM-моделей
Revit Поддержка АР— 1500+ подписчиков; чат взаимной поддержки проектировщиков, разбор ошибок в Revit, раздел архитектуры
Revit Поддержка КР— 1000+ подписчиков; чат взаимной поддержки проектировщиков, разбор ошибок в Revit, раздел конструктива
Revit Поддержка ИОС MEP— 950+ подписчиков; чат взаимной поддержки проектировщиков, разбор ошибок в Revit, раздел ИОС
Revit electrichestvo— 1300+ подписчиков; здесь обсуждают вопросы проектирования разделов электротехнических и слаботочных марок в Revit и других похожих программах
Blocks Revit - EN— 2900+ подписчиков; проектирование интерьеров в Revit: обзор плагинов, новостей, ответы на вопросы; канал на английском языке
Работа Вакансии BIM ТИМ— 890+ подписчиков; чат для поиска работы или сотрудников: проектирование, информационное моделирование, строительство, ПГС, инженеры, эксперты Revit, Renga
***
Бесплатные курсы по Revit
Узнайте о возможностях программы и попробуйте сделать свои первые работы с помощью этих бесплатных уроков.
Autodesk Revit от Contented (1 статья о возможностях программы, инструкция для скачивания; доступ без регистрации)
Качество обучения. Мы выбирали курсы с хорошими отзывами, а также смотрели, чтобы онлайн-школы имели лицензию на образовательную деятельность.
Стоимость. Мы добавили в подборку курсы разной ценовой категории, чтобы каждый смог найти что-то подходящее по своему бюджету.
Формат занятий. Здесь вы найдете курсы, которые можно пройти очно в Москве, а также обучающие программы в формате онлайн-вебинаров и видеолекций.
Универсальность. Выбранные нами курсы подходят как для новичков, так и для опытных специалистов.
Поддержка учеников. В большинство курсов из нашей подборки включена обратная связь по домашним заданиям.
***
О профессии проектировщика в Revit
Revit позволяет создавать высококачественные чертежи и модели, ускоряет процесс проектирования и автоматически формирует необходимую документацию. Кроме того, у программы широкий набор инструментов и интуитивно понятный интерфейс, поэтому она так популярна среди архитекторов и дизайнеров.
Revit — одна из самых популярных программ в области BIM-проектирования, поэтому специалисты, владеющие этой программой, востребованы на рынке. По данным hh.ru, на 7 ноября 2023 года в России существует 5400+ вакансий, где требуется умение работать в программе Revit. Из них 2400+ предложений с зарплатой от 80 000 рублей.
В нашей подборке было множество курсов по обучению работе в Revit. Напомним о некоторых из них:
«Revit для начинающих» от Skillbox — для тех, кто хочет обучаться по видеоурокам;
«Revit с нуля до PRO» от школы «Графиум» — здесь научат не только пользоваться Revil, но и работать в Enscape и Photoshop;
Расскажите, какие курсы по Revit вы проходили или хотели бы пройти?
Реклама АО «Эдутех Групп», ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИП Мустафин Тимур Анварович, ООО «Скилфэктори», Udemy, Inc.
Для того, чтобы плагин загружался при запуске Revit - для него необходимо подготовить файл-манифест.
Файл-манифест - это XML-файл, сохраненный с расширением .addin и содержащий основную информацию о плагине - путь к решению, информацию о разработчике, общую справочную информацию и т.д.
Форму файла-манифеста можно найти на сайте Autodesk - например - по ссылке.
<AddIn Type="Application"> - Тип плагина - приложение. Тип "Command" - ссылка на внешнюю команду <Name> - имя приложения для использования внутри Revit <FullClassName> - Ссылка на класс Application в разрабатываемом проекте в формате Namespace.Application. Для внешней команды - ссылка должна указывать на класс Command <Text> - Название внешней команды. В случае добавления Application - поле исключается <Description> - Описание внешней команды во всплывающем сообщении. В случае добавления Application - поле исключается <VisibilityMode> - настройка видимости внешней команды. При добавлении Application - поле исключается <Assembly> - Полный путь к решению для приложения <AddInId> - Уникальный ID сборки. Можно получить в VisualStudio. Для этого необходимо дважды щелкнуть левой кнопкой на раздел Properties в обозревателе решений и затем нажать кнопку "Сведения о сборке"
Получаем GUID сборки
<VendorId> - Идентификатор разработчика ПО. Если разработчик внесен в перечень официальных разработчиков Autodesk - идентификатор будет отображаться при загрузке плагина, а плагин не будет требовать подтверждение о загрузке при каждом запуске Revit. <VendorDescription> - Описание разработчика ПО. Например ссылка на сайт или другие контакты разработчика
Пример заполненного файла-манифеста
После подготовки файла-манифеста, он размещается в одном из двух мест: ▻C:\ProgramData\Autodesk\Revit\Addins\ - центральная папка для размещения манифестов ▻C:\USERS\...\AppData\Roaming\Autodesk\Revit\Addins\ - локальная папка для манифестов у конкретного пользователя Манифест размещается в папке, соответствующей версии Revit.
Если Манифест был описан правильно - при запуске Revit появится сообщение с вопросом о подтверждении загрузки:
Подтверждение загрузки плагина
После подтверждения загрузки - будут созданы вкладки и панели, прописанные в классе Application. Плагин будет готов к работе
Группа RadioButtonGroup в общем плане представляет собой чек-бокс, в котором необходимо выбрать только один вариант из представленных (самый простой вариант - выбор Да/Нет)
Группа создается с помощью метода AddItem() элемента панели. В качестве аргумента принимает элементы RadioButtonGroupData. Элемент RadioButtonGroupData создается с помощью конструктора, который принимает одну строку в качестве аргумента - это внутреннее имя, которое будет использоваться при работе Revit:
RadioButtonGroup rbg = panel.AddItem(new RadioButtonGroupData("radioGroup")) as RadioButtonGroup;
Далее необходимо создать и добавить в группу кнопки. Создание кнопок для группы производится с помощью конструктора ToggleButtonData, который принимает в себя те же аргументы, что и обычная PushButton
ToggleButtonData tb1 = new ToggleButtondata("revitName","interfaceName","dllLocation","Namespace.ClassCommand")
Если группа используется в качестве чек-бокса и от кнопок не требуется выполнение каких-либо команд - при создании кнопок не указываются путь к исполнительному dll и ссылка на класс Command
ToggleButtonData tb1 = new ToggleButtondata("revitName","interfaceName")
Также для кнопки доступны все свойства, доступные для обычной PushButton
Добавление кнопки в группу производится с помощью метода Additem группы:
rbg.AddItem(rgb1);
Можно получить выбранный вариант с помощью метода Current у элемента группы
Внутри группы нельзя создавать разделители между кнопками, но допускается создание разделителя на панели между двумя группами RadioButtonGroup.
Первая и третья кнопка - с заданной командой для выполнения. Вторая и четвертая - просто чекбокс. Видно выбранные варианты.
Пример создания кнопки и группы
Тип 2. PulldownButton
Группа PulldownButton представляет собой раскрывающийся список, который содержит внутри несколько объектов типа PushButton. При этом вся группа имеет общий заголовок, нажав на который открываются варианты кнопок для запуска.
Группа PulldownButton создается с помощью метода AddItem() панели инструментов, который принимает элемент PullDownButtonData, который создается с помощью конструктора, принимающего две строки в качестве аргументов. Первая строка - внутреннее имя, используемое при работе Revit. Вторая строка - заголовок, который будет отображаться на панели.
Кнопки в группу добавляются с помощью метода AddItem группы. Добавлять можно элементы PushButton. Процесс создания кнопок описан в части 2.
Кнопки в группе могут быть разделены разделителями. Разделитель добавляется методом AddSeparator() группы.
Пример группы PullDownData с двумя кнопками и разделителем между ними
Пример кода для создания PullDownButton с добавлением в группу двух кнопок и разделителя между ними
Тип 3. SplitButton
Группа SplitButton полностью повторяет тип PulldownButton, за исключением того, что вместо общего заголовка для группы, отображается последняя использованная команда. Также как и PulldownButton хранит в себе несколько вариантов кнопок, которые могут быть отделены друг от друга разделителями.
Процесс добавления группы на панель и процесс добавления в нее кнопок идентичен PullDownButton, за исключением, что на панель добавляется элемент SplitButton, для создания которого используется конструктор SplitButtonData.
Пример SplitButton. Последней запускалась вторая кнопка
Пример создания элемента SplitButton на панели с двумя кнопками и разделителем между ними
Добавление элементов: элементы для сбора пользовательских данных
Тип 1. TextBox
TextBox представляет собой поле, куда может быть введен пользовательский текст, после чего этот текст может быть использован в отработке алгоритма плагина. Напрямую не является исполнительным элементом.
Для того, чтобы измененное значение было обновлено в алгоритме - пользователь должен нажать Enter после ввода текста. Также обновление может быть произведено нажатием на кнопку рядом с полем.
Также в коде должно быть прописано свойство, отвечающее за обновление значения по нажатию Enter
TextBox добавляется на панель инструментов с помощью метода AddItem() панели, который принимает в качестве аргумента TextBoxData с помощью конструктора, который в свою очередь принимает в качестве аргумента одну строку - внутреннее имя блока для использования в работе Revit.
Имеет несколько основных свойств:
textBox.Value = "Hello World" - свойство задает или выводит значение, введенное в поле textBox.ToolTip= "TextBox" - всплывающая подсказка, возникающая при наведении на поле textBox.Width = "TextBox" - задает ширину поля текстового блока. Поддерживает значение Double. textBox.Image = new BitmapImage(new Uri(@"16.png")) - задание иконки для кнопки обновления данных. Поддерживаются только иконки 16х16px textBox.ShowImageAsButton = true - включает отображение загруженной иконки в качестве кнопки обновления данных textBox.EnterPressed += CallBackOfTextBox - свойство для обновления значения блока по нажатию Enter. Для реализации - необходимо отдельно прописать событие, которое будет происходить при нажатии. Событие создается ниже, за границами события OnStartUp. Intellisense может подсказать реализацию.
Текстовое поле на панели и сообщение при нажатии на кнопку
Пример процесса создания и настройки текстового поля на панели
Описание события при нажатии. Будет выведено диалоговое окно, в котором будет отображено новое значение, введенное пользователем
Тип 2. ComboBox
Элемент ComboBox представляет собой раскрывающийся список, в котором можно выбрать один из добавленных в него элементов. По назначению похож на группу RadioButtonGroup, но на элементы не может быть завязано исполнение алгоритма. Может использоваться для выбора сценария отработки скрипта.
Элемент добавляется на панель с помощью метода AddItem() панели, который в качестве аргумента принимает элемент ComboBoxData, созданный с помощью конструктора, который в свою очередь принимает одну строку - внутреннее имя для работы Revit.
После создания бокса необходимо создать и добавить в него члены бокса. Элементы ComboBoxMember создаются на основе элементов ComboBoxMemberData, созданных конструктором, использующим две строки - внутреннее имя для Revit и имя члена бокса, которое будет отображаться при выборе.
Для каждого члена бокса можно добавить иконку размером 16х16px описанным ранее способом.
После создания и задания свойств - члены бокса добавляются в бокс с помощью метода AddItem() бокса. Также в бокс могут быть добавлены разделители между членами.
Получить выбранный член бокса можно с помощью метода Current() бокса.
Пример бокса. Выбрано второе значение.
Пример создания бокса с тремя членами. Между вторым и третьим вставлен разделитель. Всем членам бокса задана иконка
Элементы в скрытой области панели - SlideOut
На панель может быть добавлена область SlideOut, которая представляет собой скрывающуюся область на панели. Для раскрытия этой области необходимо нажать на кнопку в правом нижнем углу панели.
Скрытая область создается на панели с помощью метода AddSlideout(). Все элементы, добавленные на панель после создания скрытой области, автоматически добавляются в нее.
SlideOut в свернутом состоянии
SlideOut в развернутом состоянии
Slideout добавлен на панель, после чего добавлено текстовое поле
Группировка элементов на панели
Помимо индивидуального добавления на панель, элементы могут добавляться в составе группы. Число элементов в группе от 2 до 3.
В этом случае добавление элементов на панель производится с помощью метода AddStackedItems() панели. Данный метод принимает в себя в качестве аргументов от двух до трех элементов RibbonItemData() - это конструкторы, с помощью которых создаются элементы. Создание конструкторов для всех типов элементов было рассмотрено ранее (PushButtonData(),TextBoxData() и т.д.). При этом для элементов RibbonItemData() доступны все свойства, которые были доступны при создании элементов на панели индивидуально.
Кнопки в такой группе поддерживают иконку размером 16х16px
Группа из двух кнопок на панели
Пример создания двух кнопок с добавлением на панель в виде группы
Запуск плагинов в Revit осуществляется с помощью кнопок, размещенных на панелях инструментов. Панели инструментов в свою очередь размещаются на вкладках.
Код, отвечающий за размещение кнопок на панели инструментов пишется в классе Application - в методе OnStartUp. С помощью аргумента application данного метода производится обращение к графическому интерфейсу Revit.
Добавление кнопки на панель инструментов производится ступенчато: ▻ Создается вкладка для панели инструментов (класс элементов RibbonTab) ▻ Создается панель инструментов для размещения элементов панели(класс элементов RibbonPanel) ▻ Создаются и размещаются элементы панели (кнопки, раскрывающиеся списки, группы кнопок и т.д.)
Структура панели инструментов Revit
Создание вкладки
Создание новой вкладки на панели инструментов выполняется с помощью метода CreateRibbonTab аргумента application. В качестве аргумента данный метод принимает название вкладки в виде строки.
Создание вкладки на панели инструментов Revit
В случае, если вкладка с таким именем уже существует - при запуске Revit возникнет ошибка и плагин не будет загружен. Поэтому перед созданием вкладки необходимо убедиться, что вкладка с таким именем ранее не была создана. Проще всего данную проверку можно выполнить с использованием конструкции TRY - CATCH. В этом случае будет выполнена попытка создания вкладки - если вкладка ранее была создана - этап создания будет пропущен.
Попытка создания вкладки. Если вкладка с таким именем уже существует - в блоке TRY произойдет ошибка и он не будет выполнен
Создание панели
После того, как вкладка была создана - создается панель инструментов для размещения кнопок и других элементов. Создание новой панели инструментов на вкладке выполняется с помощью метода CreateRibbonPanel аргумента application. В качестве аргумента данный метод принимает название вкладки, где будет размещена панель, и название панели в виде строки. В дальнейшем - для добавления кнопок на панель - будет необходимо оперировать элементом панели. Для этого создание новой панели производится с завязкой на параметр с типом данных RibbonPanel.
Создаем панель инструментов TestPanel на вкладке TestTab
По аналогии с вкладкой - если панель инструментов с таким именем уже существует на вкладке - произойдет ошибка и плагин не будет запущен. Поэтому для панели инструментов также необходимо проводить проверку на создание. Конструкция TRY - CATCH в данном случае не подходит, так как нет возможности выбрать панель инструментов только по имени. В любом случае необходимо производить перебор всех панелей на вкладке и проверять соответствие имен.
Для проверки наличия панели инструментов на вкладке выполняются следующие действия: ▻ Создается список панелей, присутствующих на вкладке ▻ Создается пустой параметр панели с типом данных RibbonPanel ▻ Выполняется перебор всех найденных на вкладке панелей с помощью цикла foreach. Имена панелей сравниваются с целевым именем
Если при переборе найдена панель с целевым именем - она принимается в качестве элемента для дальнейшей работы. В случае, если панель с целевым именем по итогу перебора не найдена - созданный параметр останется пустым и далее может быть создана новая панель с целевым именем.
Проверка наличия панели на вкладке с последующим созданием новой панели
После создания панели инструментов - на ней могут быть размещены элементы.
Основные элементы на панели
Основными элементами, которые могут быть добавлены на панель, являются: ▻ Кнопка - PushButton - основной инструмент выполнения кода в классе Command.
▻ Область с текстом - TextBox - позволяет пользователю ввести пользовательский текст. Не является исполнительным элементом, но может служить для настройки сценариев отработки скрипта. ▻ Раскрывающийся список - ComboBox - также как и TextBox, не является исполнительным элементом, но позволяет пользователю выбрать один из предложенных в списке вариантов. Также может служить для настройки сценариев работы. ▻ Группы кнопок - RadioButtonGroup, PullDownButtonGroup, SplitButtonGroup - группировки кнопок, отличающиеся внешним видом на панели инструментов.
RadioButtonGroup - создает ограниченную область на панели, в рамках которой размещаются кнопки. Группа может использоваться как чек-бокс - в рамках группы можно выбрать только один активный элемент (например выбор Да/Нет). Внутри данной группы нет возможности вставки разделителей, но разделитель может быть вставлен на панель между двумя такими группами.
PullDownButton - представляет собой большую кнопку на панели с общим заголовком, при нажатии на которую раскрывается список, в котором можно выбрать один из вариантов кнопки для исполнения. Кнопки в такой группе могут быть разделены разделителями.
SplitButton - похожа на PullDownButton, за тем исключением, что по умолчанию на панели в такой группе отображается один из элементов группы - первый из созданных или последний из использованных.
Разновидности элементов на панели инструментов
Добавление элементов: кнопка
Кнопка на панели инструментов создается с помощью метода AddItem() элемента панели. В качестве аргумента принимает элементы PushButtonData. Элемент PushButtonData создается с помощью конструктора, который принимает 4 строки в качестве аргументов:
PushButton pb = panel.AddItem(new PushDataButton("RevitName","InterfaceName","DLL Path","NameSpace.CommandClass")) as PushButton;
▻RevitName - внутреннее имя кнопки, которое используется внутри Revit. Имя должно быть выполнено строго латинскими буквами ▻InterfaceName - имя кнопки, которое будет отображаться в интерфейсе ▻DLL Path - путь к DLL-файлу сборки. Путь к файлу сборки может быть получен в классе Application - следующим образом: string assemblyPath = System.Reflection.Assembly.GetExecutingAssembly().Location; Путь к сборке лучше получить до описания конструкций панели ▻NameSpace.CommandClass - путь к классу Command, исполнение которого будет производится данной кнопкой. NameSpace - Пространство имен текущего проекта, CommandClass - Имя класса Command.
Пространство имен проекта и имя класса Command
Для элемента кнопки можно задать несколько основных свойств: ▻Всплывающая подсказка - сообщение, которое будет выводиться при наведении курсора. ToolTip - краткое описание, возникает сразу после наведения. LongDescription - более подробное описание, возникает после того как курсор задержится на кнопке на несколько секунд pb.ToolTip = "Описание всплывающей подсказки"; pb.LongDescription = "Описание всплывающей подсказки"; ▻Справка - можно задать ссылку, которая будет открываться при нажатии F1 при наведенном ContextualHelp contextHelp = new ContextualHelp(ContextualHelpType.Url, "Ссылка на страницу справки"); ▻Большая и малая иконки - кнопки поддерживают добавление иконок с размером 32х32 px для большой и 16х16 px для маленькой. Файл изображение должен быть в формате PNG pb.Image = new BitmapImage(new Uri(@"dev\\16.png")); pb.LargeImage = new BitmapImage(new Uri(@"dev\\32.png"));
ВАЖНО: Для возможности загрузки иконок - в проект должна быть загружена ссылка на библиотеку PresentationCore.dll (Если на компьютере установлен .Net Framework v3.0 - можно найти в папке: C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0), а также задана ссылка на пространство имен using System.Windows.Media.Imaging;
Процесс добавления кнопки на панель и задание значений свойств
Прошло много времени как я написал совой последний на тот момент пост про ревит. С тех пор многому научился и сделал много выводов, отношение к ревиту с сильно изменилось. Вот только есть одна проблема, я люблю его на столько же, на сколько и ненавижу....
Но это все лирика.
В общем я тут пришел поднимать ревит-грамотность. Для знания этой программы нужно знать не только ее содержимое, но и горячие клавиши. Проблема ревита в том, что он не работает с горячими клавишами на русской раскладке. Поэтому я собрался с силами и полностью русифицировал ГК для ревита чтоб он работал не только с русской раскладкой, но и чтоб даже во время зажатого CAPS он тоже срабатывал. В общем-то дело не хитрое, но трудоемкое.
В посте будет рассмотрен пример создания нового проекта-плагина для Autodesk Revit 2019. В качестве среды разработки используется Microsoft Visual Studio 2019. Также будет рассмотрена первичная настройка основных классов. Пост является скорее записной книжкой начинающего разработчика плагинов под Revit.
Дополнительную помощь в разработке плагинов под Revit могут оказать: ▻ The Revit Software Development Kit (SDK) - инструменты для разработчика - содержат примеры реализованных проектов и документацию по Revit API. Как правило SDK может быть установлен совместно с установкой Revit ▻ revitapidocs.com - сайт содержит документацию по Revit API ▻ RevitLookup - плагин Revit, созданный специально для разработчиков дополнительного ПО - позволяет получить информацию о классе элемента и доступных для него свойствах и методах
Плагины для Autodesk Revit создаются в виде подгружаемых библиотек классов на основе платформы .NET Framework. Основной язык программирования для разработки плагинов под Revit - С#. Выбор версии .NET Framework зависит от версии Revit.
Выбор варианта для нового проекта
В проекте создаются два основных класса: ▻ Класс Application (или просто App) будет содержать информацию о размещении кнопки плагина на панели инструментов Revit ▻ Класс Command будет содержать алгоритм, выполняемый при нажатии кнопки плагина
Основные классы для работы плагина
Для получения доступа к пространствам имен непосредственно Revit - необходимо добавить ссылки на библиотеки RevitAPI - RevitAPI.dll и RevitAPIUI.dll. Первая библиотека содержит данные непосредственно об элементах документа, вторая - об элементах интерфейса Revit. Данные библиотеки размещаются как правило в корневом каталоге Revit.
Подгрузка Revit API
После подгрузки Revit API необходимо отключить у ссылок локальное копирование - иначе в каждое решение будет подгружаться большое число библиотек - для обеспечения работы плагина в случае, если Revit не установлен. Необходимость в данных библиотеках отсутствует, т.к. запуск плагина под Revit без установленного Revit смысла не имеет.
Отключаем локальное копирование библиотек Revit API
После того, как ссылки на Revit API были подгружены - необходимо добавить в созданные классы ссылки на пространства имен Revit. Основные пространства имен: Autodesk.Revit.UI - позволяет оперировать элементами пользовательского интерфейса Autodesk.Revit.DB - позволяет оперировать элементами модели. Содержит общие методы и классы. Autodesk.Revit.UI.Selection - позволяет работать с элементами, которые были выбраны пользователем в модели Autodesk.Revit.DB.Plumbing, Autodesk.Revit.DB.Mechanical и т.д. - пространства имен для конкретных разделов - например представленные отвечают за элементы систем трубопроводов и механического оборудования. Существует несколько разделов - Архитектура, Несущие конструкции, Металлоконструкции, Электрика и т.д.. В зависимости от цели работы плагина добавляются необходимые ссылки. Полный список доступных разделов можно увидеть при помощи IntelliSense или документации по Revit API
Пространства имен Revit для работы
Для корректной работы плагина - в каждом созданном классе перед телом самого класса необходимо прописать атрибут типа транзакций. Транзакция - процесс внесения изменений в открытый документ. Без описания данного атрибута плагин не будет выполняться. Ранее в Revit было несколько вариантов типа транзакций, но из-за проблем с ними - остался только тип Manual. При этом необходимость прописывать тип в коде осталась.
Для созданных классов необходимо установить наследование от стандартных интерфейсов Revit API: ▻ Для класса Application наследование устанавливается от интерфейса IExternalApplication ▻ Для класса Command наследование устанавливается от интерфейса IExternalCommand После установки наследования необходимо реализовать интерфейс.
Реализуем интерфейс для класса Application
Интерфейс IExternalApplication содержит два метода: ▻ OnShutdown - данный метод реализуется при закрытии Revit ▻ OnShutdown - данный метод реализуется при открытии Revit. В рамках данного метода происходит формирование вкладки/панели/кнопки на панели инструментов Revit
Строка по умолчанию в данных методах вызывает исключение и остановку отработки алгоритма. Тип данных Result у методов говорит о том, что для получения результата их выполнения необходимо выполнить вывод через return. Вывод результата производится с использованием варианта атрибута завершения: ▻ return Result.Succeded - успешное завершение работы алгоритма. Изменения, внесенные в модель будут сохранены ▻ return Result.Cancelled - работа алгоритма завершена пользователем ▻ return Result.Failed - работа алгоритма завершена с ошибкой. В этом случае модель вернется к состоянию, в котором она была до запуска
Интерфейс Application с настроенным выводом результата
Интерфейс IExternalCommand содержит один метод - Execute. Данный метод выполняется при нажатии пользователем на кнопку в интерфейсе Revit. Непосредственно данный метод содержит алгоритм, применяемый при работе плагина. Также как и для методов класса Application - для метода Execute требуется вывод результата через return с указанием варианта атрибута завершения.
Интерфейс Command с настроенным выводом результата
В рамках одного класса Application может быть создано несколько кнопок на одной или нескольких панелях инструментов. При этом - для каждой кнопки должен быть создан свой класс Command.
После создания классов Application и Command - первичная подготовка проекта заканчивается.
Для всех поклонников футбола Hisense подготовил крутой конкурс в соцсетях. Попытайте удачу, чтобы получить классный мерч и технику от глобального партнера чемпионата.
А если не любите полагаться на случай и сразу отправляетесь за техникой Hisense, не прячьте далеко чек. Загрузите на сайт и получите подписку на Wink на 3 месяца в подарок.