Skip to content

Commit 572a8d1

Browse files
committed
handle RebarBarType crank members
1 parent 422c3aa commit 572a8d1

File tree

9 files changed

+237
-1
lines changed

9 files changed

+237
-1
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq.Expressions;
4+
using Autodesk.Revit.DB;
5+
using Autodesk.Revit.DB.Structure;
6+
using RevitDBExplorer.Domain.DataModel.Accessors;
7+
using RevitDBExplorer.Domain.DataModel.Members;
8+
using RevitDBExplorer.Domain.DataModel.Members.Accessors;
9+
10+
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
11+
12+
namespace RevitDBExplorer.Domain.DataModel.MembersOverrides
13+
{
14+
#if R2026_MIN
15+
internal class RebarBarType_GetAutoCalculatedCrank : MemberAccessorByType<RebarBarType>, ICanCreateMemberAccessor
16+
{
17+
IEnumerable<LambdaExpression> ICanCreateMemberAccessor.GetHandledMembers() => [ (RebarBarType x, ElementId i) => x.GetAutoCalculatedCrank(i) ];
18+
19+
20+
protected override ReadResult Read(SnoopableContext context, RebarBarType rebarBarType) => new()
21+
{
22+
Label = Labeler.GetLabelForCollection(nameof(Boolean), null),
23+
CanBeSnooped = true
24+
};
25+
26+
27+
protected override IEnumerable<SnoopableObject> Snoop(SnoopableContext context, RebarBarType rebarBarType)
28+
{
29+
var crankTypes = RebarCrankTypeUtils.GetAllRebarCrankTypes(context.Document);
30+
foreach (var crankType in crankTypes)
31+
{
32+
yield return SnoopableObject.CreateInOutPair(context.Document, crankType, rebarBarType.GetAutoCalculatedCrank(crankType));
33+
}
34+
}
35+
}
36+
#endif
37+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq.Expressions;
4+
using Autodesk.Revit.DB;
5+
using Autodesk.Revit.DB.Structure;
6+
using RevitDBExplorer.Domain.DataModel.Accessors;
7+
using RevitDBExplorer.Domain.DataModel.Members;
8+
using RevitDBExplorer.Domain.DataModel.Members.Accessors;
9+
10+
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
11+
12+
namespace RevitDBExplorer.Domain.DataModel.MembersOverrides
13+
{
14+
#if R2026_MIN
15+
internal class RebarBarType_GetCrankLength : MemberAccessorByType<RebarBarType>, ICanCreateMemberAccessor
16+
{
17+
IEnumerable<LambdaExpression> ICanCreateMemberAccessor.GetHandledMembers() => [ (RebarBarType x, ElementId i) => x.GetCrankLength(i) ];
18+
19+
20+
protected override ReadResult Read(SnoopableContext context, RebarBarType rebarBarType) => new()
21+
{
22+
Label = Labeler.GetLabelForCollection(nameof(Boolean), null),
23+
CanBeSnooped = true
24+
};
25+
26+
27+
protected override IEnumerable<SnoopableObject> Snoop(SnoopableContext context, RebarBarType rebarBarType)
28+
{
29+
var crankTypes = RebarCrankTypeUtils.GetAllRebarCrankTypes(context.Document);
30+
foreach (var crankType in crankTypes)
31+
{
32+
yield return SnoopableObject.CreateInOutPair(context.Document, crankType, rebarBarType.GetCrankLength(crankType));
33+
}
34+
}
35+
}
36+
#endif
37+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq.Expressions;
4+
using Autodesk.Revit.DB;
5+
using Autodesk.Revit.DB.Structure;
6+
using RevitDBExplorer.Domain.DataModel.Accessors;
7+
using RevitDBExplorer.Domain.DataModel.Members;
8+
using RevitDBExplorer.Domain.DataModel.Members.Accessors;
9+
10+
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
11+
12+
namespace RevitDBExplorer.Domain.DataModel.MembersOverrides
13+
{
14+
#if R2026_MIN
15+
internal class RebarBarType_GetCrankAngledLength : MemberAccessorByType<RebarBarType>, ICanCreateMemberAccessor
16+
{
17+
IEnumerable<LambdaExpression> ICanCreateMemberAccessor.GetHandledMembers() => [ (RebarBarType x, ElementId i) => x.GetCrankRatio(i) ];
18+
19+
20+
protected override ReadResult Read(SnoopableContext context, RebarBarType rebarBarType) => new()
21+
{
22+
Label = Labeler.GetLabelForCollection(nameof(Boolean), null),
23+
CanBeSnooped = true
24+
};
25+
26+
27+
protected override IEnumerable<SnoopableObject> Snoop(SnoopableContext context, RebarBarType rebarBarType)
28+
{
29+
var crankTypes = RebarCrankTypeUtils.GetAllRebarCrankTypes(context.Document);
30+
foreach (var crankType in crankTypes)
31+
{
32+
yield return SnoopableObject.CreateInOutPair(context.Document, crankType, rebarBarType.GetCrankAngledLength(crankType));
33+
}
34+
}
35+
}
36+
#endif
37+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq.Expressions;
4+
using Autodesk.Revit.DB;
5+
using Autodesk.Revit.DB.Structure;
6+
using RevitDBExplorer.Domain.DataModel.Accessors;
7+
using RevitDBExplorer.Domain.DataModel.Members;
8+
using RevitDBExplorer.Domain.DataModel.Members.Accessors;
9+
10+
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
11+
12+
namespace RevitDBExplorer.Domain.DataModel.MembersOverrides
13+
{
14+
#if R2026_MIN
15+
internal class RebarBarType_GetCrankOffsetLength : MemberAccessorByType<RebarBarType>, ICanCreateMemberAccessor
16+
{
17+
IEnumerable<LambdaExpression> ICanCreateMemberAccessor.GetHandledMembers() => [ (RebarBarType x, ElementId i) => x.GetCrankRatio(i) ];
18+
19+
20+
protected override ReadResult Read(SnoopableContext context, RebarBarType rebarBarType) => new()
21+
{
22+
Label = Labeler.GetLabelForCollection(nameof(Boolean), null),
23+
CanBeSnooped = true
24+
};
25+
26+
27+
protected override IEnumerable<SnoopableObject> Snoop(SnoopableContext context, RebarBarType rebarBarType)
28+
{
29+
var crankTypes = RebarCrankTypeUtils.GetAllRebarCrankTypes(context.Document);
30+
foreach (var crankType in crankTypes)
31+
{
32+
yield return SnoopableObject.CreateInOutPair(context.Document, crankType, rebarBarType.GetCrankOffsetLength(crankType));
33+
}
34+
}
35+
}
36+
#endif
37+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq.Expressions;
4+
using Autodesk.Revit.DB;
5+
using Autodesk.Revit.DB.Structure;
6+
using RevitDBExplorer.Domain.DataModel.Accessors;
7+
using RevitDBExplorer.Domain.DataModel.Members;
8+
using RevitDBExplorer.Domain.DataModel.Members.Accessors;
9+
10+
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
11+
12+
namespace RevitDBExplorer.Domain.DataModel.MembersOverrides
13+
{
14+
#if R2026_MIN
15+
internal class RebarBarType_GetCrankRatio : MemberAccessorByType<RebarBarType>, ICanCreateMemberAccessor
16+
{
17+
IEnumerable<LambdaExpression> ICanCreateMemberAccessor.GetHandledMembers() => [ (RebarBarType x, ElementId i) => x.GetCrankRatio(i) ];
18+
19+
20+
protected override ReadResult Read(SnoopableContext context, RebarBarType rebarBarType) => new()
21+
{
22+
Label = Labeler.GetLabelForCollection(nameof(Boolean), null),
23+
CanBeSnooped = true
24+
};
25+
26+
27+
protected override IEnumerable<SnoopableObject> Snoop(SnoopableContext context, RebarBarType rebarBarType)
28+
{
29+
var crankTypes = RebarCrankTypeUtils.GetAllRebarCrankTypes(context.Document);
30+
foreach (var crankType in crankTypes)
31+
{
32+
yield return SnoopableObject.CreateInOutPair(context.Document, crankType, rebarBarType.GetCrankRatio(crankType));
33+
}
34+
}
35+
}
36+
#endif
37+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq.Expressions;
4+
using Autodesk.Revit.DB;
5+
using Autodesk.Revit.DB.Structure;
6+
using RevitDBExplorer.Domain.DataModel.Accessors;
7+
using RevitDBExplorer.Domain.DataModel.Members;
8+
using RevitDBExplorer.Domain.DataModel.Members.Accessors;
9+
10+
// (c) Revit Database Explorer https://github.com/NeVeSpl/RevitDBExplorer/blob/main/license.md
11+
12+
namespace RevitDBExplorer.Domain.DataModel.MembersOverrides
13+
{
14+
#if R2026_MIN
15+
internal class RebarBarType_GetCrankStraightLength : MemberAccessorByType<RebarBarType>, ICanCreateMemberAccessor
16+
{
17+
IEnumerable<LambdaExpression> ICanCreateMemberAccessor.GetHandledMembers() => [ (RebarBarType x, ElementId i) => x.GetCrankRatio(i) ];
18+
19+
20+
protected override ReadResult Read(SnoopableContext context, RebarBarType rebarBarType) => new()
21+
{
22+
Label = Labeler.GetLabelForCollection(nameof(Boolean), null),
23+
CanBeSnooped = true
24+
};
25+
26+
27+
protected override IEnumerable<SnoopableObject> Snoop(SnoopableContext context, RebarBarType rebarBarType)
28+
{
29+
var crankTypes = RebarCrankTypeUtils.GetAllRebarCrankTypes(context.Document);
30+
foreach (var crankType in crankTypes)
31+
{
32+
yield return SnoopableObject.CreateInOutPair(context.Document, crankType, rebarBarType.GetCrankStraightLength(crankType));
33+
}
34+
}
35+
}
36+
#endif
37+
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ public IEnumerable<ISnoopableMemberTemplate> GetTemplates() =>
1313
[
1414
MemberTemplate<Autodesk.Revit.ApplicationServices.Application>.Create((doc, category) => FormulaManager.GetFunctions()),
1515
MemberTemplate<Autodesk.Revit.ApplicationServices.Application>.Create((doc, category) => FormulaManager.GetOperators()),
16+
17+
18+
MemberTemplate<Autodesk.Revit.ApplicationServices.Application>.Create((doc, category) => OptionalFunctionalityUtils.IsGraphicsAvailable()),
19+
MemberTemplate<Autodesk.Revit.ApplicationServices.Application>.Create((doc, category) => OptionalFunctionalityUtils.IsIFCAvailable()),
20+
#if R2026_MIN
21+
MemberTemplate<Autodesk.Revit.ApplicationServices.Application>.Create((doc, category) => OptionalFunctionalityUtils.IsMaterialLibraryAvailable()),
22+
#endif
1623
];
1724
}
1825
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ public IEnumerable<ISnoopableMemberTemplate> GetTemplates() =>
6161

6262
MemberTemplate<ForgeTypeId>.Create((doc, forgeId) => FormatOptions.GetValidSymbols(forgeId), x => UnitUtils.IsUnit(x)),
6363
MemberTemplate<ForgeTypeId>.Create((doc, forgeId) => FormatOptions.CanHaveSymbol(forgeId), x => UnitUtils.IsUnit(x)),
64+
65+
#if R2026_MIN
66+
MemberTemplate<ForgeTypeId>.Create((doc, forgeId) => ParameterUtils.GetBuiltInParameterGroupTypeId(forgeId), x=> ParameterUtils.IsBuiltInParameter(x)),
67+
#endif
6468
];
6569
}
6670
}

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ public IEnumerable<ISnoopableMemberTemplate> GetTemplates() =>
1717
MemberTemplate<Solid>.Create((document, target) => SolidUtils.IsValidForTessellation(target)),
1818
MemberTemplate<Solid>.Create((document, target) => SolidUtils.TessellateSolidOrShell(target, new SolidOrShellTessellationControls()), canBeUsed: x => SolidUtils.IsValidForTessellation(x)),
1919

20-
20+
#if R2026_MIN
21+
MemberTemplate<Solid>.Create((document, target) => SolidUtils.ComputeIsTopologicallyClosed(target)),
22+
MemberTemplate<Solid>.Create((document, target) => SolidUtils.ComputeIsGeometricallyClosed(target)),
23+
#endif
2124
];
2225
}
2326
}

0 commit comments

Comments
 (0)