Files
ShrlAlgoToolkit/ShrlAlgoToolkit.RevitAddins/General/PureModelCmd.cs

60 lines
1.5 KiB
C#
Raw Normal View History

2025-10-10 11:19:58 +08:00
using System.Windows;
using Autodesk.Revit.Attributes;
2024-09-22 11:05:41 +08:00
using Autodesk.Revit.DB;
using eTransmitForRevitDB;
using Nice3point.Revit.Toolkit.External;
2026-02-22 20:03:42 +08:00
namespace ShrlAlgoToolkit.RevitAddins.General;
2024-09-22 11:05:41 +08:00
/// <summary>
/// Revit执行命令
/// </summary>
[Transaction(TransactionMode.Manual)]
public class PureModelCmd : ExternalCommand
{
public override void Execute()
{
if (string.IsNullOrEmpty(Document.PathName))
{
2026-02-24 11:34:18 +08:00
MessageBox.Show("请先保存文件");
2024-09-22 11:05:41 +08:00
return;
}
2025-10-10 11:19:58 +08:00
var result = MessageBox.Show("是否清理项目中的所有未使用项", "询问", MessageBoxButton.YesNo, MessageBoxImage.Question);
if(result == MessageBoxResult.No)
{
return;
}
2024-09-22 11:05:41 +08:00
var options = new SaveAsOptions()
{
Compact = true,
OverwriteExistingFile = true,
MaximumBackups = 3
};
2024-12-22 10:26:12 +08:00
try
2024-09-22 11:05:41 +08:00
{
Purge(Document);
2024-12-22 10:26:12 +08:00
Document.SaveAs(Document.PathName, options);
2026-02-24 11:34:18 +08:00
MessageBox.Show("清理完成", "提示");
2024-09-22 11:05:41 +08:00
}
2024-12-22 10:26:12 +08:00
catch (Exception)
{
throw;
}
2024-09-22 11:05:41 +08:00
}
/// <summary>
/// 使用eTransmitForRevitDB清理文档未使用项
/// </summary>
/// <param name="doc"></param>
/// <returns></returns>
public static bool Purge(Document doc)
{
var eTransmitUpgradeOMatic = new eTransmitUpgradeOMatic(doc.Application);
var result = eTransmitUpgradeOMatic.purgeUnused(doc);
return result == UpgradeFailureType.UpgradeSucceeded;
}
}