using System.Windows; using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using eTransmitForRevitDB; using Nice3point.Revit.Toolkit.External; using ShrlAlgoToolkit.RevitAddins.RvCommon; using ShrlAlgoToolkit; using ShrlAlgoToolkit.RevitAddins; namespace ShrlAlgoToolkit.RevitAddins.General; /// /// Revit执行命令 /// [Transaction(TransactionMode.Manual)] public class PureModelCmd : ExternalCommand { public override void Execute() { if (string.IsNullOrEmpty(Document.PathName)) { System.Windows.MessageBox.Show("请先保存文件"); return; } var result = MessageBox.Show("是否清理项目中的所有未使用项", "询问", MessageBoxButton.YesNo, MessageBoxImage.Question); if(result == MessageBoxResult.No) { return; } var options = new SaveAsOptions() { Compact = true, OverwriteExistingFile = true, MaximumBackups = 3 }; try { Purge(Document); Document.SaveAs(Document.PathName, options); System.Windows.MessageBox.Show("清理完成", "提示"); } catch (Exception) { throw; } } /// /// 使用eTransmitForRevitDB清理文档未使用项 /// /// /// public static bool Purge(Document doc) { var eTransmitUpgradeOMatic = new eTransmitUpgradeOMatic(doc.Application); var result = eTransmitUpgradeOMatic.purgeUnused(doc); return result == UpgradeFailureType.UpgradeSucceeded; } }