using Autodesk.Revit.ApplicationServices; using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using eTransmitForRevitDB; using Nice3point.Revit.Toolkit.External; using System.IO; using System.Reflection; namespace ShrlAlgo.RvKits.RvCommon; /// /// Revit执行命令 /// [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] public class PureModelCmd : ExternalCommand { public override void Execute() { if (string.IsNullOrEmpty(Document.PathName)) { System.Windows.MessageBox.Show("请先保存文件"); 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; } }