Обновление утилиты для создания кнопок на ленте
В прошлом году я писал об утилите, с помощью которое процесс создания кнопок на ленте для вызова команд гораздо упрощается.
Сегодня я добавил в нее несколько полезных дополнений.
Изменения в проекте Visual Studio
Новый проект обновлен для работы в Visual Studio 2013. Хотя должен по-прежнему открываться и в Visual Studio 2010.
Также проект был настроен для сборки под Revit 2013. И для работы с более поздними версиями приходилось менять пути к сборкам Revit и, в случае Revit 2015, еще и Target Framework. Для одновременного тестирования и сборки под разные версии Revit приходилось делать много изменений.
В новой версии проекта созданы различные конфигурации – отдельно для 2014 и для 2015 версии.
Теперь, для того чтобы собрать проект для различных версий, достаточно просто сменить конфигурацию. При этом будет изменен путь к файлам Revit API и Target Framework.
Примечание. Для данной возможности файлы проекта были отредактированы вручную. При смене конфигурации на Debug 2015 Visual Studio в свойствах проекта все равно будет показывать Target Framework .NET Framework 4.0, хотя фактически он 4.5. Не обращайте на это внимание. Все отлично работает.
Так как у вас могут быть установлены различные модификации Revit (Architecture, MEP), а также в различные папки, то есть вероятность, что путь к Revit API сборкам у вас будет иным. Поэтому, перед тем как открывать solution, нужно вручную отредактировать файлы проектов VCRevitRibbonUtil\VCRevitRibbonUtil.csproj и VCRevitRibbonUtilSample\VCRevitRibbonUtilSample.csproj в любом имеющемся текстовом редакторе. В самом верху будут следующие строки:
- <PropertyGroup Condition=" '$(Configuration)' == 'Debug 2014' OR '$(Configuration)' == 'Release 2014' ">
- <PathToRevit>d:\Program Files\Autodesk\Revit MEP 2014\</PathToRevit>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)' == 'Debug 2015' OR '$(Configuration)' == 'Release 2015' ">
- <PathToRevit>c:\Program Files\Autodesk\Revit 2015\</PathToRevit>
- </PropertyGroup>
Замените пути к Revit 2014 и к Revit 2015 если они отличаются от заданных. После этого проект готов к запуску.
Добавление раскрывающейся кнопки
В новой версии добавлена возможность создавать раскрывающиеся кнопки. Примеры в Revit можно увидеть, например, на вкладке Архитектура.
Теперь данный вид кнопок можно создавать и с помощью утилиты.
Код для создания:
- Ribbon ribbon = new Ribbon(a);
- ribbon.Tab("MyTab")
- .Panel("Panel1")
- // Создаем раскрывающуюся кнопку
- .CreatePullDownButton("ADN-CIS_PullDownButton", "ADN-CIS",
- pdb =>
- {
- // Добавляем изображения на основную кнопку
- pdb.SetLargeImage(Resources._1348119708_face_monkey_32)
- .SetSmallImage(Resources._1348119708_face_monkey_16);
- // и создаем кнопки, которые будут отображаться при раскрытии
- pdb.CreateButton<Command3>("btn3_1", "Button3",
- btn => btn
- .SetSmallImage(Resources._1348119594_preferences_system_16)
- .SetLargeImage(Resources._1348119585_preferences_system_32))
- .CreateButton<Command4>("btn4_1", "Button4",
- btn => btn
- .SetSmallImage(Resources._1348119621_internet_web_browser_16)
- .SetLargeImage(Resources._1348119621_internet_web_browser_16))
- .CreateButton<Command1>("btn1_1", "Button1",
- btn => btn
- .SetSmallImage(Resources._1348119553_face_smile_big_16)
- .SetLargeImage(Resources._1348119568_face_smile_big_32))
- ;
- })
И результат:
Добавление контекстной справки при нажатии F1
Еще одним обновлением стала возможность добавить контекстной справки. В стандартном Revit API используется метод SetContextualHelp. В утилиту необходимо было добавить лишь возможность добраться до этого метода из моих классов с кнопками. Метод добавлен с таким же названием.
Метод можно применить для любой кнопки
- // Создаем раскрывающуюся кнопку
- .CreatePullDownButton("ADN-CIS_PullDownButton", "ADN-CIS",
- pdb =>
- {
- pdb.SetLargeImage(Resources._1348119708_face_monkey_32)
- .SetSmallImage(Resources._1348119708_face_monkey_16);
- pdb.CreateButton<Command1>("btn1_1", "Button1",
- btn => btn
- .SetSmallImage(Resources._1348119553_face_smile_big_16)
- .SetLargeImage(Resources._1348119568_face_smile_big_32)
- // задаем контекстную справку для кнопки в раскрывающемся меню
- .SetContextualHelp(ContextualHelpType.Url, "http://adn-cis.org"))
- // задаем контекстную справку для основной раскрывающейся кнопки
- .SetHelpUrl("http://adn-cis.org/forum");
- })
Для более простого добавления ссылки, в качестве контекстной справки, был добавлен еще один метод – SetHelpUrl.
После того, как контекстная справка была задана, в интерфейсе необходимо навести курсор мыши на кнопку и нажать F1.
Скачать
Исходники утилиты, как и прежде можно скачать на GitHub.
Для тех, кто не желает возиться в исходниках или разбираться с Git, готовые сборки можно скачать по ссылкам.
Обсуждение: http://adn-cis.org/forum/index.php?topic=2803
Опубликовано 19.06.2015Отредактировано 19.06.2015 в 14:15:39