using Autodesk.Revit.Attributes; using Autodesk.Revit.UI; using Nice3point.Revit.Toolkit.External; namespace ShrlAlgoToolkit.RevitAddins.RvCommon; [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] public class AutoSaveCmd : ExternalCommand { private readonly System.Timers.Timer timer = Variables.AutoSaveTimer; public override void Execute() { if (string.IsNullOrEmpty(Document.PathName)) { ErrorMessage = "当前文件尚未保存,请先保存文件"; Result = Result.Failed; return; } AutoSaveViewModel viewModel = new(); AutoSaveView view = new() { DataContext = viewModel }; view.ShowDialog(); if (RevitAddins.Properties.Settings.Default.IsActiveAutoSave) { if (RevitAddins.Properties.Settings.Default.AutoSaveIntervalTime >= 1) { timer.Interval = RevitAddins.Properties.Settings.Default.AutoSaveIntervalTime * 60 * 1000; RevitAddins.Properties.Settings.Default.Save(); } //timer.Enabled = Properties.Settings.Default.AutoSave; timer.Start(); } else { timer.Stop(); } Result = Result.Succeeded; } }