A utility network. More...
Header: | #include <UtilityNetwork.h> |
Since: | Esri::ArcGISRuntime 100.6 |
Inherits: | Esri::ArcGISRuntime::Object, Esri::ArcGISRuntime::Loadable, and Esri::ArcGISRuntime::RemoteResource |
Public Functions
UtilityNetwork(const QUrl &url, QObject *parent = nullptr) | |
UtilityNetwork(const QUrl &url, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr) | |
UtilityNetwork(const QUrl &url, Esri::ArcGISRuntime::Map *map, QObject *parent = nullptr) | |
UtilityNetwork(const QUrl &url, Esri::ArcGISRuntime::Map *map, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr) | |
virtual | ~UtilityNetwork() override |
QFuture<void> | addAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation *association) |
QFuture<QList<Esri::ArcGISRuntime::UtilityAssociation *>> | associationsAsync(Esri::ArcGISRuntime::UtilityElement *element, QObject *parent = nullptr) |
QFuture<QList<Esri::ArcGISRuntime::UtilityAssociation *>> | associationsAsync(Esri::ArcGISRuntime::UtilityElement *element, Esri::ArcGISRuntime::UtilityAssociationType type, QObject *parent = nullptr) |
QFuture<QList<Esri::ArcGISRuntime::UtilityAssociation *>> | associationsAsync(const Esri::ArcGISRuntime::Envelope &extent, QObject *parent = nullptr) |
QFuture<QList<Esri::ArcGISRuntime::UtilityAssociation *>> | associationsAsync(const Esri::ArcGISRuntime::Envelope &extent, Esri::ArcGISRuntime::UtilityAssociationType type, QObject *parent = nullptr) |
QFuture<bool> | canAddAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation *association) |
QFuture<bool> | canAddAssociationAsync(Esri::ArcGISRuntime::UtilityAssociationType associationType, Esri::ArcGISRuntime::UtilityElement *fromElement, Esri::ArcGISRuntime::UtilityElement *toElement) |
bool | canDeleteAssociations() |
Esri::ArcGISRuntime::UtilityElement * | createElementWithArcGISFeature(Esri::ArcGISRuntime::ArcGISFeature *arcGISFeature, Esri::ArcGISRuntime::UtilityTerminal *terminal = nullptr, QObject *parent = nullptr) |
Esri::ArcGISRuntime::UtilityElement * | createElementWithAssetType(Esri::ArcGISRuntime::UtilityAssetType *assetType, const QUuid &globalId, Esri::ArcGISRuntime::UtilityTerminal *terminal = nullptr, QObject *parent = nullptr) |
Esri::ArcGISRuntime::UtilityNetworkDefinition * | definition() const |
QFuture<void> | deleteAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation *association) |
QFuture<void> | deleteAssociationsAsync(const QList<Esri::ArcGISRuntime::UtilityAssociation *> &associations) |
Esri::ArcGISRuntime::ArcGISFeatureTable * | dirtyAreaTable() const |
QFuture<QList<Esri::ArcGISRuntime::ArcGISFeature *>> | featuresForElementsAsync(const QList<Esri::ArcGISRuntime::UtilityElement *> &elements, QObject *parent = nullptr) |
Esri::ArcGISRuntime::ArcGISFeatureListModel * | featuresForElementsResult() const |
Esri::ArcGISRuntime::Geodatabase * | geodatabase() const |
QString | name() const |
QFuture<QList<Esri::ArcGISRuntime::UtilityNamedTraceConfiguration *>> | queryNamedTraceConfigurationsAsync(Esri::ArcGISRuntime::UtilityNamedTraceConfigurationQueryParameters *queryParameters, QObject *parent = nullptr) |
Esri::ArcGISRuntime::ServiceGeodatabase * | serviceGeodatabase() const |
QFuture<Esri::ArcGISRuntime::UtilityNetworkState *> | stateAsync(QObject *parent = nullptr) |
QFuture<QList<Esri::ArcGISRuntime::UtilityTraceResult *>> | traceAsync(Esri::ArcGISRuntime::UtilityTraceParameters *traceParameters, QObject *parent = nullptr) |
Esri::ArcGISRuntime::UtilityTraceResultListModel * | traceResult() const |
Esri::ArcGISRuntime::UtilityNetworkValidationJob * | validateNetworkTopology(const Esri::ArcGISRuntime::Envelope &extent) |
Esri::ArcGISRuntime::UtilityNetworkValidationJob * | validateNetworkTopology(const Esri::ArcGISRuntime::Envelope &extent, Esri::ArcGISRuntime::GeoprocessingExecutionType geoprocessingExecutionType) |
Reimplemented Public Functions
virtual void | cancelLoad() override |
virtual Esri::ArcGISRuntime::Credential * | credential() const override |
virtual void | load() override |
virtual Esri::ArcGISRuntime::Error | loadError() const override |
virtual Esri::ArcGISRuntime::LoadStatus | loadStatus() const override |
virtual Esri::ArcGISRuntime::RequestConfiguration | requestConfiguration() const override |
virtual void | retryLoad() override |
virtual void | setRequestConfiguration(const Esri::ArcGISRuntime::RequestConfiguration &requestConfiguration) override |
virtual QUrl | url() const override |
Signals
void | doneLoading(const Esri::ArcGISRuntime::Error &loadError) |
void | loadStatusChanged(Esri::ArcGISRuntime::LoadStatus loadStatus) |
Detailed Description
This is the central class for ArcGIS utility network schema information and tracing.
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.
Relevant samples:
- Configure subnetwork trace: Get a server-defined trace configuration for a given tier and modify its traversability scope, add new condition barriers and control what is included in the subnetwork trace result.
- Create load report: Create a simple electric distribution report that displays the count of customers and total load per phase by tracing downstream from a given point.
- Display content of utility network container: A utility network container allows a dense collection of features to be represented by a single feature, which can be used to reduce map clutter.
- Display utility associations: Create graphics for utility associations in a utility network.
- Perform valve isolation trace: Run a filtered trace to locate operable features that will isolate an area from the flow of network resources.
- Trace utility network: Discover connected features in a utility network using connected, subnetwork, upstream, and downstream traces.
- Validate utility network topology: Demonstrates the workflow of getting the network state and validating the topology of a utility network.
See also Loadable.
Member Function Documentation
[explicit]
UtilityNetwork::UtilityNetwork (const QUrl &url, QObject *parent = nullptr)
Creates a UtilityNetwork using the URL to the feature service.
- url - The URL to the feature service.
- parent - The optional parent QObject.
UtilityNetwork::UtilityNetwork (const QUrl &url, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr)
Constructor that accepts a URL of the utility network feature service and a credential.
- url - The URL of the utility network feature service
- credential - The Credential used to access the service
- parent - The parent object for this UtilityNetwork (optional)
UtilityNetwork::UtilityNetwork (const QUrl &url, Esri::ArcGISRuntime::Map *map, QObject *parent = nullptr)
Creates a utility network with the URL to the feature service and a map.
- url - The URL to the Feature Service.
- map - A Map that provides FeatureTables to be reused by the utility network.
- parent - The optional parent QObject.
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 a UtilityNetwork object from a web map. This UtilityNetwork will be added to Map::utilityNetworks.
UtilityNetwork::UtilityNetwork (const QUrl &url, Esri::ArcGISRuntime::Map *map, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr)
Constructor that accepts a URL, a Map, and a Credential.
- url - The URL of the utility network feature service
- map - A Map that provides FeatureTables to be reused by the utility network
- credential - The Credential used to access the service
- parent - The parent object for this UtilityNetwork (optional)
This constructor is used when creating a UtilityNetwork object from a web map and a credential is needed. It 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.
[override virtual]
UtilityNetwork::~UtilityNetwork ()
Destructor.
[since Esri::ArcGISRuntime 200.5]
QFuture<void> UtilityNetwork::addAssociationAsync (Esri::ArcGISRuntime::UtilityAssociation *association)
Adds an association between two utility elements in this utility network.
- association - The association to add.
Adding an association may also update the features that participate in the association.
Use canAddAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation*) to determine if you can successfully add this association.
This method requires that:
- The association type is supported by the utility network schema. Note that UtilityNetworkDefinition::schemaVersion less than 4 does not support the following association types:
- UtilityAssociationType::JunctionEdgeObjectConnectivityFromSide
- UtilityAssociationType::JunctionEdgeObjectConnectivityMidspan
- UtilityAssociationType::JunctionEdgeObjectConnectivityToSide
- The association elements are accessible. Use UtilityElement::isValid to check feature accessibility to ensure it has not been filtered out.
- The UtilityAssociation::fromElement has the necessary role for the association type. A UtilityAssociationRole::Container can participate in a containment association or a UtilityAssociationRole::Structure can participate in a structural attachment association.
- If the association's type is UtilityAssociationType::Connectivity, the UtilityElement::terminal must be set for elements with more than one terminal available in the UtilityTerminalConfiguration::terminals
- The association is supported by a utility rule. Use UtilityNetworkDefinition::rulesAsync(const QList<Esri::ArcGISRuntime::UtilityAssetType*>&, QObject*) to determine if the UtilityAssociation::associationType can be made between the UtilityAssociation::fromElement and UtilityAssociation::toElement using their corresponding UtilityElement::assetType.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
{deleteAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation*)}, {Esri::ArcGISRuntime::UtilityNetwork::deleteAssociationsAsync(const QList<Esri::ArcGISRuntime::UtilityAssociation*>&)} {deleteAssociationsAsync(const QList<Esri::ArcGISRuntime::UtilityAssociation*>&)}
This function was introduced in Esri::ArcGISRuntime 200.5.
See also Esri::ArcGISRuntime::UtilityNetwork::deleteAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation*).
[since Esri::ArcGISRuntime 200.2]
QFuture<QList<Esri::ArcGISRuntime::UtilityAssociation *>> UtilityNetwork::associationsAsync (Esri::ArcGISRuntime::UtilityElement *element, QObject *parent = nullptr)
Returns a list of all UtilityAssociation objects present in the geodatabase for a given UtilityElement.
- element - The UtilityElement whose associations are to be returned.
- parent - An optional parent.
The result is a list of all associations – connectivity associations, containment associations, structural attachment associations – that include the given UtilityElement object. 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.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
[since Esri::ArcGISRuntime 200.2]
QFuture<QList<Esri::ArcGISRuntime::UtilityAssociation *>> UtilityNetwork::associationsAsync (Esri::ArcGISRuntime::UtilityElement *element, Esri::ArcGISRuntime::UtilityAssociationType type, QObject *parent = nullptr)
Returns a list of all UtilityAssociation objects of type UtilityAssociationType present in the geodatabase for a given UtilityElement.
- element - The UtilityElement whose associations are to be returned.
- type - The UtilityAssociationType of associations to return.
- parent - An optional parent.
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.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
[since Esri::ArcGISRuntime 200.2]
QFuture<QList<Esri::ArcGISRuntime::UtilityAssociation *>> UtilityNetwork::associationsAsync (const Esri::ArcGISRuntime::Envelope &extent, QObject *parent = nullptr)
Returns a list of all UtilityAssociation objects (with their geometry) present in the geodatabase for a given Envelope.
- extent - The Envelope that defines the area for which associations to return.
- parent - An optional parent.
The result is a list of connectivity and structural attachment associations. Containment associations are not returned because no geometric relationship is defined between a container and its contents. 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.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
[since Esri::ArcGISRuntime 200.2]
QFuture<QList<Esri::ArcGISRuntime::UtilityAssociation *>> UtilityNetwork::associationsAsync (const Esri::ArcGISRuntime::Envelope &extent, Esri::ArcGISRuntime::UtilityAssociationType type, QObject *parent = nullptr)
Returns a list of all UtilityAssociation objects (with their geometry) of type UtilityAssociationType present in the geodatabase for a given Envelope.
- extent - The Envelope that defines the area for which associations to return.
- type - The UtilityAssociationType of associations to return.
- parent - An optional parent.
Containment associations are not returned because no geometric relationship is defined between a container and its contents; consider using associationsAsync(Esri::ArcGISRuntime::UtilityElement*, Esri::ArcGISRuntime::UtilityAssociationType, QObject*) 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.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
[since Esri::ArcGISRuntime 200.5]
QFuture<bool> UtilityNetwork::canAddAssociationAsync (Esri::ArcGISRuntime::UtilityAssociation *association)
Checks if the utility association can be added to the utility network.
- association - The association to be checked.
Checks that all of the following conditions are met:
- the utility network is in a valid state and supports the association type.
- the specified association only includes elements that are accessible and that have the necessary association role and terminal selection.
- a utility rule exists that permits their association.
- the current user has the necessary permissions.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.5.
See also canAddAssociationAsync(Esri::ArcGISRuntime::UtilityAssociationType, Esri::ArcGISRuntime::UtilityElement*, Esri::ArcGISRuntime::UtilityElement*) and canDeleteAssociations.
[since Esri::ArcGISRuntime 200.5]
QFuture<bool> UtilityNetwork::canAddAssociationAsync (Esri::ArcGISRuntime::UtilityAssociationType associationType , Esri::ArcGISRuntime::UtilityElement *fromElement , Esri::ArcGISRuntime::UtilityElement *toElement )
Checks if a utility association with the specified type between the specified utility elements can be added to the utility network.
- associationType - The type of association between the UtilityAssociation::fromElement and UtilityAssociation::toElement.
- fromElement - The first participant in the association.
- toElement - The second participant in the association.
Checks that all of the following conditions are met:
- the utility network is in a valid state and supports the association type.
- the specified association only includes elements that are accessible and that have the necessary association role and terminal selection.
- a utility rule exists that permits their association.
- the current user has the necessary permissions.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
{canAddAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation*)}, {Esri::ArcGISRuntime::UtilityNetwork::canDeleteAssociations} {canDeleteAssociations}
This function was introduced in Esri::ArcGISRuntime 200.5.
See also Esri::ArcGISRuntime::UtilityNetwork::canAddAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation*).
[since Esri::ArcGISRuntime 200.5]
bool UtilityNetwork::canDeleteAssociations ()
Returns whether associations can be deleted.
Checks that all of the following conditions are met:
- the utility network is in a valid state and allows editing association.
- the current user has the necessary permissions.
{canAddAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation*)}, {Esri::ArcGISRuntime::UtilityNetwork::canAddAssociationAsync(Esri::ArcGISRuntime::UtilityAssociationType, Esri::ArcGISRuntime::UtilityElement*, Esri::ArcGISRuntime::UtilityElement*)} {canAddAssociationAsync(Esri::ArcGISRuntime::UtilityAssociationType, Esri::ArcGISRuntime::UtilityElement*, Esri::ArcGISRuntime::UtilityElement*)}
This function was introduced in Esri::ArcGISRuntime 200.5.
See also Esri::ArcGISRuntime::UtilityNetwork::canAddAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation*).
[override virtual]
void UtilityNetwork::cancelLoad ()
Reimplements: Loadable::cancelLoad().
See Loadable.
Esri::ArcGISRuntime::UtilityElement *UtilityNetwork::createElementWithArcGISFeature (Esri::ArcGISRuntime::ArcGISFeature *arcGISFeature , Esri::ArcGISRuntime::UtilityTerminal *terminal = nullptr, QObject *parent = nullptr)
Creates a UtilityElement from an ArcGISFeature and an optional UtilityTerminal.
- arcGISFeature - The ArcGISFeature from which the element is created
- terminal - The UtilityTerminal (optional)
- parent - The parent object of the returned UtilityElement (optional)
If the optional UtilityTerminal is not supplied, and the feature's UtilityAssetType supports a UtilityTerminalConfiguration, a default UtilityTerminal will be assigned.
Esri::ArcGISRuntime::UtilityElement *UtilityNetwork::createElementWithAssetType (Esri::ArcGISRuntime::UtilityAssetType *assetType , const QUuid &globalId , Esri::ArcGISRuntime::UtilityTerminal *terminal = nullptr, QObject *parent = nullptr)
Creates a UtilityElement from a UtilityAssetType, a global ID of a feature, and an optional UtilityTerminal.
- assetType - The UtilityAssetType of the feature from which this feature element is created
- globalId - The GlobalID of the feature from which this feature element is created
- terminal - The UtilityTerminal (optional).
- parent - The parent object of the returned UtilityElement (optional).
If the optional UtilityTerminal is not supplied, and the feature's UtilityAssetType supports a UtilityTerminalConfiguration, a default UtilityTerminal will be assigned.
[override virtual]
Esri::ArcGISRuntime::Credential *UtilityNetwork::credential() const
Reimplements: RemoteResource::credential() const.
Returns the security credential used to access the utility network.
Note: Only applicable if using an online service that is secured.
Esri::ArcGISRuntime::UtilityNetworkDefinition *UtilityNetwork::definition() const
Returns the definition of the utility network.
The definition contains metadata about the associated utility network feature service. This definition is NULL until the utility network is loaded.
[since Esri::ArcGISRuntime 200.5]
QFuture<void> UtilityNetwork::deleteAssociationAsync (Esri::ArcGISRuntime::UtilityAssociation *association)
Deletes an association from this utility network.
- association - The association to delete.
Deleting an association may also update the features that participate in the association.
Use canDeleteAssociations to determine if you can successfully delete associations.
This method requires that the association elements are accessible. Use UtilityElement::isValid to check feature accessibility to ensure it has not been filtered out. This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
{deleteAssociationsAsync(const QList<Esri::ArcGISRuntime::UtilityAssociation*>&)}, {Esri::ArcGISRuntime::UtilityNetwork::addAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation*)} {addAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation*)}
This function was introduced in Esri::ArcGISRuntime 200.5.
See also Esri::ArcGISRuntime::UtilityNetwork::deleteAssociationsAsync(const QList<Esri::ArcGISRuntime::UtilityAssociation*>&).
[since Esri::ArcGISRuntime 200.5]
QFuture<void> UtilityNetwork::deleteAssociationsAsync (const QList<Esri::ArcGISRuntime::UtilityAssociation *> &associations)
Deletes a collection of associations from this utility network.
- associations - A collection of UtilityAssociation to delete.
Deleting these associations may also update the features that participate in these associations.
Use canDeleteAssociations to determine if you can successfully delete associations.
This method requires that the association elements are accessible. Use UtilityElement::isValid to check feature accessibility to ensure it has not been filtered out. This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
{deleteAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation*)}, {Esri::ArcGISRuntime::UtilityNetwork::addAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation*)} {addAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation*)}
This function was introduced in Esri::ArcGISRuntime 200.5.
See also Esri::ArcGISRuntime::UtilityNetwork::deleteAssociationAsync(Esri::ArcGISRuntime::UtilityAssociation*).
[since Esri::ArcGISRuntime 200.3]
Esri::ArcGISRuntime::ArcGISFeatureTable *UtilityNetwork::dirtyAreaTable () const
Returns the dirty area table of the UtilityNetwork. A read-only table that can be used to query features that represent either:
- a new or modified feature in the utility network that has not yet been validated in the network topology
- an error that resulted from enabling or validating network topology or updating subnetworks
A dirty area is created when modifications are made to feature geometry, asset group or asset type fields, network attribute fields, associations, or terminal configuration information.
The dirty area table is nullptr
until the utility network is loaded or if the utility network does not support the network state.
This function was introduced in Esri::ArcGISRuntime 200.3.
See also UtilityNetworkCapabilities::isSupportsNetworkState.
[signal]
void UtilityNetwork::doneLoading (const Esri::ArcGISRuntime::Error &loadError )
Signal emitted when this object is done loading.
loadError - The Error object.
[since Esri::ArcGISRuntime 200.2]
QFuture<QList<Esri::ArcGISRuntime::ArcGISFeature *>> UtilityNetwork::featuresForElementsAsync (const QList<Esri::ArcGISRuntime::UtilityElement *> &elements, QObject *parent = nullptr)
Returns a collection of loaded ArcGISFeature objects that each correspond to one of a collection of UtilityElement objects.
- elements - The collection of utility elements used to find corresponding features.
- parent - An optional parent.
Once the future is completed, all new ArcGISFeature results will be available in the ArcGISFeatureListModel immediately as well as the future's QList of results.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
See also featuresForElementsResult.
Esri::ArcGISRuntime::ArcGISFeatureListModel *UtilityNetwork::featuresForElementsResult () const
Returns the list model of features that is the result of the featuresForElementsAsync task
The result list model will contain loaded ArcGISFeature objects corresponding to the collection of UtilityElement objects used in the task.
[since Esri::ArcGISRuntime 100.11]
Esri::ArcGISRuntime::Geodatabase *UtilityNetwork::geodatabase() const
Returns the Geodatabase that contains this UtilityNetwork.
The Geodatabase that contains this UtilityNetwork and is also used by the GeodatabaseFeatureTable in UtilityNetworkDefinition::networkSources.
Use this property to manage transactions, sync edits, or access tables participating in this UtilityNetwork.
This property has a value when the UtilityNetwork is retrieved from a Geodatabase; otherwise, when created using any of the constructors, this property is nullptr
.
Note that calling Geodatabase::close on a Geodatabase that contains this UtilityNetwork will render this UtilityNetwork unusable. An attempt to create an element, get associations, get features from elements, or perform a trace after this Geodatabase is closed will fail with ErrorType::GeodatabaseDatabaseClosed.
This function was introduced in Esri::ArcGISRuntime 100.11.
[override virtual]
void UtilityNetwork::load()
Reimplements: Loadable::load().
Loads the metadata for the object asynchronously.
Loads the metadata if the object is not loaded.
See Loadable.
[override virtual]
Esri::ArcGISRuntime::Error UtilityNetwork::loadError () const
Reimplements: Loadable::loadError() const.
Returns the load error.
See Loadable.
See also Error.
[override virtual]
Esri::ArcGISRuntime::LoadStatus UtilityNetwork::loadStatus () const
Reimplements: Loadable::loadStatus() const.
Returns the load status.
See Loadable.
See also LoadStatus.
[signal]
void UtilityNetwork::loadStatusChanged (Esri::ArcGISRuntime::LoadStatus loadStatus )
Signal emitted when the load status changes for this object.
- loadStatus - The LoadStatus.
See also Loadable.
[since Esri::ArcGISRuntime 100.8]
QString UtilityNetwork::name() const
Returns the name of the UtilityNetwork.
This property is empty when UtilityNetwork is not loaded or UtilityNetwork is not retrieved from a Geodatabase.
This function was introduced in Esri::ArcGISRuntime 100.8.
[since Esri::ArcGISRuntime 200.2]
QFuture<QList<Esri::ArcGISRuntime::UtilityNamedTraceConfiguration *>> UtilityNetwork::queryNamedTraceConfigurationsAsync (Esri::ArcGISRuntime::UtilityNamedTraceConfigurationQueryParameters *queryParameters , QObject *parent = nullptr)
Returns a list of UtilityNamedTraceConfiguration from the utility network.
- queryParameters - Optional query parameter to filter the results.
- parent - An optional parent.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
[override virtual]
Esri::ArcGISRuntime::RequestConfiguration UtilityNetwork::requestConfiguration () const
Reimplements: RemoteResource::requestConfiguration() const.
Returns the RequestConfiguration in use by this task.
See also setRequestConfiguration().
[override virtual]
void UtilityNetwork::retryLoad ()
Reimplements: Loadable::retryLoad().
Loads or retries loading metadata for the object asynchronously.
Will retry loading the metadata if the object is failed to load. Will load the object if it is not loaded. Will not retry to load the object if the object is loaded. Will always call the done loading if this is called.
See Loadable.
[since Esri::ArcGISRuntime 100.10]
Esri::ArcGISRuntime::ServiceGeodatabase *UtilityNetwork::serviceGeodatabase () const
Returns the ServiceGeodatabase of the UtilityNetwork
The ServiceGeodatabase used by the ServiceFeatureTable in UtilityNetworkDefinition::networkSources.
Use this property to switch to a branch version, manage edits, or query related records of tables participating in this UtilityNetwork.
Note that calling ServiceGeodatabase::closeAsync on a ServiceGeodatabase that is used by a UtilityNetwork will render this UtilityNetwork unusable. An attempt to create an element, get associations, get features from elements, or perform a trace after this ServiceGeodatabase is closed will fail with Error::errorType ErrorType::GeodatabaseDatabaseClosed.
This function was introduced in Esri::ArcGISRuntime 100.10.
[override virtual]
void UtilityNetwork::setRequestConfiguration (const Esri::ArcGISRuntime::RequestConfiguration &requestConfiguration )
Reimplements: RemoteResource::setRequestConfiguration(const Esri::ArcGISRuntime::RequestConfiguration &requestConfiguration).
Sets the configuration parameters used for network requests sent by this task to requestConfiguration.
See also requestConfiguration().
[since Esri::ArcGISRuntime 200.3]
QFuture<Esri::ArcGISRuntime::UtilityNetworkState *> UtilityNetwork::stateAsync (QObject *parent = nullptr)
Returns a UtilityNetworkState that represents the current state of the utility network.
This state is unavailable if the utility network does not support the network state.
- parent - An optional parent.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.3.
See also UtilityNetworkCapabilities::isSupportsNetworkState.
[since Esri::ArcGISRuntime 200.2]
QFuture<QList<Esri::ArcGISRuntime::UtilityTraceResult *>> UtilityNetwork::traceAsync (Esri::ArcGISRuntime::UtilityTraceParameters *traceParameters , QObject *parent = nullptr)
Begins a trace with the supplied UtilityTraceParameters.
- traceParameters - The input arguments to the trace.
- parent - An optional parent.
Once the future is completed, all new UtilityTraceResult results will be available in the UtilityTraceResultListModel immediately as well as the future's QList of results.
If the UtilityTraceParameters::traceType in UtilityTraceParameters is a subnetwork-based trace, it must have a UtilityDomainNetwork set in the UtilityTraceConfiguration returned from UtilityTraceParameters::traceConfiguration.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
See also traceResult.
Esri::ArcGISRuntime::UtilityTraceResultListModel *UtilityNetwork::traceResult () const
Returns the list model of UtilityTraceResult.
See also trace.
[override virtual]
QUrl UtilityNetwork::url() const
Reimplements: RemoteResource::url() const.
Returns the URL of the UtilityNetwork.
This property is empty when UtilityNetwork is retrieved from a Geodatabase.
[since Esri::ArcGISRuntime 200.3]
Esri::ArcGISRuntime::UtilityNetworkValidationJob *UtilityNetwork::validateNetworkTopology (const Esri::ArcGISRuntime::Envelope &extent)
Returns a job that when started will validate the utility network topology within the provided extent.
- extent - The extent of the area to be validated.
The geoprocessing execution type is GeoprocessingExecutionType::SynchronousExecute.
The job that is returned is dormant and needs to be explicitly started.
When working with an enterprise geodatabase, only a single session can run the validate operation at a time in the default version.
See Enable and validate network topology errors for more information on validation errors.
This function was introduced in Esri::ArcGISRuntime 200.3.
See also UtilityNetworkCapabilities::isSupportsValidateNetworkTopology.
[since Esri::ArcGISRuntime 200.3]
Esri::ArcGISRuntime::UtilityNetworkValidationJob *UtilityNetwork::validateNetworkTopology (const Esri::ArcGISRuntime::Envelope &extent, Esri::ArcGISRuntime::GeoprocessingExecutionType geoprocessingExecutionType )
Returns a job that when started will validate the utility network topology within the provided extent.
- extent - The extent of the area to be validated.
- geoprocessingExecutionType - A GeoprocessingExecutionType indicating the job execution type. The value passed in must be either GeoprocessingExecutionType::AsynchronousSubmit or GeoprocessingExecutionType::SynchronousExecute.
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. The job that is returned is dormant and needs to be explicitly started.
When working with an enterprise geodatabase, only a single session can run the validate operation at a time in the default version.
See Enable and validate network topology errors for more information on validation errors.
{UtilityNetworkCapabilities::isSupportsValidateNetworkTopology}
This function was introduced in Esri::ArcGISRuntime 200.3.
See also Esri::ArcGISRuntime::UtilityNetworkCapabilities::isSupportsValidateNetworkTopology.