Subnetwork controllers define the origin of a subnetwork. They are used in subnetwork management and define how a resource flows through a network. Subnetwork controllers are set at the terminal level on features from the Device feature class and JunctionObject table. A single device or junction object can have multiple terminals that are defined as subnetwork controllers.
Types of subnetwork controllers
There are two types of subnetwork controllers: sources and sinks. The subnetwork controller type determines how the network resource flows through all subnetworks of a domain network.
If the domain network is defined with the source subnetwork controller type, a resource can only flow away from or exit subnetwork controllers; the resource cannot travel toward or into them.
If the domain network is defined with a sink subnetwork controller type, a resource can only flow toward and enter subnetwork controllers; the resource cannot travel away from or exit them.
For partitioned domain networks, the Modify Subnetwork Controllers pane filters the terminals drop-down menu when setting a subnetwork controller based on the subnetwork controller type:
- Source-based domain networks— Only downstream terminals are listed in the terminals drop-down menu for features with a directional terminal configuration.
- Sink-based domain networks— Only upstream terminals are listed in the terminals drop-down menu for features with a directional terminal configuration.
Configure which features can be subnetwork controllers
There are several configuration steps that are necessary for a feature to support acting as a subnetwork controller. These include steps such as setting terminal configurations, setting the subnetwork definition for valid subnetwork controllers, and assigning network categories for asset types that will be enabled as subnetwork controllers. These steps are performed at the time of configuration to asset types from the Device feature class and JunctionObject table. Once the administrative configurations have been set, terminals from the configured asset group and asset type can be set as a subnetwork controller.
Assign a subnetwork controller
When a terminal is set as a subnetwork controller on a network feature, a unique name for the controller in the tier must be provided. The name of the subnetwork controller is stored in the Subnetwork Controller Name attribute on devices or junction objects with one or more subnetwork controllers. This Subnetwork Controller Name attribute is also stored in the Subnetworks table and the SubnetLine feature class. The Subnetwork Controller Type parameter is set during the creation of the domain network and can be found on the utility network's Layer Properties dialog box in the General section for each domain network on the Network Properties tab. To learn more, see Subnetwork name.
Only upstream and downstream terminals can be set as subnetwork controllers if the network is partitioned. In a partitioned network, upstream and downstream terminals allow flow direction within a feature to be determined on the fly during tracing events. Flow direction for an entire subnetwork is determined by the type of subnetwork controller. Upstream terminals act as subnetwork sinks; a resource can only flow toward this type of terminal, not away from it. Downstream terminals act as subnetwork sources; a resource can only flow away from this type of terminal, not toward it.
Both radial and mesh subnetworks support multiple subnetwork controllers. If a trace detects subnetwork controllers with different subnetwork names, an error is returned. This is true for all trace types with the exception of connected traces. The error that is returned indicates that there are two or more subnetworks that are traversable (as specified in the subnetwork's trace configuration). To learn how subnetwork controllers behave in upstream and downstream traces, see Utility network trace types.
After a device or junction object has been assigned as a subnetwork controller, it cannot be deleted, and the asset type and asset group attribute fields are read-only. Subnetwork controllers are assigned at the terminal level, so it is important to ensure that the assigned terminal configuration is not modified. For example, do not remove terminals or change the valid paths of a terminal configuration of an asset type assigned to the subnetwork controller network category. Create a terminal configuration specifically for your controller features.
Remove a subnetwork controller
There are cases in which the terminal on a device or junction object no longer needs to be set as a subnetwork controller. You can remove this assignment in the Modify Subnetwork Controller pane. Additionally, if the asset group and asset type need to be retired from serving as subnetwork controllers, there are specific configuration steps to follow.