using Autodesk.Revit.DB; using Speckle.Autofac.DependencyInjection; using Speckle.Converters.Common; using Speckle.Converters.Common.DependencyInjection; using Speckle.Converters.RevitShared.Helpers; using Speckle.Converters.RevitShared.Services; using Speckle.Converters.RevitShared.Settings; using Speckle.Converters.RevitShared.ToSpeckle; namespace Speckle.Converters.RevitShared.DependencyInjection; public class RevitConverterModule : ISpeckleModule { public void Load(SpeckleContainerBuilder builder) { //register types by default builder.ScanAssemblyOfType(); // Register single root builder.AddRootCommon(); // register all application converters builder.AddApplicationConverters(); builder.AddScoped(); builder.AddSingleton(new RevitContext()); builder.AddSingleton(new RevitToHostCacheSingleton()); builder.AddSingleton(new RevitToSpeckleCacheSingleton()); // POC: do we need ToSpeckleScalingService as is, do we need to interface it out? builder.AddScoped(); builder.AddScoped(); // POC: the concrete type can come out if we remove all the reference to it builder.AddScoped< IConverterSettingsStore, ConverterSettingsStore >(); builder.AddScoped(); builder.AddScoped(); builder.AddScoped(); builder.AddScoped(); builder.AddScoped(); builder.AddScoped(); builder.AddScoped(); builder.AddScoped(); builder.AddScoped(); } }