Skip to main content

revit-selection-filter

Filter which elements and references a user can pick in Autodesk Revit UI with the Nice3point.Revit.Toolkit SelectionConfiguration, not a hand-rolled ISelectionFilter. USE FOR: constraining an interactive Selection.PickObject/PickObjects with a fluent Allow.Element / Allow.Reference filter. DO NOT USE FOR: headless API callbacks such as family load or duplicate-type options (use Toolkit option handlers like FamilyLoadOptions).

Ir para a instalação

Informações da origem

Repositório
Nice3point/revit-skills
Última atividade na origem
6 de setembro de 2026 às 12:40
Idioma detectado do SKILL.md
inglês
Estrelas
13
Forks
3

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
revit-selection-filter
description
Filter which elements and references a user can pick in Autodesk Revit UI with the Nice3point.Revit.Toolkit SelectionConfiguration, not a hand-rolled ISelectionFilter. USE FOR: constraining an interactive Selection.PickObject/PickObjects with a fluent Allow.Element / Allow.Reference filter. DO NOT USE FOR: headless API callbacks such as family load or duplicate-type options (use Toolkit option handlers like FamilyLoadOptions).
license
MIT
# Revit Selection Filter `Selection.PickObject` takes an `ISelectionFilter` that constrains what the user may pick. `SelectionConfiguration` (from `Nice3point.Revit.Toolkit`) builds that filter from two lambdas; no hand-rolled class is needed. It drives an interactive pick and needs the Revit UI. ## When to use - Restricting an interactive pick to a category, type, or geometry kind. ## When not to use - Constraining a headless API callback such as family load or duplicate-type options — use a Toolkit option handler like `FamilyLoadOptions`. ## Workflow ### Step 1: Configure the allowed elements and references `Allow.Element` gates which elements are pickable; `Allow.Reference` gates which references (faces, edges, points). Set either or both — each returns the configuration and they chain — then pass `configuration.Filter` to the pick call. ```csharp var configuration = new SelectionConfiguration() .Allow.Element(element => element.Category.Id.IsCategory(BuiltInCategory.OST_Walls)) .Allow.Reference((reference, position) => false); var picked = uiDocument.Selection.PickObject(ObjectType.Element, configuration.Filter); ``` ### Step 2: Verify Run the command and confirm only the intended elements or references highlight and accept a pick. ## Validation - [ ] The filter uses `SelectionConfiguration`, not a hand-rolled `ISelectionFilter`. - [ ] `Allow.Element`/`Allow.Reference` express the rule with a lambda, not a new class. ## Common Pitfalls | Pitfall | Correct approach | |---------------------------------------------------|-----------------------------------------------------------| | A bespoke `ISelectionFilter` for a category check | Use `SelectionConfiguration().Allow.Element(...)`. | | Filtering references with an element-only filter | Add `Allow.Reference((reference, position) => ...)`. | | `SelectionConfiguration` not found | The `Nice3point.Revit.Toolkit` package is not referenced. |
Ver no GitHub