Skip to content

Commit 0a756f4

Browse files
committed
improve the generation of invocations for static methods
1 parent 500e418 commit 0a756f4

24 files changed

+289
-104
lines changed

sources/RevitDBExplorer/Application.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public Result OnStartup(UIControlledApplication application)
5252

5353
var panel = application.CreateRibbonPanel("Explorer");
5454
var cmdType = typeof(Command);
55-
var pushButtonData = new PushButtonData(cmdType.FullName, "Revit DB\r\nExplorer", cmdType.Assembly.Location, cmdType.FullName);
55+
var pushButtonData = new PushButtonData(cmdType.FullName, "Revit\r\nExplorer", cmdType.Assembly.Location, cmdType.FullName);
5656
pushButtonData.Image = new BitmapImage(new Uri("pack://application:,,,/RevitDBExplorer;component/Resources/RDBE.Icon.16.png", UriKind.RelativeOrAbsolute));
5757
pushButtonData.LargeImage = new BitmapImage(new Uri("pack://application:,,,/RevitDBExplorer;component/Resources/RDBE.Icon.32.png", UriKind.RelativeOrAbsolute));
5858
panel.AddItem(pushButtonData);

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@ internal class MemberOverride<TForType> : IMemberOverride
2424

2525
public static IMemberOverride ByFunc<TReturnType>(Expression<Func<Document, TForType, TReturnType>> getter)
2626
{
27-
var compiledGetter = getter.Compile();
28-
var methodCallExpression = getter.Body as MethodCallExpression;
29-
30-
string syntax = methodCallExpression.ToCeSharp();
27+
var compiledGetter = getter.Compile();
28+
string syntax = getter.ToCeSharp();
3129
var uniqueId = getter.GetUniqueId();
3230

3331
return new MemberOverride<TForType>()

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public static ISnoopableMemberTemplate Create<TReturnType>(Expression<Func<Docum
4040
var memberAccessor = new MemberAccessorByFunc<TForType, TReturnType>(compiledGetter);
4141

4242
memberAccessor.UniqueId = $"{typeof(TForType).Name}_{getter.GetUniqueId()}";
43-
memberAccessor.DefaultInvocation.Syntax = methodCallExpression.ToCeSharp();
43+
memberAccessor.DefaultInvocation.Syntax = getter.ToCeSharp();
4444

4545
return WithCustomAC(methodCallExpression.Method.DeclaringType, methodCallExpression.Method.Name, memberAccessor, canBeUsed, kind, () => RevitDocumentationReader.GetMethodComments(methodCallExpression.Method));
4646
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using System.Collections.Generic;
2+
using RevitDBExplorer.Domain.DataModel.Members;
3+
using RevitDBExplorer.Domain.DataModel.Members.Base;
4+
5+
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
6+
7+
namespace RevitDBExplorer.Domain.DataModel.MembersOverrides
8+
{
9+
internal class Application_Overrides : IHaveMembersOverrides
10+
{
11+
public IEnumerable<IMemberOverride> GetOverrides() =>
12+
[
13+
MemberOverride<Autodesk.Revit.ApplicationServices.Application>.ByFunc((document, element) => Autodesk.Revit.ApplicationServices.Application.GetFailureDefinitionRegistry()),
14+
];
15+
}
16+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System.Collections.Generic;
2+
using Autodesk.Revit.DB.Visual;
3+
using RevitDBExplorer.Domain.DataModel.Members;
4+
using RevitDBExplorer.Domain.DataModel.Members.Base;
5+
6+
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
7+
8+
namespace RevitDBExplorer.Domain.DataModel.MembersOverrides
9+
{
10+
internal class AssetProperty_Overrides : IHaveMembersOverrides
11+
{
12+
public IEnumerable<IMemberOverride> GetOverrides() =>
13+
[
14+
MemberOverride<AssetProperty>.ByFunc((document, target) => AssetProperty.GetTypeName(target.Type)),
15+
];
16+
}
17+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using System.Collections.Generic;
2+
using Autodesk.Revit.DB;
3+
using RevitDBExplorer.Domain.DataModel.Members;
4+
using RevitDBExplorer.Domain.DataModel.Members.Base;
5+
6+
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
7+
8+
namespace RevitDBExplorer.Domain.DataModel.MembersOverrides
9+
{
10+
internal class Category_Overrides : IHaveMembersOverrides
11+
{
12+
public IEnumerable<IMemberOverride> GetOverrides() =>
13+
[
14+
#if R2022_MIN && R2022_MAX
15+
MemberOverride<Category>.ByFunc((doc, category) => Category.GetBuiltInCategoryTypeId((BuiltInCategory)category.Id.IntegerValue)),
16+
#endif
17+
#if R2023_MIN
18+
MemberOverride<Category>.ByFunc((doc, category) => Category.GetBuiltInCategoryTypeId(category.BuiltInCategory)),
19+
#endif
20+
];
21+
}
22+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System.Collections.Generic;
2+
using Autodesk.Revit.DB;
3+
using RevitDBExplorer.Domain.DataModel.Members;
4+
using RevitDBExplorer.Domain.DataModel.Members.Base;
5+
6+
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
7+
8+
namespace RevitDBExplorer.Domain.DataModel.MembersOverrides
9+
{
10+
internal class XYZ_Overrides : IHaveMembersOverrides
11+
{
12+
public IEnumerable<IMemberOverride> GetOverrides() =>
13+
[
14+
MemberOverride<XYZ>.ByFunc((doc, point) => XYZ.IsWithinLengthLimits(point)),
15+
];
16+
}
17+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using System.Collections.Generic;
2+
using Autodesk.Revit.DB;
3+
using RevitDBExplorer.Domain.DataModel.Members;
4+
using RevitDBExplorer.Domain.DataModel.Members.Base;
5+
6+
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
7+
8+
namespace RevitDBExplorer.Domain.DataModel.MembersTemplates
9+
{
10+
internal class Application_Templates : IHaveMemberTemplates
11+
{
12+
public IEnumerable<ISnoopableMemberTemplate> GetTemplates() =>
13+
[
14+
MemberTemplate<Autodesk.Revit.ApplicationServices.Application>.Create((doc, category) => FormulaManager.GetFunctions()),
15+
MemberTemplate<Autodesk.Revit.ApplicationServices.Application>.Create((doc, category) => FormulaManager.GetOperators()),
16+
];
17+
}
18+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ public IEnumerable<ISnoopableMemberTemplate> GetTemplates() =>
1515
MemberTemplate<BoundingBoxXYZ>.WithCustomAC(typeof(BoundingBoxXYZ), "BoundingBoxIntersectsFilter", new BoundingBox_BoundingBoxIntersectsFilter(), kind: MemberKind.Extra, documentationFactoryMethod: () => new DocXml() { Summary ="TEST" }),
1616
];
1717
}
18-
}
18+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System.Collections.Generic;
2+
using Autodesk.Revit.DB;
3+
using RevitDBExplorer.Domain.DataModel.Members;
4+
using RevitDBExplorer.Domain.DataModel.Members.Base;
5+
6+
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
7+
8+
namespace RevitDBExplorer.Domain.DataModel.MembersTemplates
9+
{
10+
internal class Category_Templates : IHaveMemberTemplates
11+
{
12+
public IEnumerable<ISnoopableMemberTemplate> GetTemplates() =>
13+
[
14+
#if R2022_MIN
15+
MemberTemplate<Category>.Create((doc, category) => ParameterFilterUtilities.GetFilterableParametersInCommon(doc, new[] { category.Id } )),
16+
#endif
17+
];
18+
}
19+
}

0 commit comments

Comments
 (0)