示例#1
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);
        }
示例#2
0
        public Result OnStartup(UIControlledApplication application)
        {
            try
            {
                // Get the revit version
                Version = Convert.ToInt32(application.ControlledApplication.VersionNumber);

                // Get the revit handle
                RevitHandle = IntPtr.Zero;
                if (Version < 2019)
                {
                    RevitHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
                }
                else
                {
                    RevitHandle = application.GetType().GetProperty("MainWindowHandle") != null
                        ? (IntPtr)application.GetType().GetProperty("MainWindowHandle")?.GetValue(application)
                        : IntPtr.Zero;
                }

                application.ControlledApplication.DocumentOpened += DocumentOpened;

                ScheduleDeleteUpdater excelSchedUpdater = new ScheduleDeleteUpdater(application.ActiveAddInId);
                UpdaterRegistry.RegisterUpdater(excelSchedUpdater, true);
                //ElementCategoryFilter ecf = new ElementCategoryFilter(BuiltInCategory.OST_Views);
                ElementClassFilter ecf = new ElementClassFilter(typeof(ViewSchedule), false);
                UpdaterRegistry.AddTrigger(excelSchedUpdater.GetUpdaterId(), ecf, Element.GetChangeTypeElementDeletion());

                // create the buttons
                string path = typeof(UpdateExcelApp).Assembly.Location;

                // pushbutton for the import command
                PushButtonData excelImportPushButtonData = new PushButtonData(
                    "Import Excel As Schedule", "Import Excel", path, typeof(ImportExcelCmd).FullName)
                {
                    LargeImage = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(Properties.Resources.ExcelScheduleIcon.GetHbitmap(), IntPtr.Zero, System.Windows.Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()),
                    Image      = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(Properties.Resources.ExcelScheduleIcon_16x16.GetHbitmap(), IntPtr.Zero, System.Windows.Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()),
                    ToolTip    = "Import data from an Excel worksheet into Revit as a schedule.",
                };


                // Pushbutton for the settings command
                PushButtonData settingsPushButtonData = new PushButtonData(
                    "Import Lineweights", "Settings", path, typeof(SettingsCmd).FullName)
                {
                    ToolTip = "Set the line styles to use for different lineweight settings.",
                };

                // PushButtonData for the Manage Links window
                PushButtonData manageLinksPushButtonData = new PushButtonData(
                    "Manage Links", "Manage Links", path, typeof(ManageLinksCmd).FullName)
                {
                    ToolTip = "Manage linked excel files",
                };

                SplitButtonData excelSBD = new SplitButtonData("Import Excel", "Import\nExcel");

                // Set default config values
                string helpPath  = Path.Combine(Path.GetDirectoryName(typeof(UpdateExcelApp).Assembly.Location), "help\\ImportExcel.pdf");
                string tabName   = "Add-Ins";
                string panelName = "Views";
                if (RevitCommon.FileUtils.GetPluginSettings(typeof(UpdateExcelApp).Assembly.GetName().Name, out Dictionary <string, string> settings))
                {
                    // Settings retrieved, lets try to use them.
                    if (settings.ContainsKey("help-path") && !string.IsNullOrWhiteSpace(settings["help-path"]))
                    {
                        // Check to see if it's relative path
                        string hp = Path.Combine(Path.GetDirectoryName(typeof(UpdateExcelApp).Assembly.Location), settings["help-path"]);
                        if (File.Exists(hp))
                        {
                            helpPath = hp;
                        }
                        else
                        {
                            helpPath = settings["help-path"];
                        }
                    }
                    if (settings.ContainsKey("tab-name") && !string.IsNullOrWhiteSpace(settings["tab-name"]))
                    {
                        tabName = settings["tab-name"];
                    }
                    if (settings.ContainsKey("panel-name") && !string.IsNullOrWhiteSpace(settings["panel-name"]))
                    {
                        panelName = settings["panel-name"];
                    }
                }

                // Create the SplitButton.
                SplitButton excelSB = RevitCommon.UI.AddToRibbon(application, tabName, panelName, excelSBD);

                // Setup the help
                ContextualHelp help = null;
                if (File.Exists(helpPath))
                {
                    help = new ContextualHelp(ContextualHelpType.ChmFile, helpPath);
                }
                else if (Uri.TryCreate(helpPath, UriKind.Absolute, out Uri uriResult) && (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps))
                {
                    help = new ContextualHelp(ContextualHelpType.Url, helpPath);
                }
                if (help != null)
                {
                    excelImportPushButtonData.SetContextualHelp(help);
                    manageLinksPushButtonData.SetContextualHelp(help);
                    settingsPushButtonData.SetContextualHelp(help);
                    excelSBD.SetContextualHelp(help);
                    excelSB.SetContextualHelp(help);
                }

                PushButton importPB  = excelSB.AddPushButton(excelImportPushButtonData) as PushButton;
                PushButton managePB  = excelSB.AddPushButton(manageLinksPushButtonData) as PushButton;
                PushButton settingPB = excelSB.AddPushButton(settingsPushButtonData) as PushButton;
                excelSB.IsSynchronizedWithCurrentItem = false;

                return(Result.Succeeded);
            }
            catch
            {
                return(Result.Failed);
            }
        }
示例#3
0
        // define a method that will create our tab and button
        static void AddRibbonPanel(UIControlledApplication application)
        {
            // Проверяем не истёк ли срок действия программы
            int deltaDateDaysInt1 = Security();

            if (deltaDateDaysInt1 < 1)
            {
                return; // Выходим из программы. То есть риббон не создастся
            }

            // Create a custom ribbon tab
            String tabName = "ARMOCAD";

            application.CreateRibbonTab(tabName);

            // Add a new ribbon panel
            RibbonPanel ribbonPanel = application.CreateRibbonPanel(tabName, "Программки общего назначения");

            RibbonPanel electricRibbonPanel = application.CreateRibbonPanel(tabName, "Электрические системы");

            RibbonPanel agpzTagRibbonPanel = application.CreateRibbonPanel(tabName, "AGPZ TAG");

            RibbonPanel ribbonPanel2 = application.CreateRibbonPanel(tabName, "Механические системы");

            RibbonPanel ribbonPanel3 = application.CreateRibbonPanel(tabName, "Слаботочные системы");

            // Get dll assembly path
            string thisAssemblyPath = Assembly.GetExecutingAssembly().Location;


            #region Common Buttons
            // create push button
            PushButtonData b1Data = new PushButtonData(
                "cmdDetailLinesLength",
                "DL" + System.Environment.NewLine + "length",
                thisAssemblyPath,
                "DetailLinesLength.DetailLinesLengthClass");

            b1Data.SetContextualHelp(helpButtonsDictionary["cmdDetailLinesLength"]);
            b1Data.Image      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/DetailLinesLength_icon.png"));
            b1Data.LargeImage = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/DetailLinesLength_icon.png"));
            b1Data.ToolTip    = "Нажмите чтобы измерить длину линий детализации";

            // create push button
            PushButtonData b2Data = new PushButtonData(
                "cmdALength",
                "MEP" + System.Environment.NewLine + "length",
                thisAssemblyPath,
                "ALength.OverLength");

            b2Data.LargeImage = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/measureIcon.png"));
            b2Data.LargeImage = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/measureIcon.png"));
            b2Data.ToolTip    = "Нажмите чтобы измерить длину инженерных коммуникаций и линий";


            // Создаём выпадающие кнопки
            SplitButtonData sbdata1 = new SplitButtonData("Ara", "MEP Length");
            SplitButton     sb1     = ribbonPanel.AddItem(sbdata1) as SplitButton;
            sb1.AddPushButton(b2Data);
            sb1.AddPushButton(b1Data);

            // create push button for RotateAll
            PushButtonData b3Data = new PushButtonData(
                "cmdRotateAll",
                "Rotate" + System.Environment.NewLine + "Elements",
                thisAssemblyPath,
                "RotateAll.RotateAllClass");

            PushButton pb3 = ribbonPanel.AddItem(b3Data) as PushButton;
            pb3.ToolTip = "Select Elements to rotate them";
            BitmapImage pb3Image = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/rotateIcon.png"));
            pb3.LargeImage = pb3Image;

            // create push button
            PushButtonData b4Data = new PushButtonData(
                "cmdScheduleToExcel",
                "Export" + System.Environment.NewLine + "Schedule",
                thisAssemblyPath,
                "ScheduleToExcel.ScheduleToExcelClass");

            PushButton pb4 = ribbonPanel.AddItem(b4Data) as PushButton;
            pb4.ToolTip = "Select Schedules to export them";
            BitmapImage pb4Image = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/excelIcon.png"));
            pb4.LargeImage = pb4Image;


            // create push button
            PushButtonData b5Data = new PushButtonData(
                "cmdCopySheet",
                "Copy" + System.Environment.NewLine + "sheet",
                thisAssemblyPath,
                "CopySheet.CopySheetClass");

            PushButton pb5 = ribbonPanel.AddItem(b5Data) as PushButton;
            pb5.ToolTip = "Copy Sheet";
            BitmapImage pb5Image = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/copySheetIcon.png"));
            pb5.LargeImage = pb5Image;


            // create push button
            PushButtonData b6Data = new PushButtonData(
                "cmdSimilarParamsClass",
                "Similar" + System.Environment.NewLine + "Parameters",
                thisAssemblyPath,
                "SimilarParams.SimilarParamsClass");

            PushButton pb6 = ribbonPanel.AddItem(b6Data) as PushButton;
            pb6.ToolTip    = "Запись одинкаовых параметров в разные семейства";
            pb6.Image      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/SimilarParams_icon.png"));
            pb6.LargeImage = pb6.Image;
            pb6.SetContextualHelp(helpButtonsDictionary["cmdSimilarParamsClass"]);


            // create push button
            PushButtonData b7Data = new PushButtonData(
                "cmdParamtextreplaceClass",
                "Param" + System.Environment.NewLine + "text replace",
                thisAssemblyPath,
                "Paramtextreplace.ParamtextreplaceClass");

            PushButton pb7 = ribbonPanel.AddItem(b7Data) as PushButton;
            pb7.ToolTip    = "Поиск и замена выбранных параметров в выбранных семействах";
            pb7.Image      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/Paramtextreplace_icon.png"));
            pb7.LargeImage = pb7.Image;
            pb7.SetContextualHelp(helpButtonsDictionary["cmdParamtextreplaceClass"]);

            // create push button
            PushButtonData b9Data = new PushButtonData(
                "cmdOpeningElevation",
                "Opening" + System.Environment.NewLine + "Elevation",
                thisAssemblyPath,
                "OpeningElevation.OpeningElevationClass");

            PushButton pb9 = ribbonPanel.AddItem(b9Data) as PushButton;
            pb9.ToolTip    = "Нажмите чтобы обработать отверстия Cut Opening";
            pb9.Image      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/openElevIcon.png"));
            pb9.LargeImage = pb9.Image;
            pb9.SetContextualHelp(helpButtonsDictionary["cmdOpeningElevation"]);

            // create push button
            PushButtonData b11Data = new PushButtonData(
                "cmdSectionByElement",
                "Section" + System.Environment.NewLine + "by Element",
                thisAssemblyPath,
                "SectionByElement.SectionByElementClass");

            PushButton pb11 = ribbonPanel.AddItem(b11Data) as PushButton;
            pb11.ToolTip    = "Выберите элемент(ы) и нажмите, чтобы создать разрез(ы) вдоль них";
            pb11.Image      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/section_icon.png"));
            pb11.LargeImage = pb11.Image;

            // create push button
            PushButtonData b20Data = new PushButtonData(
                "cmdFilterExCommand",
                "Filter" + System.Environment.NewLine + "by Params",
                thisAssemblyPath,
                "ARMOCAD.FilterExCommand");

            PushButton pb20 = ribbonPanel.AddItem(b20Data) as PushButton;
            pb20.ToolTip    = "Выбирает элементы в модели по условиям";
            pb20.Image      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/filterIcon.png"));
            pb20.LargeImage = pb20.Image;

            // create push button
            PushButtonData b25Data = new PushButtonData(
                "cmdCreateMepSpaces",
                "Пространства" + System.Environment.NewLine + "по АР",
                thisAssemblyPath,
                "ARMOCAD.CreateMepSpaces");
            b25Data.SetContextualHelp(helpButtonsDictionary["cmdCreateMepSpaces"]);

            PushButton pb25 = ribbonPanel.AddItem(b25Data) as PushButton;
            pb25.ToolTip    = "Ставит пространства по модели АР";
            pb25.Image      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/spaceIcon.png"));
            pb25.LargeImage = pb25.Image;



            #endregion Common Buttons

            #region Electric Buttons

            // create push button
            PushButtonData elB1Data = new PushButtonData(
                "cmdSpreadEvenly",
                "Spread" + System.Environment.NewLine + "Evenly",
                thisAssemblyPath,
                "SpreadEvenly.SpreadEvenlyClass");

            PushButton elPB1 = electricRibbonPanel.AddItem(elB1Data) as PushButton;
            elPB1.ToolTip    = "Нажмите чтобы расставить семейства";
            elPB1.Image      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/SpreadEvenly_icon.png"));
            elPB1.LargeImage = elPB1.Image;
            elPB1.SetContextualHelp(helpButtonsDictionary["cmdSpreadEvenly"]);

            //DenisButtons
            // create push button
            PushButtonData elB2Data = new PushButtonData(
                "cmdConPoints",
                "Размещение\n ТП",
                thisAssemblyPath,
                "ARMOCAD.ConPoint");

            elB2Data.SetContextualHelp(helpButtonsDictionary["cmdConPoints"]);
            elB2Data.LargeImage      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/tpointsIcon.png"));
            elB2Data.ToolTip         = "Размещение точек подключения из связи";
            elB2Data.ToolTipImage    = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/Screenshot_1.png"));
            elB2Data.LongDescription =
                "Автоматическая расстановка электровыводов для подключения оборудования из связанных моделей с загрузкой технических параметров \n";
            // create push button
            PushButtonData elB3Data = new PushButtonData(
                "cmdConPointLocation",
                "Проверка\n ТП",
                thisAssemblyPath,
                "ARMOCAD.ConPointLocation");

            elB3Data.SetContextualHelp(helpButtonsDictionary["cmdConPointLocation"]);
            elB3Data.LargeImage      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/checkIcon.png"));
            elB3Data.ToolTip         = "Проверка размещенных точек подключения";
            elB3Data.LongDescription = "Проверка размещенных электровыводов оборудования из связанных моделей на количество и правильность размещения \n";
            elB3Data.ToolTipImage    = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/Screenshot_2.png"));
            // Создаём выпадающие кнопки
            SplitButtonData sbElData1 = new SplitButtonData("ConPoints", "ConPointLocation");
            SplitButton     sbEl1     = electricRibbonPanel.AddItem(sbElData1) as SplitButton;
            sbEl1.AddPushButton(elB2Data);
            sbEl1.AddPushButton(elB3Data);
            //sbEl1.CurrentButton.Name



            #endregion Electric Buttons

            #region AGPZ Tag Buttons

            // create push button
            PushButtonData tagB1Data = new PushButtonData(
                "cmdTagOVDucts",
                "TAG\n Комплект.",
                thisAssemblyPath,
                "ARMOCAD.TagOVDucts");

            tagB1Data.LargeImage = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/tagIcon.png"));
            tagB1Data.ToolTip    = "Тагирование воздуховодов и соединительных деталей";

            // create push button
            PushButtonData tagB2Data = new PushButtonData(
                "cmdTagOVEquipPhase1",
                "TAG Ф1\n Оборуд.",
                thisAssemblyPath,
                "ARMOCAD.TagOVEquipPhase1");

            tagB2Data.ToolTip    = "Тагирование (Фаза 1) оборудования, арматуры воздуховодов, воздухораспределителей, арматуры труб";
            tagB2Data.LargeImage = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/tagIcon.png"));

            // create push button
            PushButtonData tagB3Data = new PushButtonData(
                "cmdTagOVEquip",
                "TAG Ф2+\n Оборуд.",
                thisAssemblyPath,
                "ARMOCAD.TagOVEquip");

            tagB3Data.ToolTip    = "Тагирование (Фаза 2 и сл.) оборудования, арматуры воздуховодов, воздухораспределителей, арматуры труб";
            tagB3Data.LargeImage = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/tagIcon.png"));

            // create push button
            PushButtonData tagB4Data = new PushButtonData(
                "cmdTagOVEquipReplace",
                "TAG Ф2+\n Замена",
                thisAssemblyPath,
                "ARMOCAD.TagOVEquipReplace");

            tagB4Data.ToolTip    = "Тагирование (Фаза 2 и сл.) заменяет часть тэга на код системы 0001А => 9901А, не создавая новых тэгов";
            tagB4Data.LargeImage = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/tagIcon.png"));

            // Создаём выпадающие кнопки
            SplitButtonData sbTagData1 = new SplitButtonData("AGPZ", "TAGButtons");
            SplitButton     sbTag1     = agpzTagRibbonPanel.AddItem(sbTagData1) as SplitButton;
            sbTag1.AddPushButton(tagB1Data);
            sbTag1.AddPushButton(tagB2Data);
            sbTag1.AddPushButton(tagB3Data);
            sbTag1.AddPushButton(tagB4Data);


            // create push button
            PushButtonData tagB5Data = new PushButtonData(
                "cmdTagsFromSheetsEx",
                "TAG" + System.Environment.NewLine + "на листах",
                thisAssemblyPath,
                "ARMOCAD.TagsFromSheetsEx");

            PushButton tagPB5 = agpzTagRibbonPanel.AddItem(tagB5Data) as PushButton;
            tagPB5.ToolTip    = "Собирает информацию о тэгах и листах, на которых они расположены";
            tagPB5.Image      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/tagIconGreen.png"));
            tagPB5.LargeImage = tagPB5.Image;

            // create push button
            PushButtonData tagB6Data = new PushButtonData(
                "cmdTBCommand",
                "TAG\n bridge",
                thisAssemblyPath,
                "ARMOCAD.TBCommand");

            PushButton tagPB6 = agpzTagRibbonPanel.AddItem(tagB6Data) as PushButton;
            tagPB6.ToolTip    = "Сцепляет элементы модели и схем";
            tagPB6.Image      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/tagTransferIcon.png"));
            tagPB6.LargeImage = tagPB6.Image;


            #endregion AGPZ Tag Buttons

            #region MEP Buttons
            // create push button
            PushButtonData b8Data = new PushButtonData(
                "cmdSwapDuct",
                "Swap" + System.Environment.NewLine + "Duct",
                thisAssemblyPath,
                "SwapDuct.SwapDuctClass");

            PushButton pb8 = ribbonPanel2.AddItem(b8Data) as PushButton;
            pb8.ToolTip    = "Нажмите чтобы развернуть воздуховод";
            pb8.Image      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/swapIcon.png"));
            pb8.LargeImage = pb8.Image;

            // create push button
            PushButtonData b12Data = new PushButtonData(
                "cmdThiDuct",
                "Толщина" + System.Environment.NewLine + "воздуховодов",
                thisAssemblyPath,
                "ThiDuct.ThiDuctClass");

            PushButton pb12 = ribbonPanel2.AddItem(b12Data) as PushButton;
            pb12.ToolTip    = "Толщина металла воздуховодов и соединительных деталей";
            pb12.Image      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/thicknessIcon.png"));
            pb12.LargeImage = pb12.Image;

            // create push button
            PushButtonData b16Data = new PushButtonData(
                "cmdLengthOfTransition",
                "Длина" + System.Environment.NewLine + "перехода",
                thisAssemblyPath,
                "LengthOfTransition.LengthOfTransitionClass");

            PushButton pb16 = ribbonPanel2.AddItem(b16Data) as PushButton;
            pb16.ToolTip    = "Редактирует длину перехода по ВСН 353-86 Таблица 7";
            pb16.Image      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/transIcon.png"));
            pb16.LargeImage = pb16.Image;


            // create push button
            PushButtonData b17Data = new PushButtonData(
                "cmdMEPSystemScheme",
                "Аксон." + System.Environment.NewLine + "схемы",
                thisAssemblyPath,
                "MEPSystemScheme.MEPSystemSchemeClass");

            PushButton pb17 = ribbonPanel2.AddItem(b17Data) as PushButton;
            pb17.ToolTip    = "Создает 3D виды по механическим системам";
            pb17.Image      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/3dIcon.png"));
            pb17.LargeImage = pb17.Image;

            // create push button
            PushButtonData b19Data = new PushButtonData(
                "cmdChangeUnitExCommand",
                "AGPZ" + System.Environment.NewLine + "Copy Model",
                thisAssemblyPath,
                "ARMOCAD.ChangeUnitExCommand");

            PushButton pb19 = ribbonPanel2.AddItem(b19Data) as PushButton;
            pb19.ToolTip    = "Заменяет параметры для новой модели AGPZ";
            pb19.Image      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/copyIcon.png"));
            pb19.LargeImage = pb19.Image;

            #endregion MEP Buttons

            #region SS Buttons

            // create push button
            PushButtonData b21Data = new PushButtonData(
                "cmdSKSSocketsToShelfsExCommand",
                "Розетки по Шкафам",
                thisAssemblyPath,
                "ARMOCAD.SKSSocketsToShelfsExCommand");
            b21Data.ToolTip = "Заполняет в розетках параметр \"Розетка - Шкаф\"";
            b21Data.Image   = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/socketIcon.png"));

            // create push button
            PushButtonData b22Data = new PushButtonData(
                "cmdSKSFasadExCommand",
                "Схемы и Фасады",
                thisAssemblyPath,
                "ARMOCAD.SKSFasadExCommand");
            b22Data.ToolTip = "Маркирует розетки и создает чертежные виды со схемами и фасадами";
            b22Data.Image   = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/schemeIcon.png"));

            List <RibbonItem> ssButtons1 = new List <RibbonItem>();
            ssButtons1.AddRange(ribbonPanel3.AddStackedItems(b21Data, b22Data));

            // create push button
            PushButtonData b23Data = new PushButtonData(
                "cmdSKUDControlPlacementEx",
                "Точки Доступа",
                thisAssemblyPath,
                "ARMOCAD.SKUDControlPlacementEx");
            b23Data.ToolTip = "Размещение точек доступа по дверям из связанной модели АР";
            b23Data.Image   = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/arrowIcon.png"));
            b23Data.SetContextualHelp(helpButtonsDictionary["cmdSKUDControlPlacementEx"]);

            // create push button
            PushButtonData b24Data = new PushButtonData(
                "cmdSKUDPlaceEquipmentEx",
                "ТД -> Оборудование",
                thisAssemblyPath,
                "ARMOCAD.SKUDPlaceEquipmentEx");
            b24Data.ToolTip = "Размещение оборудования СКУД по точкам доступа";
            b24Data.Image   = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/equipIcon.png"));
            b24Data.SetContextualHelp(helpButtonsDictionary["cmdSKUDControlPlacementEx"]);

            List <RibbonItem> skudButtons1 = new List <RibbonItem>();
            skudButtons1.AddRange(ribbonPanel3.AddStackedItems(b23Data, b24Data));

            //========================= DenisButtons
            // create push button
            PushButtonData b26Data = new PushButtonData("cmdLinkEquipmentSS", "Размещение\n оборудования", thisAssemblyPath, "ARMOCAD.LinkEquipmentSS");

            b26Data.SetContextualHelp(helpButtonsDictionary["cmdLinkEquipmentSS"]);
            b26Data.LargeImage      = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/valveIcon.png"));
            b26Data.ToolTip         = "Размещение оборудования из связной модели";
            b26Data.LongDescription = "Автоматическая расстановка электровыводов для подключения оборудования из связанных моделей с загрузкой технических параметров \n";
            b26Data.ToolTipImage    = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/Screenshot_3.png"));
            // create push button
            PushButtonData b27Data = new PushButtonData("cmdLinkEquipmentLoc", "Проверка\n оборудования", thisAssemblyPath, "ARMOCAD.LinkEquipmentLoc");

            b27Data.SetContextualHelp(helpButtonsDictionary["cmdLinkEquipmentLoc"]);
            b27Data.LargeImage   = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/checkIcon.png"));
            b27Data.ToolTip      = "Проверка оборудования размещенного из связной модели \n";
            b27Data.ToolTipImage = new BitmapImage(new Uri("pack://application:,,,/ARMOCAD;component/Resources/Screenshot_2.png"));
            // Создаём выпадающие кнопки
            SplitButtonData sbdata2 = new SplitButtonData("LinkEquipmentSS", "SS LinkEquipmentSS");
            SplitButton     sb2     = ribbonPanel3.AddItem(sbdata2) as SplitButton;
            sb2.AddPushButton(b26Data);
            sb2.AddPushButton(b27Data);
            PushButton     curbutt = sb2.CurrentButton;
            ContextualHelp h       = curbutt.GetContextualHelp();
            sb2.SetContextualHelp(h);



            #endregion SS Buttons
        }
示例#4
0
        private void CreateONBOXRibbon(UIControlledApplication application)
        {
            string dll = System.Reflection.Assembly.GetExecutingAssembly().Location;

            string ribbonONBOX = "Onbox App";

            application.CreateRibbonTab(ribbonONBOX);

            IList <RibbonPanel> allProjectPanels = new List <RibbonPanel>();
            IList <RibbonPanel> allFreePanels    = new List <RibbonPanel>();

            RibbonPanel panelRenumber          = application.CreateRibbonPanel(ribbonONBOX, Properties.RibbonLanguage.RenumberElements_Title);
            RibbonPanel panelStructuralMembers = application.CreateRibbonPanel(ribbonONBOX, Properties.RibbonLanguage.StructuralElements_Title);
            RibbonPanel panelModifyElem        = application.CreateRibbonPanel(ribbonONBOX, Properties.RibbonLanguage.ModifyElements_Title);
            RibbonPanel panelTopo          = application.CreateRibbonPanel(ribbonONBOX, Properties.RibbonLanguage.Topography_Title);
            RibbonPanel panelManage        = application.CreateRibbonPanel(ribbonONBOX, Properties.RibbonLanguage.Manage_Title);
            RibbonPanel panelAbout         = application.CreateRibbonPanel(ribbonONBOX, Properties.RibbonLanguage.MoreInfo_Title);
            RibbonPanel panelNotifications = null;

            allProjectPanels.Add(panelRenumber);
            allProjectPanels.Add(panelStructuralMembers);
            allProjectPanels.Add(panelModifyElem);
            allProjectPanels.Add(panelTopo);
            allProjectPanels.Add(panelManage);
            allFreePanels.Add(panelAbout);
            allFreePanels.Add(panelNotifications);

            PushButton btnRenumberGrids = panelRenumber.AddItem(new PushButtonData(Properties.RibbonLanguage.RenumberElements_Grids, Properties.RibbonLanguage.RenumberElements_Grids.Replace("\\n", "\n"), dll, "ONBOXAppl.RenumberGridsAdvanced")) as PushButton;

            btnRenumberGrids.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnRenumberGrids));
            SplitButton sptRenumberParking = panelRenumber.AddItem(new SplitButtonData(Properties.RibbonLanguage.RenumberElements_RenumberParkingSpaces, Properties.RibbonLanguage.RenumberElements_RenumberParkingSpaces)) as SplitButton;

            sptRenumberParking.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.sptRenumberParking));
            PushButton btnRenumberBeams = panelRenumber.AddItem(new PushButtonData(Properties.RibbonLanguage.RenumberElements_RenumberBeams, Properties.RibbonLanguage.RenumberElements_RenumberBeams.Replace("\\n", "\n"), dll, "ONBOXAppl.RenumberBeams")) as PushButton;

            btnRenumberBeams.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnRenumberBeams));
            SplitButton sptRenumberColumns = panelRenumber.AddItem(new SplitButtonData(Properties.RibbonLanguage.RenumberElements_RenumberColumns, Properties.RibbonLanguage.RenumberElements_RenumberColumns)) as SplitButton;

            sptRenumberColumns.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.sptRenumberColumns));
            SplitButton sptJoinElements = panelModifyElem.AddItem(new SplitButtonData(Properties.RibbonLanguage.ModifyElements_JoinMultipleElements, Properties.RibbonLanguage.ModifyElements_JoinMultipleElements)) as SplitButton;

            sptJoinElements.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.sptJoinElements));

            PushButton btnCreateBeamsFromBuilding = panelStructuralMembers.AddItem(new PushButtonData(Properties.RibbonLanguage.StructuralElements_BeamsForBuilding, Properties.RibbonLanguage.StructuralElements_BeamsForBuilding.Replace("\\n", "\n"), dll, "ONBOXAppl.BeamsFromEntireBuilding")) as PushButton;

            btnCreateBeamsFromBuilding.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnCreateBeamsFromBuilding));
            PushButton btnCreateBeam = panelStructuralMembers.AddItem(new PushButtonData(Properties.RibbonLanguage.StructuralElements_BeamsFromWalls, Properties.RibbonLanguage.StructuralElements_BeamsFromWalls.Replace("\\n", "\n"), dll, "ONBOXAppl.BeamsFromWalls")) as PushButton;

            btnCreateBeam.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnCreateBeam));
            PushButton btnCreateBeamsFromColumns = panelStructuralMembers.AddItem(new PushButtonData(Properties.RibbonLanguage.StructuralElements_BeamsFromColumns, Properties.RibbonLanguage.StructuralElements_BeamsFromColumns.Replace("\\n", "\n"), dll, "ONBOXAppl.BeamsFromColumns")) as PushButton;

            btnCreateBeamsFromColumns.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnCreateBeamsFromColumns));
            PushButton btnCreateColumnsFromDwg = panelStructuralMembers.AddItem(new PushButtonData(Properties.RibbonLanguage.StructuralElements_ColumnsFromCAD, Properties.RibbonLanguage.StructuralElements_ColumnsFromCAD.Replace("\\n", "\n"), dll, "ONBOXAppl.ColumnsFromDwg")) as PushButton;

            btnCreateColumnsFromDwg.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnCreateColumnsFromDwg));

            //PushButton btnCreateBeamsUpdate = panelModifyElem.AddItem(new PushButtonData("  Atualizar \n vigas  ", "  Atualizar \n vigas  ", dll, "ONBOXAppl.BeamUpdate")) as PushButton;
            PushButton btnElementsCopyLevel = panelModifyElem.AddItem(new PushButtonData(Properties.RibbonLanguage.ModifyElements_CopyBeamsToLevels, Properties.RibbonLanguage.ModifyElements_CopyBeamsToLevels.Replace("\\n", "\n"), dll, "ONBOXAppl.ElementsCopyToLevels")) as PushButton;

            btnElementsCopyLevel.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnElementsCopyLevel));
            PushButton btnElmentsJoin = sptJoinElements.AddPushButton(new PushButtonData(Properties.RibbonLanguage.ModifyElements_JoinElements, Properties.RibbonLanguage.ModifyElements_JoinElements.Replace("\\n", "\n"), dll, "ONBOXAppl.ElementsJoinAdvanced")) as PushButton;

            btnElmentsJoin.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnElmentsJoin));
            PushButton btnElmentsSelectJoin = sptJoinElements.AddPushButton(new PushButtonData(Properties.RibbonLanguage.ModifyElements_SelectElementsToJoin, Properties.RibbonLanguage.ModifyElements_SelectElementsToJoin.Replace("\\n", "\n"), dll, "ONBOXAppl.ElementJoinSelect")) as PushButton;

            btnElmentsSelectJoin.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnElmentsSelectJoin));

            PushButton btnCreateTopoFromPointCloud = panelTopo.AddItem(new PushButtonData(Properties.RibbonLanguage.Topography_SurfaceByPointCloud, Properties.RibbonLanguage.Topography_SurfaceByPointCloud.Replace("\\n", "\n"), dll, "ONBOXAppl.TopoFromPointCloudAdvanced")) as PushButton;

            btnCreateTopoFromPointCloud.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnCreateTopoFromPointCloud));
            //PushButton btnCreateTopoFromDwgMarks = panelTopo.AddItem(new PushButtonData("  Topografia por CAD planimétrico  ", "  Topografia por \n  planimetria  ", dll, "ONBOXAppl.TopoFromDwgMarks")) as PushButton;
            PushButton btnTopoSlope = panelTopo.AddItem(new PushButtonData(Properties.RibbonLanguage.Topography_SlopeByPads, Properties.RibbonLanguage.Topography_SlopeByPads.Replace("\\n", "\n"), dll, "ONBOXAppl.TopoSlopes")) as PushButton;

            btnTopoSlope.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnTopoSlope));

            PushButton btnRevitZip = panelManage.AddItem(new PushButtonData(Properties.RibbonLanguage.Manage_PackageProject, Properties.RibbonLanguage.Manage_PackageProject.Replace("\\n", "\n"), dll, "ONBOXAppl.RevitZip")) as PushButton;

            btnRevitZip.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnRevitZip));

            PushButton btnONBOXSite = panelAbout.AddItem(new PushButtonData("  Onbox  ", "  Onbox  ", dll, "ONBOXAppl.SiteONBOX")) as PushButton;
            //PushButton btnProjectExamplesFolder = panelAbout.AddItem(new PushButtonData(Properties.RibbonLanguage.About_SampleProjects, Properties.RibbonLanguage.About_SampleProjects.Replace("\\n", "\n"), dll, "ONBOXAppl.ProjectFolder")) as PushButton;
            PushButton btnInfo    = panelAbout.AddItem(new PushButtonData(Properties.RibbonLanguage.About_Title, Properties.RibbonLanguage.About_Title, dll, "ONBOXAppl.AboutONBOXApp")) as PushButton;
            PushButton btnPrivacy = panelAbout.AddItem(new PushButtonData(Properties.RibbonLanguage.About_Privacy, Properties.RibbonLanguage.About_Privacy, dll, "ONBOXAppl.Privacy")) as PushButton;

            //SplitButtons for Parking
            PushButton btnRenumberParking = sptRenumberParking.AddPushButton(new PushButtonData(Properties.RibbonLanguage.RenumberElements_ParkingSpaces, Properties.RibbonLanguage.RenumberElements_ParkingSpaces.Replace("\\n", "\n"), dll, "ONBOXAppl.RenumberParking")) as PushButton;

            btnRenumberParking.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnRenumberParking));
            PushButton btnRenumberBlockParking = sptRenumberParking.AddPushButton(new PushButtonData(Properties.RibbonLanguage.RenumberElements_NearestSpaces, Properties.RibbonLanguage.RenumberElements_NearestSpaces.Replace("\\n", "\n"), dll, "ONBOXAppl.RenumberBlockParking")) as PushButton;

            btnRenumberBlockParking.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnRenumberBlockParking));
            PushButton btnRenumberClearParking = sptRenumberParking.AddPushButton(new PushButtonData(Properties.RibbonLanguage.RenumberElements_ClearParkingNumbering, Properties.RibbonLanguage.RenumberElements_ClearParkingNumbering.Replace("\\n", "\n"), dll, "ONBOXAppl.RenumberCleaner")) as PushButton;

            btnRenumberClearParking.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnRenumberClearParking));
            //SplitButtons for Columns
            PushButton btnRenumberColumns = sptRenumberColumns.AddPushButton(new PushButtonData(Properties.RibbonLanguage.RenumberElements_Columns, Properties.RibbonLanguage.RenumberElements_Columns.Replace("\\n", "\n"), dll, "ONBOXAppl.RenumberColumns")) as PushButton;

            btnRenumberColumns.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnRenumberColumns));
            PushButton btnRenumberColumnsSelect = sptRenumberColumns.AddPushButton(new PushButtonData(Properties.RibbonLanguage.RenumberElements_SelectColumns, Properties.RibbonLanguage.RenumberElements_SelectColumns.Replace("\\n", "\n"), dll, "ONBOXAppl.RenumberColumnsSelection")) as PushButton;

            btnRenumberColumnsSelect.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, Properties.HelpLinks.btnRenumberColumnsSelect));

            BitmapImage grid32                   = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnRenumberGrid32.png", UriKind.Absolute));
            BitmapImage grid16                   = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnRenumberGrid16.png", UriKind.Absolute));
            BitmapImage parking32                = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnRenumberParking32.png", UriKind.Absolute));
            BitmapImage parking16                = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnRenumberParking16.png", UriKind.Absolute));
            BitmapImage parkingDelete16          = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnRenumberDeleteParking16.png", UriKind.Absolute));
            BitmapImage parkingDelete32          = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnRenumberDeleteParking32.png", UriKind.Absolute));
            BitmapImage parkingBlock16           = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnRenumberBlockParking16.png", UriKind.Absolute));
            BitmapImage parkingBlock32           = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnRenumberBlockParking32.png", UriKind.Absolute));
            BitmapImage beams32                  = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnRenumberBeams32.png", UriKind.Absolute));
            BitmapImage beams16                  = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnRenumberBeams16.png", UriKind.Absolute));
            BitmapImage Column16                 = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnRenumberColumns16.png", UriKind.Absolute));
            BitmapImage Column32                 = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnRenameColumns32.png", UriKind.Absolute));
            BitmapImage Column16Select           = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnRenameColumns16.png", UriKind.Absolute));
            BitmapImage Column32Select           = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnRenameColumns32Select.png", UriKind.Absolute));
            BitmapImage BeamsFromBuilding16      = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnBeamsFromBuilding16.png", UriKind.Absolute));
            BitmapImage BeamsFromBuilding32      = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnBeamsFromBuilding32.png", UriKind.Absolute));
            BitmapImage createBeam16             = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnWallsToBeams16.png", UriKind.Absolute));
            BitmapImage createBeam32             = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnWallsToBeamsCreate32.png", UriKind.Absolute));
            BitmapImage createUpdate32           = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnWallsToBeamsUpdate32.png", UriKind.Absolute));
            BitmapImage createBeamsFromColumns16 = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnColumnsToBeams16.png", UriKind.Absolute));
            BitmapImage createBeamsFromColumns32 = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnColumnsToBeams32.png", UriKind.Absolute));
            BitmapImage ColumnsFromDwg16         = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnColumnsFromDWG16.png", UriKind.Absolute));
            BitmapImage ColumnsFromDwg32         = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnColumnsFromDWG32.png", UriKind.Absolute));
            BitmapImage ElementsCopy16           = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnBeamsCopyLevels16.png", UriKind.Absolute));
            BitmapImage ElementsCopy32           = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnBeamsCopyLevels.png", UriKind.Absolute));
            BitmapImage ElementsJoin16           = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnJoinMultiple16.png", UriKind.Absolute));
            BitmapImage ElementsJoin32           = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnJoinMultiple.png", UriKind.Absolute));
            BitmapImage ElementsSelectJoin16     = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnJoinSelectMultiple16.png", UriKind.Absolute));
            BitmapImage ElementsSelectJoin32     = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnJoinSelectMultiple.png", UriKind.Absolute));
            BitmapImage TopoFromPointCloud16     = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnTopoFromPointCloud16.png", UriKind.Absolute));
            BitmapImage TopoFromPointCloud32     = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnTopoFromPointCloud32.png", UriKind.Absolute));
            BitmapImage TopoFromDWG16            = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnTopoFromDWG16.png", UriKind.Absolute));
            BitmapImage TopoFromDWG32            = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnTopoFromDWG.png", UriKind.Absolute));
            BitmapImage TopoSlope16              = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnTopoSlope16.png", UriKind.Absolute));
            BitmapImage TopoSlope32              = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnTopoSlope.png", UriKind.Absolute));
            BitmapImage ONBOX32                  = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/onBox32.png", UriKind.Absolute));
            BitmapImage ONBOX16                  = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/onBox16.png", UriKind.Absolute));
            BitmapImage INFO32                   = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnInfo32.png", UriKind.Absolute));
            BitmapImage INFO16                   = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnInfo16.png", UriKind.Absolute));
            BitmapImage privacy32                = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/privacy32.png", UriKind.Absolute));
            BitmapImage privacy16                = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/privacy16.png", UriKind.Absolute));
            //BitmapImage ProjectExamples16 = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnProjectExamplesFolder16.png", UriKind.Absolute));
            //BitmapImage ProjectExamples32 = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnProjectExamplesFolder.png", UriKind.Absolute));
            BitmapImage Package16 = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnPackage16.png", UriKind.Absolute));
            BitmapImage Package32 = new BitmapImage(new Uri("pack://application:,,,/ONBOXAppl;component/Resources/btnPackage32.png", UriKind.Absolute));

            btnRenumberGrids.LargeImage      = grid32;
            btnRenumberGrids.Image           = grid16;
            btnRenumberGrids.ToolTip         = Properties.RibbonLanguage.RenumberElements_Grids_ToolTip;
            btnRenumberGrids.LongDescription = Properties.RibbonLanguage.RenumberElements_Grids_Descrip;

            //sptRenumberParking.LongDescription = "Comando para renumerar vagas de estacionamento automaticamente.";

            btnRenumberBeams.LargeImage      = beams32;
            btnRenumberBeams.Image           = beams16;
            btnRenumberBeams.ToolTip         = Properties.RibbonLanguage.RenumberElements_RenumberBeams_ToolTip;
            btnRenumberBeams.LongDescription = Properties.RibbonLanguage.RenumberElements_RenumberBeams_Descrip;

            btnRenumberColumns.LargeImage      = Column32;
            btnRenumberColumns.Image           = Column16;
            btnRenumberColumns.ToolTip         = Properties.RibbonLanguage.RenumberElements_Columns_ToolTip;
            btnRenumberColumns.LongDescription = Properties.RibbonLanguage.RenumberElements_Columns_Descrip;

            btnRenumberColumnsSelect.LargeImage      = Column32Select;
            btnRenumberColumnsSelect.Image           = Column16Select;
            btnRenumberColumnsSelect.ToolTip         = Properties.RibbonLanguage.RenumberElements_SelectColumns_ToolTip;
            btnRenumberColumnsSelect.LongDescription = Properties.RibbonLanguage.RenumberElements_SelectColumns_Descrip;

            btnCreateBeamsFromBuilding.Image           = BeamsFromBuilding16;
            btnCreateBeamsFromBuilding.LargeImage      = BeamsFromBuilding32;
            btnCreateBeamsFromBuilding.ToolTip         = Properties.RibbonLanguage.StructuralElements_BeamsForBuilding_ToolTip;
            btnCreateBeamsFromBuilding.LongDescription = Properties.RibbonLanguage.StructuralElements_BeamsForBuilding_Descrip;

            btnCreateBeam.Image           = createBeam16;
            btnCreateBeam.LargeImage      = createBeam32;
            btnCreateBeam.ToolTip         = Properties.RibbonLanguage.StructuralElements_BeamsFromWalls_ToolTip;
            btnCreateBeam.LongDescription = Properties.RibbonLanguage.StructuralElements_BeamsFromWalls_Descrip;

            //btnCreateBeamsUpdate.LargeImage = createUpdate32;
            //btnCreateBeamsUpdate.ToolTip = "Atualizar vigas estruturais";
            //btnCreateBeamsUpdate.LongDescription = "Comando para atualizar vigas estruturais, o comando cria tipos automaticamente, é possivel também pré-dimensionar a altura da viga dentre outras opções.";

            btnCreateColumnsFromDwg.Image           = ColumnsFromDwg16;
            btnCreateColumnsFromDwg.LargeImage      = ColumnsFromDwg32;
            btnCreateColumnsFromDwg.ToolTip         = Properties.RibbonLanguage.StructuralElements_ColumnsFromCAD_ToolTip;
            btnCreateColumnsFromDwg.LongDescription = Properties.RibbonLanguage.StructuralElements_ColumnsFromCAD_Descrip;

            btnElementsCopyLevel.Image           = ElementsCopy16;
            btnElementsCopyLevel.LargeImage      = ElementsCopy32;
            btnElementsCopyLevel.ToolTip         = Properties.RibbonLanguage.ModifyElements_CopyBeamsToLevels_ToolTip;
            btnElementsCopyLevel.LongDescription = Properties.RibbonLanguage.ModifyElements_CopyBeamsToLevels_Descrip;

            btnElmentsJoin.Image                 = ElementsJoin16;
            btnElmentsJoin.LargeImage            = ElementsJoin32;
            btnElmentsJoin.ToolTip               = Properties.RibbonLanguage.ModifyElements_JoinElements_ToolTip;
            btnElmentsJoin.LongDescription       = Properties.RibbonLanguage.ModifyElements_JoinElements_Descrip;
            btnElmentsSelectJoin.Image           = ElementsSelectJoin16;
            btnElmentsSelectJoin.LargeImage      = ElementsSelectJoin32;
            btnElmentsSelectJoin.ToolTip         = Properties.RibbonLanguage.ModifyElements_SelectElementsToJoin_ToolTip;
            btnElmentsSelectJoin.LongDescription = Properties.RibbonLanguage.ModifyElements_SelectElementsToJoin_Descrip;

            btnCreateTopoFromPointCloud.Image           = TopoFromPointCloud16;
            btnCreateTopoFromPointCloud.LargeImage      = TopoFromPointCloud32;
            btnCreateTopoFromPointCloud.ToolTip         = Properties.RibbonLanguage.Topography_SurfaceByPointCloud_ToolTip;
            btnCreateTopoFromPointCloud.LongDescription = Properties.RibbonLanguage.Topography_SurfaceByPointCloud_Descrip;

            btnCreateBeamsFromColumns.ToolTip         = Properties.RibbonLanguage.StructuralElements_BeamsFromColumns_ToolTip;
            btnCreateBeamsFromColumns.LongDescription = Properties.RibbonLanguage.StructuralElements_BeamsFromColumns_Descrip;
            btnCreateBeamsFromColumns.Image           = createBeamsFromColumns16;
            btnCreateBeamsFromColumns.LargeImage      = createBeamsFromColumns32;

            //btnCreateTopoFromDwgMarks.ToolTip = "Criar topografia a partir de arquivos de CAD planimétricos";
            //btnCreateTopoFromDwgMarks.LongDescription = "Comando para criar topografia a partir de arquivos CAD não altimétricos, ou seja, o arquivo de não contém cota Z, o comando lê o arquivo de texto mais próximo que contém informação de altura do ponto.";
            //btnCreateTopoFromDwgMarks.Image = TopoFromDWG16;
            //btnCreateTopoFromDwgMarks.LargeImage = TopoFromDWG32;

            btnTopoSlope.ToolTip         = Properties.RibbonLanguage.Topography_SlopeByPads_ToolTip;
            btnTopoSlope.LongDescription = Properties.RibbonLanguage.Topography_SlopeByPads_Descrip;
            btnTopoSlope.Image           = TopoSlope16;
            btnTopoSlope.LargeImage      = TopoSlope32;

            btnONBOXSite.LargeImage      = ONBOX32;
            btnONBOXSite.Image           = ONBOX16;
            btnONBOXSite.ToolTip         = Properties.RibbonLanguage.About_Site_ToolTip;
            btnONBOXSite.LongDescription = Properties.RibbonLanguage.About_Site_Descrip;

            btnInfo.LargeImage = INFO32;
            btnInfo.Image      = INFO16;
            btnInfo.ToolTip    = Properties.RibbonLanguage.About_Onbox_ToolTip;
            btnInfo.ToolTip    = Properties.RibbonLanguage.About_Onbox_Descrip;

            btnPrivacy.LargeImage = privacy32;
            btnPrivacy.Image      = privacy16;

            //btnProjectExamplesFolder.Image = ProjectExamples16;
            //btnProjectExamplesFolder.LargeImage = ProjectExamples32;
            //btnProjectExamplesFolder.ToolTip = Properties.RibbonLanguage.About_SampleProjects_ToolTip;
            //btnProjectExamplesFolder.LongDescription = Properties.RibbonLanguage.About_SampleProjects_Descrip;

            btnRevitZip.Image           = Package16;
            btnRevitZip.LargeImage      = Package32;
            btnRevitZip.ToolTip         = Properties.RibbonLanguage.Manage_PackageProject_ToolTip;
            btnRevitZip.LongDescription = Properties.RibbonLanguage.Manage_PackageProject_Descrip;

            //SplitButtons
            btnRenumberParking.LargeImage      = parking32;
            btnRenumberParking.Image           = parking16;
            btnRenumberParking.ToolTip         = Properties.RibbonLanguage.RenumberElements_RenumberParkingSpaces_ToolTip;
            btnRenumberParking.LongDescription = Properties.RibbonLanguage.RenumberElements_RenumberParkingSpaces_Descrip;

            btnRenumberBlockParking.LargeImage      = parkingBlock32;
            btnRenumberBlockParking.Image           = parkingBlock16;
            btnRenumberBlockParking.ToolTip         = Properties.RibbonLanguage.RenumberElements_NearestSpaces_ToolTip;
            btnRenumberBlockParking.LongDescription = Properties.RibbonLanguage.RenumberElements_NearestSpaces_Descrip;

            btnRenumberClearParking.LargeImage      = parkingDelete32;
            btnRenumberClearParking.Image           = parkingDelete16;
            btnRenumberClearParking.ToolTip         = Properties.RibbonLanguage.RenumberElements_ClearParkingNumbering_ToolTip;
            btnRenumberClearParking.LongDescription = Properties.RibbonLanguage.RenumberElements_ClearParkingNumbering_Descrip;

            foreach (RibbonPanel currentRibbonPanel in allProjectPanels)
            {
                if (currentRibbonPanel != null)
                {
                    foreach (RibbonItem currentItem in currentRibbonPanel.GetItems())
                    {
                        if (currentItem is PushButton)
                        {
                            PushButton currentPushButton = currentItem as PushButton;
                            currentPushButton.AvailabilityClassName = "ONBOXAppl.ButtonAvailableOnProjectEnv";
                        }
                        if (currentItem is SplitButton)
                        {
                            SplitButton currentSplitButton = currentItem as SplitButton;
                            foreach (PushButton currentPushButton in currentSplitButton.GetItems())
                            {
                                currentPushButton.AvailabilityClassName = "ONBOXAppl.ButtonAvailableOnProjectEnv";
                            }
                        }
                    }
                }
            }

            foreach (RibbonPanel currentRibbonPanel in allFreePanels)
            {
                if (currentRibbonPanel != null)
                {
                    foreach (RibbonItem currentItem in currentRibbonPanel.GetItems())
                    {
                        if (currentItem is PushButton)
                        {
                            PushButton currentPushButton = currentItem as PushButton;
                            currentPushButton.AvailabilityClassName = "ONBOXAppl.ButtonAvailableAlways";
                        }
                        if (currentItem is SplitButton)
                        {
                            SplitButton currentSplitButton = currentItem as SplitButton;
                            foreach (PushButton currentPushButton in currentSplitButton.GetItems())
                            {
                                currentPushButton.AvailabilityClassName = "ONBOXAppl.ButtonAvailableAlways";
                            }
                        }
                    }
                }
            }
        }