Skip to content

Commit 496fa08

Browse files
committed
refactor: more more compact syntax for MembersTemplates
1 parent 6e26331 commit 496fa08

21 files changed

+126
-297
lines changed

sources/RevitDBExplorer/Domain/DataModel/Members/Base/MemberOverride.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,19 @@ internal class MemberOverride<TForType> : IMemberOverride
2525
public static IMemberOverride ByFunc<TReturnType>(Expression<Func<Document, TForType, TReturnType>> getter)
2626
{
2727
var compiledGetter = getter.Compile();
28+
var methodCallExpression = getter.Body as MethodCallExpression;
29+
//var syntax = methodCallExpression.ToString();
2830
var uniqueId = getter.GetUniqueId();
2931

3032
return new MemberOverride<TForType>()
3133
{
3234
UniqueId = uniqueId,
33-
MemberAccessorFactory = () => new MemberAccessorByFunc<TForType, TReturnType>(compiledGetter)
35+
MemberAccessorFactory = () =>
36+
{
37+
var accessor = new MemberAccessorByFunc<TForType, TReturnType>(compiledGetter);
38+
//accessor.DefaultInvocation.Syntax = syntax;
39+
return accessor;
40+
}
3441
};
3542
}
3643
}

sources/RevitDBExplorer/Domain/DataModel/MembersOverrides/RebarBarType/RebarBarType_GetAutoCalcHookLengths.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ internal class RebarBarType_GetAutoCalcHookLengths : MemberAccessorByType<RebarB
2626
protected override IEnumerable<SnoopableObject> Snoop(SnoopableContext context, RebarBarType rebarBarType)
2727
{
2828
var hookTypes = new FilteredElementCollector(context.Document).OfClass(typeof(RebarHookType));
29-
foreach(var hookType in hookTypes)
29+
foreach (var hookType in hookTypes)
3030
{
3131
yield return SnoopableObject.CreateInOutPair(context.Document, hookType, rebarBarType.GetAutoCalcHookLengths(hookType.Id));
3232
}

sources/RevitDBExplorer/Domain/DataModel/MembersOverrides/RebarBarType/RebarBarType_GetHookLength.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ internal class RebarBarType_GetHookLength : MemberAccessorByType<RebarBarType>,
2626
protected override IEnumerable<SnoopableObject> Snoop(SnoopableContext context, RebarBarType rebarBarType)
2727
{
2828
var hookTypes = new FilteredElementCollector(context.Document).OfClass(typeof(RebarHookType));
29-
foreach(var hookType in hookTypes)
29+
foreach (var hookType in hookTypes)
3030
{
3131
yield return SnoopableObject.CreateInOutPair(context.Document, hookType, rebarBarType.GetHookLength(hookType.Id));
3232
}

sources/RevitDBExplorer/Domain/DataModel/MembersOverrides/RebarBarType/RebarBarType_GetHookOffsetLength.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ protected override IEnumerable<SnoopableObject> Snoop(SnoopableContext context,
2727
{
2828
var hookTypes = new FilteredElementCollector(context.Document).OfClass(typeof(RebarHookType));
2929
var result = new List<SnoopableObject>();
30-
foreach(var hookType in hookTypes)
30+
foreach (var hookType in hookTypes)
3131
{
3232
try
3333
{
3434
result.Add(SnoopableObject.CreateInOutPair(context.Document, hookType, rebarBarType.GetHookOffsetLength(hookType.Id)));
3535
}
36-
catch(Exception ex)
36+
catch (Exception ex)
3737
{
3838
result.Add(SnoopableObject.CreateInOutPair(context.Document, hookType, ex));
3939
}

sources/RevitDBExplorer/Domain/DataModel/MembersOverrides/RebarBarType/RebarBarType_GetHookPermission.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ internal class RebarBarType_GetHookPermission : MemberAccessorByType<RebarBarTyp
2626
protected override IEnumerable<SnoopableObject> Snoop(SnoopableContext context, RebarBarType rebarBarType)
2727
{
2828
var hookTypes = new FilteredElementCollector(context.Document).OfClass(typeof(RebarHookType));
29-
foreach(var hookType in hookTypes)
29+
foreach (var hookType in hookTypes)
3030
{
3131
yield return SnoopableObject.CreateInOutPair(context.Document, hookType, rebarBarType.GetHookPermission(hookType.Id));
3232
}

sources/RevitDBExplorer/Domain/DataModel/MembersOverrides/RebarBarType/RebarBarType_GetHookTangentLength.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ internal class RebarBarType_GetHookTangentLength : MemberAccessorByType<RebarBar
2626
protected override IEnumerable<SnoopableObject> Snoop(SnoopableContext context, RebarBarType rebarBarType)
2727
{
2828
var hookTypes = new FilteredElementCollector(context.Document).OfClass(typeof(RebarHookType));
29-
foreach(var hookType in hookTypes)
29+
foreach (var hookType in hookTypes)
3030
{
3131
yield return SnoopableObject.CreateInOutPair(context.Document, hookType, rebarBarType.GetHookTangentLength(hookType.Id));
3232
}

sources/RevitDBExplorer/Domain/DataModel/MembersTemplates/BoundingBox_Templates.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
using System.Collections.Generic;
2-
using System.Linq;
32
using Autodesk.Revit.DB;
4-
using RevitDBExplorer.Domain.DataModel.MembersTemplates.Accessors;
53
using RevitDBExplorer.Domain.DataModel.Members;
64
using RevitDBExplorer.Domain.DataModel.Members.Base;
5+
using RevitDBExplorer.Domain.DataModel.MembersTemplates.Accessors;
76

87
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
98

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System;
22
using System.Collections.Generic;
3-
using System.Linq;
43
using Autodesk.Revit.DB;
54
using RevitDBExplorer.Domain.DataModel.Members;
65
using RevitDBExplorer.Domain.DataModel.Members.Base;
@@ -10,36 +9,24 @@
109
namespace RevitDBExplorer.Domain.DataModel.MembersTemplates
1110
{
1211
internal class Document_Templates : IHaveMemberTemplates
13-
{
14-
private static readonly IEnumerable<ISnoopableMemberTemplate> templates = Enumerable.Empty<ISnoopableMemberTemplate>();
15-
16-
static Document_Templates()
17-
{
18-
templates = new ISnoopableMemberTemplate[]
19-
{
20-
MemberTemplate<Document>.Create((doc, target) => Document.GetDocumentVersion(target), kind: MemberKind.StaticMethod),
12+
{
13+
public IEnumerable<ISnoopableMemberTemplate> GetTemplates() =>
14+
[
15+
MemberTemplate<Document>.Create((doc, target) => Document.GetDocumentVersion(target), kind: MemberKind.StaticMethod),
2116
#if R2023_MIN
22-
MemberTemplate<Document>.Create((doc, target) => target.GetChangedElements(Guid.Empty), kind: MemberKind.Method),
17+
MemberTemplate<Document>.Create((doc, target) => target.GetChangedElements(Guid.Empty), kind: MemberKind.Method),
2318
#endif
2419

25-
MemberTemplate<Document>.Create((doc, target) => BasicFileInfo.Extract(target.PathName), kind: MemberKind.StaticMethod),
20+
MemberTemplate<Document>.Create((doc, target) => BasicFileInfo.Extract(target.PathName), kind: MemberKind.StaticMethod),
2621

27-
MemberTemplate<Document>.Create((doc, target) => BasePoint.GetSurveyPoint(doc), kind: MemberKind.StaticMethod),
28-
MemberTemplate<Document>.Create((doc, target) => BasePoint.GetProjectBasePoint(doc), kind: MemberKind.StaticMethod),
29-
MemberTemplate<Document>.Create((doc, target) => InternalOrigin.Get(doc), kind: MemberKind.StaticMethod),
22+
MemberTemplate<Document>.Create((doc, target) => BasePoint.GetSurveyPoint(doc), kind: MemberKind.StaticMethod),
23+
MemberTemplate<Document>.Create((doc, target) => BasePoint.GetProjectBasePoint(doc), kind: MemberKind.StaticMethod),
24+
MemberTemplate<Document>.Create((doc, target) => InternalOrigin.Get(doc), kind: MemberKind.StaticMethod),
3025

3126
#if R2024_MIN
32-
MemberTemplate<Document>.Create((doc, target) => doc.GetUnusedElements(new HashSet<ElementId>()), kind: MemberKind.Method),
33-
MemberTemplate<Document>.Create((doc, target) => doc.GetAllUnusedElements(new HashSet<ElementId>()), kind: MemberKind.Method),
27+
MemberTemplate<Document>.Create((doc, target) => doc.GetUnusedElements(new HashSet<ElementId>()), kind: MemberKind.Method),
28+
MemberTemplate<Document>.Create((doc, target) => doc.GetAllUnusedElements(new HashSet<ElementId>()), kind: MemberKind.Method),
3429
#endif
35-
36-
};
37-
}
38-
39-
40-
public IEnumerable<ISnoopableMemberTemplate> GetTemplates()
41-
{
42-
return templates;
43-
}
30+
];
4431
}
45-
}
32+
}
Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,35 @@
11
using System.Collections.Generic;
2-
using System.Linq;
32
using Autodesk.Revit.DB;
43
using Autodesk.Revit.DB.Structure;
54
using Autodesk.Revit.DB.Structure.StructuralSections;
6-
using RevitDBExplorer.Domain.DataModel.MembersTemplates.Accessors;
75
using RevitDBExplorer.Domain.DataModel.Members;
86
using RevitDBExplorer.Domain.DataModel.Members.Base;
7+
using RevitDBExplorer.Domain.DataModel.MembersTemplates.Accessors;
98

109
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
1110

1211
namespace RevitDBExplorer.Domain.DataModel.MembersTemplates
1312
{
1413
internal class Element_Templates : IHaveMemberTemplates
1514
{
16-
private static readonly IEnumerable<ISnoopableMemberTemplate> templates = Enumerable.Empty<ISnoopableMemberTemplate>();
17-
18-
static Element_Templates()
19-
{
20-
templates = new ISnoopableMemberTemplate[]
21-
{
22-
MemberTemplate<Element>.Create((doc, target) => doc.ActiveView.GetElementOverrides(target.Id), kind: MemberKind.AsArgument),
23-
MemberTemplate<Element>.Create((doc, target) => doc.GetWorksetId(target.Id), kind: MemberKind.AsArgument),
24-
MemberTemplate<FamilyInstance>.Create((doc, target) => StructuralSectionUtils.GetStructuralSection(doc, target.Id), kind: MemberKind.StaticMethod),
15+
public IEnumerable<ISnoopableMemberTemplate> GetTemplates() =>
16+
[
17+
MemberTemplate<Element>.Create((doc, target) => doc.ActiveView.GetElementOverrides(target.Id), kind: MemberKind.AsArgument),
18+
MemberTemplate<Element>.Create((doc, target) => doc.GetWorksetId(target.Id), kind: MemberKind.AsArgument),
19+
MemberTemplate<FamilyInstance>.Create((doc, target) => StructuralSectionUtils.GetStructuralSection(doc, target.Id), kind: MemberKind.StaticMethod),
2520

26-
MemberTemplate<Reference>.Create((doc, target) => doc.GetElement(target.ElementId).GetGeometryObjectFromReference(target), canBeUsed: x => x.ElementId != null, kind: MemberKind.AsArgument),
21+
MemberTemplate<Reference>.Create((doc, target) => doc.GetElement(target.ElementId).GetGeometryObjectFromReference(target), canBeUsed: x => x.ElementId != null, kind: MemberKind.AsArgument),
2722

2823
#if R2023_MIN
29-
MemberTemplate<Element>.Create((doc, target) => AnalyticalNodeData.GetAnalyticalNodeData(target), kind: MemberKind.StaticMethod, canBeUsed: x => x is ReferencePoint),
30-
MemberTemplate<Element>.Create(typeof(AnalyticalToPhysicalAssociationManager), nameof(AnalyticalToPhysicalAssociationManager.HasAssociation), new AnalyticalToPhysicalAssociationManager_HasAssociation(), kind: MemberKind.AsArgument),
31-
MemberTemplate<Element>.Create(typeof(AnalyticalToPhysicalAssociationManager), nameof(AnalyticalToPhysicalAssociationManager.GetAssociatedElementId), new AnalyticalToPhysicalAssociationManager_GetAssociatedElementId(), kind: MemberKind.AsArgument),
24+
MemberTemplate<Element>.Create((doc, target) => AnalyticalNodeData.GetAnalyticalNodeData(target), kind: MemberKind.StaticMethod, canBeUsed: x => x is ReferencePoint),
25+
MemberTemplate<Element>.Create(typeof(AnalyticalToPhysicalAssociationManager), nameof(AnalyticalToPhysicalAssociationManager.HasAssociation), new AnalyticalToPhysicalAssociationManager_HasAssociation(), kind: MemberKind.AsArgument),
26+
MemberTemplate<Element>.Create(typeof(AnalyticalToPhysicalAssociationManager), nameof(AnalyticalToPhysicalAssociationManager.GetAssociatedElementId), new AnalyticalToPhysicalAssociationManager_GetAssociatedElementId(), kind: MemberKind.AsArgument),
3227
#endif
3328
#if R2024_MIN
34-
MemberTemplate<Element>.Create((doc, target) => AnalyticalToPhysicalAssociationManager.IsAnalyticalElement(doc, target.Id), kind: MemberKind.StaticMethod),
35-
MemberTemplate<Element>.Create((doc, target) => AnalyticalToPhysicalAssociationManager.IsPhysicalElement(doc, target.Id), kind: MemberKind.StaticMethod),
36-
MemberTemplate<Element>.Create(typeof(AnalyticalToPhysicalAssociationManager), nameof(AnalyticalToPhysicalAssociationManager.GetAssociatedElementIds), new AnalyticalToPhysicalAssociationManager_GetAssociatedElementIds(), kind: MemberKind.AsArgument),
29+
MemberTemplate<Element>.Create((doc, target) => AnalyticalToPhysicalAssociationManager.IsAnalyticalElement(doc, target.Id), kind: MemberKind.StaticMethod),
30+
MemberTemplate<Element>.Create((doc, target) => AnalyticalToPhysicalAssociationManager.IsPhysicalElement(doc, target.Id), kind: MemberKind.StaticMethod),
31+
MemberTemplate<Element>.Create(typeof(AnalyticalToPhysicalAssociationManager), nameof(AnalyticalToPhysicalAssociationManager.GetAssociatedElementIds), new AnalyticalToPhysicalAssociationManager_GetAssociatedElementIds(), kind: MemberKind.AsArgument),
3732
#endif
38-
39-
};
40-
}
41-
42-
43-
public IEnumerable<ISnoopableMemberTemplate> GetTemplates()
44-
{
45-
return templates;
46-
}
33+
];
4734
}
4835
}
Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System.Collections.Generic;
2-
using System.Linq;
32
using Autodesk.Revit.DB;
43
using RevitDBExplorer.Domain.DataModel.Members;
54
using RevitDBExplorer.Domain.DataModel.Members.Base;
@@ -10,19 +9,9 @@ namespace RevitDBExplorer.Domain.DataModel.MembersTemplates
109
{
1110
internal class FamilyInstance_Templates : IHaveMemberTemplates
1211
{
13-
private static readonly IEnumerable<ISnoopableMemberTemplate> templates = Enumerable.Empty<ISnoopableMemberTemplate>();
14-
15-
static FamilyInstance_Templates()
16-
{
17-
templates = new ISnoopableMemberTemplate[]
18-
{
19-
MemberTemplate<FamilyInstance>.Create((doc, target) => AdaptiveComponentInstanceUtils.GetInstancePlacementPointElementRefIds(target), canBeUsed: (x)=> AdaptiveComponentInstanceUtils.IsAdaptiveComponentInstance(x) , kind: MemberKind.StaticMethod),
20-
};
21-
}
22-
23-
public IEnumerable<ISnoopableMemberTemplate> GetTemplates()
24-
{
25-
return templates;
26-
}
12+
public IEnumerable<ISnoopableMemberTemplate> GetTemplates() =>
13+
[
14+
MemberTemplate<FamilyInstance>.Create((doc, target) => AdaptiveComponentInstanceUtils.GetInstancePlacementPointElementRefIds(target), canBeUsed: (x)=> AdaptiveComponentInstanceUtils.IsAdaptiveComponentInstance(x) , kind: MemberKind.StaticMethod),
15+
];
2716
}
28-
}
17+
}

0 commit comments

Comments
 (0)