3.8 KiB
Data Model Concept
This is a conceptual model for Codex. It is not a final database schema, but the implementation must preserve these domain relationships.
Core Concept
A distribution board contains a circuit list.
A circuit list contains sections.
A section contains circuits.
A circuit contains zero, one or multiple device rows.
A device row may be:
- linked to a project device
- manually entered without a linked project device
ProjectDevice
A project device is a reusable project-specific consumer or consumer group.
A project device can represent:
- one physical device
- a recurring device type
- a consumer group, for example six workstation sockets
User-facing fields:
namedisplayNamephaseTypeconnectionKindcostGroupcategoryquantitypowerPerUnitsimultaneityFactorcosPhitotalPowerremark
Notes:
nameis the technical or product-related name, for exampleE-Line Pro.displayNameis a default display name used when inserting the device into the circuit list.- After insertion, the circuit list display name is local and not automatically synchronized.
quantityis allowed on project devices because a project device may represent a consumer group.- Project devices must not define final cable or protection data.
Circuit
A circuit represents one outgoing circuit / equipment identifier in a distribution board section.
User-facing fields:
equipmentIdentifiersectiondisplayNameoptionalcircuitTotalPowerprotectionTypeprotectionRatedCurrentprotectionCharacteristiccableTypecableCrossSectioncableLengthrcdAssignmentoptionalterminalDesignationoptionalvoltageoptionalstatusoptionalisReserveoptionalremarkoptional
Circuit-level fields only:
- protection type
- protection rated current
- protection characteristic
- cable type
- cable cross-section
- cable length
- RCD assignment
- terminal designation
- circuit total power
Reason:
Protection and cable data are dimensioned for the complete circuit. They depend on the combined load, installation context, cable length, voltage drop and planning rules.
CircuitDeviceRow
A circuit device row represents a device assigned to a circuit.
User-facing fields:
linkedProjectDeviceIdoptionalnamedisplayNamephaseTypeconnectionKindoptionalcostGroupoptionalcategoryoptionallevelroomNumberroomNamequantitypowerPerUnitsimultaneityFactorcosPhirowTotalPowerremarkoverriddenFields
A circuit device row can be manual.
A manual row has no linked project device.
A manual row can later be saved as a project device. After saving, the row becomes linked to the newly created project device.
Single-Device vs Multi-Device Display
If a circuit has exactly one device row, it is displayed as one compact circuit row.
If a circuit has multiple device rows, it is displayed as:
- one circuit summary row
- indented device rows below it
The circuit summary row shows:
- equipment identifier
- optional circuit display name
- circuit total power
- circuit-level protection data
- circuit-level cable data
The device rows show:
- individual device values
- quantity
- power
- cost group
- category
- room data
- remarks
Load Calculation
Device row load:
rowTotalPower = quantity × powerPerUnit × simultaneityFactor
Circuit total:
circuitTotalPower = sum(rowTotalPower of all device rows assigned to the circuit)
cosPhi is stored even if it is not visible in the default table view.
Later apparent power calculation:
apparentPower = totalActivePower / cosPhi
For circuits with multiple devices, apparent power should be calculated per device row and then summed. This avoids losing information when different devices have different power factors.