Skip to content

Commit

Permalink
Optimize extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
Nice3point committed May 8, 2024
1 parent 0ef3828 commit be71f9b
Show file tree
Hide file tree
Showing 36 changed files with 479 additions and 577 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

namespace RevitLookup.Core.ComponentModel.Descriptors;

public class AssetPropertiesDescriptor(AssetProperties assetProperties) : Descriptor, IDescriptorResolver
public sealed class AssetPropertiesDescriptor(AssetProperties assetProperties) : Descriptor, IDescriptorResolver
{
public ResolveSet Resolve(Document context, string target, ParameterInfo[] parameters)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

namespace RevitLookup.Core.ComponentModel.Descriptors;

public class AssetPropertyDescriptor(AssetProperty assetProperty) : Descriptor, IDescriptorResolver
public sealed class AssetPropertyDescriptor(AssetProperty assetProperty) : Descriptor, IDescriptorResolver
{
public ResolveSet Resolve(Document context, string target, ParameterInfo[] parameters)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,27 @@
// (Rights in Technical Data and Computer Software), as applicable.

using System.Reflection;
using Nice3point.Revit.Toolkit;
using RevitLookup.Core.Contracts;
using RevitLookup.Core.Objects;

namespace RevitLookup.Core.ComponentModel.Descriptors;

public class BasePointDescriptor(BasePoint basePoint) : Descriptor, IDescriptorResolver
public sealed class BasePointDescriptor : Descriptor, IDescriptorResolver
{
private readonly BasePoint _basePoint;

public BasePointDescriptor(BasePoint basePoint)
{
_basePoint = basePoint;
Name = ElementDescriptor.CreateName(basePoint);
}

public ResolveSet Resolve(Document context, string target, ParameterInfo[] parameters)
{
return target switch
{
nameof(BasePoint.GetSurveyPoint) => ResolveSet.Append(BasePoint.GetSurveyPoint(basePoint.Document)),
nameof(BasePoint.GetProjectBasePoint) => ResolveSet.Append(BasePoint.GetProjectBasePoint(basePoint.Document)),
nameof(BasePoint.GetSurveyPoint) => ResolveSet.Append(BasePoint.GetSurveyPoint(_basePoint.Document)),
nameof(BasePoint.GetProjectBasePoint) => ResolveSet.Append(BasePoint.GetProjectBasePoint(_basePoint.Document)),
_ => null
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,21 +36,19 @@ public CategoryDescriptor(Category category)

public void RegisterExtensions(IExtensionManager manager)
{
manager.Register(_category, extension =>
manager.Register("GetElements", context =>
{
extension.Name = "GetElements";
extension.Result = extension.Context
return context
#if REVIT2023_OR_GREATER
.GetInstances(_category.BuiltInCategory);
#else
.GetInstances((BuiltInCategory) _category.Id.IntegerValue);
#endif
});
#if !REVIT2023_OR_GREATER
manager.Register(_category, extension =>
manager.Register("BuiltInCategory", context =>
{
extension.Name = "BuiltInCategory";
extension.Result = (BuiltInCategory) extension.Value.Id.IntegerValue;
return (BuiltInCategory) extension.Value.Id.IntegerValue;
});
#endif
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,89 +28,29 @@ namespace RevitLookup.Core.ComponentModel.Descriptors;
public sealed class ColorDescriptor : Descriptor, IDescriptorExtension
{
private readonly Color _color;

public ColorDescriptor(Color color)
{
_color = color;
Name = color.IsValid ? $"RGB: {color.Red} {color.Green} {color.Blue}" : "The color represents uninitialized/invalid value";
}

public void RegisterExtensions(IExtensionManager manager)
{
manager.Register(_color, extension =>
{
extension.Name = "HEX";
extension.Result = ColorRepresentationUtils.ColorToHex(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "HEX int";
extension.Result = ColorRepresentationUtils.ColorToHexInteger(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "RGB";
extension.Result = ColorRepresentationUtils.ColorToRgb(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "HSL";
extension.Result = ColorRepresentationUtils.ColorToHsl(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "HSV";
extension.Result = ColorRepresentationUtils.ColorToHsv(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "CMYK";
extension.Result = ColorRepresentationUtils.ColorToCmyk(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "HSB";
extension.Result = ColorRepresentationUtils.ColorToHsb(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "HSI";
extension.Result = ColorRepresentationUtils.ColorToHsi(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "HWB";
extension.Result = ColorRepresentationUtils.ColorToHwb(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "NCol";
extension.Result = ColorRepresentationUtils.ColorToNCol(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "CIELAB";
extension.Result = ColorRepresentationUtils.ColorToCielab(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "CIEXYZ";
extension.Result = ColorRepresentationUtils.ColorToCieXyz(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "VEC4";
extension.Result = ColorRepresentationUtils.ColorToFloat(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "Decimal";
extension.Result = ColorRepresentationUtils.ColorToDecimal(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "Name";
extension.Result = ColorRepresentationUtils.GetColorName(extension.Value.GetDrawingColor());
});
manager.Register("HEX", _ => ColorRepresentationUtils.ColorToHex(_color.GetDrawingColor()));
manager.Register("HEX int", _ => ColorRepresentationUtils.ColorToHexInteger(_color.GetDrawingColor()));
manager.Register("RGB", _ => ColorRepresentationUtils.ColorToRgb(_color.GetDrawingColor()));
manager.Register("HSL", _ => ColorRepresentationUtils.ColorToHsl(_color.GetDrawingColor()));
manager.Register("HSV", _ => ColorRepresentationUtils.ColorToHsv(_color.GetDrawingColor()));
manager.Register("CMYK", _ => ColorRepresentationUtils.ColorToCmyk(_color.GetDrawingColor()));
manager.Register("HSB", _ => ColorRepresentationUtils.ColorToHsb(_color.GetDrawingColor()));
manager.Register("HSI", _ => ColorRepresentationUtils.ColorToHsi(_color.GetDrawingColor()));
manager.Register("HWB", _ => ColorRepresentationUtils.ColorToHwb(_color.GetDrawingColor()));
manager.Register("NCol", _ => ColorRepresentationUtils.ColorToNCol(_color.GetDrawingColor()));
manager.Register("CIELAB", _ => ColorRepresentationUtils.ColorToCielab(_color.GetDrawingColor()));
manager.Register("CIEXYZ", _ => ColorRepresentationUtils.ColorToCieXyz(_color.GetDrawingColor()));
manager.Register("VEC4", _ => ColorRepresentationUtils.ColorToFloat(_color.GetDrawingColor()));
manager.Register("Decimal", _ => ColorRepresentationUtils.ColorToDecimal(_color.GetDrawingColor()));
manager.Register("Name", _ => ColorRepresentationUtils.GetColorName(_color.GetDrawingColor()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,89 +28,29 @@ namespace RevitLookup.Core.ComponentModel.Descriptors;
public sealed class ColorMediaDescriptor : Descriptor, IDescriptorExtension
{
private readonly Color _color;

public ColorMediaDescriptor(Color color)
{
_color = color;
Name = $"RGB: {color.R} {color.B} {color.B}";
}

public void RegisterExtensions(IExtensionManager manager)
{
manager.Register(_color, extension =>
{
extension.Name = "HEX";
extension.Result = ColorRepresentationUtils.ColorToHex(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "HEX int";
extension.Result = ColorRepresentationUtils.ColorToHexInteger(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "RGB";
extension.Result = ColorRepresentationUtils.ColorToRgb(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "HSL";
extension.Result = ColorRepresentationUtils.ColorToHsl(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "HSV";
extension.Result = ColorRepresentationUtils.ColorToHsv(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "CMYK";
extension.Result = ColorRepresentationUtils.ColorToCmyk(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "HSB";
extension.Result = ColorRepresentationUtils.ColorToHsb(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "HSI";
extension.Result = ColorRepresentationUtils.ColorToHsi(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "HWB";
extension.Result = ColorRepresentationUtils.ColorToHwb(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "NCol";
extension.Result = ColorRepresentationUtils.ColorToNCol(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "CIELAB";
extension.Result = ColorRepresentationUtils.ColorToCielab(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "CIEXYZ";
extension.Result = ColorRepresentationUtils.ColorToCieXyz(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "VEC4";
extension.Result = ColorRepresentationUtils.ColorToFloat(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "Decimal";
extension.Result = ColorRepresentationUtils.ColorToDecimal(extension.Value.GetDrawingColor());
});
manager.Register(_color, extension =>
{
extension.Name = "Name";
extension.Result = ColorRepresentationUtils.GetColorName(extension.Value.GetDrawingColor());
});
manager.Register("HEX", _ => ColorRepresentationUtils.ColorToHex(_color.GetDrawingColor()));
manager.Register("HEX int", _ => ColorRepresentationUtils.ColorToHexInteger(_color.GetDrawingColor()));
manager.Register("RGB", _ => ColorRepresentationUtils.ColorToRgb(_color.GetDrawingColor()));
manager.Register("HSL", _ => ColorRepresentationUtils.ColorToHsl(_color.GetDrawingColor()));
manager.Register("HSV", _ => ColorRepresentationUtils.ColorToHsv(_color.GetDrawingColor()));
manager.Register("CMYK", _ => ColorRepresentationUtils.ColorToCmyk(_color.GetDrawingColor()));
manager.Register("HSB", _ => ColorRepresentationUtils.ColorToHsb(_color.GetDrawingColor()));
manager.Register("HSI", _ => ColorRepresentationUtils.ColorToHsi(_color.GetDrawingColor()));
manager.Register("HWB", _ => ColorRepresentationUtils.ColorToHwb(_color.GetDrawingColor()));
manager.Register("NCol", _ => ColorRepresentationUtils.ColorToNCol(_color.GetDrawingColor()));
manager.Register("CIELAB", _ => ColorRepresentationUtils.ColorToCielab(_color.GetDrawingColor()));
manager.Register("CIEXYZ", _ => ColorRepresentationUtils.ColorToCieXyz(_color.GetDrawingColor()));
manager.Register("VEC4", _ => ColorRepresentationUtils.ColorToFloat(_color.GetDrawingColor()));
manager.Register("Decimal", _ => ColorRepresentationUtils.ColorToDecimal(_color.GetDrawingColor()));
manager.Register("Name", _ => ColorRepresentationUtils.GetColorName(_color.GetDrawingColor()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

namespace RevitLookup.Core.ComponentModel.Descriptors;

public class ConnectorManagerDescriptor(ConnectorManager connectorManager) : Descriptor, IDescriptorResolver
public sealed class ConnectorManagerDescriptor(ConnectorManager connectorManager) : Descriptor, IDescriptorResolver
{
public ResolveSet Resolve(Document context, string target, ParameterInfo[] parameters)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

namespace RevitLookup.Core.ComponentModel.Descriptors;

public class CurtainGridDescriptor(CurtainGrid curtainGrid) : Descriptor, IDescriptorResolver
public sealed class CurtainGridDescriptor(CurtainGrid curtainGrid) : Descriptor, IDescriptorResolver
{
public ResolveSet Resolve(Document context, string target, ParameterInfo[] parameters)
{
Expand Down
Loading

0 comments on commit be71f9b

Please sign in to comment.