public Result OnStartup(UIControlledApplication a) { ParentSupportMethods myParentSupportMethods = new ParentSupportMethods(); myParentSupportMethods.myTA = this; string stringCommand01Button = "Set Development Path Root"; Properties.Settings.Default.AssemblyNeedLoading = true; Properties.Settings.Default.Save(); String exeConfigPath = Path.GetDirectoryName(path) + "\\" + dllName + ".dll"; a.CreateRibbonTab(TabName); RibbonPanelCurrent = a.CreateRibbonPanel(TabName, PanelName); PushButtonData myPushButtonData01 = new PushButtonData(stringCommand01Button, stringCommand01Button, exeConfigPath, dllName + ".InvokeSetDevelopmentPath"); ComboBoxData cbData = new ComboBoxData("DeveloperSwitch") { ToolTip = "Select an Option", LongDescription = "Select a number or letter" }; ComboBox ComboBox01 = RibbonPanelCurrent.AddStackedItems(cbData, myPushButtonData01)[0] as ComboBox; string stringProductVersion = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Pedersen Read Limited\\cSharpPlaypen joshnewzealand").GetValue("ProductVersion").ToString(); //Bug fix here by Max Sun (01/05/19) ComboBox01.AddItem(new ComboBoxMemberData("Release", "Release: " + stringProductVersion)); ComboBox01.AddItem(new ComboBoxMemberData("Development", "C# Developer Mode")); ComboBox01.CurrentChanged += new EventHandler <Autodesk.Revit.UI.Events.ComboBoxCurrentChangedEventArgs>(SwitchBetweenDeveloperAndRelease); //RibbonPanelCurrent.AddItem(myParentSupportMethods.myPushButton_01(Button_01, path)); RibbonPanelCurrent.AddItem(myParentSupportMethods.Button01_Start("Button01_Start", Button01_Start, path)); RibbonPanelCurrent.AddItem(myParentSupportMethods.Button02_DrawWallTypes("Button02_DrawWallTypes", Button02_DrawWallTypes, path)); RibbonPanelCurrent.AddItem(myParentSupportMethods.Button03_SetDefault("Button03_SetDefault", Button03_SetDefault, path)); RibbonPanelCurrent.AddItem(myParentSupportMethods.Button04_ManualOverrideColor("Button04_ManualOverrideColor", Button04_ManualOverrideColor, path)); RibbonPanelCurrent.AddItem(myParentSupportMethods.Button07_ExtensibleStorage("Button07_ExtensibleStorage", Button07_ExtensibleStorage, path)); PushButtonData myPushButtonData_OneClickBackup = myParentSupportMethods.Button15_SingleClickFamilyBackup("Button15_SingleClickFamilyBackup", Button15_SingleClickFamilyBackup, path); PushButtonData myPushButtonData_OpenBackupFolder = new PushButtonData("Button15_OpenBackupFolder", "Open Backup Folder", exeConfigPath, dllName + ".InvokeOpenBackupFolder"); SplitButtonData sb1 = new SplitButtonData("OneClickBackupSystem", "One Click Backup System"); SplitButton sb = RibbonPanelCurrent.AddItem(sb1) as SplitButton; sb.AddPushButton(myPushButtonData_OneClickBackup); sb.AddPushButton(myPushButtonData_OpenBackupFolder); sb.IsSynchronizedWithCurrentItem = false; RibbonPanelCurrent.AddItem(myParentSupportMethods.Button1617_AddEditParameters("Button1617_AddEditParameters", Button1617_AddEditParameters, path)); RibbonPanelCurrent.AddItem(myParentSupportMethods.Button1819_UnderstandingTransforms("Button1819_UnderstandingTransforms", Button1819_UnderstandingTransforms, path)); RibbonPanelCurrent.AddItem(myParentSupportMethods.Button02_Uninstall("Button_02_Uninstall", Button_02_Uninstall, path)); //PRLChecklistsPanel2.Visible = false; //RibbonPanel PRLChecklistsPanel2 = a.CreateRibbonPanel(TabName, PanelTransferring); //myParentSupportMethods.PlaceButtonOnModifyRibbon(); return(Result.Succeeded); }
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { try { if (Properties.Settings.Default.AssemblyNeedLoading) { //2 August 2019: Start, The the following lines were added in Take 10 in order prevent double loading of packages. Microsoft.Win32.RegistryKey rkbase = null; rkbase = Microsoft.Win32.RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, Microsoft.Win32.RegistryView.Registry64); string stringTargetOokiiVersion = rkbase.OpenSubKey("SOFTWARE\\Wow6432Node\\Pedersen Read Limited\\cSharpPlaypen joshnewzealand").GetValue("OokiiVersion").ToString(); string stringTargetXceedVersion = rkbase.OpenSubKey("SOFTWARE\\Wow6432Node\\Pedersen Read Limited\\cSharpPlaypen joshnewzealand").GetValue("XceedVersion").ToString(); if (AppDomain.CurrentDomain.GetAssemblies().Where(x => x.FullName == stringTargetOokiiVersion).Count() == 0) { string stringTargetDirectory = rkbase.OpenSubKey("SOFTWARE\\Pedersen Read Limited\\cSharpPlaypen joshnewzealand").GetValue("TARGETDIR").ToString(); Assembly.Load(File.ReadAllBytes(stringTargetDirectory + "\\Ookii.Dialogs.Wpf.dll")); } if (AppDomain.CurrentDomain.GetAssemblies().Where(x => x.FullName == stringTargetXceedVersion).Count() == 0) { string stringTargetDirectory = rkbase.OpenSubKey("SOFTWARE\\Pedersen Read Limited\\cSharpPlaypen joshnewzealand").GetValue("TARGETDIR").ToString(); Assembly.Load(File.ReadAllBytes(stringTargetDirectory + "\\Xceed.Wpf.Toolkit.dll")); } //2 August 2019: End. Properties.Settings.Default.AssemblyNeedLoading = false; Properties.Settings.Default.Save(); } string path = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Pedersen Read Limited\\cSharpPlaypen joshnewzealand").GetValue("TARGETDIR").ToString();; Assembly objAssembly01 = Assembly.Load(File.ReadAllBytes(path + "\\" + dllModuleName + ".dll")); string strCommandName = "ThisApplication"; IEnumerable <Type> myIEnumerableType = GetTypesSafely(objAssembly01); foreach (Type objType in myIEnumerableType) { if (objType.IsClass) { if (objType.Name.ToLower() == strCommandName.ToLower()) { object ibaseObject = Activator.CreateInstance(objType); object[] arguments = new object[] { commandData, "Button_01_Invoke01|" + path, elements }; object result = null; result = objType.InvokeMember("Start", BindingFlags.Default | BindingFlags.InvokeMethod, null, ibaseObject, arguments); break; } } } } #region catch and finally catch (Exception ex) { ParentSupportMethods.writeDebug("Invoke01" + Environment.NewLine + ex.Message + Environment.NewLine + ex.InnerException, true); } finally { } #endregion return(Result.Succeeded); }