Пример #1
0
        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();
        }
Пример #2
0
        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);
        }
Пример #3
0
        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();
        }
Пример #4
0
        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"));
        }
Пример #5
0
        /// <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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        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);
        }
Пример #10
0
        }         // 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);
        }
Пример #11
0
        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);
        }
Пример #12
0
        /// <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
            {
            }
        }
Пример #13
0
        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);
        }
Пример #14
0
        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);
        }
Пример #15
0
        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);
        }
Пример #16
0
        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);
        }
Пример #18
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);
        }
Пример #19
0
        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);
        }
Пример #20
0
        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);
        }
Пример #21
0
        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);
        }
Пример #22
0
        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);
        }
Пример #23
0
        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);
        }
Пример #24
0
        /// <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);
            }
        }
Пример #25
0
        // 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);
        }
Пример #26
0
        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);
        }
Пример #27
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);
        }
Пример #28
0
        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"));
        }
Пример #29
0
        /// <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);
        }
Пример #30
0
        /// <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);
            }
        }