Ejemplo n.º 1
0
 public static void Main(string[] args)
 {
     switch (args[0])
     {
         case "install":
             InstallArgs installArgs = new InstallArgs(args);
             InstallProcess installProcess = new InstallProcess();
             installProcess.Execute(installArgs);
             break;
         case "delete":
             DeleteArgs deleteArgs = new DeleteArgs(args);
             DeleteProcess deleteProcess = new DeleteProcess();
             deleteProcess.Execute(deleteArgs);
             break;
         case "export":
             var exportArgs = new ExportArgs(args);
             var exportProcess = new ExportProcess();
             exportProcess.Execute(exportArgs);
             break;
         case "import":
             var importArgs = new ImportArgs(args);
             var importProcess = new ImportProcess();
             importProcess.Execute(importArgs);
             break;
     }
 }
Ejemplo n.º 2
0
        protected override bool OnExecute()
        {
            if (ExoEngine.ActiveWorld != null)
            {
                if (ExoEngine.Commands.Execute(typeof(FileClose)) != true)
                {
                    return(false);
                }
            }

            string strFileName = null;

            if (this.Params != null)
            {
                if (this.Params[0] is string)
                {
                    strFileName = (string)this.Params[0];
                }
            }
            else
            {
                OpenFileDialog ofd = new OpenFileDialog();
                ofd.Multiselect      = false;
                ofd.Title            = "Import Worldcraft Map";
                ofd.Filter           = ExoEngine.sWorldcraftMapFileFilter;
                ofd.InitialDirectory = ExoEngine.sWorldcraftMapPath;

                DialogResult result = ofd.ShowDialog();
                if (result != DialogResult.OK)
                {
                    return(false);
                }
                strFileName = ofd.FileName;
            }

            if (strFileName == null || File.Exists(strFileName) == false)
            {
                return(false);
            }

            ExoEngine.MainForm.Update();

            ImportProcess ip = new ImportProcess();

            ip.WorldcraftFileName = strFileName;
            //Debug2.Push();
            if (ip.Execute(ExoEngine.MainForm) != true)
            {
                return(false);
            }
            //Debug2.Pop();

            ip.World.Reset();
            ip.World.Dirty = true;

            ExoEngine.ActiveWorld = ip.World;
            ExoEngine.UpdateAll();

            return(true);
        }
Ejemplo n.º 3
0
 public void LoadUtilServerProcesses()
 {
     foreach (var util in Env.UtilServers)
     {
         UtilServer    UtilCache = new UtilServer(util["name"]);
         List <String> ParentIds = new List <String>();
         ParentIds = this.IRData.GetParentIdsByServer(util["keyname"]);
         log.Debug($"Initializnig Cache Load: {util["name"]}");
         if (ParentIds.Count > 0)
         {
             foreach (var id in ParentIds)
             {
                 ImportProcess process = this.DeconstructImportProcess(id);
                 // if(Env.DEBUG) { log.Info($"ParentId: {id}"); }
                 if (process is ImportProcess)
                 {
                     UtilCache.Processes.Add(process);
                 }
                 else
                 {
                     log.Error($"Could not build Import Process DAO for Parent ID: {id}");
                 }
             }
         }
         else
         {
             log.Error($"No Parent IDs returned by query on{util["name"]}");
         }
         if (UtilCache.Processes.Count > 0)
         {
             this.Servers.Add(UtilCache);
         }
     }
 }
Ejemplo n.º 4
0
        protected String ProcessErrReport(ImportProcess import)
        {
            StringBuilder report = new StringBuilder();

            report.Append($"\n\t{import.ProcessDisplayName}\n");
            report.Append($"\t{import.DirError}\n");
            report.Append($"\t{import.DirImport}\n");
            report.Append($"\t{import.DirProcessed}\n");
            report.Append($"\t{import.ProcessDescription}\n");
            return(report.ToString());
        }
Ejemplo n.º 5
0
        public ImportProcess DeconstructImportProcess(String id)
        {
            ImportProcess ProcessDefinition   = new ImportProcess();
            var           ImportProcessFields = ProcessDefinition.GetType().GetProperties();

            foreach (var field in ImportProcessFields)
            {
                field.SetValue(ProcessDefinition, this.SetProcessAttribute(id, field.Name, this.ProcessKeyNameMap[field.Name]));
            }
            return(ProcessDefinition);
        }
Ejemplo n.º 6
0
        public Result Execute(
            ExternalCommandData commandData,
            ref string message,
            ElementSet elements)
        {
            UIApplication uiapp = commandData.Application;
            UIDocument    uidoc = uiapp.ActiveUIDocument;

            Autodesk.Revit.ApplicationServices.Application app = uiapp.Application;
            Document doc   = uidoc.Document;
            Document docUi = uidoc.Document;

            bool allGoodInTheHood = false;

            //app.SharedParametersFilename = LocalFiles.localSpFile;
            //DefinitionFile defFile = app.OpenSharedParameterFile();
            //DefinitionGroups myGroups = defFile.Groups;
            //DefinitionGroup myGroup = myGroups.get_Item("Mechanical");
            //Definitions myDefinitions = myGroup.Definitions;
            //ExternalDefinition eDef = myDefinitions.get_Item("AirFlowAirTerminal") as ExternalDefinition;

            // Create local directory
            LocalFiles.CreateLocalDir();

            // Checks last time the OpenRFA online database was udpated
            LocalFiles.GetLastUpdateJsonOnline();

            MainWindow appDialog = new MainWindow();

            appDialog.WindowStartupLocation = WindowStartupLocation.CenterScreen;

            // Prompt user to select files
            Microsoft.Win32.OpenFileDialog openFilesDlg = new Microsoft.Win32.OpenFileDialog();

            // Set filter for file extension and default file extension
            openFilesDlg.DefaultExt  = ".rfa";
            openFilesDlg.Filter      = "Revit Family (*.rfa)|*.rfa";
            openFilesDlg.Multiselect = true;
            openFilesDlg.Title       = "Select Revit families to load parameters";

            // Only open window if continueCommand is set true
            if (ImportProcess.continueCommand == true)
            {
                openFilesDlg.ShowDialog();

                // Only open MainWindow if files are selected
                if (openFilesDlg.FileNames.Length > 0)
                {
                    appDialog.ShowDialog();

                    // Print all families to be modified
                    StringBuilder sb = new StringBuilder();
                    sb.Append("The following files will be modified. It is recommended to backup your families before proceeding. Would you like to continue?\n\n");
                    foreach (string fileName in openFilesDlg.FileNames)
                    {
                        sb.Append(fileName + "\n");
                    }

                    MessageBoxResult resultConfirmOverwrite = System.Windows.MessageBox.Show(sb.ToString(), "Warning", MessageBoxButton.OKCancel);
                    switch (resultConfirmOverwrite)
                    {
                    // Execute command if user confirmed
                    case MessageBoxResult.OK:


                        // Only executes if the user clicked "OK" button
                        if (appDialog.DialogResult.HasValue && appDialog.DialogResult.Value)
                        {
                            // Opens configuration window
                            ConfigureImport confDialog = new ConfigureImport();
                            confDialog.WindowStartupLocation = WindowStartupLocation.CenterScreen;
                            confDialog.ShowDialog();

                            // Only execute command if configure process is committed by user
                            if (confDialog.DialogResult.HasValue && confDialog.DialogResult.Value)
                            {
                                // Iterate through selected families and add parameters to each
                                foreach (string fileName in openFilesDlg.FileNames)
                                {
                                    // Check if user is trying to modify active doc
                                    if (fileName == docUi.PathName)
                                    {
                                        System.Windows.MessageBox.Show("This addin cannot be run on the active document. This family has been skipped in the process: \n" + fileName);
                                    }
                                    else
                                    {
                                        System.Windows.MessageBox.Show("Adding parameters to: " + fileName);
                                        doc = app.OpenDocumentFile(fileName);

                                        // Complete import process
                                        ImportProcess.ProcessImport(doc, app, confDialog.DialogResult.HasValue, confDialog.DialogResult.Value);
                                        doc.Close(true);
                                    }
                                }
                            }
                        }

                        // Clear all data in case addin is run again in the same session
                        // TODO: Call this method with every method that uses the datatables?
                        ImportProcess.ClearAllData();

                        allGoodInTheHood = true;
                        break;

                    case MessageBoxResult.Cancel:
                        ImportProcess.ClearAllData();
                        allGoodInTheHood = false;
                        break;
                    }
                }
            }


            // Return results
            if (allGoodInTheHood)
            {
                return(Result.Succeeded);
            }
            else
            {
                return(Result.Cancelled);
            }
        }
Ejemplo n.º 7
0
 public bool StartImport()
 {
     CurtDevDataContext db = new CurtDevDataContext();
     ImportProcess currentProcess = db.ImportProcesses.Where(x => x.endTime.Equals(null)).FirstOrDefault<ImportProcess>();
     int count = db.Parts.Count();
     if (currentProcess != null && currentProcess.ID > 0) {
         return false;
     } else {
         ImportProcess newProcess = new ImportProcess {
             startTime = DateTime.Now,
             partCount = count,
             currentCount = 0
         };
         db.ImportProcesses.InsertOnSubmit(newProcess);
         db.SubmitChanges();
         return true;
     }
 }