Skip to content
import Network from "@arcgis/core/networks/Network.js";
Inheritance:
NetworkAccessor
Subclasses:
UtilityNetwork
Since
ArcGIS Maps SDK for JavaScript 4.20

Class defining high level properties that describes utility networks and trace networks.

See also

Constructors

Constructor

Constructor
Parameters
ParameterTypeDescriptionRequired
properties
See the properties table for a list of all the properties that may be passed into the constructor.

Properties

Any properties can be set, retrieved or listened to. See the Watch for changes topic.

dataElement

Property
Type
NetworkDataElementJSON | null | undefined

The full network definition, accessible only when the network is loaded.

datasetName

readonly Property
Type
string | null

The physical dataset name of the network as defined in the backend database. Accessible only when the network is loaded.

declaredClass

readonlyinherited Property
Type
string
Inherited from: Accessor

The name of the class. The declared class name is formatted as esri.folder.className.

featureServiceUrl

readonly Property
Type
string

Returns the root feature service url which this network is part of.

Example
`https://utilitynetwork.esri.com/server/rest/services/NapervilleElectric/FeatureServer/`

fullExtent

autocast Property
Type
Extent | null | undefined

The full extent of the network, defined from the service territory used to create the network.

gdbVersion

Property
Type
string | null | undefined

The version of the geodatabase of the feature service data. Read the Overview of versioning topic for more details about this capability.

historicMoment

autocast Property
Type
Date | null | undefined

The historic moment to query. If historicMoment is not specified, the query will apply to the current features.

id

Property
Type
string

Random unique id (UUID) to identify a network as defined in the webmap spec. Generated during sharing of the webmap.

layerId

readonly Property
Type
number

The layer id of the network.

layerUrl

Property
Type
string

The full url to the network layer id as defined in the webmap spec. e.g. https://utilitynetwork.esri.com/server/rest/services/NapervilleElectric/FeatureServer/17 (where 17 is the layer id of the network)

loaded

readonly Property
Type
boolean

Indicates whether the network instance has loaded. When true, all the properties of the object can be accessed.

Default value
false

loadError

readonlyinherited Property
Type
EsriError | null | undefined
Inherited from: LoadableMixin

The Error object returned if an error occurred while loading.

loadStatus

readonlyinherited Property
Type
"not-loaded" | "loading" | "failed" | "loaded"
Inherited from: LoadableMixin

Represents the status of a load() operation.

ValueDescription
not-loadedThe object's resources have not loaded.
loadingThe object's resources are currently loading.
loadedThe object's resources have loaded without errors.
failedThe object's resources failed to load. See loadError for more details.
Default value
"not-loaded"

loadWarnings

readonlyinherited Property
Type
any[]
Inherited from: LoadableMixin

A list of warnings which occurred while loading.

networkServiceUrl

readonly Property
Type
string

Returns the url of network server.

Example
`https://utilitynetwork.esri.com/server/rest/services/NapervilleElectric/UtilityNetworkServer/`

networkSystemLayers

readonly Property
Type
NetworkSystemLayers | null

Contains the url and IDs of the utility network rules, subnetworks, and dirty areas tables or layers.

Example
// Print out the dirty areas layer url in the utility network
view.when(async () => {
// Check if the webmap contains utility networks
if(webmap?.utilityNetworks?.length > 0) {
// Assigns the utility network at index 0
utilityNetwork = webmap.utilityNetworks.at(0);
// Load the utility network
await utilityNetwork.load();
// Print the dirty areas layer url and id
console.log(`Dirty areas layer id: ${utilityNetwork.networkSystemLayers.dirtyAreasLayerId}`);
console.log(`Dirty areas layer url: ${utilityNetwork.networkSystemLayers.dirtyAreasLayerUrl}`);
}
});

owner

readonly Property
Type
string | null

The portal user owner of the network. This portal user can perform administrative actions against the network.

parsedUrl

readonly Property
Type
UrlObject

Converts url to a url object

schemaGeneration

readonly Property
Type
number | null

The schema version of the network. Each version of the network introduces new features and capabilities. e.g. A utility network created with ArcGIS Pro 2.8 will have a schema generation version 5. While a UN created with ArcGIS Pro 2.6 will be version 4.

See also

sourceJSON

Property
Type
any

spatialReference

autocast Property
Type
SpatialReference

The spatial reference of the network, defined at the creation of the network, usually from the service territory class.

title

Property
Type
string

The name of the network as defined in the webmap spec. Represents the layer name of the network layer defined while sharing the webmap.

type

readonly Property
Type
"utility" | "trace"

The type of the dataset. Returns "utility" if the object represents a utility network or "trace" in case the network is a trace network.

Default value
"utility"

Methods

MethodSignatureClass
fromPortalItem(params: NetworkFromPortalItemParameters): Promise<UtilityNetwork | null | undefined>
cancelLoad
inherited
cancelLoad(): this
getLayerIdBySourceId(sourceId: number): number | null | undefined
getObjectIdsFromElements(elements: NetworkElement[]): LayerInfo[]
getSourceIdByLayerId(layerId: number): number | null | undefined
isFulfilled
inherited
isFulfilled(): boolean
isRejected
inherited
isRejected(): boolean
isResolved
inherited
isResolved(): boolean
load(): Promise<this>
queryNamedTraceConfigurations(query: QueryNamedTraceConfigurationsParametersProperties, options?: RequestOptions | null | undefined): Promise<NamedTraceConfiguration[]>
submitTopologyValidationJob(props: ValidateTopologyProperties, options?: RequestOptions | null | undefined): Promise<TopologyValidationJobInfo | null | undefined>
validateTopology(props: ValidateTopologyProperties, options?: RequestOptions | null | undefined): Promise<ValidateNetworkTopologyResult>
when
inherited
when<TResult1 = this, TResult2 = never>(onFulfilled?: OnFulfilledCallback<this, TResult1> | null | undefined, onRejected?: OnRejectedCallback<TResult2> | null | undefined): Promise<TResult1 | TResult2>

fromPortalItem

static Method
Signature
fromPortalItem (params: NetworkFromPortalItemParameters): Promise<UtilityNetwork | null | undefined>

Creates a new network instance from an ArcGIS Online or ArcGIS Enterprise portal item.

Known Limitations

This method does not populate the UtilityNetwork.sharedNamedTraceConfigurations for a UtilityNetwork instance.

Parameters
ParameterTypeDescriptionRequired
params

The parameters for loading the portal item.

Returns
Promise<UtilityNetwork | null | undefined>

Returns a promise which resolves to the new utility network instance.

Example
// Create a utility network from a specified portal item that contains a utility network feature service
const item = new PortalItem({
id: "77c7ae75eb3e4e08a7ad98cb37fefe88",
});
const utilityNetwork = await UtilityNetwork.fromPortalItem(item);
await utilityNetwork.load();
console.log("utilityNetwork loaded? ", utilityNetwork.loadStatus);

cancelLoad

inherited Method
Signature
cancelLoad (): this
Inherited from: LoadableMixin

Cancels a load() operation if it is already in progress.

Returns
this

getLayerIdBySourceId

Method
Signature
getLayerIdBySourceId (sourceId: number): number | null | undefined

The network consists of sources (classes) and each source has a unique Id. These source Ids are used to perform traversal in the network topology. The trace end points are not aware of layers and only returns sources of results. This method returns the layerId for given a source Id. Used as a helper method to process trace results.

Parameters
ParameterTypeDescriptionRequired
sourceId

The id of the source.

Returns
number | null | undefined

The layer id.

getObjectIdsFromElements

Method
Signature
getObjectIdsFromElements (elements: NetworkElement[]): LayerInfo[]

Groups network elements by their layerId. Returns a list containing the objectIds within each layer.

Parameters
ParameterTypeDescriptionRequired
elements

Array of network elements.

Returns
LayerInfo[]

Array of objects containing layerId and objectIds.

getSourceIdByLayerId

Method
Signature
getSourceIdByLayerId (layerId: number): number | null | undefined

Returns the layer ID for a given network source ID.

Parameters
ParameterTypeDescriptionRequired
layerId

The id of the layer.

Returns
number | null | undefined

The source corresponding network source ID, if one exists.

isFulfilled

inherited Method
Signature
isFulfilled (): boolean
Inherited from: EsriPromiseMixin

isFulfilled() may be used to verify if creating an instance of the class is fulfilled (either resolved or rejected). If it is fulfilled, true will be returned.

Returns
boolean

Indicates whether creating an instance of the class has been fulfilled (either resolved or rejected).

isRejected

inherited Method
Signature
isRejected (): boolean
Inherited from: EsriPromiseMixin

isRejected() may be used to verify if creating an instance of the class is rejected. If it is rejected, true will be returned.

Returns
boolean

Indicates whether creating an instance of the class has been rejected.

isResolved

inherited Method
Signature
isResolved (): boolean
Inherited from: EsriPromiseMixin

isResolved() may be used to verify if creating an instance of the class is resolved. If it is resolved, true will be returned.

Returns
boolean

Indicates whether creating an instance of the class has been resolved.

load

Method
Signature
load (): Promise<this>

Triggers the loading of the network instance.

Fully loads the network definition and all related objects (e.g. trace configurations)

Returns
Promise<this>

Resolves when the Network is loaded.

queryNamedTraceConfigurations

Method
Signature
queryNamedTraceConfigurations (query: QueryNamedTraceConfigurationsParametersProperties, options?: RequestOptions | null | undefined): Promise<NamedTraceConfiguration[]>
Since
ArcGIS Maps SDK for JavaScript 4.25

Named trace configurations allow you to add and store complex traces in a network that can be shared across an organization through web maps and consumed by web and field applications. This method returns a list of NamedTraceConfiguration objects that meet specific search conditions. Used to find existing named trace configurations in a utility network.

Parameters
ParameterTypeDescriptionRequired
query

The query parameters that are used to determine which named trace configurations will be returned.

options

The request options specified by the user in the data request. See RequestOptions for available properties.

Returns
Promise<NamedTraceConfiguration[]>

Resolves with an array of named trace configurations filtered based on the query parameters.

Examples
// Initialize the query object with global IDs of the named trace configurations to query.
const query = {
globalIds: ["5dbb5a13-ab2f-452d-bfcb-6f98154ccb9d", "cf568e46-f200-486c-adb1-d008a3da0ed1"],
}
// Query the utility network named trace configurations
// and filter the results by the query object.
const namedTraceConfigurations = await utilityNetwork.queryNamedTraceConfigurations(query);
// Print the named trace configurations to the console.
console.log(namedTraceConfigurations)
// Calling this method without parameters returns all named trace configurations in the utility network.
const namedTraceConfigurations = await utilityNetwork.queryNamedTraceConfigurations({});
// Print all the named trace configurations to the console.
console.log(namedTraceConfigurations);

submitTopologyValidationJob

Method
Signature
submitTopologyValidationJob (props: ValidateTopologyProperties, options?: RequestOptions | null | undefined): Promise<TopologyValidationJobInfo | null | undefined>
Since
ArcGIS Maps SDK for JavaScript 4.26

Whenever the network is edited or modified, the network and its features become out of date in the network topology. Validating the network topology maintains consistency and up-to-date content between the feature editing space and network topology space. Validating a network topology may include all or a subset of the dirty areas layer present in the network.

Parameters
ParameterTypeDescriptionRequired
props

The parameters that are used to validate the network topology.

options

The request options specified by the user in the data request. See RequestOptions for available properties.

Returns
Promise<TopologyValidationJobInfo | null | undefined>

Resolves with the results returned from validating network topology.

Example
const extent = new Extent({
xmin: 470789.0888,
ymin: 3597733.2051,
xmax: 531454.2759999996,
ymax: 3639864.802100001,
spatialReference: { wkid: 26911, latestWkid: 26911 }
});
const validationResult = await network.submitTopologyValidationJob({
validateArea: extent,
validationType: "rebuild",
validationSet: [
{
sourceId: 4134325151,
globalIds: ["{7865BAA6-ED9C-4346-9F72-894A49E10C73}"]
}
]
});

validateTopology

Method
Signature
validateTopology (props: ValidateTopologyProperties, options?: RequestOptions | null | undefined): Promise<ValidateNetworkTopologyResult>
Since
ArcGIS Maps SDK for JavaScript 4.26

Whenever the network is edited or modified, the network and its features become out of date in the network topology. Validating the network topology maintains consistency and up-to-date content between the feature editing space and network topology space. Validating a network topology may include all or a subset of the dirty areas layer present in the network.

Parameters
ParameterTypeDescriptionRequired
props

The parameters that are used to validate the network topology.

options

The request options specified by the user in the data request. See RequestOptions for available properties.

Returns
Promise<ValidateNetworkTopologyResult>

Resolves with the results returned from validating network topology.

Example
const extent = new Extent({
xmin: 470789.0888,
ymin: 3597733.2051,
xmax: 531454.2759999996,
ymax: 3639864.802100001,
spatialReference: { wkid: 26911, latestWkid: 26911 }
});
const result = await network.validateTopology({
validateArea: extent
});

when

inherited Method
Signature
when <TResult1 = this, TResult2 = never>(onFulfilled?: OnFulfilledCallback<this, TResult1> | null | undefined, onRejected?: OnRejectedCallback<TResult2> | null | undefined): Promise<TResult1 | TResult2>
Type parameters
<TResult1 = this, TResult2 = never>
Inherited from: EsriPromiseMixin

when() may be leveraged once an instance of the class is created. This method takes two input parameters: an onFulfilled function and an onRejected function. The onFulfilled executes when the instance of the class loads. The onRejected executes if the instance of the class fails to load.

Parameters
ParameterTypeDescriptionRequired
onFulfilled

The function to call when the promise resolves.

onRejected

The function to execute when the promise fails.

Returns
Promise<TResult1 | TResult2>

Returns a new promise for the result of onFulfilled that may be used to chain additional functions.

Example
// Although this example uses MapView, any class instance that is a promise may use when() in the same way
let view = new MapView();
view.when(function(){
// This function will execute once the promise is resolved
}, function(error){
// This function will execute if the promise is rejected due to an error
});

Type definitions

ValidateTopologyProperties

Type definition
Since
ArcGIS Maps SDK for JavaScript 4.27

ValidateTopologyProps represents the parameters for validating a network topology.

Supertypes
Pick<ValidateNetworkTopologyParametersProperties‚ "validationType" | "validateArea" | "validationSet" | "outSpatialReference">
Example
const validationResult = await network.validateTopology({
validateArea: extent,
gdbVersion: "sde.DEFAULT",
validationType: "rebuild",
validationSet: [
{
sourceId: 4134325151,
globalIds: ["{7865BAA6-ED9C-4346-9F72-894A49E10C73}"]
}
]
});

NetworkFromPortalItemParameters

Type definition

portalItem

Property
Type
PortalItem

The object representing an ArcGIS Online or ArcGIS Enterprise portal item from which to load the network.