UtilityNetwork

A utility network. This is the central class for utility network schema information and tracing. UtilityNetwork follows the Loadable pattern. When it loads, it is populated with the utility network schema. This class provides methods to create UtilityElement objects for the UtilityNetwork.

Since

200.1.0

Constructors

Link copied to clipboard
constructor(uri: String)

Creates an UtilityNetwork using the URI to the feature service.

constructor(uri: String, map: ArcGISMap)

Creates a utility network with the URL to the feature service and a map. Creates a utility network associated with a particular service, using the same ArcGISFeatureTable objects in use by FeatureLayer objects within the map. This lets any UtilityElement or ArcGISFeature objects the UtilityNetwork creates or uses be associated with those existing tables and layers. Usually used when instantiating an UtilityNetwork object from a web map. This UtilityNetwork will be added to ArcGISMap.utilityNetworks.

Properties

Link copied to clipboard

The definition of the UtilityNetwork. This definition is NULL until the utility network is loaded.

Link copied to clipboard

The dirty area table of the UtilityNetwork. A read-only table that can be used to query features that represent either:

Link copied to clipboard

The Geodatabase that contains this UtilityNetwork. The Geodatabase that contains this UtilityNetwork and is also used by the GeodatabaseFeatureTable in UtilityNetworkDefinition.networkSources.

Link copied to clipboard

The name of the UtilityNetwork. This property is empty when UtilityNetwork is not loaded or UtilityNetwork is not retrieved from a Geodatabase.

Link copied to clipboard
val uri: String?

The URI of the UtilityNetwork. This property is empty when UtilityNetwork is retrieved from a Geodatabase.

Inherited properties

Link copied to clipboard
open override val loadStatus: StateFlow<LoadStatus>

The load status.

Functions

Link copied to clipboard
suspend fun addAssociation(association: UtilityAssociation): Result<Unit>

Adds an association between two utility elements in this utility network. Adding an association may also update the features that participate in the association.

Link copied to clipboard

Checks if the utility association can be added to the utility network. Checks that all of the following conditions are met:

suspend fun canAddAssociation(associationType: UtilityAssociationType, fromElement: UtilityElement, toElement: UtilityElement): Result<Boolean>

Checks if a utility association with the specified type between the specified utility elements can be added to the utility network. Checks that all of the following conditions are met:

Link copied to clipboard

Checks whether associations can be deleted. Checks that all of the following conditions are met:

Link copied to clipboard
fun createElementOrNull(arcGISFeature: ArcGISFeature, terminal: UtilityTerminal? = null): UtilityElement?

Creates an UtilityElement from a feature and an optional UtilityTerminal. If the optional UtilityTerminal is not supplied, and the feature's UtilityAssetType supports an UtilityTerminalConfiguration, a default UtilityTerminal will be assigned.

fun createElementOrNull(assetType: UtilityAssetType, globalId: Guid, terminal: UtilityTerminal? = null): UtilityElement?

Creates an UtilityElement from an UtilityAssetType, a GlobalID, and an optional UtilityTerminal. If the optional UtilityTerminal is not supplied, and the feature's UtilityAssetType supports an UtilityTerminalConfiguration, a default UtilityTerminal will be assigned.

Link copied to clipboard
suspend fun deleteAssociation(association: UtilityAssociation): Result<Unit>

Deletes an association from this utility network. Deleting an association may also update the features that participate in the association.

Link copied to clipboard

Deletes a collection of associations from this utility network. Deleting these associations may also update the features that participate in these associations.

Link copied to clipboard

Returns a list of all UtilityAssociation objects (with their geometry) of type UtilityAssociationType present in the geodatabase for a given Envelope. Containment associations are not returned because no geometric relationship is defined between a container and its contents; consider using UtilityNetwork.getAssociations(UtilityElement, UtilityAssociationType) instead. The method does not return a complete picture of connectivity; features that are connected by geometric coincidence are not returned. Note that the list returned can contain associations that have not yet been validated and are therefore not yet included in the topological index.

Returns a list of all UtilityAssociation objects of type UtilityAssociationType present in the geodatabase for a given UtilityElement. The method does not return a complete picture of connectivity; features that are connected by geometric coincidence are not returned. Note that the list returned can contain associations that have not yet been validated and are therefore not yet included in the topological index.

Link copied to clipboard

Gets a collection of loaded ArcGISFeature objects that each correspond to one of a collection of UtilityElement objects.

Link copied to clipboard

Returns an UtilityNetworkState that represents the current state of the utility network. This state is unavailable if the utility network does not support the network state.

Link copied to clipboard
Link copied to clipboard
suspend fun trace(traceParameters: UtilityTraceParameters): Result<List<UtilityTraceResult>>

Begins a trace with the supplied UtilityTraceParameters. This method returns a task that supplies a collection of UtilityTraceResult objects when the utility network finishes the trace.

Link copied to clipboard
fun validateNetworkTopology(extent: Envelope, executionType: GeoprocessingExecutionType = GeoprocessingExecutionType.SynchronousExecute): UtilityNetworkValidationJob

Returns a job that when started will validate the utility network topology within the provided extent. The preferred job execution type is GeoprocessingExecutionType.SynchronousExecute because it is faster to start up. For larger jobs, GeoprocessingExecutionType.SynchronousExecute can lead to timeouts, at which point GeoprocessingExecutionType.AsynchronousSubmit should be used.

Inherited functions

Link copied to clipboard
open override fun cancelLoad()

Cancels loading metadata for the Loadable object.

Link copied to clipboard
open suspend override fun load(): Result<Unit>

Loads the metadata for the object.

Link copied to clipboard
open suspend override fun retryLoad(): Result<Unit>

Loads or retries loading metadata for the object.