GRR Relations and Modeling UN Associations
The Utility Network (UN) has three types of associations: containment, connectivity, and structural attachment. Associations allow you to model connectivity, containment, and structural attachment between nonspatial objects and noncoincident network features.
In the component model, rather than “one-to-one-to-one” mappings of containment, connectivity, and attachment associations from the UN, the GRR has a structure relationship with both containment and attachment associations.
The connectivity model maps UN connectivity for geometric coincidence and “junction-to-junction” associations.
Modeling Containment and Attachment Associations
In the Components section of the GRR file, BreakerBankWithTerminals
and its devices ("id": "2802150c-2ed6-4f2a-b41e-781290eabf22") appear as such:
{ ...
},
"id": "2802150c-2ed6-4f2a-b41e-781290eabf22", // Global ID
"deviceIds": [
"b6c4989f-c136-3f69-03b3-3f7199fd5b12",
"93b8c452-296a-0ee5-9ed2-c5bdce7b83d6",
"c73b7f5b-4046-8cf7-9cb1-83d9228a1420"
],
...
},
A sample of the child units and their reference back to the “bankId” appears as such:
{
"componentType": "BreakerUnit",
"id": "b6c4989f-c136-3f69-03b3-3f7199fd5b12",
"esriId": 0,
"bankId": "2802150c-2ed6-4f2a-b41e-781290eabf22",
...
},
Containment for BreakerBankWithTerminalsIn is shown in the StructureRelationships section of the GRR. In this example, it is part of the SurfacePolygonStructure:
{
"relationshipType": "Container",
"parentId": "c42aadbb-f741-4f24-905c-82495bcc19cc",
"childId": "2802150c-2ed6-4f2a-b41e-781290eabf22"
},
Containment associations are split between component properties and StructureRelationships, while the attachment type of association is presented only in the StructureRelationships part of the GRR.
{
"relationshipType": "Attachment",
"parentId": "a3e993cd-b751-4674-a0f7-f78fcb56f777",
"childId": "e4c1c8ba-7673-4650-a6db-554f75ebe3b3"
},
In this example for SurfaceStructure, it has one SingleTerminal attached:
{
"componentType": "SurfaceStructure",
"id": "a3e993cd-b751-4674-a0f7-f78fcb56f777",
"esriId": 5,
"specId": "9a9ddea3-d6b1-4d00-a88d-e87e9ba93709",
"geometry": {
"type": "Point",
"coordinates": [
406879.15390000027,
5009354.235200001
]
},
"workflowState": "Existing",
"properties": {
"AssetGroup": 809,
"AssetType": 812,
"SourceLayerName": "StructureJunction"
},
"lifecycleStatusType": "Unknown",
"partialPushId": "00000000-0000-0000-0000-000000000000"
},
...
"e4c1c8ba-7673-4650-a6db-554f75ebe3b3": [
{
"terminal": {
"terminalId": 1,
"terminalName": "Single Terminal",
"isUpstreamTerminal": false
},
"connectedComponentIds": [
"9e8c1faa-838d-467a-91b9-401bf57bcdd0",
"88de146c-b49e-4382-b360-e744f0bd95e7"
]
}
],
Modeling Connectivity Associations
For the same BreakerBankWithTerminals, in Network WithTerminalConnection, its connectivity is modeled for geometric coincidence.
"2802150c-2ed6-4f2a-b41e-781290eabf22": [
{
"terminal": {
"terminalId": 8,
"terminalName": "Source",
"isUpstreamTerminal": true
},
"connectedComponentIds": []
},
{
"terminal": {
"terminalId": 9,
"terminalName": "Load",
"isUpstreamTerminal": false
},
"connectedComponentIds": [
"88de146c-b49e-4382-b360-e744f0bd95e7"
]
},
{
"connectedComponentIds": [
"e64e1a01-2304-e3c0-35b3-f3cb76bcd1d6"
]
}
],
...
"88de146c-b49e-4382-b360-e744f0bd95e7": [
{
"connectedComponentIds": [
"2802150c-2ed6-4f2a-b41e-781290eabf22",
"e4c1c8ba-7673-4650-a6db-554f75ebe3b3"
]
}
],
Given that junction-to-junction associations are strongly discouraged in the ArcFM UN data model, they are all forcefully relocated to the networkAssociationConnection collection. It’s always best when that section of the GRR is empty.