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); } }