Pipeline Flow Network Unified Object Model (UOM) Business Logic Tiers (BLTs)
- Last UpdatedApr 24, 2025
- 8 minute read
The Pipeline Flow Network Unified Object Model (UOM) Business Logic Tiers (BLTs) are used to create JSON files containing Flow Network models that can be loaded into the RealTime database (RTDB).
Flow Network models are configured by Administrators using AVEVA Process Simulation and the SimConstruct Integrated Development tool. For more information on configuring Flow Network models, refer to the AVEVA Pipeline Operations for Liquids Administrator Guide documentation.
Note: AVEVA Process Simulation and the SimConstruct Integrated Development tool are separately licensed AVEVA products.
The LoadUnifiedObjectModelProxy BLT enables SimConstruct to produce a JSON file containing all of the information related to a pipeline created within AVEVA Process Simulation. This BLT de-serializes the JSON file created by SimConstruct and generates a file on the destination system. The file generated on the destination system is loaded into the RTDB using the LoadUnifiedObjectModel BLT.
Note: Administrators can manually enter information related to a Flow Network model in the JSON file.
LoadUnifiedObjectModelProxy BLT
The following table details the input parameters for the LoadUnifiedObjectModelProxy BLT.
|
Argument |
Required? |
Parameter Type |
Description |
|---|---|---|---|
|
JSON |
Yes |
String |
The content of the JSON file. Example content is shown in the JSON File Structure section below. |
|
Dataset |
No |
String |
This is the name of the dataset the Administrator would like the Flow Network to use once created (for example, Global). Notes: If the Flow Network exists, the dataset that is currently configured is used. If a Dataset is not specified, the BLT chooses a Dataset in the destination system based on the RTDB configuration. |
|
Verbose |
No |
Boolean |
The setting that determines the amount of information recorded during the generation of the JSON file. |
LoadUnifiedObjectModel BLT
The following table details the input parameters for the LoadUnifiedObjectModel BLT.
|
Argument |
Required? |
Parameter Type |
Description |
|
JSON |
Yes |
String |
The content of the JSON file. Example content is shown in the JSON File Structure section below. |
|
Dataset |
No |
String |
This is the name of the dataset the Administrator would like the Flow Network to use once created (for example, Global). Notes: If the Flow Network exists, the dataset that is currently configured is used. If a Dataset is not specified, the BLT chooses a Dataset in the destination system based on the RTDB configuration. |
JSON File Structure:
The following example describes the structure of a Pipeline Flow Network UOM JSON file.
{
"name":"ParentNetwork",
"devices": [],
"connections": [],
"nestedNetworks":[
"name": "NestedNetwork",
"devices": [],
"connections": []
]
}
The Pipeline Flow Network UOM JSON file is made up of devices, connections, and nestedNetworks.
Devices describe equipment and define the flow within the pipeline network model. Devices are described using the following JSON elements:
-
name (required)
-
equipmentType (required)
-
subType (optional)
-
direction (optional)
The following table describes how the LoadUnifiedObjectModel BLT maps Pipeline Flow Network devices from the provided JSON Type to an OASyS Real Time database (RTDB) object.
Note: The From JSON Type values listed in the table are equipmentType elements unless otherwise documented.
|
From JSON Type |
Description |
Mapping in the RTDB |
|---|---|---|
|
Pump |
Defines a transport mechanism within pipeline network. When a pump is listed, the BLT will attempt to do the following:
|
Pump |
|
Valve ValMan |
Defines a flow control point within the flow network. When a valve is listed, the BLT will attempt to do the following:
Note: Use the value ValMan to define a manual valve. |
Valve |
|
Check Pipe |
Defines a segment between two nodes. A pipe has an unrestricted flow direction. A check valve has a right-only restricted flow direction. |
Segment |
|
Tank |
Defines a storage receptacle within the flow network. When a tank is listed, the BLT will attempt to do the following:
|
Tank |
|
Node |
Defines a point where the pipeline network flow splits or merges. When a node is listed, the BLT will create a new Flow Network node. |
Node |
|
Transmitter Subtype Values: temperature flowrate pressure level concentration detector diff_pressure flow flowvolu misc |
Defines transmitter equipment in the current Flow Network. When a transmitter is listed, the BLT will attempt to do the following:
Notes: When the Transmitter type is directly attached to equipment or nodes (that is, without intermediate segments), it requires a connection type of "Meter". Otherwise, it requires a connection type of "Standard". Because there are multiple transmitter types, Element subtypes are supported. If the subtype element is not provided, the transmitter will be created with the type misc by default. |
Transmitter |
|
PointOfInterest |
Defines a point of interest within the Flow Network. The point of interest is used to specify a location in the Flow Network where logic can be executed by different applications. For example, a point of interest can be used to specify a location that the Line Blockage application can use to perform automatic pump shutdown for all pumps upstream of this location. For more information, refer to the AVEVA Pipeline Operations for Liquids Administrator Guide documentation. When a PointOfInterest (POI) is listed, the BLT will do the following:
Note: Because PointOfInterest is directly attached to equipment or nodes (that is, without intermediate segments), it requires a connection type of "Meter" |
POI |
|
Station |
Defines a nested Flow Network composed of a collection of devices and connections. Stations included as devices define nested pipeline Flow Networks within a parent pipeline Flow Network. When a station is listed, the BLT will attempt to do the following:
Note: The device name in the parent network and the nested network name have to be the same to generate a nested network. |
Nested Network |
|
Boundary BranchEnd BranchStart |
Defines the boundaries of the pipeline within the parent Flow Network. Note: A boundary cannot appear in a nested network. |
Network Outlet |
|
Inlet Outlet |
Defines the boundaries of a station. Note: A station boundary must appear in a nested network. |
Network Outlet |
|
Injection Subtype Value: NetworkConnection Direction Values: Injection Delivery |
Defines an interconnection between the current Flow Network and an external Flow Network. The combined Flow Networks are defined as a "MegaNetwork". For interconnects, a NetworkConnection subtype element must be specified for the Injection device type. The Direction element is also required. For interconnects, Direction supports type values of Injection or Delivery. Notes: An Interconnect is defined at the station or nested network level only. An Interconnect device can only be used to connect one pair of Flow Networks. Attempting to use the same Interconnect in multiple connections will result in an error when loading the model. Also, due to the specific device pattern required in AVEVA™ Process Simulation to declare an interconnection, every device between the "Outlet" and the "Injection" device in the JSON file will be converted to just one "Interconnect" device in the RTDB. |
Interconnect |
|
Injection |
Defines a meter device in the Flow Network. Note: Any injection device not complying with the interconnect rule will be imported as a meter. |
Meter |
Connections describe the topology of devices within flow networks. Connections are defined using the following JSON elements:
-
from (required)
-
to (required)
-
connectionType (required)
The following table describes the two connection types in the JSON file and how the LoadUnifiedObjectModel BLT maps these types from the provided JSON Type to an OASyS RTDB object.
|
From JSON Type |
Description |
Mapping in the RTDB |
|---|---|---|
|
Standard |
Defines elements that describe the topology of the pipeline Flow Network model. The from value consists of the device name where the connection starts. The to value consists of the device name where the connection ends. Connections between the from and to devices generate segments in the RTDB Flow Network. |
Segment |
|
Meter |
Defines connections that attach equipment directly to nodes without the need to generate intermediate segments. For example, when using Transmitter and PointOfInterest JSON types, a connection type of Meter must be used. |
No mapping required |
Example JSON File:
The following example shows a valid JSON file that can be loaded using the LoadUnifiedObjectModel BLT.
Note: The only way to load this data is to use a tool like BLTTestClient or create a tool to leverage the BLT client.
{
"name": "Line_20",
"devices": [
{
"name": "line_20_start",
"equipmentType": "BranchStart"
},
{
"name": "KL20",
"equipmentType": "Station"
},
{
"name": "PI1",
"equipmentType": "Pipe"
},
{
"name": "line_20_end",
"equipmentType": "BranchEnd"
}
],
"connections": [
{
"name": "S1",
"from": "line_20_start",
"to": "KL20",
"connectionType": "Standard"
},
{
"name": "S2",
"from": "KL20",
"to": "PI1",
"connectionType": "Standard"
},
{
"name": "S3",
"from": "PI1",
"to": "line_20_end",
"connectionType": "Standard"
}
],
"nestedNetworks": [
{
"name": "KL20",
"devices": [
{
"name": "i1",
"equipmentType": "Inlet"
},
{
"name": "C1",
"equipmentType": "Check"
},
{
"name": "KL20_V1",
"equipmentType": "Valve"
},
{
"name": "n1",
"equipmentType": "Node"
},
{
"name": "poi",
"equipmentType": "PointOfInterest"
},
{
"name": "KL20_dis",
"equipmentType": "Outlet"
},
{
"name": "C2",
"equipmentType": "Check"
},
{
"name": "to_KL45_from_KL20",
"equipmentType": "Node"
},
{
"name": "KL20_KL45_MV",
"equipmentType": "ValMan"
},
{
"name": "to_KL45_from_KL20_TL",
"equipmentType": "Injection",
"subType": "NetworkConnection",
"direction": "DELIVERY"
}
],
"connections": [
{
"name": "S1",
"from": "i1",
"to": "C1",
"connectionType": "Standard"
},
{
"name": "S2",
"from": "C1",
"to": "KL20_V1",
"connectionType": "Standard"
},
{
"name": "S3",
"from": "KL20_V1",
"to": "n1",
"connectionType": "Standard"
},
{
"name": "MS1",
"from": "poi",
"to": "n1",
"connectionType": "Meter"
},
{
"name": "S4",
"from": "n1",
"to": "KL20_dis",
"connectionType": "Standard"
},
{
"name": "S5",
"from": "KL20_dis",
"to": "C2",
"connectionType": "Standard"
},
{
"name": "S6",
"from": "C2",
"to": "to_KL45_from_KL20",
"connectionType": "Standard"
},
{
"name": "S7",
"from": "to_KL45_from_KL20",
"to": "KL20_KL45_MV",
"connectionType": "Standard"
},
{
"name": "S8",
"from": "KL20_KL45_MV",
"to": "to_KL45_from_KL20_TL",
"connectionType": "Standard"
}
],
"nestedNetworks": []
}
]
}