When working with the utility network through the REST API, there are various properties available to query and edit.
The layer and table Ids associated with your network and system layers can be identified from the feature service and the utility network layer definition respectively. Network layer and table IDs can be found for each class in the feature service, while system layer IDs are grouped under the collection of system layers in the utility network's JSON layer definition.
Using the table Id of nonspatial tables in a telecom domain network, the following are a few examples of tasks that can be completed:
- Work with grouped objects in a telecom domain network
- Use the
apply
operation to divide or combine grouped objects.Edits
- Use the
Using the layerId from the system layer, the following are a few examples of tasks that can be completed using these layers:
-
- Use the
query
operation to inspect associations. - Use the
apply
operation to add, update, and delete associations.Edits
- Use the
-
Use the
query
operation to inspect subnetworks. -
Use the
query
operation to inspect network rules.
Access the systemLayers for a utility network
To access the systemLayers for a utility network, complete the following steps:
-
Use the Esri JSON object output for the feature server that includes the utility network layer.
You can format the JSON object using pjson in the URL:
https
://myserver.esri.com/server/rest/services/ Land Use/ Feature Server?f=pjson Find the
utility
in the pjson.Network Layer Id -
Use the utility network layerId and the Esri JSON object output for the feature server.
You can format the JSON object using pjson in the URL:
https
://myserver.esri.com/server/rest/services/ Land Use/ Feature Server/17?f=pjson Find the
system
to identify the layerId for the layer of interest. From here you can access the operations for the layer.Layers -
Append the specific layerId or tableId to the end of the feature server.
Here is an example of the
query
operation using theassociations
:Table Id https
://myserver.esri.com/server/rest/services/ Land Use/ Feature Server/500001/query
The following is an example of the system
for a Utility Network Version 8 with telecom domain network beta (using the "layer name" : layerId syntax):
"systemLayers": {
"dirtyAreasLayerId": 13,
"associationsTableId": 500001,
"subnetworksTableId": 500002,
"rulesTableId": 500003,
"diagramEdgeLayerId": 500004,
"diagramJunctionLayerId": 500005,
"diagramContainerLayerId": 500006,
"temporaryDiagramEdgeLayerId": 500007,
"temporaryDiagramJunctionLayerId": 500008,
"temporaryDiagramContainerLayerId": 500009,
"dirtyObjectsTableId": 26
},
The following is an example of the system
for a Utility Network Version 6 (using the "layer name" : layerId syntax):
"systemLayers": {
"dirtyAreasLayerId": 12,
"associationsTableId": 500001,
"subnetworksTableId": 500002,
"rulesTableId": 500003,
"diagramEdgeLayerId": 500004,
"diagramJunctionLayerId": 500005,
"diagramContainerLayerId": 500006,
"temporaryDiagramEdgeLayerId": 500007,
"temporaryDiagramJunctionLayerId": 500008,
"temporaryDiagramContainerLayerId": 500009
}
The following is an example of the system
for a Utility Network Version 3 and earlier (using the "layer name" : layerId syntax):
"systemLayers": {
"dirtyAreasLayerId": 12,
"lineErrorsLayerId": 10,
"pointErrorsLayerId": 9,
"polygonErrorsLayerId": 11,
"associationsTableId": 500001,
"subnetworksTableId": 500002,
"rulesTableId": 500003,
"diagramEdgeLayerId": 500004,
"diagramJunctionLayerId": 500005,
"diagramContainerLayerId": 500006,
"temporaryDiagramEdgeLayerId": 500007,
"temporaryDiagramJunctionLayerId": 500008,
"temporaryDiagramContainerLayerId": 500009
}
Work with grouped objects in a telecom domain network
The telecom domain network supports the capability of working with grouped objects to handle high cardinalities of telecom features using a single record.
Editing workflows may require a grouped object to be divided or combined. You can divide grouped junction and edge objects that participate in a telecom domain network as part of the edit request on the apply
operation.
When using the divides
and combines
properties to perform a divide or combine operation, the telecom object's divide and combine policies determine how the object's attributes are handled during the edit operation.
Example usage-divide grouped objects
When using the divides
property in the edits
parameter of apply
, the request should contain the id of the layer that contains the object you want to divide along with the globalID of the grouped object to be divided. The numUnits property is used to communicate how the units in the grouped object should be divided. For example, consider you have a group of six transceivers for an object which you want to divide so that one can be upgraded. In this scenario the transceiver's First Unit = 1 and Num Units = 6. You can use the divide operation to divide the grouped object into 2 separate groups where group 1 (G1) starts at FirstUnit 1 for 5 units, and group 2 (G2) starts at First Unit 6, for 1 unit: (G1: 1,5, G2: 6,1). All units must be accounted for when dividing the object. When dividing a grouped junction object, the connected edge objects are also divided to maintain connectivity.
Request URL and parameters:
Request URL:https
Syntax:
[
{
"id": <tableId>,
"dividesReservedForTelecom":
[
{
"globalId": "<globalId>",
"numUnits": [<numUnits>]
}
]
}
]
Example Usage
Use the divides
property with the edits
parameter of apply
to divide a grouped junction object into 2 separate groups where group 1 starts at FirstUnit 1 for 5 units, and group 2 starts at First Unit 6, for 1 unit:
[
{
"id": 18,
"dividesReservedForTelecom":
[
{
"globalId": "{15C8E871-EC5B-453F-B6B0-5548C9857B5C}",
"numUnits": [5,1]
}
]
}
]
JSON response:
The source object is updated, and additional objects are inserted.
[
{
"id": 18,
"editMoment": 1733241917460,
"splitResults": [],
"divideReservedForTelecomResults": [
{
"globalId": "{15C8E871-EC5B-453F-B6B0-5548C9857B5C}",
"dividedGlobalIds": [
"{15C8E871-EC5B-453F-B6B0-5548C9857B5C}",
"{FB2229ED-03A4-4219-AD83-1C4C27609A0C}"
],
"connectedEdgeGlobalIds": [
"{37D06CDE-121D-404B-884C-83BF74DFB376}",
"{D35B3BD2-6DDF-4B41-A920-AC67C9B1A4A5}"
]
}
],
"editedFeatures": {
"adds": [
{
"attributes": {
"OBJECTID": 1018,
"ASSETGROUP": 4,
"ASSETTYPE": 1,
"ASSOCIATIONSTATUS": 36,
"TERMINALCONFIGURATION": "Default",
"CONTAINERSOURCEID": 16,
"CONTAINERGLOBALID": "{D2C1B4A5-08F5-4301-87E3-404281CC49F1}",
"FIRSTUNIT": 6,
"NUMUNITS": 1,
"NEXTUNITID": null,
"ROOTCONTAINERSTATE": null,
"CLUSTERKEY": null,
"GLOBALID": "{FB2229ED-03A4-4219-AD83-1C4C27609A0C}",
"act_len": null,
"created_user": "admin",
"created_date": 1733241917000,
"last_edited_user": "admin",
"last_edited_date": 1733241917000
}
}
],
"updates": [
[
{
"attributes": {
"OBJECTID": 40,
"ASSETGROUP": 4,
"ASSETTYPE": 1,
"ASSOCIATIONSTATUS": 36,
"TERMINALCONFIGURATION": "Default",
"CONTAINERSOURCEID": 16,
"CONTAINERGLOBALID": "{D2C1B4A5-08F5-4301-87E3-404281CC49F1}",
"FIRSTUNIT": 1,
"NUMUNITS": 6,
"NEXTUNITID": null,
"ROOTCONTAINERSTATE": null,
"CLUSTERKEY": null,
"GLOBALID": "{15C8E871-EC5B-453F-B6B0-5548C9857B5C}",
"act_len": null,
"created_user": null,
"created_date": null,
"last_edited_user": null,
"last_edited_date": null
}
},
{
"attributes": {
"OBJECTID": 40,
"ASSETGROUP": 4,
"ASSETTYPE": 1,
"ASSOCIATIONSTATUS": 36,
"TERMINALCONFIGURATION": "Default",
"CONTAINERSOURCEID": 16,
"CONTAINERGLOBALID": "{D2C1B4A5-08F5-4301-87E3-404281CC49F1}",
"FIRSTUNIT": 1,
"NUMUNITS": 5,
"NEXTUNITID": null,
"ROOTCONTAINERSTATE": null,
"CLUSTERKEY": null,
"GLOBALID": "{15C8E871-EC5B-453F-B6B0-5548C9857B5C}",
"act_len": null,
"created_user": null,
"created_date": null,
"last_edited_user": "admin",
"last_edited_date": 1733241917000
}
}
]
]
}
},
{
"id": 25,
"editMoment": 1733241917460,
"editedFeatures": {
"adds": [
{
"attributes": {
"OBJECTID": 1203,
"SOURCEID": 20,
"GUID": "{15C8E871-EC5B-453F-B6B0-5548C9857B5C}",
"STATUS": 1,
"ERRORCODE": 0,
"ERRORMESSAGE": "",
"CLUSTERKEY": null,
"CREATIONDATE": 1733241917000,
"CREATOR": "admin",
"LASTUPDATE": 1733241917000,
"UPDATEDBY": "admin",
"GLOBALID": "{7AA30B59-F1A4-44AA-B117-A0FD63A638F6}"
}
},
{
"attributes": {
"OBJECTID": 1204,
"SOURCEID": 20,
"GUID": "{FB2229ED-03A4-4219-AD83-1C4C27609A0C}",
"STATUS": 1,
"ERRORCODE": 0,
"ERRORMESSAGE": "",
"CLUSTERKEY": null,
"CREATIONDATE": 1733241917000,
"CREATOR": "admin",
"LASTUPDATE": 1733241917000,
"UPDATEDBY": "admin",
"GLOBALID": "{A596229F-91D4-4219-8C62-B33E407090E0}"
}
},
{
"attributes": {
"OBJECTID": 1205,
"SOURCEID": 21,
"GUID": "{37D06CDE-121D-404B-884C-83BF74DFB376}",
"STATUS": 1,
"ERRORCODE": 0,
"ERRORMESSAGE": "",
"CLUSTERKEY": null,
"CREATIONDATE": 1733241917000,
"CREATOR": "admin",
"LASTUPDATE": 1733241917000,
"UPDATEDBY": "admin",
"GLOBALID": "{EFE4BB93-48D4-4597-BABA-90245775F654}"
}
},
{
"attributes": {
"OBJECTID": 1206,
"SOURCEID": 21,
"GUID": "{D35B3BD2-6DDF-4B41-A920-AC67C9B1A4A5}",
"STATUS": 1,
"ERRORCODE": 0,
"ERRORMESSAGE": "",
"CLUSTERKEY": null,
"CREATIONDATE": 1733241917000,
"CREATOR": "admin",
"LASTUPDATE": 1733241917000,
"UPDATEDBY": "admin",
"GLOBALID": "{ACFCC4D6-CD4E-4835-B3C9-418666F895BC}"
}
}
]
}
},
{
"id": 13,
"editMoment": 1733241917460,
"editedFeatures": {
"spatialReference": {
"wkid": 3498,
"latestWkid": 3498,
"xyTolerance": 0.003280833333333333,
"zTolerance": 0.001,
"mTolerance": 0.001,
"falseX": -117608900,
"falseY": -91881400,
"xyUnits": 3048.0060960121929,
"falseZ": -100000,
"zUnits": 10000,
"falseM": -100000,
"mUnits": 10000
},
"adds": [
{
"attributes": {
"OBJECTID": 1204,
"ISRETIRED": 1,
"STATUS": 4,
"SOURCEID": 16,
"GUID": "{D2C1B4A5-08F5-4301-87E3-404281CC49F1}",
"ERRORCODE": 0,
"ERRORMESSAGE": "",
"CREATIONDATE": 1733241917000,
"CREATOR": "admin",
"LASTUPDATE": 1733241917000,
"UPDATEDBY": "admin",
"GLOBALID": "{4FACCA8E-5192-47BA-BFF3-9266238990DC}",
"Shape__Area": 1.1355346260169209,
"Shape__Length": 4.262458682060242
},
"geometry": {
"hasZ": true,
"hasM": true,
"rings": [
[
[
6812297.924822971,
1842903.0884204806,
0,
null
],
[
6812297.924822971,
1842904.154035151,
0,
null
],
[
6812298.990437642,
1842904.154035151,
0,
null
],
[
6812298.990437642,
1842903.0884204806,
0,
null
],
[
6812297.924822971,
1842903.0884204806,
0,
null
]
]
]
}
},
{
"attributes": {
"OBJECTID": 1205,
"ISRETIRED": 1,
"STATUS": 4,
"SOURCEID": 17,
"GUID": "{6F41EA37-6F92-40E6-90EB-C824EE36EAB0}",
"ERRORCODE": 0,
"ERRORMESSAGE": "",
"CREATIONDATE": 1733241917000,
"CREATOR": "admin",
"LASTUPDATE": 1733241917000,
"UPDATEDBY": "admin",
"GLOBALID": "{4E0B9548-8975-492D-8353-25DC5D7B7FD7}",
"Shape__Area": 17.46418120465505,
"Shape__Length": 532.4405361711979
},
"geometry": {
"hasZ": true,
"hasM": true,
"rings": [
[
[
6812032.335787222,
1842903.588419482,
0,
null
],
[
6812032.335787222,
1842903.6540361494,
0,
null
],
[
6812298.49043864,
1842903.6540361494,
0,
null
],
[
6812298.49043864,
1842903.588419482,
0,
null
],
[
6812032.335787222,
1842903.588419482,
0,
null
]
]
]
}
},
{
"attributes": {
"OBJECTID": 1206,
"ISRETIRED": 1,
"STATUS": 4,
"SOURCEID": 16,
"GUID": "{57115299-920D-44D2-B5FC-DD4ACAB48B9C}",
"ERRORCODE": 0,
"ERRORMESSAGE": "",
"CREATIONDATE": 1733241917000,
"CREATOR": "admin",
"LASTUPDATE": 1733241917000,
"UPDATEDBY": "admin",
"GLOBALID": "{A1B82591-3A2C-4E29-9210-DDFABC7B1302}",
"Shape__Area": 1.1355346260169209,
"Shape__Length": 4.262458682060242
},
"geometry": {
"hasZ": true,
"hasM": true,
"rings": [
[
[
6812031.83578822,
1842903.0884204806,
0,
null
],
[
6812031.83578822,
1842904.154035151,
0,
null
],
[
6812032.901402891,
1842904.154035151,
0,
null
],
[
6812032.901402891,
1842903.0884204806,
0,
null
],
[
6812031.83578822,
1842903.0884204806,
0,
null
]
]
]
}
}
]
}
},
{
"id": 8,
"editMoment": 1733241917460,
"editedFeatures": {
"spatialReference": {
"wkid": 3498,
"latestWkid": 3498,
"xyTolerance": 0.003280833333333333,
"zTolerance": 0.001,
"mTolerance": 0.001,
"falseX": -117608900,
"falseY": -91881400,
"xyUnits": 3048.0060960121929,
"falseZ": -100000,
"zUnits": 10000,
"falseM": -100000,
"mUnits": 10000
},
"updates": [
[
{
"attributes": {
"OBJECTID": 25,
"ASSETGROUP": 1,
"ASSETTYPE": 1,
"ASSOCIATIONSTATUS": 1,
"FROMDEVICETERMINAL": 0,
"TODEVICETERMINAL": 0,
"FLOWDIRECTION": 1,
"CONTAINERSOURCEID": null,
"CONTAINERGLOBALID": null,
"NUMUNITS": 12,
"COLORSCHEME": 5,
"ROOTCONTAINERSTATE": null,
"CLUSTERKEY": null,
"GLOBALID": "{6F41EA37-6F92-40E6-90EB-C824EE36EAB0}",
"act_len": null,
"created_user": null,
"created_date": null,
"last_edited_user": null,
"last_edited_date": null,
"Shape__Length": 266.08903474999996
},
"geometry": {
"hasZ": true,
"hasM": true,
"paths": [
[
[
6812032.368595555,
1842903.6212278158,
0,
null
],
[
6812298.4576303069,
1842903.6212278158,
0,
null
]
]
]
}
},
{
"attributes": {
"OBJECTID": 25,
"ASSETGROUP": 1,
"ASSETTYPE": 1,
"ASSOCIATIONSTATUS": 1,
"FROMDEVICETERMINAL": 0,
"TODEVICETERMINAL": 0,
"FLOWDIRECTION": 1,
"CONTAINERSOURCEID": null,
"CONTAINERGLOBALID": null,
"NUMUNITS": 12,
"COLORSCHEME": 5,
"ROOTCONTAINERSTATE": 45582,
"CLUSTERKEY": null,
"GLOBALID": "{6F41EA37-6F92-40E6-90EB-C824EE36EAB0}",
"act_len": null,
"created_user": null,
"created_date": null,
"last_edited_user": null,
"last_edited_date": null,
"Shape__Length": 266.08903474999996
},
"geometry": {
"hasZ": true,
"hasM": true,
"paths": [
[
[
6812032.368595555,
1842903.6212278158,
0,
null
],
[
6812298.4576303069,
1842903.6212278158,
0,
null
]
]
]
}
}
]
]
}
},
{
"id": 19,
"editMoment": 1733241917460,
"editedFeatures": {
"adds": [
{
"attributes": {
"OBJECTID": 524,
"ASSETGROUP": 1,
"ASSETTYPE": 1,
"ASSOCIATIONSTATUS": 36,
"FLOWDIRECTION": 1,
"CONTAINERSOURCEID": 17,
"CONTAINERGLOBALID": "{6F41EA37-6F92-40E6-90EB-C824EE36EAB0}",
"FROMSOURCEID": 20,
"FROMGLOBALID": "{B6C1545A-00E5-4AEA-86F9-812A1C2B36E9}",
"FROMTERMINALID": 1,
"FROMFIRSTUNIT": 12,
"FROMNUMUNITS": 1,
"TOSOURCEID": 20,
"TOGLOBALID": "{FB2229ED-03A4-4219-AD83-1C4C27609A0C}",
"TOTERMINALID": 1,
"TOFIRSTUNIT": 6,
"TONUMUNITS": 1,
"FIRSTUNIT": 12,
"NUMUNITS": 1,
"NEXTUNITID": null,
"RECORDTYPE": 1,
"COLORSCHEME": 5,
"ROOTCONTAINERSTATE": null,
"CLUSTERKEY": null,
"GLOBALID": "{D35B3BD2-6DDF-4B41-A920-AC67C9B1A4A5}",
"act_len": null,
"created_user": "admin",
"created_date": 1733241917000,
"last_edited_user": "admin",
"last_edited_date": 1733241917000
}
}
],
"updates": [
[
{
"attributes": {
"OBJECTID": 28,
"ASSETGROUP": 1,
"ASSETTYPE": 1,
"ASSOCIATIONSTATUS": 36,
"FLOWDIRECTION": 1,
"CONTAINERSOURCEID": 17,
"CONTAINERGLOBALID": "{6F41EA37-6F92-40E6-90EB-C824EE36EAB0}",
"FROMSOURCEID": 20,
"FROMGLOBALID": "{B6C1545A-00E5-4AEA-86F9-812A1C2B36E9}",
"FROMTERMINALID": 1,
"FROMFIRSTUNIT": 7,
"FROMNUMUNITS": 6,
"TOSOURCEID": 20,
"TOGLOBALID": "{15C8E871-EC5B-453F-B6B0-5548C9857B5C}",
"TOTERMINALID": 1,
"TOFIRSTUNIT": 1,
"TONUMUNITS": 6,
"FIRSTUNIT": 7,
"NUMUNITS": 6,
"NEXTUNITID": null,
"RECORDTYPE": 1,
"COLORSCHEME": 5,
"ROOTCONTAINERSTATE": null,
"CLUSTERKEY": null,
"GLOBALID": "{37D06CDE-121D-404B-884C-83BF74DFB376}",
"act_len": null,
"created_user": null,
"created_date": null,
"last_edited_user": null,
"last_edited_date": null
}
},
{
"attributes": {
"OBJECTID": 28,
"ASSETGROUP": 1,
"ASSETTYPE": 1,
"ASSOCIATIONSTATUS": 36,
"FLOWDIRECTION": 1,
"CONTAINERSOURCEID": 17,
"CONTAINERGLOBALID": "{6F41EA37-6F92-40E6-90EB-C824EE36EAB0}",
"FROMSOURCEID": 20,
"FROMGLOBALID": "{B6C1545A-00E5-4AEA-86F9-812A1C2B36E9}",
"FROMTERMINALID": 1,
"FROMFIRSTUNIT": 7,
"FROMNUMUNITS": 5,
"TOSOURCEID": 20,
"TOGLOBALID": "{15C8E871-EC5B-453F-B6B0-5548C9857B5C}",
"TOTERMINALID": 1,
"TOFIRSTUNIT": 1,
"TONUMUNITS": 5,
"FIRSTUNIT": 7,
"NUMUNITS": 5,
"NEXTUNITID": null,
"RECORDTYPE": 1,
"COLORSCHEME": 5,
"ROOTCONTAINERSTATE": null,
"CLUSTERKEY": null,
"GLOBALID": "{37D06CDE-121D-404B-884C-83BF74DFB376}",
"act_len": null,
"created_user": null,
"created_date": null,
"last_edited_user": "admin",
"last_edited_date": 1733241917000
}
}
]
]
}
},
{
"id": 5,
"editMoment": 1733241917460,
"editedFeatures": {
"spatialReference": {
"wkid": 3498,
"latestWkid": 3498,
"xyTolerance": 0.003280833333333333,
"zTolerance": 0.001,
"mTolerance": 0.001,
"falseX": -117608900,
"falseY": -91881400,
"xyUnits": 3048.0060960121929,
"falseZ": -100000,
"zUnits": 10000,
"falseM": -100000,
"mUnits": 10000
},
"updates": [
[
{
"attributes": {
"OBJECTID": 28,
"ASSETGROUP": 1,
"ASSETTYPE": 1,
"ASSOCIATIONSTATUS": 1,
"TERMINALCONFIGURATION": "Default",
"CONTAINERSOURCEID": null,
"CONTAINERGLOBALID": null,
"NEXTUNITID": null,
"ROOTCONTAINERSTATE": null,
"CLUSTERKEY": null,
"GLOBALID": "{57115299-920D-44D2-B5FC-DD4ACAB48B9C}",
"created_user": null,
"created_date": null,
"last_edited_user": null,
"last_edited_date": null
},
"geometry": {
"x": 6812032.368595555,
"y": 1842903.6212278158,
"z": 0,
"m": null
}
},
{
"attributes": {
"OBJECTID": 28,
"ASSETGROUP": 1,
"ASSETTYPE": 1,
"ASSOCIATIONSTATUS": 1,
"TERMINALCONFIGURATION": "Default",
"CONTAINERSOURCEID": null,
"CONTAINERGLOBALID": null,
"NEXTUNITID": null,
"ROOTCONTAINERSTATE": 45582,
"CLUSTERKEY": null,
"GLOBALID": "{57115299-920D-44D2-B5FC-DD4ACAB48B9C}",
"created_user": null,
"created_date": null,
"last_edited_user": null,
"last_edited_date": null
},
"geometry": {
"x": 6812032.368595555,
"y": 1842903.6212278158,
"z": 0,
"m": null
}
}
],
[
{
"attributes": {
"OBJECTID": 29,
"ASSETGROUP": 1,
"ASSETTYPE": 1,
"ASSOCIATIONSTATUS": 1,
"TERMINALCONFIGURATION": "Default",
"CONTAINERSOURCEID": null,
"CONTAINERGLOBALID": null,
"NEXTUNITID": null,
"ROOTCONTAINERSTATE": null,
"CLUSTERKEY": null,
"GLOBALID": "{D2C1B4A5-08F5-4301-87E3-404281CC49F1}",
"created_user": null,
"created_date": null,
"last_edited_user": null,
"last_edited_date": null
},
"geometry": {
"x": 6812298.4576303069,
"y": 1842903.6212278158,
"z": 0,
"m": null
}
},
{
"attributes": {
"OBJECTID": 29,
"ASSETGROUP": 1,
"ASSETTYPE": 1,
"ASSOCIATIONSTATUS": 1,
"TERMINALCONFIGURATION": "Default",
"CONTAINERSOURCEID": null,
"CONTAINERGLOBALID": null,
"NEXTUNITID": null,
"ROOTCONTAINERSTATE": 45582,
"CLUSTERKEY": null,
"GLOBALID": "{D2C1B4A5-08F5-4301-87E3-404281CC49F1}",
"created_user": null,
"created_date": null,
"last_edited_user": null,
"last_edited_date": null
},
"geometry": {
"x": 6812298.4576303069,
"y": 1842903.6212278158,
"z": 0,
"m": null
}
}
]
]
}
}
]
Example usage-combine grouped objects
When using combines
property in the edits
parameter of apply
, the request should contain the id of the table that contains the objects you want to combine along with the globalIDs of the grouped objects to be combined. For grouped objects to be combined they must belong to the same object class and contain consecutive unit ID values (gaps are not allowed). If a combine policy is not specified for an attribute field, the objects must have the same attribute values (with the exception of unit identifier information). When the apply
operation is run, the object with the lowest first unit value is updated and other objects are deleted.
Request URL and parameters:
Request URL:https
Syntax:
[
{
"id": <tableId>,
"combinesReservedForTelecom":
[
{
"globalIds": ["<globalId1>", "<globalId2>", ...]
}
]
}
]
Example Usage:
Use combines
to combine two objects, the first having First Unit 1 and NumUnits 2, and the second having FirstUnit 3 and NumUnits 2. This uses the globalID of the first object to update it with FirstUnit 1 and NumUnits 4, and deletes the other object.
[
{
"id": 18,
"adds": [],
"updates": [],
"deletes": [],
"splits": [],
"combinesReservedForTelecom": [
{
"globalIds": [
"{78470E53-2455-4199-B1A6-5269F5157B23}","{E52F3786-EE6D-4770-BA4F-5FCD584E2867}"
]
}
]
}
]
JSON response:
[
{
"id": 18,
"addResults": [],
"updateResults": [],
"deleteResults": [],
"splitResults": [],
"combineReservedForTelecomResults": [
{
"combinedGlobalId": "{78470E53-2455-4199-B1A6-5269F5157B23}",
"deletedGlobalIds": [
"{E52F3786-EE6D-4770-BA4F-5FCD584E2867}"
]
}
]
}
]
Work with associations
Using the layerId for the associations systemLayer, you can use feature service operations to inspect and edit associations.
It is important to keep the following in mind when working with associations:
-
The
percent
property is only applicable for junctionEdgeMidspanConnectivity associations.Along -
The
terminal
property is only applicable for the following association types:Id - JunctionJunctionConnectivity
- JunctionEdgeFromConnectivity
- JunctionEdgeMidspanConnectivity
- JunctionEdgeToConnectivity
-
The
terminal
property is only applicable for a junction source of an association.Id
To add an association, the following fields can be specified in the call to apply
:
[
{
"id": 500001,
"adds":
[
{
"attributes":
{
"fromNetworkSourceId" : <networkSourceId>,
"fromGlobalId" : <guid>,
"fromTerminalId" : <long>, // optional
"toNetworkSourceId" : <networkSourceId>,
"toGlobalId" : <guid>,
"toTerminalId" : <long>, // optional
"associationType" : <1|2|3|4|5|6>, // connectivity(1), containment(2), attachment(3), junctionEdgeFromConnectivity(4), junctionEdgeMidspanConnectivity(5), junctionEdgeToConnectivity(6)
"isContentVisible" : <0|1>, // optional: false, true
"percentAlong" : <float>, // optional
"toFirstUnit" : <short> // optional, for containment associations in telecom domain networks
The following association properties support updates for the edits
parameter of the applyEdits operation:
"isContentVisible" : <0|1> : false, true
"fromTerminalId" : <long>
"toTerminalId" : <long>
"percentAlong" : <float>
The apply
operation allows you to bypass the validation process when creating associations, resulting in faster writes. To skip validation when creating associations, set the following for the apply
property: {"utility
When this utility network option is set and one or more invalid associations are created, the next validate operation will detect and mark the invalid associations as errors.
Example usage—add association
Add a new connectivity association using the edits
parameter of the applyEdits operation.
Request URL:https
The apply
operation is executed using geodatabase
and use
. The following represents the edits
parameter.
[
{
"id": 500001,
"adds":
[
{
"attributes":
{
"fromNetworkSourceId": 9,
"fromGlobalId": "{CAD436A9-1FD9-4F7B-B740-63C09313281A}",
"fromTerminalId": 1,
"toNetworkSourceId": 12,
"toGlobalId": "{3A8185AF-2A13-4072-AB3C-F8A4EFE733E4}",
"toterminalId": 1,
"associationType": 1,
"isContentVisible": -1,
"percentAlong": 0
}
}
]
}
]
JSON response:
[
{
"id": 500001,
"addResults": [
{
"objectId": 902,
"globalId": "{4ED4701E-A80C-42C2-9C7C-43DB03AC7CE2}",
"success": true
}
]
}
]
Add a new containment association in a telecom domain network using the edits
parameter of the applyEdits operation. This uses the to
property to specify the unit identifier on the content unit identifiable object where containment begins.
Request URL:https
The apply
operation is executed using geodatabase
and use
. The following represents the edits
parameter.
[
{
"id": 500001,
"adds":
[
{
"attributes":
{
"fromNetworkSourceId": 16,
"fromGlobalId": "{7A1F8243-F2D1-4FAB-AD4F-6BD31E11AA64}",
"fromTerminalId": -1,
"toNetworkSourceId": 20,
"toGlobalId": "{200EFF73-152C-4F88-AD9B-73304A57BB6B}",
"toterminalId": -1,
"associationType": 2,
"isContentVisible": 0,
"percentAlong": 0,
"toFirstUnit": 6
}
}
]
}
]
JSON response:
[
{
"id": 500001,
"addResults":
[
{
"globalId": "{F95E433F-1D35-4EBE-B305-15B29893AC14}",
"success": true
}
]
}
]
Example usage—update association
Update the iscontentvisible
property for an existing containment association using the edit
parameter of the applyEdits operation.
Request URL:https
The applyEdits operation is executed using geodatabase
and use
. The following represents the edits
parameter.
[
{
"id": 500001,
"updates":
[
{
"attributes":
{
"isContentVisible": 1,
"globalId": "{4EA7C98E-FC8B-485E-AE6E-C257777CFA10}"
}
}
]
}
]
JSON response:
[
{
"id": 500001,
"updateResults": [
{
"globalId": "{4EA7C98E-FC8B-485E-AE6E-C257777CFA10}",
"success": true
}
]
}
]
Access network properties using queryDataElements
The query
resource can provide access to valuable information about utility network layers.
The data element for a utility network controller dataset returns basic network properties as well as details about domain networks, network attributes, terminal configurations, and network categories.
Learn more about Query Data Elements
Example Usage
Provide the layerId for the utility network layer as an array to return data elements from the Auburn feature service:
Request URL:https
JSON Response
JSON response:
{
"layerDataElements": [
{
"layerId": 9,
"dataElement": {
"name": "AuburnElectric",
"creationTime": 1607475293000,
"schemaGeneration": 7,
"globalId": "{CA2E61CF-89D0-43C9-A286-5BD867C55B41}",
"userIdentity": "unadmin",
"properties": {},
"proVersion": "ArcGIS Pro 3.3.0",
"serviceTerritoryFeatureLayerId": 8,
"minimalDirtyAreaSize": 1,
"createDirtyAreaForAnyAttributeUpdate": 0,
"domainNetworks": [],
"networkAttributes":[],
"terminalConfigurations":[],
"categories":[]
}
}
]
}
JSON response examples can be found in the below sections for domain networks, tiers, junction sources, edge sources, network attributes, terminal configurations, and network categories.
Domain networks
The domain
array contains information about each domain network in the utility network as well as information on the tier’s subnetwork definition and trace configuration, junction sources, and edge sources.
JSON response:
"domainNetworks":
[
{
"creationTime": 1607475359000,
"releaseNumber": 1,
"isStructureNetwork": false,
"domainNetworkId": 2,
"domainNetworkName": "ElectricDistribution",
"domainNetworkAliasName": "Electric Distribution",
"subnetworkLayerId": 6,
"subnetworkLabelFieldName": "SUBNETWORKNAME",
"tierDefinition": "esriTDPartitioned",
"subnetworkControllerType": "Source",
"tierGroups": [],
"tiers": [],
"junctionSources": [],
"edgeSources": [],
…
},
]
Tiers example JSON response. The tiers array details information about the tier’s subnetwork definition and trace configuration:
"tiers":
[
{
"creationTime": 1607475385000,
"tierID": 1,
"name": "Medium Voltage",
"rank": 1,
"tierTopology": "esriTTTRadial",
"supportDisjointSubnetwork": true,
"subnetworkFieldName": "",
"tierGroupName": "",
"manageSubnetwork":
{
"type": "PropertySet",
"propertySetItems": ["IsDirty", true ]
},
"updateSubnetworkEditModeForDefaultVersion": "esriUSEMWithoutEventing",
"updateSubnetworkEditModeForNamedVersion": "esriUSEMWithEventing",
"updateSubnetworkOnStructures": true,
"updateSubnetworkOnContainers": true,
"updateSubnetworkOnSubnetLines": true,
"validateLocatability": false,
"updateSubnetworkOptions": 0,
"validDevices": [],
"validSubnetworkControllers": [],
"validLines": [],
"validJunctions": [],
"validJunctionObjects": [],
"validJunctionObjectSubnetworkControllers": [],
"validEdgeObjects": [],
"aggregatedLinesForSubnetLine": [],
"diagramTemplates": [],
"updateSubnetworkTraceConfiguration": {}
},
]
...
Junction sources example JSON response:
"junctionSources":
[
{
"sourceId": 9,
"layerId": 3,
"usesGeometry": true,
"shapeType": "esriGeometryPoint",
"utilityNetworkFeatureClassUsageType": "esriUNFCUTDevice",
"assetTypeFieldName": "ASSETTYPE",
"supportedProperties":
[
"esriNSSPSupportsContainment",
"esriNSSPSupportsCategories",
"esriNSSPSupportsTerminals",
"esriNSSPSupportsNetworkAttributes"
],
"assetGroups":
[
{
"creationTime": 1607475437000,
"assetTypeCode": 1,
"assetTypeName": "Device",
"containmentViewScale": 50,
"associationDeleteType": "esriADTSetToNone",
"associationRoleType": "esriARTContainer",
"isTerminalConfigurationSupported": true,
"terminalConfigurationId": 0,
"isLinearConnectivityPolicySupported": false,
"connectivityPolicy": "esriNECPEndVertex",
"categories": [],
"splitContent": false
}
]
}
]
...
Edge sources example JSON response:
"edgeSources":
[
{
"sourceId": 10,
"layerId": 5,
"usesGeometry": true,
"shapeType": "esriGeometryPolyline",
"utilityNetworkFeatureClassUsageType": "esriUNFCUTLine",
"assetTypeFieldName": "ASSETTYPE",
"supportedProperties":
[
"esriNSSPSupportsContainment",
"esriNSSPSupportsCategories",
"esriNSSPSupportsNetworkAttributes"
],
"assetGroups":
[
{
"creationTime": 1607475367000,
"assetGroupCode": 0,
"assetGroupName": "Unknown",
"assetTypes":
[
{
"creationTime": 1607475367000,
"assetTypeCode": 0,
"assetTypeName": "Unknown",
"containmentViewScale": 0,
"associationDeleteType": "esriADTRestricted",
"associationRoleType": "esriARTNone",
"isTerminalConfigurationSupported": false,
"terminalConfigurationId": 0,
"isLinearConnectivityPolicySupported": true,
"connectivityPolicy": "esriNECPEndVertex",
"categories": [],
"splitContent": false
}
]
}
]
}
],
...
Network attributes
Access information about the network attributes in the utility network
JSON response:
"networkAttributes":
[
{
"creationTime": 1607475293000,
"id": 16,
"name": "Phases Normal",
"networkAttributeToSubstitute": "",
"dataType": "esriNADTInteger",
"fieldType": "esriFieldTypeSmallInteger",
"usageType": "esriUNAUTUnknown",
"isEmbedded": false,
"isApportionable": false,
"isOverridable": false,
"isSubstitution": false,
"isNullable": false,
"domainName": "",
"bitPosition": 0,
"bitSize": 0,
"junctionWeightId": 31,
"edgeWeightId": 32,
"assignments":
[
"networkAttributeId": 16,
"layerId": 3,
"evaluator": {"fieldName": "phasesnormal"},
]
},
]
...
Terminal configurations
Access information about terminal configurations in the utility network
JSON response:
"terminalConfigurations":
[
{
"creationTime": 1607475293000,
"terminalConfigurationId": 0,
"terminalConfigurationName": "Single terminal",
"traversabilityModel": "esriUNTMBidirectional",
"terminals":
[
{
"terminalId": 1,
"terminalName": "Single Terminal",
"isUpstreamTerminal": false
}
],
"validConfigurationPaths": [],
"defaultConfiguration": "All"
},
]
...
Network categories
Access information about network categories in the utility network
JSON response:
"categories":
[
{
"creationTime": 1607475293000,
"name": "Subnetwork Controller"
},
]
...