/// <summary> /// Constructor /// </summary> public RevitExternalHandler(RevitAsyncSettings settings, IRevitContext revitContext) { this.revitContext = revitContext; this.name = settings.Name; if (settings.IsJournalable) { this.externalEvent = ExternalEvent.CreateJournalable(this); } else { this.externalEvent = ExternalEvent.Create(this); } }
/// <summary> /// Adds support for making async calls to Revit /// </summary> public static void AddRevitAsync(this IContainer container, Action <RevitAsyncSettings> config) { if (config == null) { throw new ArgumentException("Adding Revit Async should have a valid configuration."); } var settings = new RevitAsyncSettings(); config.Invoke(settings); if (string.IsNullOrWhiteSpace(settings.Name)) { throw new ArgumentException("Adding Revit Async should have a valid handler name."); } container.AddSingleton(settings); container.AddSingleton <IRevitEventHandler, RevitExternalHandler>(); }