Terminal Configuration Reference for Electric Devices
Terminals are the least visible part of a utility network model and the part that decides most trace outcomes. A device’s terminal configuration says how many connection points it exposes, what they are called, and which pairs of them are internally connected. Every connectivity rule is written against those names, every trace enters and leaves through them, and a device configured with too few terminals removes a path from the network without raising anything. This page is the reference table for the common electric device classes, together with the audit that finds devices whose configuration does not match the class they belong to. It supports the rule authoring described in configuring connectivity rules for pipe and cable.
Environment Prerequisites
- ArcGIS Pro 3.2+ with a Standard or Advanced licence and
arcpyimportable from Python 3.11, so terminal configurations and association counts can be read from the schema. - The deployed asset package, because terminal configuration names are defined by the data model in use and the table below follows common conventions rather than a universal standard.
- A validated topology, so the association counts the audit reads reflect the built network rather than a pending edit.
- The engineering device catalogue, which is where the expected terminal count for each device class actually comes from — the model should follow the equipment, not the other way round.
- A reconciled snapshot for the audit read, so a live edit is not reported as a defect.
Schema Validation Protocol — Run Before Trusting the Reference
- Export the deployed terminal configurations and compare names. A configuration named
Source/Loadin one asset package andLine/Loadin another means every rule written against the wrong name silently matches nothing. - Confirm the terminal count matches the physical device. A three-way switch mapped as two-terminal is the single most common terminal defect and it removes a branch from every trace.
- Check internal connectivity pairs on multi-terminal devices. A transformer’s high and low windings are not a pass-through, and a configuration that models them as one collapses the voltage step.
- Verify that each rule references terminals the asset type actually has. An orphan terminal reference in a rule is a rule that can never match.
- Sample real devices and count their associations. The configuration is a permission; the associations are what exists. Both matter, and they disagree more often than expected.
The Reference Table
Three notes on reading the table. Names vary by data model — the counts and the behaviour are what transfer between estates, not the strings. A barrier is a device state, not a terminal property: a two-terminal switch is traversable when closed and a barrier when open, and the terminal model is what lets the trace know which side it is entering from. And a transformer is not a pass-through: modelling it as one produces a trace that walks from the high-voltage network straight into the low-voltage one, which is exactly the phantom propagation the upstream and downstream tracing diagnostics look for.
Auditing Terminal Configuration Against Reality
from __future__ import annotations
import logging
from dataclasses import dataclass, field
import arcpy
logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
LOG = logging.getLogger("terminal-audit")
# Expected terminal count per device class, taken from the engineering catalogue.
EXPECTED = {
"ServicePoint": 1, "Fuse": 2, "SectionalisingSwitch": 2,
"VoltageRegulator": 3, "ThreeWaySwitch": 3, "Transformer": 4,
}
@dataclass
class TerminalFinding:
asset_type: str
global_id: str
kind: str # CONFIG_MISMATCH, UNDER_CONNECTED, IMPOSSIBLE
detail: str
@dataclass
class AuditReport:
findings: list[TerminalFinding] = field(default_factory=list)
devices: int = 0
@property
def ok(self) -> bool:
return not self.findings
def audit_terminals(un_path: str, device_class: str,
association_counts: dict[str, int]) -> AuditReport:
"""Compare assigned terminal configurations against the class reference.
``association_counts`` maps a device global id to the number of connectivity
associations it currently holds, read separately so this function stays testable
without a live geodatabase.
"""
report = AuditReport()
expected = EXPECTED.get(device_class)
if expected is None:
report.findings.append(TerminalFinding(
device_class, "", "CONFIG_MISMATCH", "no expected terminal count for this class"))
return report
fields = ["GLOBALID", "ASSETTYPE", "TERMINALCONFIGURATION"]
with arcpy.da.SearchCursor(f"{un_path}/{device_class}", fields) as cursor:
for global_id, asset_type, config in cursor:
report.devices += 1
terminals = int(config or 0)
if terminals != expected:
report.findings.append(TerminalFinding(
str(asset_type), str(global_id), "CONFIG_MISMATCH",
f"configured with {terminals} terminal(s), class expects {expected}"))
continue
held = association_counts.get(str(global_id), 0)
if held > terminals:
report.findings.append(TerminalFinding(
str(asset_type), str(global_id), "IMPOSSIBLE",
f"{held} associations on {terminals} terminal(s)"))
elif held < terminals - 1:
report.findings.append(TerminalFinding(
str(asset_type), str(global_id), "UNDER_CONNECTED",
f"{held} association(s) on a {terminals}-terminal device"))
LOG.info("%s: %d device(s), %d finding(s)", device_class, report.devices,
len(report.findings))
return report
The UNDER_CONNECTED threshold allows one unused terminal deliberately. A three-way switch with a
spare position and a regulator with an unused bypass are both normal; a three-terminal device
holding one association is not, and that is the case worth a ticket.
Where Terminal Defects Come From
Terminal configurations are rarely wrong at random; four origins account for almost all of them, and knowing which one produced a finding decides who fixes it.
The asset package default. A device class created from a template inherits whatever terminal configuration the template carried, which is usually the two-terminal case because it is the most common. Every three- and four-terminal class then has to be corrected deliberately, and the ones nobody thought about stay wrong.
A migration from a geometric network. The source model had no terminals at all, so the migration assigned a default. The result validates cleanly and traces as though every device were a simple pass-through.
A rule authored against a guessed name. Terminal names differ between data models, and a rule
written for Source/Load against a schema using Line/Load matches nothing. The device is
configured correctly and no connection is ever permitted through it.
An equipment change the model never learned about. A two-terminal switch replaced in the field by a three-way unit is a common upgrade, and unless the work order carries the class change, the model keeps the old configuration and loses the new position.
The first two are found by the audit; the third is found by counting rules that never match; the fourth is only found by reconciling against the work-management record, which is one more reason the CMMS integration matters to the network model and not only to maintenance.
Production Deployment Pattern
- Run the audit per device class on a schedule, against a reconciled snapshot, and route findings by kind: configuration mismatches to schema owners, under-connected devices to data maintenance.
- Treat
IMPOSSIBLEfindings as urgent. More associations than terminals means the schema permitted something it should not have, and every trace through that device is suspect. - Keep the expected-count table with the connectivity rules. They are the same body of configuration and they drift together.
- Re-audit after every asset package upgrade. Terminal configuration names and defaults change between data-model versions, and a rule written against the old name matches nothing after the upgrade.
- Publish the reference to the people authoring rules. Most terminal defects originate in a rule authored against a guessed terminal name, and a table on a page is cheaper than a defect in production.
Conclusion
Terminal configuration is a small piece of schema that decides whether a trace can express the network’s real topology. Auditing the assigned configuration against the engineering catalogue finds the devices that were modelled with too few connection points, and counting associations against the configuration finds the ones that were configured correctly and connected wrongly. Both classes of defect are silent, both remove or invent paths, and both are cheap to detect once the expected counts are written down.
Related
- Up to the parent topic: Configuring Connectivity Rules for Pipe & Cable
- Up to the section: Topology & Tracing Workflows
- Connectivity Rule Domain Codes for Water Distribution
- Automating Connectivity Rule Validation in CI Pipelines
- Upstream & Downstream Tracing Algorithms
For authoritative reference, consult the ArcGIS Pro terminal configuration documentation and the IEEE standards catalogue.