Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: Bazinga от 09-02-2018, 14:47:39

Название: Взаимодействие стандартных кнопок Revit и плагина
Отправлено: Bazinga от 09-02-2018, 14:47:39
Как можно реализовать запуск своего плагина при нажатии на стандартные кнопки (Стена, Дверь, Окно и т.п.)?

До недавнего времени, считала, что такое в принципе нереально сделать (т.к. плагин запускается по команде из внешних инструментов (там команда - command), а если через application (но нельзя создать 2 одинаковые кнопки), а как оказалось можно http://sixtysecondrevit.com/2017-08-29-revit-in-place-family-warning-plugin-status/
Название: Re: Взаимодействие стандартных кнопок Revit и плагина
Отправлено: Александр Пекшев aka Modis от 09-02-2018, 15:29:44
Не знаю зачем это нужно. Я бы за такое...

Я практически уверен, что это делается через использование события BeforeExecuted Event (http://www.revitapidocs.com/2018.1/1a0b276f-37f0-e800-e1a7-ecf4446c414f.htm). Это я нашел через 2 минуты гугления =) Если поискать подольше, то скорее всего можно и информации найти побольше
Название: Re: Взаимодействие стандартных кнопок Revit и плагина
Отправлено: Алексей Кузин от 09-02-2018, 15:34:36
Не пробовал делать подобное, но навскидку при загрузке addIns в OnStartup пробежаться по риббону и найти нужную кнопку и у неё назначить свою обработку.

           
Код - C# [Выбрать]
  1. foreach (var tab in Autodesk.Windows.ComponentManager.Ribbon.Tabs)
  2.                 if (tab.Id == "TABNAME")
  3.                 {
  4.                     foreach (var panel in tab.Panels)
  5.                         if (panel.Source?.Title == "PANELNAME")
  6.                         {
  7.                             foreach (var item in panel.Source.Items)
  8.                             {
  9.                                 if (item.Text == "BUTTONNAME")
  10.                                 {
  11.                                     var button = item as Autodesk.Windows.RibbonButton;
  12.                                     button.CommandHandler = myCommand; //тут назначаем обработку
  13.                                 }
  14.                             break;
  15.                         }
  16.                     break;
  17.                 }
  18.             return null;
Название: Re: Взаимодействие стандартных кнопок Revit и плагина
Отправлено: Алексей Кузин от 09-02-2018, 15:36:13
Цитировать
Не знаю зачем это нужно. Я бы за такое...
Согласен
Название: Re: Взаимодействие стандартных кнопок Revit и плагина
Отправлено: Александр Ривилис от 09-02-2018, 15:52:05
Александр Пекшев aka Modis, Алексей Кузин
Думаю, что Алексей ближе к истине. Я по поводу реализации, а не по поводу по какому месту нужно за это давать... :-D )
Название: Re: Взаимодействие стандартных кнопок Revit и плагина
Отправлено: Александр Пекшев aka Modis от 09-02-2018, 16:21:12
Думаю, что Алексей ближе к истине.
Согласен)
Название: Re: Взаимодействие стандартных кнопок Revit и плагина
Отправлено: Bazinga от 12-02-2018, 08:45:12
Алексей Кузин, Спасибо))