How bogdanmari/relevel works
ReLevel is a Revit add-in for managing elements and views across building levels. Its main workflow loads level-linked model data into the dockable workspace, lets users select levels and elements, then transfers or distributes elements, fills a parameter with a level name, or recreates views; operations report results and can be undone. Separate workspace modes provide color-by-level, deletion, comparison, and debugging/inspection. The excerpts show key transfer, distribution, fill, and view-recreation behavior; some workspace wiring and additional capabilities are documented only in the README, so those links are cited there.
Main entry points: WorkspaceController.cs Workspace controller · ElementTransferService.cs Element transfer · ViewRecreationService.cs View recreation · DistributionService.cs Element distribution
Components 24
Workspace and analysis
- Add-in command
src/ReLevel.Revit/ReLevelCommand.cs - Dockable workspace
src/ReLevel.Revit/UI/DockableWorkspace.cs - Workspace controller
src/ReLevel.Revit/UI/WorkspaceController.cs - Model analysis
src/ReLevel.Revit/UI/ModelAnalysisLoader.cs - Level workspace
src/ReLevel.Revit/UI/Workspace/WorkspaceLevel.cs - Level graphics
src/ReLevel.Revit/Transfer/LevelViewGraphics.cs - Transfer panel
src/ReLevel.Revit/UI/TransferPanel.cs - Level comparison
src/ReLevel.Revit/Logic/LevelComparison.cs
Element operations
- Element index
src/ReLevel.Revit/Transfer/ModelElementIndex.cs - Element transfer
src/ReLevel.Revit/Transfer/ElementTransferService.cs - Transfer cases
src/ReLevel.Revit/Transfer/TransferCases.cs - Case implementations
src/ReLevel.Revit/Transfer - Element distribution
src/ReLevel.Revit/Transfer/DistributionService.cs - Fill level
src/ReLevel.Revit/Transfer/FillLevelService.cs - Delete operations
src/ReLevel.Revit/Transfer/DeleteService.cs - Operation results
src/ReLevel.Revit/Logic/ElementTransferReport.cs
View operations
- View recreation
src/ReLevel.Revit/Transfer/ViewRecreationService.cs - View recreation support
src/ReLevel.Revit/Transfer/ViewRecreationSupport.cs - View operation log
src/ReLevel.Revit/Transfer/ViewOperationLog.cs
Inspection and compatibility
- Element inspection
src/ReLevel.Revit/Inspection/ElementInspectionReport.cs - Element ID compatibility
legacy/src/ReLevel.Revit/Compatibility/ElementIds.cs - Geometry snapshot
legacy/src/ReLevel.Revit/Transfer/GeometrySnapshot.cs
Other components
- Revit user
- Revit model
Connections 31
- Revit user → Add-in command: invokes
- Add-in command → Dockable workspace: opens
- Dockable workspace → Workspace controller: dispatches actions
- Workspace controller → Model analysis: loads model
src/ReLevel.Revit/UI/WorkspaceController.cs - Model analysis → Element index: analyzes levels
- Workspace controller → Element index: refreshes
src/ReLevel.Revit/UI/WorkspaceController.cs - Workspace controller → Transfer panel: updates panel
src/ReLevel.Revit/UI/WorkspaceController.cs - Revit user → Level workspace: selects levels
- Level workspace → Workspace controller: requests actions
src/ReLevel.Revit/UI/WorkspaceController.cs - Workspace controller → Element distribution: distributes elements
src/ReLevel.Revit/UI/WorkspaceController.cs - Element distribution → Element transfer: executes transfers
src/ReLevel.Revit/Transfer/DistributionService.cs - Element transfer → Transfer cases: finds case
src/ReLevel.Revit/Transfer/ElementTransferService.cs - Element distribution → Transfer cases: finds case
src/ReLevel.Revit/Transfer/DistributionService.cs - Transfer cases → Case implementations: selects implementation
src/ReLevel.Revit/Transfer/TransferCases.cs - Element transfer → Revit model: changes elements
src/ReLevel.Revit/Transfer/ElementTransferService.cs - Workspace controller → Fill level: fills level parameter
src/ReLevel.Revit/UI/WorkspaceController.cs - Fill level → Revit model: writes parameter
src/ReLevel.Revit/Transfer/FillLevelService.cs - Workspace controller → Delete operations: deletes elements or views
- Delete operations → Revit model: deletes with checks
src/ReLevel.Revit/Transfer/DeleteService.cs - Workspace controller → View recreation: recreates views
- View recreation → View recreation support: uses support
src/ReLevel.Revit/Transfer/ViewRecreationService.cs - View recreation → View operation log: records operations
src/ReLevel.Revit/Transfer/ViewRecreationService.cs - View recreation → Revit model: creates views
src/ReLevel.Revit/Transfer/ViewRecreationService.cs - Workspace controller → Level graphics: colorizes levels
src/ReLevel.Revit/UI/WorkspaceController.cs - Level graphics → Revit model: updates graphics
- Revit user → Level comparison: loads TSV
- Revit user → Element inspection: inspects element
- Element transfer → Operation results: returns report
src/ReLevel.Revit/Transfer/ElementTransferService.cs - Workspace controller → Operation results: shows report
src/ReLevel.Revit/UI/WorkspaceController.cs - Element transfer → Element ID compatibility: reads element IDs
- Geometry snapshot → Revit model: captures geometry