예제 #1
0
 /// <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);
     }
 }
예제 #2
0
        /// <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>();
        }