Skip to content

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.py per system
  • View modes: LibraryViewMode and PlanningViewMode control widget behavior per context

Dependency Flow

zentral_systems (foundation)
       |
       v
startup_system + pd_runtime_system (consumers)

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.