Files
speckle-sharp-connectors/Converters/Revit/Speckle.Converters.RevitShared.DependencyInjection/RevitConverterModule.cs
T
Oğuzhan Koral fa31283d94 Chore(revit): Refactor material cache to ToHost ToSpeckle singletons (#262)
* A bit better

* Post conflict errors

* Remove old notes
2024-09-25 17:27:15 +03:00

55 lines
2.0 KiB
C#

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<RevitConversionSettings>();
// Register single root
builder.AddRootCommon<RevitRootToSpeckleConverter>();
// register all application converters
builder.AddApplicationConverters<RevitToSpeckleUnitConverter, ForgeTypeId>();
builder.AddScoped<IRootToHostConverter, RevitRootToHostConverter>();
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<ScalingServiceToSpeckle>();
builder.AddScoped<ScalingServiceToHost>();
// POC: the concrete type can come out if we remove all the reference to it
builder.AddScoped<
IConverterSettingsStore<RevitConversionSettings>,
ConverterSettingsStore<RevitConversionSettings>
>();
builder.AddScoped<IReferencePointConverter, ReferencePointConverter>();
builder.AddScoped<IRevitVersionConversionHelper, RevitVersionConversionHelper>();
builder.AddScoped<ParameterValueExtractor>();
builder.AddScoped<ParameterValueSetter>();
builder.AddScoped<DisplayValueExtractor>();
builder.AddScoped<ISlopeArrowExtractor, SlopeArrowExtractor>();
builder.AddScoped<IRevitCategories, RevitCategories>();
builder.AddScoped<ParameterDefinitionHandler>();
builder.AddScoped<ParameterExtractor>();
}
}