UtilityTraceConfiguration Class

  • UtilityTraceConfiguration
  • class Esri::ArcGISRuntime::UtilityTraceConfiguration

    The set of utility network parameters that define elements of a trace or of a subnetwork. More...

    Header: #include <UtilityTraceConfiguration.h>
    Since: Esri::ArcGISRuntime 100.7
    Inherits: Esri::ArcGISRuntime::Object

    Public Functions

    UtilityTraceConfiguration(QObject *parent = nullptr)
    virtual ~UtilityTraceConfiguration() override
    Esri::ArcGISRuntime::UtilityDomainNetwork *domainNetwork() const
    Esri::ArcGISRuntime::UtilityTraceFilter *filter() const
    Esri::ArcGISRuntime::UtilityTraceFunctionListModel *functions() const
    bool isAllowIndeterminateFlow() const
    bool isIgnoreBarriersAtStartingPoints() const
    bool isIncludeBarriers() const
    bool isIncludeContainers() const
    bool isIncludeContent() const
    bool isIncludeIsolatedFeatures() const
    bool isIncludeStructures() const
    bool isIncludeUpToFirstSpatialContainer() const
    bool isUseDigitizedDirection() const
    bool isValidateConsistency() const
    bool isValidateLocatability() const
    Esri::ArcGISRuntime::UtilityAssetTypeListModel *outputAssetTypes() const
    Esri::ArcGISRuntime::UtilityTraceCondition *outputCondition() const
    Esri::ArcGISRuntime::UtilityPropagatorListModel *propagators() const
    void setAllowIndeterminateFlow(bool allowIndeterminateFlow)
    void setDomainNetwork(Esri::ArcGISRuntime::UtilityDomainNetwork *domainNetwork)
    void setFilter(Esri::ArcGISRuntime::UtilityTraceFilter *filter)
    void setIgnoreBarriersAtStartingPoints(bool ignoreBarriersAtStartingPoints)
    void setIncludeBarriers(bool includeBarriers)
    void setIncludeContainers(bool includeContainers)
    void setIncludeContent(bool includeContent)
    void setIncludeIsolatedFeatures(bool includeIsolatedFeatures)
    void setIncludeStructures(bool includeStructures)
    void setIncludeUpToFirstSpatialContainer(bool includeUpToFirstSpatialContainer)
    void setOutputCondition(Esri::ArcGISRuntime::UtilityTraceCondition *outputCondition)
    void setShortestPathNetworkAttribute(Esri::ArcGISRuntime::UtilityNetworkAttribute *shortestPathNetworkAttribute)
    void setSourceTier(Esri::ArcGISRuntime::UtilityTier *sourceTier)
    void setTargetTier(Esri::ArcGISRuntime::UtilityTier *targetTier)
    void setTraversability(Esri::ArcGISRuntime::UtilityTraversability *traversability)
    void setUseDigitizedDirection(bool useDigitizedDirection)
    void setValidateConsistency(bool validateConsistency)
    void setValidateLocatability(bool validateLocatability)
    Esri::ArcGISRuntime::UtilityNetworkAttribute *shortestPathNetworkAttribute() const
    Esri::ArcGISRuntime::UtilityTier *sourceTier() const
    Esri::ArcGISRuntime::UtilityTier *targetTier() const
    Esri::ArcGISRuntime::UtilityTraversability *traversability() const

    Detailed Description

    UtilityTraceConfiguration is set in the UtilityTraceParameters.

    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.
    • 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.

    Member Function Documentation

    [explicit] UtilityTraceConfiguration::UtilityTraceConfiguration(QObject *parent = nullptr)

    Creates a UtilityTraceConfiguration with default values.

    • parent - The optional parent object.

    [override virtual] UtilityTraceConfiguration::~UtilityTraceConfiguration()

    Destructor.

    Esri::ArcGISRuntime::UtilityDomainNetwork *UtilityTraceConfiguration::domainNetwork() const

    Returns the UtilityDomainNetwork from which to start the trace.

    The UtilityDomainNetwork property is required and only used with subnetwork-based traces (UtilityTraceType::Subnetwork, UtilityTraceType::Upstream, and so on).

    See also setDomainNetwork().

    [since Esri::ArcGISRuntime 100.8] Esri::ArcGISRuntime::UtilityTraceFilter *UtilityTraceConfiguration::filter() const

    Returns the criteria that define the dynamic barriers for the trace.

    This function was introduced in Esri::ArcGISRuntime 100.8.

    See also setFilter().

    [since Esri::ArcGISRuntime 100.9] Esri::ArcGISRuntime::UtilityTraceFunctionListModel *UtilityTraceConfiguration::functions() const

    Returns a collection of UtilityTraceFunction objects to compute while performing the trace.

    Each UtilityTraceFunction returns a UtilityTraceFunctionOutput in the UtilityFunctionTraceResult.

    This function was introduced in Esri::ArcGISRuntime 100.9.

    [since Esri::ArcGISRuntime 200.1] bool UtilityTraceConfiguration::isAllowIndeterminateFlow() const

    Returns true to allow tracing across network features with indeterminate flow or false to stop the traversal when indeterminate flow is encountered.

    Indeterminate flow can occur when there is a loop in the network where traversal in either direction could be used to find the subnetwork controller (both upstream and downstream at the same time, in other words). This property is useful for upstream, downstream, or isolation traces where flow direction for the subnetwork is determined. This option is only applicable with Utility Network versions 5 or higher. The default is true.

    This function was introduced in Esri::ArcGISRuntime 200.1.

    bool UtilityTraceConfiguration::isIgnoreBarriersAtStartingPoints() const

    Returns whether to ignore barriers at starting points.

    The default is false.

    One example of how this can be used is with an upstream protective device trace. The first call to the trace will return the first upstream device that meets the protective device criteria. To find the next device upstream, you would set a starting point on the device returned by the first trace. With IgnoreBarriersAtStartingPoints set to false, this second trace would immediately stop at the starting point, since it meets the trace termination criteria. Setting this option to true will allow the trace to ignore the starting point, and continue to the subsequent device upstream.

    See also setIgnoreBarriersAtStartingPoints.

    bool UtilityTraceConfiguration::isIncludeBarriers() const

    Returns whether to include barriers in the trace results or subnetwork.

    The default is true.

    See also setIncludeBarriers.

    bool UtilityTraceConfiguration::isIncludeContainers() const

    Returns whether to include containment features in the trace results or subnetwork.

    The default is false.

    See also setIncludeContainers.

    bool UtilityTraceConfiguration::isIncludeContent() const

    Returns whether to include content in the trace results or subnetwork.

    The default is false.

    See also setIncludeContent.

    [since Esri::ArcGISRuntime 100.8] bool UtilityTraceConfiguration::isIncludeIsolatedFeatures() const

    Returns whether to include isolated features in the trace results when used in conjunction with the Isolation Trace.

    The default is false.

    This function was introduced in Esri::ArcGISRuntime 100.8.

    See also setIncludeIsolatedFeatures.

    bool UtilityTraceConfiguration::isIncludeStructures() const

    Returns whether to include structure features in the trace results or subnetwork.

    The default is false.

    See also setIncludeStructures.

    [since Esri::ArcGISRuntime 200.1] bool UtilityTraceConfiguration::isIncludeUpToFirstSpatialContainer() const

    Returns true to include containment associations up to and including the first spatial container or false to include all containment associations.

    This property depends on the isIncludeContainers property and is ignored if it's false. If no spatial containers are encountered but non-spatial containers are present for a given network element, all non-spatial containers are included in the results. This is typically used with telecommunications networks with multiple levels of containment with non-spatial objects (for example, splice points within a splice tray within a splice container). The default is false.

    This function was introduced in Esri::ArcGISRuntime 200.1.

    [since Esri::ArcGISRuntime 200.6] bool UtilityTraceConfiguration::isUseDigitizedDirection() const

    Returns true if the trace uses the flow direction, false otherwise.

    This property is only applicable for upstream and downstream traces in Utility Network versions 7 or higher.

    The direction of the flow will be based on the digitized direction of the line, which is determined by the From and To global ID of the edge object in the association, and the Flow direction attribute. To learn more, see Flow direction in a utility network.

    When the value is true, the domain network is no longer required, and the source and target tiers are also ignored.

    The default value is false.

    This function was introduced in Esri::ArcGISRuntime 200.6.

    bool UtilityTraceConfiguration::isValidateConsistency() const

    Returns whether to validate network consistency as part of the trace operation.

    If set to true, trace operations will fail if dirty areas are encountered during the trace. The default is true.

    [since Esri::ArcGISRuntime 200.1] bool UtilityTraceConfiguration::isValidateLocatability() const

    Returns true to fail trace operations if non-spatial objects are encountered without the necessary containment, attachment, or connectivity association to a spatial object, or false to allow tracing of those non-spatial objects.

    Locatability is determined by whether a non-spatial object has implied geometry. Geometry is implied for non-spatial objects if they are associated via containment (possibly multiple levels) with spatial features. This is typically used with telecommunications networks with many non-spatial objects. For example, if a splice tray (non-spatial junction object) is contained within a splice container (assembly feature), then it would be considered locatable. This property is only applicable for Utility Network versions 4 or later. The default is false.

    This function was introduced in Esri::ArcGISRuntime 200.1.

    [since Esri::ArcGISRuntime 100.9] Esri::ArcGISRuntime::UtilityAssetTypeListModel *UtilityTraceConfiguration::outputAssetTypes() const

    Returns a collection of UtilityAssetType objects which specifies what to include in the trace results.

    Only elements that belong to this UtilityAssetType are included in the trace result. This property is independent of asset types in the UtilityTraceConfiguration::filter. This is applied after all other tracing calculations, including traversal, filters, and function calculation. If this is empty and UtilityTraceConfiguration::outputCondition is nullptr, all elements are returned. Otherwise, elements which match either of these criteria are returned.

    This function was introduced in Esri::ArcGISRuntime 100.9.

    [since Esri::ArcGISRuntime 100.9] Esri::ArcGISRuntime::UtilityTraceCondition *UtilityTraceConfiguration::outputCondition() const

    Returns a condition object which specifies what to include in the trace results.

    Only elements that satisfy this UtilityTraceCondition are included in the trace result. This condition may perform comparisons against network attributes (UtilityNetworkAttributeComparison) and categories (UtilityCategoryComparison), or both (UtilityTraceAndCondition, UtilityTraceOrCondition). This property is independent of barriers in the UtilityTraceConfiguration::traversability or UtilityTraceConfiguration::filter. This is applied after all other tracing calculations, including traversal, filters, and function calculation. If this is nullptr and UtilityTraceConfiguration::outputAssetTypes is empty, all elements are returned. Otherwise, elements which match either of these criteria are returned.

    This function was introduced in Esri::ArcGISRuntime 100.9.

    See also setOutputCondition().

    Esri::ArcGISRuntime::UtilityPropagatorListModel *UtilityTraceConfiguration::propagators() const

    Returns a collection of UtilityPropagator objects to execute while performing the trace.

    Propagator objects allow a subset of UtilityNetworkAttribute values to propagate through a network while executing a trace. For example, in phase propagation, open devices along the network will restrict some phases from continuing along the trace. Propagators only apply to subnetwork-based traces. (UtilityTraceType::Upstream, UtilityTraceType::Downstream, and so on).

    [since Esri::ArcGISRuntime 200.1] void UtilityTraceConfiguration::setAllowIndeterminateFlow(bool allowIndeterminateFlow)

    Sets the allowIndeterminateFlow to allowIndeterminateFlow.

    This function was introduced in Esri::ArcGISRuntime 200.1.

    See also isAllowIndeterminateFlow.

    void UtilityTraceConfiguration::setDomainNetwork(Esri::ArcGISRuntime::UtilityDomainNetwork *domainNetwork)

    Sets the domainNetwork to domainNetwork.

    See also domainNetwork().

    [since Esri::ArcGISRuntime 100.8] void UtilityTraceConfiguration::setFilter(Esri::ArcGISRuntime::UtilityTraceFilter *filter)

    Sets the filter to filter.

    This function was introduced in Esri::ArcGISRuntime 100.8.

    See also filter().

    void UtilityTraceConfiguration::setIgnoreBarriersAtStartingPoints(bool ignoreBarriersAtStartingPoints)

    Sets the ignoreBarriersAtStartingPoints to ignoreBarriersAtStartingPoints.

    See also isIgnoreBarriersAtStartingPoints().

    void UtilityTraceConfiguration::setIncludeBarriers(bool includeBarriers)

    Sets the includeBarriers to includeBarriers.

    See also isIncludeBarriers().

    void UtilityTraceConfiguration::setIncludeContainers(bool includeContainers)

    Sets the includeContainers to includeContainers.

    See also isIncludeContainers().

    void UtilityTraceConfiguration::setIncludeContent(bool includeContent)

    Sets the includeContent to includeContent.

    See also isIncludeContent().

    [since Esri::ArcGISRuntime 100.8] void UtilityTraceConfiguration::setIncludeIsolatedFeatures(bool includeIsolatedFeatures)

    Sets includeIsolatedFeatures to includeIsolatedFeatures.

    This function was introduced in Esri::ArcGISRuntime 100.8.

    See also isIncludeIsolatedFeatures().

    void UtilityTraceConfiguration::setIncludeStructures(bool includeStructures)

    Sets the includeStructures to includeStructures.

    See also isIncludeStructures().

    [since Esri::ArcGISRuntime 200.1] void UtilityTraceConfiguration::setIncludeUpToFirstSpatialContainer(bool includeUpToFirstSpatialContainer)

    Sets the includeUpToFirstSpatialContainer to includeUpToFirstSpatialContainer.

    This function was introduced in Esri::ArcGISRuntime 200.1.

    See also isIncludeUpToFirstSpatialContainer.

    [since Esri::ArcGISRuntime 100.9] void UtilityTraceConfiguration::setOutputCondition(Esri::ArcGISRuntime::UtilityTraceCondition *outputCondition)

    Sets the outputCondition to outputCondition.

    This function was introduced in Esri::ArcGISRuntime 100.9.

    See also outputCondition.

    [since Esri::ArcGISRuntime 100.9] void UtilityTraceConfiguration::setShortestPathNetworkAttribute(Esri::ArcGISRuntime::UtilityNetworkAttribute *shortestPathNetworkAttribute)

    Sets the shortestPathNetworkAttribute to shortestPathNetworkAttribute.

    This function was introduced in Esri::ArcGISRuntime 100.9.

    See also shortestPathNetworkAttribute.

    void UtilityTraceConfiguration::setSourceTier(Esri::ArcGISRuntime::UtilityTier *sourceTier)

    Sets the sourceTier to sourceTier.

    See also sourceTier().

    void UtilityTraceConfiguration::setTargetTier(Esri::ArcGISRuntime::UtilityTier *targetTier)

    Sets the targetTier to targetTier.

    See also targetTier().

    void UtilityTraceConfiguration::setTraversability(Esri::ArcGISRuntime::UtilityTraversability *traversability)

    Sets the traversability to traversability.

    See also traversability().

    [since Esri::ArcGISRuntime 200.6] void UtilityTraceConfiguration::setUseDigitizedDirection(bool useDigitizedDirection)

    Sets the useDigitizedDirection to useDigitizedDirection.

    This function was introduced in Esri::ArcGISRuntime 200.6.

    See also isUseDigitizedDirection.

    void UtilityTraceConfiguration::setValidateConsistency(bool validateConsistency)

    Sets the validateConsistency to validateConsistency.

    See also isValidateConsistency().

    [since Esri::ArcGISRuntime 200.1] void UtilityTraceConfiguration::setValidateLocatability(bool validateLocatability)

    Sets the validateLocatability to validateLocatability.

    This function was introduced in Esri::ArcGISRuntime 200.1.

    See also isValidateLocatability.

    [since Esri::ArcGISRuntime 100.9] Esri::ArcGISRuntime::UtilityNetworkAttribute *UtilityTraceConfiguration::shortestPathNetworkAttribute() const

    Returns the UtilityNetworkAttribute used to calculate the shortest path.

    The shortest path may depend on some other numeric weight, such as cost or difficulty, rather than the shortest distance calculated from shape length.

    This function was introduced in Esri::ArcGISRuntime 100.9.

    See also setShortestPathNetworkAttribute().

    Esri::ArcGISRuntime::UtilityTier *UtilityTraceConfiguration::sourceTier() const

    Returns the UtilityTier that is used as the start of the trace.

    This property is only used with subnetwork-based traces (such as subnetwork upstream). If UtilityTraceConfiguration::domainNetwork represents a partitioned network, this property is optional. If not nullptr, the trace routines will perform an additional check to validate that the starting points and barriers belong to this tier. If UtilityTraceConfiguration::domainNetwork represents a hierarchical network, this property is required. Since rows in hierarchical networks can belong to multiple tiers, this property tells the subnetwork tracer which tier to use for tracing.

    See also setSourceTier().

    Esri::ArcGISRuntime::UtilityTier *UtilityTraceConfiguration::targetTier() const

    Returns the UtilityTier that is used to constrain the tiers returned by the upstream and downstream traces.

    This property is optional. If nullptr, the upstream and downstream traces will stop in the current tier. If a target tier is specified, the trace will continue upstream or downstream into the specified tier (inclusive).

    See also setTargetTier().

    Esri::ArcGISRuntime::UtilityTraversability *UtilityTraceConfiguration::traversability() const

    Returns the traversability conditions for the trace.

    See also setTraversability().

    Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.