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); } }