RevitLookup is an inspection tool for Autodesk Revit. Core principles:
- Dual Environments: Production (Revit.exe) and Playground (standalone WPF). Code must be environment-agnostic.
- LookupEngine: Core logic resides in LookupEngine and must be decoupled from Revit UI.
- Production Standards: Enterprise-grade C#, SOLID, and strict naming conventions.
- No Revit UI in Core: Never reference Autodesk.Revit.UI in Engine or Abstractions.
- Modern C#: Use latest features (Primary Constructors, Collection expressions).
Before doing specialized work, read the matching file:
- Project Structure – When searching for specific module responsibilities, adding new projects, submodules.
- Architecture – When extending LookupEngine (Descriptors, Resolvers, Extensions).
- Code Style – When writing or refactoring C# code, implementing MVVM (CommunityToolkit).
- UI Development – When creating XAML templates, styling WPF components, or implementing custom type visualization.
- Revit Best Practices – When interacting with Revit API.
- Testing Strategy – When writing TUnit tests for Revit or creating mocks for the Playground environment.
- Package Management – When adding, updating, or managing NuGet dependencies.