Files
ShrlAlgoToolkit/ShrlAlgoToolkit.RevitAddins/RvMEP/RevitCommandEndedMonitor.cs

40 lines
980 B
C#
Raw Normal View History

2024-09-22 11:05:41 +08:00
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Events;
2025-04-24 20:56:44 +08:00
namespace ShrlAlgoToolkit.RevitAddins.RvMEP;
2024-09-22 11:05:41 +08:00
public class RevitCommandEndedMonitor
{
private readonly UIApplication _revitUiApplication;
private bool _initializingCommandMonitor;
public event EventHandler CommandEnded;
public RevitCommandEndedMonitor(UIApplication revituiApplication)
{
_revitUiApplication = revituiApplication;
_initializingCommandMonitor = true;
_revitUiApplication.Idling += OnRevitUiApplicationIdling;
}
private void OnRevitUiApplicationIdling(object sender, IdlingEventArgs idlingEventArgs)
{
if (_initializingCommandMonitor)
{
_initializingCommandMonitor = false;
return;
}
_revitUiApplication.Idling -= OnRevitUiApplicationIdling;
OnCommandEnded();
}
protected virtual void OnCommandEnded()
{
CommandEnded?.Invoke(this, EventArgs.Empty);
}
}