private void InitRibbonButtons(RibbonPanel ribbonPanel) { CreatePushButton(ribbonPanel, "Select Category", "Select\nCategory", _path, "Walter.SelectCommand", "Korisnik ima mogućnost da izabere više prikazanih kategorija, te prilikom klika na dugme „Accept & Export“ , program će izvršiti pribavljanje svih odabranih kategorija (instanci) iz Revitovog modela i ispisati u txt fajl na Desktopu.", true, _resorce + @"select.png"); ribbonPanel.AddSeparator(); SplitButton splitButton = ribbonPanel.AddItem(new SplitButtonData("Auto Room Num", "Auto\nNumbering")) as SplitButton; splitButton.ToolTip = "Alat kojim se automatizuje dodjela broja sobe. Korisniku omogućiti da unese od kog broja kreću brojevi soba."; splitButton.LargeImage = new BitmapImage(new Uri(_resorce + @"numbering.png")); PushButton pushButtonInput = splitButton.AddPushButton(new PushButtonData("Auto Room Num", "Auto\nNumbering", _path, "Walter.NumberingRoomCommand")); pushButtonInput.LargeImage = new BitmapImage(new Uri(_resorce + @"numbering.png")); pushButtonInput.ToolTip = "Alat kojim se automatizuje dodjela broja sobe. Korisniku omogućuje da unese od kog broja kreću brojevi soba."; pushButtonInput.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, "https://www.naviate.com/")); PushButton pushButtonAuto = splitButton.AddPushButton(new PushButtonData("Auto Room Num with start", "Auto Numbering\nFrom 100", _path, "Walter.AutoNumberingRoomCommand")); pushButtonAuto.LargeImage = new BitmapImage(new Uri(_resorce + @"autoNumbering.png")); pushButtonAuto.ToolTip = "Alat kojim se automatizuje dodjela broja sobe koje postoje u modelu pocevsi od 100."; pushButtonAuto.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, "https://www.naviate.com/")); ribbonPanel.AddSeparator(); CreatePushButton(ribbonPanel, "Show Furniture", "Show\nFurniture", _path, "Walter.FurnitureCommand", "Alat kojim se prikazuje namještaj na spratu.", true, _resorce + @"furniture.png"); ribbonPanel.AddSeparator(); PushButton edit = CreatePushButton(ribbonPanel, "Edit Element", "Edit\nElement", _path, "Walter.EditElementCommand", "Alat omogućuje korisniku da za selektovani element budu prikazani svi parametri izabranog elementa. Korisnik ima mogućnost da unese novu vrijednost parametra i klikom na dugme „Ok“ svi elementi tog tipa koji se nalaze unutar projekta dobiće novu unesenu vrijednost", true, _resorce + @"edit.png"); edit.Enabled = false; ribbonPanel.AddSeparator(); CreatePushButton(ribbonPanel, "Insert Section", "Insert\nSection", _path, "Walter.InsertSectionCommand", "Alat omogucuje korisniku za selektovana vrata da se kreira section", true, _resorce + @"section.png"); ribbonPanel.AddSeparator(); CreatePushButton(ribbonPanel, "Insert Elevation", "Insert\nElevation", _path, "Walter.InsertElevationCommand", "Alat omogucuje korisniku za selektovanu sobu da se kreira elevation za svaku stranu", true, _resorce + @"elevation.png"); ribbonPanel.AddSeparator(); }
public Result OnStartup(UIControlledApplication application) { RibbonPanel rp = application.CreateRibbonPanel("HOK Mass Tools"); string currentAssembly = System.Reflection.Assembly.GetAssembly(this.GetType()).Location; #region Create a SplitButton for user to create Mass or Transfer Data SplitButtonData splitButtonData = new SplitButtonData("MassTool", "3D Mass"); SplitButton splitButton = rp.AddItem(splitButtonData) as SplitButton; PushButton pushButton = splitButton.AddPushButton(new PushButtonData("CreateMass", "Create Mass", currentAssembly, "HOK.RoomsToMass.Command")); pushButton.LargeImage = LoadBitmapImage("cube.png"); pushButton.ToolTip = "Creates 3D Mass from rooms, areas and floors."; pushButton.ToolTipImage = LoadBitmapImage("tooltip.png"); PushButton pushButton2 = splitButton.AddPushButton(new PushButtonData("UpdateData", "Update Data", currentAssembly, "HOK.RoomsToMass.DataCommand")); pushButton2.LargeImage = LoadBitmapImage("refresh.png"); pushButton2.ToolTip = "This will transfer parameters values between source objects and created masses."; PushButton pushButton3 = splitButton.AddPushButton(new PushButtonData("MassCommands", "Mass Commands", currentAssembly, "HOK.RoomsToMass.AssignerCommand")); pushButton3.LargeImage = LoadBitmapImage("shape.png"); pushButton3.ToolTip = "This will assign worksets or other parameters values in elements depending on what mass objects surrounding the elements."; #endregion return(Result.Succeeded); }
private void CreateRibbonSamplePanel(UIControlledApplication application) { //RibbonPanel显示一个大按钮,图标为第一个按钮的图标 string firstPanelName = "Ribbon 实例";//面板底部文字提示 RibbonPanel ribbonSamplePanel = application.CreateRibbonPanel(firstPanelName); #region 创建墙和结构墙 //RibbonPanel(面板)->SplitButton(按钮组)->PushButton(按钮) SplitButtonData splitButtonData = new SplitButtonData("NewWallSplit", "创建墙"); //按钮数据,按钮组显示的文字为第一个按钮的文字 SplitButton splitButton = ribbonSamplePanel.AddItem(splitButtonData) as SplitButton; //添加到面板 //PushButton pushButton = splitButton.AddPushButton(new PushButtonData("WallPush", "普通墙", AddInPath, "Revit.SDK.Samples.Ribbon.CS.CreateWall")); //最后一个参数是执行按钮事件的响应类名 PushButtonData pushButtonDataWall = new PushButtonData("WallPush", "普通墙", AddInPath, "HY.CreateWall"); PushButton pushButton = splitButton.AddPushButton(pushButtonDataWall); //大图标,小图标 pushButton.LargeImage = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "CreateWall.png"), UriKind.Absolute)); pushButton.Image = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "CreateWall-S.png"), UriKind.Absolute)); //提示文字,提示图片 pushButton.ToolTip = "Creates a partition wall in the building model."; pushButton.ToolTipImage = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "CreateWallTooltip.bmp"), UriKind.Absolute)); //按钮组里第二个按钮 pushButton = splitButton.AddPushButton(new PushButtonData("StrWallPush", "结构墙", AddInPath, "HY.CreateStructureWall")); pushButton.LargeImage = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "StrcturalWall.png"), UriKind.Absolute)); pushButton.Image = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "StrcturalWall-S.png"), UriKind.Absolute)); #endregion ribbonSamplePanel.AddSeparator(); }
private void CreateMasterRibbon(UIControlledApplication uiApp, string tabName) { RibbonPanel panel = uiApp.CreateRibbonPanel(tabName, "BIM-мастер"); SplitButtonData sbdAddParams = new SplitButtonData("FamilyParametersSplitButton", "Добавить параметры"); PushButtonData pbdClearGuids = CreateButtonData("ClearUnusedGUIDs", "CommandClear"); PushButtonData pbdFixSlowFile = CreateButtonData("FixSlowFile", "Command"); IList <RibbonItem> stacked1 = panel.AddStackedItems(sbdAddParams, pbdClearGuids, pbdFixSlowFile); SplitButton splitFamParam = stacked1[0] as SplitButton; splitFamParam.AddPushButton(CreateButtonData("ClearUnusedGUIDs", "CommandAddParameters")); splitFamParam.AddPushButton(CreateButtonData("ClearUnusedGUIDs", "CommandAddParamsByAnalog")); SplitButtonData sbdParametrization = new SplitButtonData("ModelParametrizationSplitButton", "Параметризация"); PushButtonData pbdWorksets = CreateButtonData("RevitWorksets", "Command"); PushButtonData pbdFamiliesLibrary = CreateButtonData("TestDockable3", "CommandShowDockableWindow"); IList <RibbonItem> stacked2 = panel.AddStackedItems(sbdParametrization, pbdWorksets, pbdFamiliesLibrary); SplitButton splitParametrization = stacked2[0] as SplitButton; splitParametrization.AddPushButton(CreateButtonData("ParameterWriter", "Command")); splitParametrization.AddPushButton(CreateButtonData("RebarBDS", "Command")); splitParametrization.AddPushButton(CreateButtonData("WriteParametersFormElemsToParts", "CommandWriteParam")); splitParametrization.AddPushButton(CreateButtonData("RevitPlatesWeight", "Command")); splitParametrization.AddPushButton(CreateButtonData("IngradParametrisation", "Cmd")); }
/// <summary> /// Split button for "Command Data", "DB Element" and "Element Filtering" /// </summary> public void AddSplitButton(RibbonPanel panel) { // Create three push buttons for split button drop down // #1 PushButtonData pushButtonData1 = new PushButtonData("SplitCommandData", "Command Data", _introLabPath, _introLabName + ".CommandData"); pushButtonData1.LargeImage = NewBitmapImage("ImgHelloWorld.png"); // #2 PushButtonData pushButtonData2 = new PushButtonData("SplitDbElement", "DB Element", _introLabPath, _introLabName + ".DBElement"); pushButtonData2.LargeImage = NewBitmapImage("ImgHelloWorld.png"); // #3 PushButtonData pushButtonData3 = new PushButtonData("SplitElementFiltering", "ElementFiltering", _introLabPath, _introLabName + ".ElementFiltering"); pushButtonData3.LargeImage = NewBitmapImage("ImgHelloWorld.png"); // Make a split button now SplitButtonData splitBtnData = new SplitButtonData("SplitButton", "Split Button"); SplitButton splitBtn = panel.AddItem(splitBtnData) as SplitButton; splitBtn.AddPushButton(pushButtonData1); splitBtn.AddPushButton(pushButtonData2); splitBtn.AddPushButton(pushButtonData3); }
public Result OnStartup(UIControlledApplication application) { string currentAssembly = System.Reflection.Assembly.GetAssembly(this.GetType()).Location; string currentDirectory = Path.GetDirectoryName(currentAssembly); try { application.CreateRibbonTab(tabName); } catch { } AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); RibbonPanel rp = application.CreateRibbonPanel(tabName, "Model Manager"); SplitButtonData splitButtonData = new SplitButtonData("ModelManager", "Model Manager"); SplitButton splitButton = rp.AddItem(splitButtonData) as SplitButton; PushButton projectButton = splitButton.AddPushButton(new PushButtonData("ProjectReplication", "Project Replication", currentAssembly, "HOK.ModelManager.ProjectCommand")); projectButton.LargeImage = LoadBitmapImage("project.png");; projectButton.ToolTip = "Transfer data from opened models to the active Revit model."; if (ModelBuilderActivated()) { PushButton modelButton = splitButton.AddPushButton(new PushButtonData("ModelBuilder", "Model Builder", currentAssembly, "HOK.ModelManager.ModelCommand")); modelButton.LargeImage = LoadBitmapImage("model.png");; modelButton.ToolTip = "Specify resource locations and transfer the data into the active Revit model."; } return(Result.Succeeded); }
public Result OnStartup(UIControlledApplication a) { ParentSupportMethods myParentSupportMethods = new ParentSupportMethods(); myParentSupportMethods.myTA = this; string stringCommand01Button = "Set Development Path Root"; Properties.Settings.Default.AssemblyNeedLoading = true; Properties.Settings.Default.Save(); String exeConfigPath = Path.GetDirectoryName(path) + "\\" + dllName + ".dll"; a.CreateRibbonTab(TabName); RibbonPanelCurrent = a.CreateRibbonPanel(TabName, PanelName); PushButtonData myPushButtonData01 = new PushButtonData(stringCommand01Button, stringCommand01Button, exeConfigPath, dllName + ".InvokeSetDevelopmentPath"); ComboBoxData cbData = new ComboBoxData("DeveloperSwitch") { ToolTip = "Select an Option", LongDescription = "Select a number or letter" }; ComboBox ComboBox01 = RibbonPanelCurrent.AddStackedItems(cbData, myPushButtonData01)[0] as ComboBox; string stringProductVersion = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Pedersen Read Limited\\cSharpPlaypen joshnewzealand").GetValue("ProductVersion").ToString(); //Bug fix here by Max Sun (01/05/19) ComboBox01.AddItem(new ComboBoxMemberData("Release", "Release: " + stringProductVersion)); ComboBox01.AddItem(new ComboBoxMemberData("Development", "C# Developer Mode")); ComboBox01.CurrentChanged += new EventHandler <Autodesk.Revit.UI.Events.ComboBoxCurrentChangedEventArgs>(SwitchBetweenDeveloperAndRelease); //RibbonPanelCurrent.AddItem(myParentSupportMethods.myPushButton_01(Button_01, path)); RibbonPanelCurrent.AddItem(myParentSupportMethods.Button01_Start("Button01_Start", Button01_Start, path)); RibbonPanelCurrent.AddItem(myParentSupportMethods.Button02_DrawWallTypes("Button02_DrawWallTypes", Button02_DrawWallTypes, path)); RibbonPanelCurrent.AddItem(myParentSupportMethods.Button03_SetDefault("Button03_SetDefault", Button03_SetDefault, path)); RibbonPanelCurrent.AddItem(myParentSupportMethods.Button04_ManualOverrideColor("Button04_ManualOverrideColor", Button04_ManualOverrideColor, path)); RibbonPanelCurrent.AddItem(myParentSupportMethods.Button07_ExtensibleStorage("Button07_ExtensibleStorage", Button07_ExtensibleStorage, path)); PushButtonData myPushButtonData_OneClickBackup = myParentSupportMethods.Button15_SingleClickFamilyBackup("Button15_SingleClickFamilyBackup", Button15_SingleClickFamilyBackup, path); PushButtonData myPushButtonData_OpenBackupFolder = new PushButtonData("Button15_OpenBackupFolder", "Open Backup Folder", exeConfigPath, dllName + ".InvokeOpenBackupFolder"); SplitButtonData sb1 = new SplitButtonData("OneClickBackupSystem", "One Click Backup System"); SplitButton sb = RibbonPanelCurrent.AddItem(sb1) as SplitButton; sb.AddPushButton(myPushButtonData_OneClickBackup); sb.AddPushButton(myPushButtonData_OpenBackupFolder); sb.IsSynchronizedWithCurrentItem = false; RibbonPanelCurrent.AddItem(myParentSupportMethods.Button1617_AddEditParameters("Button1617_AddEditParameters", Button1617_AddEditParameters, path)); RibbonPanelCurrent.AddItem(myParentSupportMethods.Button1819_UnderstandingTransforms("Button1819_UnderstandingTransforms", Button1819_UnderstandingTransforms, path)); RibbonPanelCurrent.AddItem(myParentSupportMethods.Button02_Uninstall("Button_02_Uninstall", Button_02_Uninstall, path)); //PRLChecklistsPanel2.Visible = false; //RibbonPanel PRLChecklistsPanel2 = a.CreateRibbonPanel(TabName, PanelTransferring); //myParentSupportMethods.PlaceButtonOnModifyRibbon(); return(Result.Succeeded); }
public static void CreateIcons(RibbonPanel bim42Panel) { //Retrive dll path string DllPath = Assembly.GetExecutingAssembly().Location; ContextualHelp helpFile = CreateContextualHelp("BIM42Help"); //Add RoomsFinishes Button string ButtonText = Tools.LangResMan.GetString("roomFinishes_button_name", Tools.Cult); PushButtonData FinishButtonData = new PushButtonData("RoomsFiButton", ButtonText, DllPath, "RoomFinishes.RoomsFinishes.RoomsFinishes"); FinishButtonData.ToolTip = Tools.LangResMan.GetString("roomFinishes_toolTip", Tools.Cult); FinishButtonData.LargeImage = RetriveImage("RoomFinishes.Resources.RoomFinishLarge.png"); FinishButtonData.Image = RetriveImage("RoomFinishes.Resources.RoomFinishSmall.png"); FinishButtonData.SetContextualHelp(helpFile); //bim42Panel.AddItem(FinishButtonData); //Add FloorFinishes Button string floorButtonText = Tools.LangResMan.GetString("floorFinishes_ribbon_panel_name", Tools.Cult); PushButtonData floorButtonData = new PushButtonData("FloorFiButton", floorButtonText, DllPath, "RoomFinishes.RoomsFinishes.FloorFinishes"); floorButtonData.ToolTip = Tools.LangResMan.GetString("floorFinishes_toolTip", Tools.Cult); floorButtonData.LargeImage = RetriveImage("RoomFinishes.Resources.FloorFinishesLarge.png"); floorButtonData.Image = RetriveImage("RoomFinishes.Resources.FloorFinishesSmall.png"); floorButtonData.SetContextualHelp(helpFile); //Group RoomsFinishes button SplitButtonData sbRoomData = new SplitButtonData("splitButton2", "BIM 42"); SplitButton sbRoom = bim42Panel.AddItem(sbRoomData) as SplitButton; sbRoom.AddPushButton(FinishButtonData); sbRoom.AddPushButton(floorButtonData); }
private void AddSplitButton(RibbonPanel panel) { string assembly = @"D:\Sample\HelloWorld\bin\Debug\Hello.dll"; PushButtonData bOne = new PushButtonData("ButtonNameA", "Option One", assembly, "Hello.HelloOne"); bOne.LargeImage = new System.Windows.Media.Imaging.BitmapImage(new Uri(@"D:\Sample\HelloWorld\bin\Debug\One.bmp")); PushButtonData bTwo = new PushButtonData("ButtonNameB", "Option Two", assembly, "Hello.HelloTwo"); bTwo.LargeImage = new System.Windows.Media.Imaging.BitmapImage(new Uri(@"D:\Sample\HelloWorld\bin\Debug\Two.bmp")); PushButtonData bThree = new PushButtonData("ButtonNameC", "Option Three", assembly, "Hello.HelloThree"); bThree.LargeImage = new System.Windows.Media.Imaging.BitmapImage(new Uri(@"D:\Sample\HelloWorld\bin\Debug\Three.bmp")); SplitButtonData sb1 = new SplitButtonData("splitButton1", "Split"); SplitButton sb = panel.AddItem(sb1) as SplitButton; sb.AddPushButton(bOne); sb.AddPushButton(bTwo); sb.AddPushButton(bThree); }
} // end OnShutdown private bool AddSplitPushButtons(RibbonPanel rPanel) { ContextualHelp help = new ContextualHelp(ContextualHelpType.Url, AppStrings.R_CyberStudioDupSheetsAddr); try { // make push button 1 PushButtonData pbData1 = MakePushButton( rPanel, LocalResMgr.ButtonName, AppStrings.R_ButtonNameTop + nl + AppStrings.R_ButtonNameBott, AppStrings.R_ButtonImage16, AppStrings.R_ButtonImage32, Assembly.GetExecutingAssembly().Location, LocalResMgr.Command, AppStrings.R_CommandDescription); if (pbData1 == null) { return(false); } pbData1.SetContextualHelp(help); PushButtonData pbData2 = MakePushButton( rPanel, LocalResMgr.ButtonName_1Click, AppStrings.R_ButtonNameTopOneClick + nl + AppStrings.R_ButtonNameBottOneClick, AppStrings.R_ButtonImageOneClick16, AppStrings.R_ButtonImageOneClick32, Assembly.GetExecutingAssembly().Location, LocalResMgr.Command_1Click, AppStrings.R_CommandDescriptionOneClick); if (pbData2 == null) { return(false); } SplitButtonData sbd = new SplitButtonData("splitButton", "DupSheets"); SplitButton sb = rPanel.AddItem(sbd) as SplitButton; pbData2.SetContextualHelp(help); sb.SetContextualHelp(help); sb.AddPushButton(pbData1); sb.AddPushButton(pbData2); } catch { return(false); } return(true); }
private void AddSplitButton(Autodesk.Revit.UI.RibbonPanel panel, string m_masterSchedulePath, string m_ExcelImportPath) { PushButtonData buttonOne = new PushButtonData("ButtonOne", "Image Based Import", m_masterSchedulePath, "ManageMasterSchedule.Command"); buttonOne.LargeImage = LoadPngImgSource("KirkseyAppsRibbon.Icons.MasterScheduleUpdateImage32.png"); PushButtonData buttonTwo = new PushButtonData("ButtonTwon", "Text/Schedule Based Import", m_ExcelImportPath, "ExcelImport.Command"); buttonTwo.LargeImage = LoadPngImgSource("KirkseyAppsRibbon.Icons.MasterScheduleUpdateText32.png"); SplitButtonData sb1 = new SplitButtonData("splitButton1", "Split"); SplitButton sb = panel.AddItem(sb1) as SplitButton; sb.AddPushButton(buttonOne); sb.AddPushButton(buttonTwo); }
/// <summary> /// 创建一个按钮 /// </summary> /// <param name="plugin"></param> /// <param name="panel"></param> private static void CreateButton(IFangCommand plugin, RibbonPanel panel) { if (plugin.SplitName != null && plugin.SplitName != "") { SplitButton splitbt = FindSplitByName(panel, plugin.SplitName); if (splitbt != null) { PushButtonData data = new PushButtonData(plugin.AlaisName, plugin.AlaisName, plugin.GetType().Assembly.Location, plugin.ModelName); PushButton ps = splitbt.AddPushButton(data); ps.LargeImage = plugin.ImageURI; ps.Image = plugin.ImageURI; ps.SetShortCut(plugin.ShortCutKey); } else { SplitButtonData splidata = new SplitButtonData(plugin.SplitName, plugin.SplitName); SplitButton ps = panel.AddItem(splidata) as SplitButton; ps.LargeImage = plugin.ImageURI; ps.Image = plugin.ImageURI; ps.SetShortCut(plugin.ShortCutKey); ps.IsSynchronizedWithCurrentItem = false; //ps.ItemText = plugin.SplitName; } } else { } }
private void addArrowButton(SplitButton sb) { PushButtonData pbd = new PushButtonData("addarrow", "Add Evacuation Tragets", assembly, "SteerSuitePlugin.AddArrow"); Uri uriImage = new Uri(@"C:\Users\Belal\Documents\Expression\Expression Design\arrowExit.png"); BitmapImage largeImage = new BitmapImage(uriImage); pbd.LargeImage = largeImage; sb.AddPushButton(pbd); }
private void addStartButton(SplitButton sb) { PushButtonData pbd = new PushButtonData("addstart", "Start Simulation", assembly, "SteerSuitePlugin.StartSimulation"); Uri uriImage = new Uri(@"C:\Users\Belal\Documents\Expression\Expression Design\arrowExit.png"); BitmapImage largeImage = new BitmapImage(uriImage); pbd.LargeImage = largeImage; sb.AddPushButton(pbd); }
public static RibbonPanel CreateLoggedPanel(RibbonPanel bimsyncPanel) { //Retrive dll path string DllPath = Assembly.GetExecutingAssembly().Location; //Create contextual help string helpPath = Path.Combine(Path.GetDirectoryName(DllPath), "bimsyncHelp.html"); ContextualHelp help = new ContextualHelp(ContextualHelpType.ChmFile, helpPath); //Add Logged Buttons PushButtonData profileButton = new PushButtonData("profileButton", "Profile", DllPath, "bimsync.Commands.Profile"); profileButton.ToolTip = "Open your bimsync account"; profileButton.LargeImage = RetriveImage("bimsync.Resources.user_large.png"); profileButton.Image = RetriveImage("bimsync.Resources.user_small.png"); profileButton.SetContextualHelp(help); PushButtonData logoutButton = new PushButtonData("logoutButton", "Logout", DllPath, "bimsync.Commands.Logout"); logoutButton.ToolTip = "Logout"; logoutButton.LargeImage = RetriveImage("bimsync.Resources.power-off_large.png"); logoutButton.Image = RetriveImage("bimsync.Resources.power-off_small.png"); logoutButton.SetContextualHelp(help); SplitButtonData accountButton = new SplitButtonData("AccountButton", "Account"); _accountButton = bimsyncPanel.AddItem(accountButton) as SplitButton; _accountButton.AddPushButton(profileButton); _accountButton.AddPushButton(logoutButton); //Add upload to bimsync Button PushButtonData uploadButton = new PushButtonData("uploadButton", "Upload", DllPath, "bimsync.Commands.Upload"); uploadButton.ToolTip = "Upload your model to bimsync"; uploadButton.LargeImage = RetriveImage("bimsync.Resources.cloud-upload_large.png"); uploadButton.Image = RetriveImage("bimsync.Resources.cloud-upload_small.png"); uploadButton.SetContextualHelp(help); _uploadButton = bimsyncPanel.AddItem(uploadButton); return(bimsyncPanel); }
private void CreateRebarRibbon(UIControlledApplication uiApp, string tabName) { RibbonPanel panel = uiApp.CreateRibbonPanel(tabName, "Армирование"); SplitButton areaRebarSplitButton = panel .AddItem(new SplitButtonData("AreaRebarSplitButton", "Фоновое")) as SplitButton; areaRebarSplitButton.AddPushButton(CreateButtonData("RevitAreaReinforcement", "CommandCreateAreaRebar")); areaRebarSplitButton.AddPushButton(CreateButtonData("RevitAreaReinforcement", "CommandCreateFloorRebar")); areaRebarSplitButton.AddSeparator(); areaRebarSplitButton.AddPushButton(CreateButtonData("RevitAreaReinforcement", "CommandRestoreRebarArea")); panel.AddSeparator(); panel.AddItem(CreateButtonData("RebarVisibility", "Command")); PushButtonData dataAreaMark = CreateButtonData("AreaRebarMark", "CommandManualStart"); PushButtonData dataHideRebars = CreateButtonData("RebarPresentation", "Command"); PushButtonData dataExplodeRebars = CreateButtonData("ExplodeRebarSet", "CommandExplode"); panel.AddStackedItems(dataAreaMark, dataHideRebars, dataExplodeRebars); }
public Result OnStartup(UIControlledApplication application) { string text = "Hot Gear"; try { application.CreateRibbonTab(text); } catch { } RibbonPanel val = application.CreateRibbonPanel(text, "Element Merger"); ContextualHelp contextualHelp = new ContextualHelp(2, "https://hotgearproject.gitbooks.io/hotgear-project/content/element_merger.html"); SplitButtonData val2 = new SplitButtonData("HotGear", "HotGear"); SplitButton val3 = val.AddItem(val2) as SplitButton; PushButton val4 = val3.AddPushButton(new PushButtonData("JoinAll", "Join All", HotGearPackage.AddInPath, "JoinAll")); val4.set_ToolTip("Join All Selected Category in Project."); val4.set_LargeImage(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.JoinAll.png")); val4.set_Image(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.JoinAll_s.png")); val4.SetContextualHelp(contextualHelp); val4 = val3.AddPushButton(new PushButtonData("JoinPush", "Join Selection", HotGearPackage.AddInPath, "JoinElement")); val4.set_ToolTip("Join Revit Current Selection Element."); val4.set_LargeImage(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Join.png")); val4.set_Image(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Join_s.png")); val4.SetContextualHelp(contextualHelp); val4 = val3.AddPushButton(new PushButtonData("UnjoinPush", "Unjoin Selection", HotGearPackage.AddInPath, "UnjoinElement")); val4.set_ToolTip("Unjoin Revit Current Selection Element."); val4.set_LargeImage(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Unjoin.png")); val4.set_Image(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Unjoin_s.png")); val4.SetContextualHelp(contextualHelp); val4 = val3.AddPushButton(new PushButtonData("SwitchPush", "Switch Join Order", HotGearPackage.AddInPath, "SwitchJoinOrder")); val4.set_ToolTip("Switch Join Order of Revit Current Selection Element."); val4.set_LargeImage(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Switch.png")); val4.set_Image(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Switch_s.png")); val4.SetContextualHelp(contextualHelp); val4 = val3.AddPushButton(new PushButtonData("CutPush", "Cut Selection", HotGearPackage.AddInPath, "CutElement")); val4.set_ToolTip("Cut Revit Current Selection Element."); val4.set_LargeImage(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Cut.png")); val4.set_Image(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Cut_s.png")); val4.SetContextualHelp(contextualHelp); val4 = val3.AddPushButton(new PushButtonData("UnCutPush", "UnCut Selection", HotGearPackage.AddInPath, "UnCutElement")); val4.set_ToolTip("UnCut Revit Current Selection Element."); val4.set_LargeImage(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.UnCut.png")); val4.set_Image(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.UnCut_s.png")); val4.SetContextualHelp(contextualHelp); val4 = val3.AddPushButton(new PushButtonData("About", "About", HotGearPackage.AddInPath, "About")); val4.set_ToolTip("About HotGear Project"); val4.set_LargeImage(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.gear32.png")); val4.set_Image(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.gear16.png")); val4.SetContextualHelp(contextualHelp); return(0); }
//private const string VERSION = "Version R2018 - Build 2018-04-06"; public Result OnStartup(UIControlledApplication application) { string startPath = Assembly.GetExecutingAssembly().Location.Substring(0, Assembly.GetExecutingAssembly().Location.LastIndexOf("\\") + 1); RibbonPanel ribbonPanel = application.CreateRibbonPanel("HBird"); PushButtonData pushButtonDataModelBuilder = new PushButtonData("pushButtonModelBuilder", "Model\nBuilder", startPath + "RevitModelBuilder.dll", "RevitModelBuilder.Command"); pushButtonDataModelBuilder.ToolTip = "Revit ModelBuilder tool for use with Hummingbird."; pushButtonDataModelBuilder.Image = new BitmapImage(new Uri(startPath + "Hummingbird16.png", UriKind.Absolute)); pushButtonDataModelBuilder.LargeImage = new BitmapImage(new Uri(startPath + "Hummingbird32.png", UriKind.Absolute)); PushButtonData pushButtonDataDocumentation = new PushButtonData("pushButtonDocumentation", "Documentation", startPath + "RevitDocumentation.dll", "RevitDocumentation.Command"); pushButtonDataDocumentation.ToolTip = "Documentation for Hummingbird."; SplitButtonData splitButtonData = new SplitButtonData("splitButton", "Split"); // Neither value is visible SplitButton splitButton = ribbonPanel.AddItem(splitButtonData) as SplitButton; splitButton.AddPushButton(pushButtonDataModelBuilder); splitButton.AddPushButton(pushButtonDataDocumentation); splitButton.IsSynchronizedWithCurrentItem = false; return(Result.Succeeded); }
private void CreateViewRibbon(UIControlledApplication uiApp, string tabName) { RibbonPanel panel = uiApp.CreateRibbonPanel(tabName, "Виды и листы"); PushButtonData pbdPrint = CreateButtonData("BatchPrintYay", "CommandBatchPrint"); panel.AddItem(pbdPrint); PushButtonData pbdColorize = CreateButtonData("RevitViewFilters", "CommandViewColoring"); panel.AddItem(pbdColorize); PushButtonData pbdWallHatch = CreateButtonData("RevitViewFilters", "CommandWallHatch"); PushButtonData pbdOverrides = CreateButtonData("RevitGraphicsOverride", "Command"); SplitButtonData sbdFilters = new SplitButtonData("SplitButtonViewFilters", "Фильтры графики"); IList <RibbonItem> filterItems = panel.AddStackedItems(pbdOverrides, pbdWallHatch, sbdFilters); SplitButton sbFilters = filterItems[2] as SplitButton; PushButtonData pbdCreateFilters = CreateButtonData("RevitViewFilters", "CommandCreate"); sbFilters.AddPushButton(pbdCreateFilters); PushButtonData pbdDeleteFilters = CreateButtonData("RevitViewFilters", "CommandBatchDelete"); sbFilters.AddPushButton(pbdDeleteFilters); PushButtonData pbdOpenSheets = CreateButtonData("OpenSheets", "Command"); PushButtonData pbdViewNumbers = CreateButtonData("ViewportNumbers", "CommandViewportNumbers"); PushButtonData pbdTemplates = CreateButtonData("ViewTemplateUtils", "CommandCopyTemplate"); panel.AddStackedItems(pbdOpenSheets, pbdViewNumbers, pbdTemplates); }
static void AddRibbonPanel(UIControlledApplication application) { RibbonPanel ribbon_panel_tools = application.CreateRibbonPanel("LinkedID"); string this_assembly_path = Assembly.GetExecutingAssembly().Location; PushButtonData selectBD = new PushButtonData("FindID", "Find IDs", this_assembly_path, "Linked_ID.Scripts.FindID"); selectBD.ToolTip = "Find IDs of Objects in Linked Model"; selectBD.LargeImage = new BitmapImage(new Uri("pack://application:,,,/Linked ID;component/Images/Link_Icon_Find.png")); PushButtonData findBD = new PushButtonData("FindbyID", "Find by IDs", this_assembly_path, "Linked_ID.Scripts.FindByID"); findBD.ToolTip = "Find Objects in a Linked Model by Their ID"; findBD.LargeImage = new BitmapImage(new Uri("pack://application:,,,/Linked ID;component/Images/Link_Icon_Search.png")); SplitButtonData splitButtonData = new SplitButtonData("LinkedID", "Linked ID"); splitButtonData.LargeImage = new BitmapImage(new Uri("pack://application:,,,/Linked ID;component/Images/Link_Icon_Main.png")); SplitButton splitButton = ribbon_panel_tools.AddItem(splitButtonData) as SplitButton; splitButton.AddPushButton(selectBD); splitButton.AddPushButton(findBD); }
public SplitButton CreateSplitButton(RibbonPanel targetPanel, IList <PushButtonData> targetPushButtons) { SplitButton currentSplitButton = null; if (targetPushButtons.Count > 0) { string targetName = targetPushButtons.FirstOrDefault().Name; currentSplitButton = targetPanel.AddItem(new SplitButtonData(targetName, targetName)) as SplitButton; foreach (PushButtonData currentPushButton in targetPushButtons) { currentSplitButton.AddPushButton(currentPushButton); } } return(currentSplitButton); }
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); }
private bool AddSplitButton(RibbonPanel rp) { try { SplitButtonData sbData = new SplitButtonData("splitButton01", "function select"); sbData.Image = RibbonUtil.GetBitmapImage(LARGEICON); sbData.LargeImage = RibbonUtil.GetBitmapImage(LARGEICON); SplitButton sb = rp.AddItem(sbData) as SplitButton; PushButtonData pbd; pbd = createButton("SplitBtn01", "Proper\nCascade", "OrganizeProperCascade", "Organize Revit Windows by Proper Cascade", SMALLICON, LARGEICON); sb.AddPushButton(pbd); pbd = createButton("SplitBtn02", "Window's\nCascade", "OrganizeWindowsCascade", "Organize Revit Windows by Windows Cascade", SMALLICON, LARGEICON); sb.AddPushButton(pbd); pbd = createButton("SplitBtn03", "Active on\nLeft Tiled", "OrganizeLeft", "Place the Active Window on the Left", SMALLICON, LARGEICON); sb.AddPushButton(pbd); pbd = createButton("SplitBtn04", "Active on\nTop Tiled", "OrganizeTop", "Place the Active Window on the Top", SMALLICON, LARGEICON); sb.AddPushButton(pbd); pbd = createButton("SplitBtn05", "Active on\nRight Tiled", "OrganizeRight", "Place the Active Window on the Right", SMALLICON, LARGEICON); sb.AddPushButton(pbd); pbd = createButton("SplitBtn06", "Active on\nBottom Tiled", "OrganizeBottom", "Place the Active Window on the Bottom", SMALLICON, LARGEICON); sb.AddPushButton(pbd); pbd = createButton("SplitBtn07", "Active to\nLeft Stacked", "OrganizeLeftOverlapped", "Place the Active Window on the Left\nand Stack Remaining Windows", SMALLICON, LARGEICON); sb.AddPushButton(pbd); } catch { return(false); } return(true); }
/// <summary> /// Add min 2 or max 3 buttons to a stacked button. /// </summary> private bool AddSplitButton(RibbonPanel panel, IList <PushButtonData> splitButtonsGroup, string splitButtonName, string splitButtonText) { try { SplitButtonData sb1 = new SplitButtonData(splitButtonName, splitButtonText); SplitButton sb = panel.AddItem(sb1) as SplitButton; foreach (PushButtonData item in splitButtonsGroup) { sb.AddPushButton(item); } return(true); } catch { return(false); } }
// private bool AddSplitButtonDelete(RibbonPanel ribbonPanel) // { // SplitButtonData sbData = new SplitButtonData("splitButton1", "Split"); // SplitButton sb = ribbonPanel.AddItem(sbData) as SplitButton; // // bool result; // // result = CreateSplitButton(sb, "DelRootExStore", // BTN_EX_STOR_DEL_ROOT, "Delete Ex Storage Root Entity"); // // result = CreateSplitButton(sb, "DelAppExStore", // BTN_EX_STOR_DEL_APP, "Delete Ex Storage App Entity"); // // // result = CreateSplitButton(sb, "DelSubExStor", // // BTN_EX_STOR_DEL_SUB, "Delete Ex Storage Sub-Entities"); // // return true; // } // private bool AddSplitButtonModify(RibbonPanel ribbonPanel) // { // SplitButtonData sbData = new SplitButtonData("splitButton3", "Split"); // SplitButton sb = ribbonPanel.AddItem(sbData) as SplitButton; // // bool result; // // result = CreateSplitButton(sb, "ModCellExData", // BTN_EX_STOR_MOD_CELLS, "Modify Cells Entity"); // // result = CreateSplitButton(sb, "ModAppExData", // BTN_EX_STOR_MOD_APP, "Modify App Entity"); // // // result = CreateSplitButton(sb, "DelSubExStor", // // BTN_EX_STOR_DEL_SUB, "Delete Ex Storage Sub-Entities"); // // return true; // } private bool CreateSplitButton(SplitButton sb, string identifier, string title, string tootTip) { PushButtonData pbd; pbd = CreateButton(identifier, title, "information16.png", "information16.png", Assembly.GetExecutingAssembly().Location, "AOTools." + identifier, tootTip); if (pbd == null) { CreateButtonFail(identifier); return(false); } sb.AddPushButton(pbd); return(true); }
public Result OnStartup(UIControlledApplication application) { string text = "Hot Gear"; try { application.CreateRibbonTab(text); } catch { } RibbonPanel val = application.CreateRibbonPanel(text, "Wall Join Controller"); ContextualHelp contextualHelp = new ContextualHelp(2, "https://hotgearproject.gitbooks.io/hotgear-project/content/"); SplitButtonData val2 = new SplitButtonData("HotGear", "HotGear"); SplitButton val3 = val.AddItem(val2) as SplitButton; PushButton val4 = val3.AddPushButton(new PushButtonData("SquareOff", "Join SquareOff", HotGearPackage.AddInPath, "WallJoin_SquareOff")); val4.set_ToolTip("Wall Join Type : SquareOff"); val4.set_LargeImage(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Square_off.png")); val4.set_Image(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Square_off_s.png")); val4.SetContextualHelp(contextualHelp); val4 = val3.AddPushButton(new PushButtonData("Butt", "Join Butt", HotGearPackage.AddInPath, "WallJoin_Butt")); val4.set_ToolTip("Wall Join Type : Butt"); val4.set_LargeImage(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Butt.png")); val4.set_Image(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Butt_s.png")); val4.SetContextualHelp(contextualHelp); val4 = val3.AddPushButton(new PushButtonData("Miter", "Join Miter", HotGearPackage.AddInPath, "WallJoin_Miter")); val4.set_ToolTip("Wall Join Type : Miter"); val4.set_LargeImage(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Miter.png")); val4.set_Image(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Miter_s.png")); val4.SetContextualHelp(contextualHelp); val4 = val3.AddPushButton(new PushButtonData("AllowJoin", "Join Allow", HotGearPackage.AddInPath, "WallJoin_Allow")); val4.set_ToolTip("Wall Join : Allow"); val4.set_LargeImage(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Allow.png")); val4.set_Image(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.Allow_s.png")); val4.SetContextualHelp(contextualHelp); val4 = val3.AddPushButton(new PushButtonData("DisallowJoin", "Join DisAllow", HotGearPackage.AddInPath, "WallJoin_Disallow")); val4.set_ToolTip("Wall Join : Disallow"); val4.set_LargeImage(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.DisAllow.png")); val4.set_Image(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.DisAllow_s.png")); val4.SetContextualHelp(contextualHelp); val4 = val3.AddPushButton(new PushButtonData("About", "About", HotGearPackage.AddInPath, "About")); val4.set_ToolTip("About HotGear Project"); val4.set_LargeImage(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.gear32.png")); val4.set_Image(HotGearPackage.RetriveImage("HotGearAllInOne.Resources.gear16.png")); val4.SetContextualHelp(contextualHelp); return(0); }
/// <summary> /// Implement this method to execute some tasks when Autodesk Revit starts. /// </summary> /// <param name="application">A handle to the application being started.</param> /// <returns> /// Indicates if the external application completes its work successfully. /// </returns> public Result OnStartup(UIControlledApplication application) { string dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string path = Path.Combine(dir, ExtensionsFile); List <ExtensionModuleData> modules = ExtensionXMLReader.ReadFile(path); RibbonPanel ribbonSamplePanel = application.CreateRibbonPanel("Extension SDK"); SplitButtonData splitButtonData = new SplitButtonData("ExtensionSDK", "SDK"); SplitButton splitButton = ribbonSamplePanel.AddItem(splitButtonData) as SplitButton; string imgPath = Path.Combine(dir, ExtensionsImage); foreach (ExtensionModuleData module in modules) { if (System.IO.File.Exists(module.Path)) { PushButton pushButton = splitButton.AddPushButton(new PushButtonData(module.Name, module.Description, module.Path, module.Namespace + ".DirectRevitAccess")); string imgModulePath = (File.Exists(module.Img)) ? module.Img : imgPath; pushButton.LargeImage = new BitmapImage(new Uri(imgModulePath)); } } return(Result.Succeeded); }
private void CreateModelingRibbon(UIControlledApplication uiApp, string tabName) { RibbonPanel panel = uiApp.CreateRibbonPanel(tabName, "Моделирование"); SplitButton splitHolesElev = panel .AddItem(new SplitButtonData("HolesElevSplitButton", "Отверстия")) as SplitButton; PushButtonData pbdElevations = CreateButtonData("RevitElementsElevation", "Command"); pbdElevations.Text = "Определить\nотметки"; splitHolesElev.AddPushButton(pbdElevations); splitHolesElev.AddSeparator(); PushButtonData pbdHolesSettings = CreateButtonData("RevitElementsElevation", "CommandConfig"); splitHolesElev.AddPushButton(pbdHolesSettings); PushButtonData pbdPropertiesCopy = CreateButtonData("PropertiesCopy", "CommandPropertiesCopy"); pbdPropertiesCopy.Text = "Супер-\nкисточка"; panel.AddItem(pbdPropertiesCopy); PushButtonData pbdGroupedAssembly = CreateButtonData("GroupedAssembly", "CommandSuperAssembly"); pbdGroupedAssembly.Text = "Сборка-\nгруппа"; panel.AddItem(pbdGroupedAssembly); //PushButtonData pbd = CreateButtonData("", ""); SplitButton splitJoin = panel .AddItem(new SplitButtonData("JoingeometrySplitButton", "Геометрия")) as SplitButton; PushButtonData pbdAutoJoin = CreateButtonData("AutoJoin", "CommandAutoJoin"); pbdAutoJoin.Text = "Авто\nсоединение"; splitJoin.AddPushButton(pbdAutoJoin); PushButtonData pbdJoinByOrder = CreateButtonData("AutoJoin", "CommandJoinByOrder"); pbdJoinByOrder.Text = "Задать\nприоритет"; splitJoin.AddPushButton(pbdJoinByOrder); PushButtonData pbdAutoUnjoin = CreateButtonData("AutoJoin", "CommandBatchUnjoin"); pbdAutoUnjoin.Text = "Авто\nразделение"; splitJoin.AddPushButton(pbdAutoUnjoin); PushButtonData pbdAutoCut = CreateButtonData("AutoJoin", "CommandAutoCut"); pbdAutoCut.Text = "Авто\nвырезание"; splitJoin.AddPushButton(pbdAutoCut); splitJoin.AddPushButton(CreateButtonData("AutoJoin", "CommandCreateCope")); PushButtonData pbdHost = CreateButtonData("PropertiesCopy", "CommandSelectHost"); SplitButtonData sbdPiles = new SplitButtonData("Piles", "Сваи"); IList <RibbonItem> stacked1 = panel.AddStackedItems(pbdHost, sbdPiles); SplitButton splitPiles = stacked1[1] as SplitButton; splitPiles.AddPushButton(CreateButtonData("PilesCoords", "PilesNumberingCommand")); splitPiles.AddPushButton(CreateButtonData("PilesCoords", "PileCutCommand")); splitPiles.AddPushButton(CreateButtonData("PilesCoords", "PilesElevationCommand")); splitPiles.AddPushButton(CreateButtonData("PilesCoords", "PilesCalculateRangeCommand")); splitPiles.AddSeparator(); splitPiles.AddPushButton(CreateButtonData("PilesCoords", "SettingsCommand")); }
/// <summary> /// This method is used to create RibbonSample panel, and add wall related command buttons to it: /// 1. contains a SplitButton for user to create Non-Structural or Structural Wall; /// 2. contains a StackedBotton which is consisted with one PushButton and two Comboboxes, /// PushButon is used to reset all the RibbonItem, Comboboxes are use to select Level and WallShape /// 3. contains a RadioButtonGroup for user to select WallType. /// 4. Adds a Slide-Out Panel to existing panel with following functionalities: /// 5. a text box is added to set mark for new wall, mark is a instance parameter for wall, /// Eg: if user set text as "wall", then Mark for each new wall will be "wall1", "wall2", "wall3".... /// 6. a StackedButton which consisted of a PushButton (delete all the walls) and a PulldownButton (move all the walls in X or Y direction) /// </summary> /// <param name="application">An object that is passed to the external application /// which contains the controlled application.</param> private void CreateRibbonSamplePanel(UIControlledApplication application) { // create a Ribbon panel which contains three stackable buttons and one single push button. string firstPanelName = "Ribbon Sample"; RibbonPanel ribbonSamplePanel = application.CreateRibbonPanel(firstPanelName); #region Create a SplitButton for user to create Non-Structural or Structural Wall SplitButtonData splitButtonData = new SplitButtonData("NewWallSplit", "Create Wall"); SplitButton splitButton = ribbonSamplePanel.AddItem(splitButtonData) as SplitButton; PushButton pushButton = splitButton.AddPushButton(new PushButtonData("WallPush", "Wall", AddInPath, "Revit.SDK.Samples.Ribbon.CS.CreateWall")); pushButton.LargeImage = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "CreateWall.png"), UriKind.Absolute)); pushButton.Image = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "CreateWall-S.png"), UriKind.Absolute)); pushButton.ToolTip = "Creates a partition wall in the building model."; pushButton.ToolTipImage = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "CreateWallTooltip.bmp"), UriKind.Absolute)); pushButton = splitButton.AddPushButton(new PushButtonData("StrWallPush", "Structure Wall", AddInPath, "Revit.SDK.Samples.Ribbon.CS.CreateStructureWall")); pushButton.LargeImage = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "StrcturalWall.png"), UriKind.Absolute)); pushButton.Image = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "StrcturalWall-S.png"), UriKind.Absolute)); #endregion ribbonSamplePanel.AddSeparator(); #region Add a StackedButton which is consisted of one PushButton and two Comboboxes PushButtonData pushButtonData = new PushButtonData("Reset", "Reset", AddInPath, "Revit.SDK.Samples.Ribbon.CS.ResetSetting"); ComboBoxData comboBoxDataLevel = new ComboBoxData("LevelsSelector"); ComboBoxData comboBoxDataShape = new ComboBoxData("WallShapeComboBox"); IList <RibbonItem> ribbonItemsStacked = ribbonSamplePanel.AddStackedItems(pushButtonData, comboBoxDataLevel, comboBoxDataShape); ((PushButton)(ribbonItemsStacked[0])).Image = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "Reset.png"), UriKind.Absolute)); //Add options to WallShapeComboBox Autodesk.Revit.UI.ComboBox comboboxWallShape = (Autodesk.Revit.UI.ComboBox)(ribbonItemsStacked[2]); ComboBoxMemberData comboBoxMemberData = new ComboBoxMemberData("RectangleWall", "RectangleWall"); ComboBoxMember comboboxMember = comboboxWallShape.AddItem(comboBoxMemberData); comboboxMember.Image = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "RectangleWall.png"), UriKind.Absolute)); comboBoxMemberData = new ComboBoxMemberData("CircleWall", "CircleWall"); comboboxMember = comboboxWallShape.AddItem(comboBoxMemberData); comboboxMember.Image = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "CircleWall.png"), UriKind.Absolute)); comboBoxMemberData = new ComboBoxMemberData("TriangleWall", "TriangleWall"); comboboxMember = comboboxWallShape.AddItem(comboBoxMemberData); comboboxMember.Image = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "TriangleWall.png"), UriKind.Absolute)); comboBoxMemberData = new ComboBoxMemberData("SquareWall", "SquareWall"); comboboxMember = comboboxWallShape.AddItem(comboBoxMemberData); comboboxMember.Image = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "SquareWall.png"), UriKind.Absolute)); #endregion ribbonSamplePanel.AddSeparator(); #region Add a RadioButtonGroup for user to select WallType RadioButtonGroupData radioButtonGroupData = new RadioButtonGroupData("WallTypeSelector"); RadioButtonGroup radioButtonGroup = (RadioButtonGroup)(ribbonSamplePanel.AddItem(radioButtonGroupData)); ToggleButton toggleButton = radioButtonGroup.AddItem(new ToggleButtonData("Generic8", "Generic - 8\"", AddInPath, "Revit.SDK.Samples.Ribbon.CS.Dummy")); toggleButton.LargeImage = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "Generic8.png"), UriKind.Absolute)); toggleButton.Image = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "Generic8-S.png"), UriKind.Absolute)); toggleButton = radioButtonGroup.AddItem(new ToggleButtonData("ExteriorBrick", "Exterior - Brick", AddInPath, "Revit.SDK.Samples.Ribbon.CS.Dummy")); toggleButton.LargeImage = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "ExteriorBrick.png"), UriKind.Absolute)); toggleButton.Image = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "ExteriorBrick-S.png"), UriKind.Absolute)); #endregion //slide-out panel: ribbonSamplePanel.AddSlideOut(); #region add a Text box to set the mark for new wall TextBoxData testBoxData = new TextBoxData("WallMark"); Autodesk.Revit.UI.TextBox textBox = (Autodesk.Revit.UI.TextBox)(ribbonSamplePanel.AddItem(testBoxData)); textBox.Value = "new wall"; //default wall mark textBox.Image = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "WallMark.png"), UriKind.Absolute)); textBox.ToolTip = "Set the mark for new wall"; textBox.ShowImageAsButton = true; textBox.EnterPressed += new EventHandler <Autodesk.Revit.UI.Events.TextBoxEnterPressedEventArgs>(SetTextBoxValue); #endregion ribbonSamplePanel.AddSeparator(); #region Create a StackedButton which consisted of a PushButton (delete all the walls) and a PulldownButton (move all the walls in X or Y direction) PushButtonData deleteWallsButtonData = new PushButtonData("deleteWalls", "Delete Walls", AddInPath, "Revit.SDK.Samples.Ribbon.CS.DeleteWalls"); deleteWallsButtonData.ToolTip = "Delete all the walls created by the Create Wall tool."; deleteWallsButtonData.Image = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "DeleteWalls.png"), UriKind.Absolute)); PulldownButtonData moveWallsButtonData = new PulldownButtonData("moveWalls", "Move Walls"); moveWallsButtonData.ToolTip = "Move all the walls in X or Y direction"; moveWallsButtonData.Image = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "MoveWalls.png"), UriKind.Absolute)); // create stackable buttons IList <RibbonItem> ribbonItems = ribbonSamplePanel.AddStackedItems(deleteWallsButtonData, moveWallsButtonData); // add two push buttons as sub-items of the moveWalls PulldownButton. PulldownButton moveWallItem = ribbonItems[1] as PulldownButton; PushButton moveX = moveWallItem.AddPushButton(new PushButtonData("XDirection", "X Direction", AddInPath, "Revit.SDK.Samples.Ribbon.CS.XMoveWalls")); moveX.ToolTip = "move all walls 10 feet in X direction."; moveX.LargeImage = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "MoveWallsXLarge.png"), UriKind.Absolute)); PushButton moveY = moveWallItem.AddPushButton(new PushButtonData("YDirection", "Y Direction", AddInPath, "Revit.SDK.Samples.Ribbon.CS.YMoveWalls")); moveY.ToolTip = "move all walls 10 feet in Y direction."; moveY.LargeImage = new BitmapImage(new Uri(Path.Combine(ButtonIconsFolder, "MoveWallsYLarge.png"), UriKind.Absolute)); #endregion ribbonSamplePanel.AddSeparator(); application.ControlledApplication.DocumentCreated += new EventHandler <Autodesk.Revit.DB.Events.DocumentCreatedEventArgs>(DocumentCreated); }
/// <summary> /// Create a custom ribbon panel and populate /// it with our commands, saving the resulting /// ribbon items for later access. /// </summary> static void AddRibbonPanel( UIControlledApplication a) { string[] tooltip = new string[] { "Upload selected sheets and categories to cloud.", "Upload selected rooms to cloud.", "Upload all rooms to cloud.", "Update furniture from the last cloud edit.", "Subscribe to or unsubscribe from updates.", "About " + Caption + ": ..." }; string[] text = new string[] { "Upload Sheets", "Upload Rooms", "Upload All Rooms", "Update Furniture", "Subscribe", "About..." }; string[] classNameStem = new string[] { "UploadSheets", "UploadRooms", "UploadAllRooms", "Update", "Subscribe", "About" }; string[] iconName = new string[] { "2Up", "1Up", "2Up", "1Down", "ZigZagRed", "Question" }; int n = classNameStem.Length; Debug.Assert(text.Length == n, "expected equal number of text and class name entries"); _buttons = new RibbonItem[n]; RibbonPanel panel = a.CreateRibbonPanel(Caption); SplitButtonData splitBtnData = new SplitButtonData(Caption, Caption); SplitButton splitBtn = panel.AddItem( splitBtnData) as SplitButton; Assembly asm = typeof(App).Assembly; for (int i = 0; i < n; ++i) { PushButtonData d = new PushButtonData( classNameStem[i], text[i], _path, _namespace + "." + _cmd_prefix + classNameStem[i]); d.ToolTip = tooltip[i]; d.Image = GetBitmapImage(asm, IconResourcePath(iconName[i], "16")); d.LargeImage = GetBitmapImage(asm, IconResourcePath(iconName[i], "32")); d.ToolTipImage = GetBitmapImage(asm, IconResourcePath(iconName[i], "")); _buttons[i] = splitBtn.AddPushButton(d); } }