更新整理
This commit is contained in:
24
ShrlAlgoToolkit.Revit/Assists/FuncFilter.cs
Normal file
24
ShrlAlgoToolkit.Revit/Assists/FuncFilter.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using Autodesk.Revit.DB;
|
||||
using Autodesk.Revit.UI.Selection;
|
||||
|
||||
namespace ShrlAlgoToolkit.Revit.Assists;
|
||||
|
||||
/// <summary>
|
||||
/// 任意选择过滤器
|
||||
/// </summary>
|
||||
public class FuncFilter(Func<Element, bool> allowElement, Func<Reference, XYZ, bool> allowReference = null)
|
||||
: ISelectionFilter
|
||||
{
|
||||
private readonly Func<Element, bool> elementFunc = allowElement;
|
||||
private readonly Func<Reference, XYZ, bool> referenceFunc = allowReference;
|
||||
|
||||
public bool AllowElement(Element elem)
|
||||
{
|
||||
return elementFunc(elem);
|
||||
}
|
||||
|
||||
public bool AllowReference(Reference reference, XYZ position)
|
||||
{
|
||||
return referenceFunc == null || referenceFunc(reference, position);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user