Ejemplo n.º 1
0
 public Result Execute(UIApplication app)
 {
     if (ModuleData.up_send_enter)
     {
         Thread thread = new Thread(() =>
         {
             var autoEvent = new AutoResetEvent(true);
             _Timer        = new System.Threading.Timer(UiInput.KeyEnter, autoEvent, 20000, 20000);
         });
         thread.Start();
     }
     try
     {
         string assemblyPath = new FileInfo(Assembly.GetExecutingAssembly().Location).DirectoryName;
         Print(string.Format("[{0}] Запуск...", DateTime.Now.ToString("T")), KPLN_Loader.Preferences.MessageType.Header);
         ModuleData.AutoConfirmEnabled = true;
         if (app.Application.Documents.IsEmpty)
         {
             Print("Создание [placeholder] документа...", KPLN_Loader.Preferences.MessageType.Regular);
             app.Application.NewProjectDocument(UnitSystem.Metric);
         }
         int max  = Documents.Count;
         int step = 0;
         foreach (DbDocument doc in Documents)
         {
             step++;
             string step_info = string.Format("[{0}/{1}]", step.ToString(), max.ToString());
             try
             {
                 Print(string.Format("[{0}] Открытие {1}...", DateTime.Now.ToString("T"), doc.Path), KPLN_Loader.Preferences.MessageType.Header);
                 ModelPath   path    = ModelPathUtils.ConvertUserVisiblePathToModelPath(doc.Path);
                 OpenOptions options = new OpenOptions()
                 {
                     DetachFromCentralOption = DetachFromCentralOption.DetachAndPreserveWorksets, Audit = false
                 };
                 WorksetConfiguration config = new WorksetConfiguration(WorksetConfigurationOption.OpenAllWorksets);
                 options.SetOpenWorksetsConfiguration(config);
                 Document docu = app.Application.OpenDocumentFile(path, options);
                 try
                 {
                     DbRowData rowData = new DbRowData();
                     rowData.Errors.Add(new DbError("Ошибка привязки к уровню", CheckTools.CheckLevels(docu)));
                     rowData.Errors.Add(new DbError("Зеркальные элементы", CheckTools.CheckMirrored(docu)));
                     rowData.Errors.Add(new DbError("Ошибка мониторинга осей", CheckTools.CheckMonitorGrids(docu)));
                     rowData.Errors.Add(new DbError("Ошибка мониторинга уровней", CheckTools.CheckMonitorLevels(docu)));
                     rowData.Errors.Add(new DbError("Дубликаты имен", CheckTools.CheckNames(docu)));
                     rowData.Errors.Add(new DbError("Ошибки подгруженных связей", CheckTools.CheckSharedLocations(docu) + CheckTools.CheckLinkWorkSets(docu)));
                     rowData.Errors.Add(new DbError("Предупреждения Revit", CheckTools.CheckErrors(docu)));
                     rowData.Errors.Add(new DbError("Размер файла", CheckTools.CheckFileSize(doc.Path)));
                     rowData.Errors.Add(new DbError("Элементы в наборах подгруженных связей", CheckTools.CheckElementsWorksets(docu)));
                     DbController.WriteValue(doc.Id.ToString(), rowData.ToString());
                     Print(string.Format("[{0}] Закрытие документа...", DateTime.Now.ToString("T")), KPLN_Loader.Preferences.MessageType.Header);
                 }
                 catch (Exception e)
                 {
                     PrintError(e);
                 }
                 docu.Close(false);
             }
             catch (Exception e)
             {
                 PrintError(e);
             }
         }
         ModuleData.AutoConfirmEnabled = false;
         _Timer.Dispose();
         return(Result.Succeeded);
     }
     catch (Exception e)
     {
         ModuleData.AutoConfirmEnabled = false;
         PrintError(e);
         _Timer.Dispose();
         return(Result.Failed);
     }
 }
Ejemplo n.º 2
0
 private void CheckDocument(Document doc, DbDocument dbDoc)
 {
     try
     {
         DbRowData rowData = new DbRowData();
         rowData.Errors.Add(new DbError("Ошибка привязки к уровню", CheckTools.CheckLevels(doc)));
         rowData.Errors.Add(new DbError("Зеркальные элементы", CheckTools.CheckMirrored(doc)));
         rowData.Errors.Add(new DbError("Ошибка мониторинга осей", CheckTools.CheckMonitorGrids(doc)));
         rowData.Errors.Add(new DbError("Ошибка мониторинга уровней", CheckTools.CheckMonitorLevels(doc)));
         rowData.Errors.Add(new DbError("Дубликаты имен", CheckTools.CheckNames(doc)));
         rowData.Errors.Add(new DbError("Ошибки подгруженных связей", CheckTools.CheckSharedLocations(doc) + CheckTools.CheckLinkWorkSets(doc)));
         rowData.Errors.Add(new DbError("Предупреждения Revit", CheckTools.CheckErrors(doc)));
         rowData.Errors.Add(new DbError("Размер файла", CheckTools.CheckFileSize(dbDoc.Path)));
         DbController.WriteValue(dbDoc.Id.ToString(), rowData.ToString());
         //BotActions.SendRegularMessage(string.Format("👌 @{0}_{1} завершил проверку документа #{3} #{2}", NormalizeString(KPLN_Loader.Preferences.User.Family), NormalizeString(KPLN_Loader.Preferences.User.Name), NormalizeString(dbDoc.Project.Name), NormalizeString(dbDoc.Name)), Bot.Target.Process);
     }
     catch (Exception) { }
 }