/// <summary> /// What to do when the application is shut down. /// </summary> public Result OnShutdown(UIControlledApplication a) { BrickDimUpdater updater = new BrickDimUpdater(a.ActiveAddInId); UpdaterRegistry.UnregisterUpdater(updater.GetUpdaterId()); Debug.Print("shut down"); return(Result.Succeeded); }
public Result OnStartup(UIControlledApplication a) { _mMyForm = null; // no dialog needed yet; the command will bring it ThisApp = this; // static access to this application instance BrickDimUpdater updater = new BrickDimUpdater(a.ActiveAddInId); Debug.Print("register"); UpdaterRegistry.RegisterUpdater(updater); ElementCategoryFilter f = new ElementCategoryFilter(BuiltInCategory.OST_Dimensions); Debug.Print("filter"); UpdaterRegistry.AddTrigger(updater.GetUpdaterId(), f, Element.GetChangeTypeAny()); // Method to add Tab and Panel RibbonPanel panel = RibbonPanel(a); string thisAssemblyPath = Assembly.GetExecutingAssembly().Location; // BUTTON FOR COLOURING DIMENSIONS if (panel.AddItem( new PushButtonData("Colour", "Colour\nIn View", thisAssemblyPath, "BrickDims.BrickDimsColourOverride")) is PushButton button2) { button2.ToolTip = "Visual interface for debugging applications."; Uri uriImageB2 = new Uri("pack://application:,,,/BrickDims;component/Resources/brick-Rainbow.png"); BitmapImage largeImageB2 = new BitmapImage(uriImageB2); button2.LargeImage = largeImageB2; } //panel.AddSeparator(); /// <summary> /// Control buttons for the Dynamic Model Update /// </summary> ToggleButtonData toggleButtonData3 = new ToggleButtonData("UpdaterStoptxtOff", "Stop\nAuto", thisAssemblyPath, "BrickDims.UIDynamicModelUpdateOff"); Uri uriImageTB3 = new Uri("pack://application:,,,/BrickDims;component/Resources/stop-big.png"); BitmapImage largeImageTB3 = new BitmapImage(uriImageTB3); toggleButtonData3.LargeImage = largeImageTB3; ToggleButtonData toggleButtonData4 = new ToggleButtonData("UpdaterPlaytxtOff", "Start\nAuto", thisAssemblyPath, "BrickDims.UIDynamicModelUpdateOn"); Uri uriImageTB4 = new Uri("pack://application:,,,/BrickDims;component/Resources/play-big.png"); BitmapImage largeImageTB4 = new BitmapImage(uriImageTB4); toggleButtonData4.LargeImage = largeImageTB4; //TextBoxData brkDimTxt = new TextBoxData("Pause Play Updater"); //panel.AddItem(toggleButtonData3); //panel.AddItem(toggleButtonData4); // make dyn update on/off radio button group RadioButtonGroupData radioBtnGroupData2 = new RadioButtonGroupData("Updater"); //IList<RibbonItem> stackedGroup1 = panel.AddStackedItems(toggleButtonData4, toggleButtonData3); //as RadioButtonGroup; RadioButtonGroup radioBtnGroup2 = panel.AddItem(radioBtnGroupData2) as RadioButtonGroup; radioBtnGroup2.AddItem(toggleButtonData3); radioBtnGroup2.AddItem(toggleButtonData4); // listeners/watchers for external events (if you choose to use them) a.ApplicationClosing += a_ApplicationClosing; //Set Application to Idling a.Idling += a_Idling; //turn off text in buttons where we want it setButtonNoText(); panel.AddSeparator(); // BUTTON FOR THE SINGLE-THREADED WPF OPTION if (panel.AddItem( new PushButtonData("Brick Dim Selector", "Selector", thisAssemblyPath, "BrickDims.EntryCommand")) is PushButton button) { // defines the tooltip displayed when the button is hovered over in Revit's ribbon button.ToolTip = "Visual interface for debugging applications."; // defines the icon for the button in Revit's ribbon - note the string formatting Uri uriImageB1 = new Uri("pack://application:,,,/BrickDims;component/Resources/brick-Small.png"); BitmapImage largeImageB1 = new BitmapImage(uriImageB1); button.LargeImage = largeImageB1; } return(Result.Succeeded); }