How hallvaeb/automation-p3-pipe-routing works
This repository is a pipe-routing design generator for Aker Solutions. A user selects a predefined equipment scenario and email in the interface; the controller builds the environment, equipment, and pipe inputs, generates routes, writes a DFA design, and optionally emails it. Routing is split between route sequencing and per-route geometry, then converted into straight and elbow elements. The DFA builder uses templates and generated identifiers to assemble the design. The README gives little implementation detail; the workflow and component links here are based on the sampled source, while the template-based DFA output is also evident from the tree.
Main entry points: Controller.py Workflow controller · DFABuilder.py DFA assembly · UserInterface.py User interface · EmailHandler.py Email delivery
Components 16
User Entry
- User interface
UserInterface.py - Preset scenarios
inputOutput/ParameterContainer.py - Workflow controller
controller/Controller.py
Routing Domain
- Environment model
model/Environment.py - Equipment model
model/Equipment.py - Pipe specification
model/Pipe.py - Route sequencing
controller/PathGenerator.py - Route geometry
model/Path.py - Pipe elements
model/PipeElement.py
Design Generation
- ID generation
controller/IDGenerator.py - DFA assembly
controller/DFABuilder.py - DFA templates
inputOutput/templates - Generated DFA
inputOutput
Output Delivery
- Email delivery
controller/EmailHandler.py - SMTP email service
Other components
- User
Connections 18
- User → User interface: starts
- User interface → Preset scenarios: requests scenario
- User interface → Workflow controller: submits inputs
- Preset scenarios → Workflow controller: returns parameters
- Workflow controller → Environment model: constructs
- Workflow controller → Equipment model: constructs
- Workflow controller → Pipe specification: constructs
- Workflow controller → Route sequencing: generates routes
- Route sequencing → Route geometry: creates routes
- Route geometry → Pipe elements: creates elements
- Pipe elements → ID generation: requests IDs
- Workflow controller → DFA assembly: builds design
- DFA assembly → ID generation: requests IDs
- DFA assembly → DFA templates: reads templates
- DFA assembly → Generated DFA: writes DFA
- Workflow controller → Email delivery: sends design
- Email delivery → Generated DFA: reads attachment
- Email delivery → SMTP email service: sends email