public SharedParametersMain(UIControlledApplication uIControlledApplication) { string thisAssemblyPath = Assembly.GetExecutingAssembly().Location; RibbonPanel sharedParametersPanel = RibbonPanelSetting.ribbonPanel(uIControlledApplication, "Shared Parameters"); PulldownButtonData loadParameterData = new PulldownButtonData("LoadParameters", "Load Parameters"); RibbonItem loadParameterItem = sharedParametersPanel.AddItem(loadParameterData); PulldownButton loadOptionButton = loadParameterItem as PulldownButton; // Icon made by Smartline from www.flaticon.com loadOptionButton.ToolTip = "To add multiple shared parameters to multiple categories within a project or family."; loadOptionButton.LargeImage = RibbonPanelSetting.GetEmbeddedImage("RevitHandyTools.Resources.add_img_32x32.png"); // Load to project PushButtonData loadToProjectPushButtonData = new PushButtonData("LoadToProject", "Load to project", thisAssemblyPath, "RevitHandyTools.SharedParameters.LoadToProjectCommand"); loadToProjectPushButtonData.LargeImage = RibbonPanelSetting.GetEmbeddedImage("RevitHandyTools.Resources.add_img_32x32.png"); loadToProjectPushButtonData.ToolTip = String.Format( "{0}{1}", "Add multiple shared parameters to multiple categories within a project.\n", "This feature is only available in a project for project template"); loadToProjectPushButtonData.AvailabilityClassName = "RevitHandyTools.AvailableInProjectDocument"; // Load to family PushButtonData loadToFamilyPushButtonData = new PushButtonData("LoadToFamily", "Load to family", thisAssemblyPath, "RevitHandyTools.SharedParameters.LoadToFamilyCommand"); loadToFamilyPushButtonData.LargeImage = RibbonPanelSetting.GetEmbeddedImage("RevitHandyTools.Resources.add_img_32x32.png"); loadToFamilyPushButtonData.ToolTip = String.Format( "{0}{1}", "Add multiple shared parameters to multiple categories within a family.\n", "This feature is only available in a family"); loadToFamilyPushButtonData.AvailabilityClassName = "RevitHandyTools.AvailableInFamilyDocument"; // Add buttons loadOptionButton.AddPushButton(loadToProjectPushButtonData); loadOptionButton.AddSeparator(); loadOptionButton.AddPushButton(loadToFamilyPushButtonData); }
public Result OnStartup(UIControlledApplication a) { m_MyFormClearInstance = null; m_MyFormLineStyles = null; m_MyFormLinePatterns = null; // no dialog needed yet; the command will bring it thisApp = this; // static access to this application instance string fullPath = System.Reflection.Assembly.GetExecutingAssembly().Location; string folderPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); string myRibbon = "AECOM"; a.CreateRibbonTab(myRibbon); RibbonPanel panelA = a.CreateRibbonPanel(myRibbon, "AECOM Tools"); //Pull Down Button PulldownButtonData pullDownData = new PulldownButtonData("General Tools", "General Tools"); pullDownData.Image = new BitmapImage(new Uri(Path.Combine(folderPath, "tools_16.png"), UriKind.Absolute)); pullDownData.LargeImage = new BitmapImage(new Uri(Path.Combine(folderPath, "tools_32.png"), UriKind.Absolute)); PulldownButton pullDownButton = panelA.AddItem(pullDownData) as PulldownButton; PushButton btnClearInstancesPullDown = pullDownButton.AddPushButton(new PushButtonData("ClearDWG", "Clear imported DWG", fullPath, "GeneralTools.CommandClearInstances")); PushButton btnDeleteLineStyles = pullDownButton.AddPushButton(new PushButtonData("Line Styles", "Line Styles Descr", fullPath, "GeneralTools.CommandLineStyles")); PushButton btnRenameLineStylesPullDown = pullDownButton.AddPushButton(new PushButtonData("Line Patterns", "Rename Line Styles", fullPath, "GeneralTools.CommandLinePatterns")); return(Result.Succeeded); }
Stream(ArrayList data, RibbonItem ribbonItem) { data.Add(new Snoop.Data.ClassSeparator(typeof(RibbonItem))); data.Add(new Snoop.Data.Bool("Enabled", ribbonItem.Enabled)); data.Add(new Snoop.Data.String("Item text", ribbonItem.ItemText)); data.Add(new Snoop.Data.String("Item type", ribbonItem.ItemType.ToString())); data.Add(new Snoop.Data.String("Tool tip", ribbonItem.ToolTip)); PulldownButton pullDownBtn = ribbonItem as PulldownButton; if (pullDownBtn != null) { Stream(data, pullDownBtn); return; } PushButton pushBtn = ribbonItem as PushButton; if (pushBtn != null) { Stream(data, pushBtn); return; } //RibbonMenuItem ribMenuItem = ribbonItem as RibbonMenuItem; //if (ribMenuItem != null) { // Stream(data, ribMenuItem); // return; //} }
internal static void AddPullDownButton(PulldownButton pulldown, LinkedScript script, LinkedScriptAssembly lsa) { if (pulldown.AddPushButton(NewScriptButton(script, lsa.FilePath)) is PushButton pushButton) { // do stuff with button? } }
void AddPushButton(string assName, string name, string title, string className, string description, string longDescription, ImageSource image, PulldownButton pulldownButton) { try { string path = Path.Combine(addin.DirectoryName, assName); PushButtonData buttonData = new PushButtonData( name, title, path, className) { ToolTip = description, LongDescription = longDescription, LargeImage = image, Image = image }; PushButton button = pulldownButton.AddPushButton(buttonData); //button.SetContextualHelp(help); button.Enabled = true; } catch (Exception ex) { TaskDialog.Show("ERROR", string.Format("Error creating button for the tool: {0}\n{1}", title, ex.ToString())); return; } }
private void CreateRibbonPanel(UIControlledApplication application) { string resourceDir = CommonUtils.Utils.GetResourceDir(); string buttonIcons32 = Path.Combine(resourceDir, CommonUtils.DefineUtils.ICONS_32_DIR); string buttonIcons16 = Path.Combine(resourceDir, CommonUtils.DefineUtils.ICONS_16_DIR); // Create a custom ribbon tab application.CreateRibbonTab(Define.RevitToolRibbonTab); #region About string assembly = @"C:\ProgramData\Autodesk\Revit\Addins\2019\OpeningCombiler" + @"\OpeningTools.dll"; // Add Combine ribbon panel RibbonPanel combineRibbonPanel = application.CreateRibbonPanel(Define.RevitToolRibbonTab, Define.CombinePanel); assembly = @"C:\ProgramData\Autodesk\Revit\Addins\2019\OpeningCombiler" + @"\CommonOpeningTools.dll"; // create pull down button for Combine opening PulldownButtonData combineDownButton = new PulldownButtonData("Combine Opening", "Combine \nOpening"); PulldownButton groupCombine = combineRibbonPanel.AddItem(combineDownButton) as PulldownButton; combineDownButton.LargeImage = new BitmapImage(new Uri(Path.Combine(buttonIcons32, "Combine_Opening32x32.png"), UriKind.Absolute)); combineDownButton.Image = new BitmapImage(new Uri(Path.Combine(buttonIcons16, "Combine_Opening16X16.png"), UriKind.Absolute)); groupCombine.LargeImage = new BitmapImage(new Uri(Path.Combine(buttonIcons32, "Combine_Opening32x32.png"), UriKind.Absolute)); groupCombine.Image = new BitmapImage(new Uri(Path.Combine(buttonIcons16, "Combine_Opening16X16.png"), UriKind.Absolute)); // add button for synchronize PushButtonData synchronoursButtonData = new PushButtonData("Synchronous", "Synchronous", assembly, "CommonTools.OpeningClient.Synchronize.Commandata"); PushButton synchronoursBtn = groupCombine.AddPushButton(synchronoursButtonData) as PushButton; synchronoursBtn.LargeImage = new BitmapImage(new Uri(Path.Combine(buttonIcons32, "Combine_Opening_Synchronous32x32.png"), UriKind.Absolute)); synchronoursBtn.Image = new BitmapImage(new Uri(Path.Combine(buttonIcons16, "Combine_Opening_Synchronous16x16.png"), UriKind.Absolute)); synchronoursBtn.ToolTip = "Synchronous"; #endregion About }
/// <summary> /// Pulldown button for "Command Data", "DB Element" and "Element Filtering" /// </summary> public void AddPulldownButton(RibbonPanel panel) { // Create three push buttons for pulldown button drop down // #1 PushButtonData pushButtonData1 = new PushButtonData("PulldownCommandData", "Command Data", _introLabPath, _introLabName + ".CommandData"); pushButtonData1.LargeImage = NewBitmapImage("Basics.ico"); // #2 PushButtonData pushButtonData2 = new PushButtonData("PulldownDbElement", "DB Element", _introLabPath, _introLabName + ".DBElement"); pushButtonData2.LargeImage = NewBitmapImage("Basics.ico"); // #3 PushButtonData pushButtonData3 = new PushButtonData("PulldownElementFiltering", "Filtering", _introLabPath, _introLabName + ".ElementFiltering"); pushButtonData3.LargeImage = NewBitmapImage("Basics.ico"); // Make a pulldown button now PulldownButtonData pulldownBtnData = new PulldownButtonData("PulldownButton", "Pulldown"); PulldownButton pulldownBtn = panel.AddItem(pulldownBtnData) as PulldownButton; pulldownBtn.AddPushButton(pushButtonData1); pulldownBtn.AddPushButton(pushButtonData2); pulldownBtn.AddPushButton(pushButtonData3); }
public Result Execute( ExternalCommandData commandData, ref string message, ElementSet elements) { UIApplication app = commandData.Application; List <RibbonPanel> panels = app.GetRibbonPanels(); foreach (RibbonPanel panel in panels) { Debug.Print(panel.Name); IList <RibbonItem> items = panel.GetItems(); foreach (RibbonItem item in items) { RibbonItemType t = item.ItemType; if (RibbonItemType.PushButton == t) { PushButton b = item as PushButton; Debug.Print(" {0} : {1}", item.ItemText, b.Name); } else { Debug.Assert(RibbonItemType.PulldownButton == t, "expected pulldown button"); PulldownButton b = item as PulldownButton; Debug.Print(" {0} : {1}", item.ItemText, b.Name); foreach (RibbonItem item2 in b.GetItems()) { Debug.Assert(RibbonItemType.PushButton == item2.ItemType, "expected push button in pulldown menu"); Debug.Print(" {0} : {1}", item2.ItemText, ((PushButton)item2).Name); } } } } return(Result.Failed); }
private void AddMenu(UIControlledApplication app) { //菜单栏 RibbonPanel rvtRibbonPanel = app.CreateRibbonPanel("Revit Lookup"); PulldownButtonData data = new PulldownButtonData("Options", "Revit Lookup"); RibbonItem item = rvtRibbonPanel.AddItem(data); //下拉框 PulldownButton optionsBtn = item as PulldownButton; // Add Icons to main RevitLookup Menu optionsBtn.Image = GetEmbeddedImage("RevitLookup.Resources.RLookup-16.png"); optionsBtn.LargeImage = GetEmbeddedImage("RevitLookup.Resources.RLookup-32.png"); //去掉HelloWorld的命令 //optionsBtn.AddPushButton(new PushButtonData("HelloWorld", "Hello World...", ExecutingAssemblyPath, "RevitLookup.HelloWorld")); optionsBtn.AddPushButton(new PushButtonData("查看数据库...", "查看数据库...", ExecutingAssemblyPath, "RevitLookup.CmdSnoopDb")); optionsBtn.AddPushButton(new PushButtonData("查看当前选择...", "查看当前选择...", ExecutingAssemblyPath, "RevitLookup.CmdSnoopModScope")); optionsBtn.AddPushButton(new PushButtonData("查看活动视图...", "查看活动视图...", ExecutingAssemblyPath, "RevitLookup.CmdSnoopActiveView")); optionsBtn.AddPushButton(new PushButtonData("查看应用...", "查看应用...", ExecutingAssemblyPath, "RevitLookup.CmdSnoopApp")); optionsBtn.AddPushButton(new PushButtonData("按ID查看...", "按ID查看...", ExecutingAssemblyPath, "RevitLookup.CmdSearchBy")); //optionsBtn.AddPushButton(new PushButtonData("Test Framework...", "Test Framework...", ExecutingAssemblyPath, "RevitLookup.CmdTestShell")); var pushbutton = rvtRibbonPanel.AddItem(new PushButtonData("快速查看", "快速查看", ExecutingAssemblyPath, "RevitLookup.CmdSnoopModScope")) as PushButton; pushbutton.Image = GetEmbeddedImage("RevitLookup.Resources.RLookup-16.png"); pushbutton.LargeImage = GetEmbeddedImage("RevitLookup.Resources.RLookup-32.png"); var pushbuttonSearch = rvtRibbonPanel.AddItem(new PushButtonData("按ID查看", "按ID查看", ExecutingAssemblyPath, "RevitLookup.CmdSearchBy")) as PushButton; pushbuttonSearch.Image = GetEmbeddedImage("RevitLookup.Resources.RLookup-16.png"); pushbuttonSearch.LargeImage = GetEmbeddedImage("RevitLookup.Resources.RLookup-32.png"); }
public Result OnStartup(UIControlledApplication uic_app) { // get existing SOM Ribbon Tab var panels = uic_app.GetRibbonPanels("SOM Tools"); if (null == panels) { uic_app.CreateRibbonTab("SOM Tools"); } // get or create panel RibbonPanel panel = panels.Where(x => x.Name == "SOM-NY").FirstOrDefault(); if (null == panel) { panel = uic_app.CreateRibbonPanel("SOM Tools", "SOM NY"); } // pull down button PulldownButtonData pdBtnData = new PulldownButtonData("SOMNY_Utils", "UTILITIES"); RibbonItem ribbonItem = panel.AddItem(pdBtnData); PulldownButton pdBtn = ribbonItem as PulldownButton; // get assembly string ExecutingAssemblyPath = System.Reflection.Assembly.GetExecutingAssembly().Location; string ExecutingAssemblyName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name; string ExecutingAssemblyDirectory = Path.GetDirectoryName(ExecutingAssemblyPath); // add items pdBtn.AddPushButton(new PushButtonData("RenumberAreasByPickSeq", "Re-Number Areas By Pick Order", Path.Combine(ExecutingAssemblyDirectory, "RenumberAreasByPickSeq.dll"), "RenumberAreasByPickSeq.Cmd_PickAreasBySeq")); return(Result.Succeeded); }
Stream(ArrayList data, PulldownButton pullDownBt) { data.Add(new Snoop.Data.ClassSeparator(typeof(PulldownButton))); data.Add(new Snoop.Data.Object("Image", pullDownBt.Image)); data.Add(new Snoop.Data.Enumerable("Items", pullDownBt.GetItems())); data.Add(new Snoop.Data.String("Name", pullDownBt.Name)); }
public static void SetPushDownButton(PulldownButton group, PushButtonData pushButtonData, string toolTip, string uri) { PushButton pushButton = group.AddPushButton(pushButtonData) as PushButton; pushButton.ToolTip = toolTip; BitmapImage bitmapImage = new BitmapImage(new Uri(uri)); pushButton.LargeImage = bitmapImage; }
private void AddMenu(UIControlledApplication app) { RibbonPanel ribbonPanel = app.CreateRibbonPanel("Revit Family Utilities"); PulldownButtonData data = new PulldownButtonData("Options", "Revit Family Utilities"); RibbonItem item = ribbonPanel.AddItem(data); PulldownButton opt = item as PulldownButton; opt.AddPushButton(new PushButtonData("File Upgrade", "File Upgrade", ExecutingAssemblyPath, "FamilyUtilities.FileUpgrade")); opt.AddPushButton(new PushButtonData("Parameter Manager", "Parameter Manager", ExecutingAssemblyPath, "FamilyUtilities.ParameterManager")); }
/// <summary> /// Stacked Buttons - combination of: push button, dropdown button, combo box and text box. /// (no radio button group, split buttons). /// Here we define 6 buttons, make grouping of 1, 3, 2 items, and stack them in three layer: /// (1) simple push button with "Hello World" /// (2) pull down with 3 items: "Command Data", "DB Element" and "Element Filtering". /// (3) pull down with 2 items: "Element Modification" and "Model Creation" /// </summary> public void AddStackedButtons_Complex(RibbonPanel panel) { // Create six push buttons to group for pull down and stack up // #0 PushButtonData pushButtonData0 = new PushButtonData("StackComplexHelloWorld", "Hello World", _introLabPath, _introLabName + ".HelloWorld"); pushButtonData0.Image = NewBitmapImage("Basics.ico"); // #1 PushButtonData pushButtonData1 = new PushButtonData("StackComplexCommandData", "Command Data", _introLabPath, _introLabName + ".CommandData"); pushButtonData1.Image = NewBitmapImage("Basics.ico"); // #2 PushButtonData pushButtonData2 = new PushButtonData("StackComplexDbElement", "DB Element", _introLabPath, _introLabName + ".DBElement"); // #3 PushButtonData pushButtonData3 = new PushButtonData("StackComplexElementFiltering", "Filtering", _introLabPath, _introLabName + ".ElementFiltering"); // #4 PushButtonData pushButtonData4 = new PushButtonData("StackComplexElementModification", "Modify", _introLabPath, _introLabName + ".ElementModification"); // #5 PushButtonData pushButtonData5 = new PushButtonData("StackComplexModelCreation", "Create", _introLabPath, _introLabName + ".ModelCreation"); // Make two sets of pull down PulldownButtonData pulldownBtnData1 = new PulldownButtonData("StackComplePulldownButton1", "DB Basics"); PulldownButtonData pulldownBtnData2 = new PulldownButtonData("StackComplePulldownButton2", "Modeling"); // Create three item stack. IList <RibbonItem> stackedItems = panel.AddStackedItems(pushButtonData0, pulldownBtnData1, pulldownBtnData2); PulldownButton pulldownBtn2 = stackedItems[1] as PulldownButton; PulldownButton pulldownBtn3 = stackedItems[2] as PulldownButton; pulldownBtn2.Image = NewBitmapImage("Basics.ico"); pulldownBtn3.Image = NewBitmapImage("House.ico"); // Add each sub items PushButton button1 = pulldownBtn2.AddPushButton(pushButtonData1); PushButton button2 = pulldownBtn2.AddPushButton(pushButtonData2); PushButton button3 = pulldownBtn2.AddPushButton(pushButtonData3); PushButton button4 = pulldownBtn3.AddPushButton(pushButtonData4); PushButton button5 = pulldownBtn3.AddPushButton(pushButtonData5); // Note: we need to set the image later. if we do in button data, it won't show in the Ribbon. button1.Image = NewBitmapImage("Basics.ico"); button2.Image = NewBitmapImage("Basics.ico"); button3.Image = NewBitmapImage("Basics.ico"); button4.Image = NewBitmapImage("Basics.ico"); button5.Image = NewBitmapImage("Basics.ico"); }
/// <summary> /// 附加按钮 /// </summary> /// <param name="b1"></param> /// <param name="plugins"></param> private static void AppendPullButton(PulldownButton b1, List <IFangCommand> plugins) { foreach (var plugin in plugins) { PushButtonData data = new PushButtonData(plugin.AlaisName, plugin.AlaisName, plugin.GetType().Assembly.Location, plugin.ModelName); PushButton ps = b1.AddPushButton(data); ps.LargeImage = plugin.ImageURI; ps.Image = plugin.ImageURI; ps.SetShortCut(plugin.ShortCutKey); } }
internal static void AddPushButton(this PulldownButton pullDownButton, Type commandType, string text, string tooltip = default(string), Type availability = null) { // Create a push button to trigger a command and add it to the pull down button. var thisAssembly = Assembly.GetExecutingAssembly(); var buttonData = new PushButtonData("cmdRhinoInside." + commandType.Name, text, thisAssembly.Location, commandType.FullName); if (pullDownButton.AddPushButton(buttonData) is PushButton pushButton) { pushButton.ToolTip = tooltip; pushButton.AvailabilityClassName = availability?.FullName ?? string.Empty; } }
/// <summary> /// Add samples to corresponding pulldown button /// </summary> /// <param name="buttons">pulldown buttons</param> private void AddSamplesToStackedButtons(IList <RibbonItem> buttons) { foreach (RibbonItem rItem in buttons) { PulldownButton button = rItem as PulldownButton; List <SampleItem> sampleItems = m_customizedMenus.Values[m_customizedMenus.IndexOfKey(button.Name)]; foreach (SampleItem item in sampleItems) { AddSampleToPulldownMenu(button, item); } } }
private void AddMenu(UIControlledApplication app) { // get the ribbon tab try { app.CreateRibbonTab(RIBBON_TAB); } catch (Exception) { } // tab already exists // get or create panel RibbonPanel panel = null; List <RibbonPanel> panels = app.GetRibbonPanels(RIBBON_TAB); foreach (RibbonPanel pnl in panels) { if (pnl.Name == RIBBON_PANEL) { panel = pnl; break; } } // couldn find the panel if (panel == null) { panel = app.CreateRibbonPanel(RIBBON_TAB, RIBBON_PANEL); } PulldownButtonData data = new PulldownButtonData("Options", RIBBON_PANEL); RibbonItem item = panel.AddItem(data); PulldownButton optionsBtn = item as PulldownButton; // get the image for the button Image img = Properties.Resources.location32x32; ImageSource imgSrc = GetImageSources(img); // create button data PushButtonData btnData = new PushButtonData( "CursorCoord", "Cursor" + "\n" + "Coordinates", ExecutingAssemblyPath, "Coord.Revit.RibbonButton.Command") { ToolTip = "Click to save the cursor coordinates", LongDescription = "This button makes you save the coordinates of the cursor while you hover over the screen.", Image = imgSrc, LargeImage = imgSrc }; // add the button to the ribbon PushButton button = panel.AddItem(btnData) as PushButton; button.Enabled = true; }
static void AddRibbonPanel(UIControlledApplication application) { // Create a custom ribbon panel String tabName = "Archilizer"; String version = "1.0.1"; try { application.CreateRibbonTab(tabName); } catch (Exception) { } RibbonPanel ribbonPanel = application.CreateRibbonPanel(tabName, "Purge +"); // Get dll assembly path string thisAssemblyPath = Assembly.GetExecutingAssembly().Location; PushButtonData delBackupsBtn = CreatePushButton("Delete Backups", "1. Delete Backups", thisAssemblyPath, "Archilizer_Purge.CommandDeleteBackups", "Deletes those pesky .00??.rvt files.", "purge.png", "purge_small.png"); PushButtonData dwgBtn = CreatePushButton("Imported DWG Files", "2. Imported DWG Files", thisAssemblyPath, "Archilizer_Purge.PurgeImportedDWG", "Purges imported (but not linked) DWG files in the current project.", "purge.png", "purge_small.png"); PushButtonData dwgLinesBtn = CreatePushButton("DWG Line Patterns", "3. DWG Line Patterns", thisAssemblyPath, "Archilizer_Purge.PurgeImportedLinePatterns", "Purges line patterns brought by imported DWG files.", "purge.png", "purge_small.png"); PushButtonData viewsBtn = CreatePushButton("Views not on Sheets", "4. Views not on Sheets", thisAssemblyPath, "Archilizer_Purge.CommandViewsNotOnSheets", "Purges Views not placed on Sheets. Use at your own risk!", "purge.png", "purge_small.png"); PushButtonData vtemplateBtn = CreatePushButton("Unused View Templates", "5. Unused View Templates", thisAssemblyPath, "Archilizer_Purge.PurgeUnusedTemplates", "Purges Unused View Templates.", "purge.png", "purge_small.png"); PushButtonData filtersBtn = CreatePushButton("Unused Filters", "6. Unused Filters", thisAssemblyPath, "Archilizer_Purge.PurgeFilters", "Purges Unused Filters (Filters that have never been assigned to a View or a View Template).", "purge.png", "purge_small.png"); PulldownButtonData pd1 = new PulldownButtonData("purgeButton", "Purge"); pd1.ToolTip = String.Format("v{0}", version); BitmapImage pdImage = new BitmapImage(new Uri(String.Format("pack://application:,,,/Archilizer_Purge;component/Resources/{0}", "purge.png"))); pd1.LargeImage = pdImage; pd1.Image = pdImage; PulldownButton pd = ribbonPanel.AddItem(pd1) as PulldownButton; pd.AddPushButton(delBackupsBtn); pd.AddPushButton(dwgBtn); pd.AddPushButton(dwgLinesBtn); pd.AddPushButton(viewsBtn); pd.AddPushButton(vtemplateBtn); pd.AddPushButton(filtersBtn); }
public override void BuildPanelButtons() { PushButtonMaker buttonMaker = new PushButtonMaker(new Info()); buttonMaker.BuildPushButtonData(); PushButtonData buttonData = buttonMaker.GetPushButtonData(); PushButton button = Panel.AddItem(buttonData) as PushButton; #region Visual PulldownButtonData visualPulldownButtonData = new PulldownButtonData("Visual", "Visual"); visualPulldownButtonData.LargeImage = AssemblyResourceUtils.GetImageFromResource("Commands/Images/Large/blue/visibility.png"); PulldownButton visualPulldownButton = Panel.AddItem(visualPulldownButtonData) as PulldownButton; #endregion PulldownButtonData selectionPulldownButtonData = new PulldownButtonData("Selection", "Selection"); selectionPulldownButtonData.LargeImage = AssemblyResourceUtils.GetImageFromResource("Commands/Images/Large/blue/hands-and-gestures.png"); PulldownButton selectionPulldownButton = Panel.AddItem(selectionPulldownButtonData) as PulldownButton; #region Parameters PulldownButtonData parametersPulldownButtonData = new PulldownButtonData("Parameters", "Parameters"); parametersPulldownButtonData.LargeImage = AssemblyResourceUtils.GetImageFromResource("Commands/Images/Large/blue/controls.png"); PulldownButton parametersPulldownButton = Panel.AddItem(parametersPulldownButtonData) as PulldownButton; buttonMaker = new PushButtonMaker(new ShowParameterEditor()); buttonMaker.BuildPushButtonData(); buttonData = buttonMaker.GetPushButtonData(); button = parametersPulldownButton.AddPushButton(buttonData) as PushButton; #endregion PulldownButtonData viewsPulldownButtonData = new PulldownButtonData("Views", "Views"); viewsPulldownButtonData.LargeImage = AssemblyResourceUtils.GetImageFromResource("Commands/Images/Large/blue/crop.png"); PulldownButton viewsPulldownButton = Panel.AddItem(viewsPulldownButtonData) as PulldownButton; PulldownButtonData worksharingPulldownButtonData = new PulldownButtonData("Worksharing", "Worksharing"); worksharingPulldownButtonData.LargeImage = AssemblyResourceUtils.GetImageFromResource("Commands/Images/Large/blue/network.png"); PulldownButton worksharingPulldownButton = Panel.AddItem(worksharingPulldownButtonData) as PulldownButton; PulldownButtonData analyzePulldownButtonData = new PulldownButtonData("Analyze", "Analyze"); analyzePulldownButtonData.LargeImage = AssemblyResourceUtils.GetImageFromResource("Commands/Images/Large/blue/analytics.png"); PulldownButton analyzePulldownButton = Panel.AddItem(analyzePulldownButtonData) as PulldownButton; }
private void CreatePythonCommandButtonsOnRibbon() { Dictionary <string, PulldownButton> pulldownButtons = GetDictionaryWithPulldownButtons(); foreach (var commandSetting in _settingsInterpreter.PythonCommandSettings) { PushButtonData dynamicCommandPushButton = CreatePythonPushButtonDataFromSetting(commandSetting); PulldownButton parentPulldownButton = pulldownButtons[commandSetting.ParentButton]; parentPulldownButton.AddPushButton(dynamicCommandPushButton); } }
/// <summary> /// Add buttons for the commands we define in this labs. /// Here we stack three push buttons and repeat it as we get more. /// </summary> public void AddUILabsCommandButtons(RibbonPanel panel) { // Get the location of this dll. string assembly = GetType().Assembly.Location; // Create three push buttons to stack up // #1 PushButtonData pushButtonData1 = new PushButtonData("UILabsSelection", "Pick Sampler", assembly, _uiLabName + ".UISelection"); pushButtonData1.Image = NewBitmapImage("basics.ico"); // #2 PushButtonData pushButtonData2 = new PushButtonData("UILabsCreateHouse", "Create House Pick", assembly, _uiLabName + ".UICreateHouse"); pushButtonData2.Image = NewBitmapImage("House.ico"); // #3 PushButtonData pushButtonData3 = new PushButtonData("UILabsTaskDialog", "Dialog Sampler", assembly, _uiLabName + ".UITaskDialog"); pushButtonData3.Image = NewBitmapImage("basics.ico"); // #4 PushButtonData pushButtonData4 = new PushButtonData("UILabsCreateHouseDialog", "Create House Dialog", assembly, _uiLabName + ".UICreateHouseDialog"); pushButtonData4.Image = NewBitmapImage("House.ico"); // #5 // Make three sets of pull down PulldownButtonData pulldownBtnData1 = new PulldownButtonData("UILabsPulldownButton1", "Selection"); PulldownButtonData pulldownBtnData2 = new PulldownButtonData("UILabsPulldownButton2", "Task Dialog"); // Create three item stack. IList <RibbonItem> stackedItems = panel.AddStackedItems(pulldownBtnData1, pulldownBtnData2); PulldownButton pulldownBtn1 = stackedItems[0] as PulldownButton; PulldownButton pulldownBtn2 = stackedItems[1] as PulldownButton; pulldownBtn1.Image = NewBitmapImage("Basics.ico"); pulldownBtn2.Image = NewBitmapImage("Basics.ico"); // Add each sub items PushButton button1 = pulldownBtn1.AddPushButton(pushButtonData1); PushButton button2 = pulldownBtn1.AddPushButton(pushButtonData2); PushButton button3 = pulldownBtn2.AddPushButton(pushButtonData3); PushButton button4 = pulldownBtn2.AddPushButton(pushButtonData4); // Note: we need to set the image later. if we do in button data, it won't show in the Ribbon. button1.Image = NewBitmapImage("Basics.ico"); button2.Image = NewBitmapImage("Basics.ico"); button3.Image = NewBitmapImage("Basics.ico"); button4.Image = NewBitmapImage("Basics.ico"); }
internal static PushButton AddPushButton <CommandType, AvailabilityType>(PulldownButton pullDownButton, string text, string tooltip) where CommandType : IExternalCommand where AvailabilityType : IExternalCommandAvailability { var buttonData = NewPushButtonData <CommandType, AvailabilityType>(text); if (pullDownButton.AddPushButton(buttonData) is PushButton pushButton) { pushButton.ToolTip = tooltip; return(pushButton); } return(null); }
public void PullDown(RibbonPanel panel) { //creates a Push button for the get selection command PushButtonData bgetselect = new PushButtonData("getselec", "Get Selection", assemblyloca, "Application.getSelection"); //creates a Push button for the get Collection command PushButtonData bgetCollect = new PushButtonData("getcoll", "Get Collection", assemblyloca, "Application.getCollection"); //creates a pull down menu PulldownButtonData pdb1 = new PulldownButtonData("WallsSelection", "Wall Selector"); //assigns the pulldown menu to our panel PulldownButton pdb = panel.AddItem(pdb1) as PulldownButton; //adds the buttons above to the pulldown menu pdb.AddPushButton(bgetselect); pdb.AddPushButton(bgetCollect); }
private void AddMenu(UIControlledApplication app) { RibbonPanel rvtRibbonPanel = app.CreateRibbonPanel(name); #if Pulldown PulldownButton btn = rvtRibbonPanel.AddItem(new PulldownButtonData("Options", "Revit to XObject")) as PulldownButton; btn.AddPushButton(new PushButtonData("HelloWorld", "Hello World...", location, "RevitToXObject.Command")); #else PushButton btn = rvtRibbonPanel.AddItem(new PushButtonData("Revit To XObject", "Revit to XObject", location, "RevitToXObject.Command")) as PushButton; #endif btn.Image = GetEmbeddedImage("RevitToXObject.Resources.XObject_16.png"); btn.LargeImage = GetEmbeddedImage("RevitToXObject.Resources.XObject_32.png"); UIControlledApplication = app; }
private void AddMenu(UIControlledApplication app) { Autodesk.Revit.UI.RibbonPanel rvtRibbonPanel = app.CreateRibbonPanel("Revit Lookup"); PulldownButtonData data = new PulldownButtonData("Options", "Revit Lookup"); RibbonItem item = rvtRibbonPanel.AddItem(data); PulldownButton optionsBtn = item as PulldownButton; optionsBtn.AddPushButton(new PushButtonData("HelloWorld", "Hello World...", ExecutingAssemblyPath, "RevitLookup.HelloWorld")); optionsBtn.AddPushButton(new PushButtonData("Snoop Db..", "Snoop DB...", ExecutingAssemblyPath, "RevitLookup.CmdSnoopDb")); optionsBtn.AddPushButton(new PushButtonData("Snoop Current Selection...", "Snoop Current Selection...", ExecutingAssemblyPath, "RevitLookup.CmdSnoopModScope")); optionsBtn.AddPushButton(new PushButtonData("Snoop Application...", "Snoop Application...", ExecutingAssemblyPath, "RevitLookup.CmdSnoopApp")); optionsBtn.AddPushButton(new PushButtonData("Test Framework...", "Test Framework...", ExecutingAssemblyPath, "RevitLookup.CmdTestShell")); optionsBtn.AddPushButton(new PushButtonData("Events...", "Events...", ExecutingAssemblyPath, "RevitLookup.CmdEvents")); }
private void CreateVisibilitySwitcherCommandsOnRibbonAsSlideOut() { _ribbonPanel.AddSlideOut(); PulldownButtonData pdbd = new PulldownButtonData("VisibiitySwitcher", "VisibiitySwitcher"); PulldownButton pulldownButton = _ribbonPanel.AddItem(pdbd) as PulldownButton; foreach (var commandSetting in _settingsInterpreter.VisibilitySwitcherCommandSettings) { PushButtonData dynamicCommandPushButton = CreateVisibilitySwitcherPushButtonDataFromSetting(commandSetting); dynamicCommandPushButton.ToolTip = commandSetting.VisibilityNameRegex; pulldownButton.AddPushButton(dynamicCommandPushButton); } }
//设置PulldownButton类型的介绍信息 public void SetPulldownButtonAttribute(ref RibbonPanel ribbon, string assembly, string className, PulldownButtonData pdb, string largeImageuri, string toolTip, string longDescription) { PushButtonData p1 = new PushButtonData("Pillar1", "圆柱", assembly, className); PushButtonData p2 = new PushButtonData("Pillar2", "方柱", assembly, className); SetCommonAttribute(ref p1, @"D:\workfile\Bridge\Img\Pillar1.png", "圆柱", "圆柱"); SetCommonAttribute(ref p2, @"D:\workfile\Bridge\Img\Pillar1.png", "方柱", "方柱"); pdb.LargeImage = new BitmapImage(new Uri(largeImageuri)); pdb.ToolTip = toolTip; pdb.LongDescription = longDescription; PulldownButton pulldown = ribbon.AddItem(pdb) as PulldownButton; //在PulldownButton中添加PushButton pulldown.AddPushButton(p1); pulldown.AddPushButton(p2); }
public Result OnStartup(UIControlledApplication application) { try { RibbonPanel ribbonPanel = application.CreateRibbonPanel("Tools"); string thisAssemblyPath = Assembly.GetExecutingAssembly().Location; //Pulldownbutton PulldownButtonData group1Data = new PulldownButtonData("pullDownButton1", "Room number"); PulldownButton group1 = ribbonPanel.AddItem(group1Data) as PulldownButton; //Button (Change selected rooms number) PushButtonData pushButtonData1 = new PushButtonData("pushButtonData1", "Changes room number", thisAssemblyPath, "FinalniZadatak._1.zadatak.ChangeRoomNumber"); string uri1 = "pack://application:,,,/FinalniZadatak;component/Resources/changeRoomNum.png"; string tooltip1 = "Changes number of selected rooms from list of all rooms in model"; SetPushDownButton(group1, pushButtonData1, tooltip1, uri1); // Button ( Change all rooms numbers in model) PushButtonData pushButtonData2 = new PushButtonData("pushButtonData2", "Changes rooms numbers", thisAssemblyPath, "FinalniZadatak._1.zadatak.AutoChangeRoomsNumbers"); string uri2 = "pack://application:,,,/FinalniZadatak;component/Resources/changeRoomsNums.png"; string tooltip2 = "Changes numbers of all rooms in model automatically"; SetPushDownButton(group1, pushButtonData2, tooltip2, uri2); group1.LargeImage = new BitmapImage(new Uri(uri1)); //Button (List of furniture) PushButtonData pushButtonData3 = new PushButtonData("pushButtonData3", "Furniture", thisAssemblyPath, "FinalniZadatak._2.zadatak.Furniture"); string uri3 = "pack://application:,,,/FinalniZadatak;component/Resources/furnitureList.png"; string tooltip3 = "Show all parameters of furniture in active view sorted by type"; SetPushButton(ribbonPanel, pushButtonData3, tooltip3, uri3); //Button (Change element parameter) PushButtonData pushButtonData4 = new PushButtonData("pushButtonData4", "Parameters", thisAssemblyPath, "FinalniZadatak._3.zadatak.ChangeElParam"); string uri4 = "pack://application:,,,/FinalniZadatak;component/Resources/changeElemParam.png"; string tooltip4 = "Allows user to select one element from model and change element parameter with string storage type and if parameter is not read-only."; tooltip4 += "This command will change same parameter to all elements in model with same type as selected element"; SetPushButton(ribbonPanel, pushButtonData4, tooltip4, uri4); } catch (Exception ex) { TaskDialog.Show("Excepton", ex.Message); } return(Result.Succeeded); }
public Result OnStartup(UIControlledApplication application) { application.CreateRibbonTab("UCD场地工具"); RibbonPanel panel1 = application.CreateRibbonPanel("UCD场地工具", "欢迎页"); PushButtonData pbd = new PushButtonData("UCD场地工具", "欢迎使用", @"D:\Studay\CSharp\Work\Revit\HelloRevit\bin\Debug\HelloRevit.dll", "HelloRevit.Class1"); PushButton pb = panel1.AddItem(pbd) as PushButton; RibbonPanel panel2 = application.CreateRibbonPanel("UCD场地工具", "工具"); SplitButtonData splitData = new SplitButtonData("我的集合", "创建工具"); SplitButton sb = panel2.AddItem(splitData) as SplitButton; PushButtonData spd = new PushButtonData("UCD场地工具", "创建", @"D:\Studay\CSharp\Work\Revit\Create2\bin\Debug\Create2.dll", "Create2.CreateBox") { LargeImage = new BitmapImage(new Uri(@"D:\Studay\CSharp\Work\Revit\Ribbon1\img\sign_road.png")) }; sb.AddPushButton(spd); panel2.AddSeparator(); PulldownButtonData pdbd = new PulldownButtonData("UCD场地工具", "检查"); PushButtonData pushbtn = new PushButtonData("UCD场地工具", "碰撞检查", @"D:\Studay\CSharp\Work\Revit\Collision\bin\Debug\Collision.dll", "Collision.Class1"); PulldownButton btn = panel2.AddItem(pushbtn) as PulldownButton; btn.LongDescription = "检查当前物体是否碰撞"; btn.AddPushButton(pushbtn); RibbonPanel panel3 = application.CreateRibbonPanel("UCD场地工具", "文件"); ComboBoxData cbd = new ComboBoxData("选项"); ComboBox cBox = panel3.AddItem(cbd) as ComboBox; if (cBox != null) { cBox.ItemText = "选择操作"; cBox.ToolTip = "请选择想要进行的操作"; cBox.LongDescription = "选择一直接关闭,选择二关闭并修改"; ComboBoxMemberData cbmd = new ComboBoxMemberData("A", "关闭"); ComboBoxMemberData cbmd2 = new ComboBoxMemberData("B", "关闭并修改"); cbmd.GroupName = "编辑操作"; cBox.AddItem(cbmd); cBox.AddItem(cbmd2); } cBox.CurrentChanged += Change; cBox.CurrentChanged += Closed; return(Result.Succeeded); }
/// <summary> /// Add sample item to pulldown menu /// </summary> /// <param name="pullDownButton">Pulldown menu</param> /// <param name="item">Sample item to be added</param> private void AddSampleToPulldownMenu(PulldownButton pullDownButton, SampleItem item) { PushButtonData pushButtonData = new PushButtonData(item.DisplayName, item.DisplayName, item.Assembly, item.ClassName); PushButton pushButton = pullDownButton.AddPushButton(pushButtonData); if (!string.IsNullOrEmpty(item.LargeImage)) { BitmapImage largeImageSource = new BitmapImage(new Uri(item.LargeImage, UriKind.Absolute)); pushButton.LargeImage = largeImageSource; } if (!string.IsNullOrEmpty(item.Image)) { BitmapImage imageSource = new BitmapImage(new Uri(item.Image, UriKind.Absolute)); pushButton.Image = imageSource; } pushButton.ToolTip = item.Description; }
private void Stream(ArrayList data, PulldownButton pullDownBt) { data.Add(new Snoop.Data.ClassSeparator(typeof(PulldownButton))); data.Add(new Snoop.Data.Object("Image", pullDownBt.Image)); data.Add(new Snoop.Data.Enumerable("Items", pullDownBt.GetItems())); data.Add(new Snoop.Data.String("Name", pullDownBt.Name)); }