Plant Design Module¶
The plant design module (Anlagenplanung) is the primary domain module of GehaSoftwareHub.
It provides the complete workflow for planning, designing, and documenting industrial plant systems.
Architecture¶
The module is organized into three top-level areas:
plant_design/
startup_system/ # Entry point: project launcher, library management
zentral_systems/ # Shared infrastructure (data, versioning, schemas)
pd_runtime_system/ # Runtime: stage orchestration + engineering phases
startup_system¶
Entry point for the module. Displays the startup screen with recent projects, project launcher, repository browser, and library management. Orchestrates session lifecycle (open, save, sign, close).
zentral_systems¶
Shared systems consumed by multiple areas. Contains the core data layers (library_system, planning_system), schema migration (schema_system), undo/redo + commit versioning (version_control_system), and shared view mode enums (view_mode_utility).
pd_runtime_system¶
Active project editing environment. The orchestration layer manages stage display,
session timers, and the sign-off flow. Individual engineering stages live under
stages/ (c_d_planning, e_plan, software, commissioning/servicing).
Key Patterns¶
- Bound subsystems: Features exclusive to one parent live under
bound_subsystems/ - Zentral promotion: If a second system needs a bound subsystem, promote it to
zentral_systems/ - PathDef constants: All file paths defined in
constants/paths.pyper system - View modes:
LibraryViewModeandPlanningViewModecontrol widget behavior per context
Dependency Flow¶
Dependencies flow downward only. Zentral systems never import from their consumers.
See docs/dev_notes/plant_design_refactor_architecture/system_grouping_guide.md for
the complete architectural reference.