Nodes
Nodes represent components and logical groupings in the P&ID graph.
Node Types
| Node Type | Description | Examples |
|---|---|---|
pid_component | Physical component on the drawing | Valve, Pump, Instrument, Reducer |
piping_network_system | Logical grouping of related pipe segments | Cooling Water System, Steam System |
piping_network_segment | A single tagged pipe run | 2"-CW-001-A1A |
instrumentation_loop | Control loop grouping instruments | FIC-101 loop |
Node Structure
Every node has these fields:
{
"tag": "FV-101",
"id": "abc-123-def",
"node_type": "pid_component",
"node_classification": "piping_component.gate_valve",
"orig_x": 150.5,
"orig_y": 200.3,
"orig_bbox_width": 50.0,
"orig_bbox_height": 40.0,
"attributes": [...]
}
| Field | Description |
|---|---|
tag | Human-readable identifier (e.g., "FV-101", "2-CW-001") |
id | Unique system identifier |
node_type | Category of node (see table above) |
node_classification | Specific type in format entity_type.entity_class |
orig_x, orig_y | Position on the original drawing |
orig_bbox_width, orig_bbox_height | Size of the component bounding box |
attributes | Additional properties (varies by component) |
Node Classification
The node_classification field follows the format entity_type.entity_class:
Physical Components (pid_component)
| Classification | Description |
|---|---|
piping_component.gate_valve | Gate valve |
piping_component.globe_valve | Globe valve |
piping_component.ball_valve | Ball valve |
piping_component.check_valve | Check valve |
piping_component.reducer | Pipe reducer |
piping_component.tee | Pipe tee |
piping_component.elbow | Pipe elbow |
instrument.transmitter | Transmitter |
instrument.indicator | Indicator |
equipment.pump | Pump |
equipment.vessel | Vessel |
reference.opc | Off-page connector |
Logical Groupings
| Node Type | Classification |
|---|---|
piping_network_system | pns |
piping_network_segment | pnsg |
instrumentation_loop | loop |
Attributes
The attributes array contains additional properties:
{
"attributes": [
{"name": "nominal_diameter", "value": "2", "data_type": "string"},
{"name": "service_designation", "value": "CW", "data_type": "string"},
{"name": "material_class", "value": "A1A", "data_type": "string"}
]
}
Common attributes vary by component type:
- Piping components:
nominal_diameter,service_designation,material_class - Instruments:
measured_variable,function,loop_id - Equipment:
equipment_type,capacity
Querying Nodes
Get all physical components
{"query": ".pid_graph.nodes | filter(.node_type == \"pid_component\")"}
Get all valves
{"query": ".pid_graph.nodes | filter(contains(.node_classification, \"valve\"))"}
Get all pipe segments
{"query": ".pid_graph.nodes | filter(.node_type == \"piping_network_segment\")"}
Get nodes by tag pattern
{"query": ".pid_graph.nodes | filter(contains(.tag, \"FV-\"))"}