using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
namespace ShrlAlgoToolkit.Revit.Assists;
///
/// 任意选择过滤器
///
public class FuncFilter(Func allowElement, Func allowReference = null)
: ISelectionFilter
{
private readonly Func elementFunc = allowElement;
private readonly Func referenceFunc = allowReference;
public bool AllowElement(Element elem)
{
return elementFunc(elem);
}
public bool AllowReference(Reference reference, XYZ position)
{
return referenceFunc == null || referenceFunc(reference, position);
}
}