This folder contains internal architecture documentation for developers contributing to RevitDevTool.
For user guides and tutorials, see: RevitDevTool.Wiki
docs/
├── CodeExecute/
│ └── architecture/ # CodeExecute internal design
├── Logging/
│ └── architecture/ # Logging internal design
├── Visualization/
│ └── architecture/ # Visualization internal design
├── PythonDemo/
│ └── architecture/ # PythonDemo internal design
└── PythonNetStubGenerator/
└── architecture/ # Stub generator internal design
Path: CodeExecute/architecture/
Internal design documentation:
- System architecture and design patterns
- Provider pattern implementation
- Strategy pattern for execution
- Tree model structure
- Python implementation details
- Dependency resolution internals
Path: Logging/architecture/
Internal design documentation:
- System overview and architecture
- Developer guide for extensions
- Serilog sink implementation
- Theme system design
- Python integration bridge
Path: Visualization/architecture/
Internal design documentation:
- System overview and architecture
- Developer guide for extensions
- DirectContext3D implementation
- Geometry type handlers
- Buffer management strategy
Path: PythonDemo/architecture/
Internal design documentation:
- Python + WebView2 dashboard architecture
- React frontend integration patterns
- Polars analytics engine design
- Data collection and export workflow
- Quality gates and development workflow
Path: PythonNetStubGenerator/architecture/
Internal design documentation:
- Type stub generation pipeline
- .NET to Python type mapping
- XML documentation integration
- Roslyn semantic analysis
- Symbol scope management
👉 See: RevitDevTool.Wiki
- User guides and tutorials
- API usage examples
- Comparison with other tools
- Quick start guides
👉 Read this folder's architecture docs
- Understand internal design patterns
- Learn system architecture
- Extend modules with custom providers/handlers
- Debug and troubleshoot
👉 Start with architecture overviews:
- CodeExecute/architecture/10-system-design.md
- Logging/architecture/00-overview.md
- Visualization/architecture/00-overview.md
- PythonDemo/architecture/00-overview.md
- PythonNetStubGenerator/architecture/00-overview.md
| Module | Architecture Docs | Source README | Status |
|---|---|---|---|
| CodeExecute | ✅ Complete | ✅ Yes | Production |
| Logging | ✅ Complete | ✅ Yes | Production |
| Visualization | ✅ Complete | ✅ Yes | Production |
| PythonDemo | ✅ Complete | ✅ Yes | Production |
| PythonNetStubGenerator | ✅ Complete | ✅ Yes | Utility |
| DotnetDemo | ✅ Yes | Examples |
Legend:
- ✅ Complete: Full architecture documentation with overview and developer guide
⚠️ Source README only: Basic documentation in source folder, no architecture docs yet- Production: Core functionality module
- Utility: Supporting tool for development
- Examples: Demo commands for testing and reference
- User Documentation: RevitDevTool.Wiki
- Source Code: ../source/
- Demo Commands (.NET): ../source/RevitDevTool.DotnetDemo/
- Demo Scripts (Python): ../source/RevitDevTool.PythonDemo/commands/
When contributing to RevitDevTool:
- Read architecture docs for the module you're modifying
- Follow existing patterns (Provider, Strategy, Tree Model)
- Update architecture docs if you change internal design
- Add demo commands in RevitDevTool.DotnetDemo/ or scripts in RevitDevTool.PythonDemo/
- Update user docs in RevitDevTool.Wiki if user-facing changes
RevitDevTool follows these principles:
- Separation of Concerns - Each module has clear responsibilities
- Extensibility - Provider/Strategy patterns for pluggable behavior
- Performance - Buffering, caching, async where appropriate
- Type Safety - Strong typing with nullability annotations
- Testability - Dependency injection and mockable interfaces
Last updated: 2026-02-14