A substitution is a type of network attribute. It is a value used to calculate the propagated value for features with the attribute substitution category assigned to its asset type. The resulting substitution value is then used to calculate the value for next connected feature. To use attribute substitution, propagation must be configured.
From a computing point of view, substitutions map each bit within a network attribute bitset to another bit. Consider phase in an electrical network, in the phase field (in-line network attribute) stores a bit set of three bits. Each bit represents a phase; A, B, and C. You can configure information associated with your network that will tell a tracing operation to substitute one phase for another. For example, substitute B when phase A is present, substitute de-energized for C. Therefor, features with A are treated as B, and features with C are treated as de-energized.
Consider phase in the sample electrical circuit in the image below. The propagated value is ABC. The diamond feature marked with a T represents a tap; that is, it's asset type is tagged with the system provided category, Subnetwork Tap. When an analytic operation reaches the tap, a attribute substitution takes place using the substitution value, for example, 512 (4 bits), which when decoded means A becomes B, B becomes null, and C becomes null. The next connected feature's propagated value is the result of the calculated substitution value on the tap. In the example below, the line connected to the tap has a network attribute value of AC, which is recalculated to be B. Each subsequent feature with an A in its set of phases is replaced with a B while the analytic operation takes place.
The feature attribute associated with the network attribute does not get overwritten.
In the image above, black values represent network attributes (phase), the purple values represent the substitution network attribute, and the blue represents the propagated network attribute value. Notice the features connected to the right of the first tap do not have B as a propagated value. That is because the tap feature has the subnetwork tap network category assigned to it, allowing the tap's substitution value to only affect those features connected off the main line. The features connected to the right of the second tap have the same blue B propagated down through the first tap. The features connected below the second tap have underlined Bs to denote new propagated values being calculated off the second tap.
Substitutions allow you to further refine the results of propagated values. Consider the two examples below. The second downstream tap is energized in the example on the left, where the substitution is A becomes B, and C becomes null. In the second case, on the right, the second downstream tap is de-energized as A becomes null and C becomes B; the tap's phase value of A becomes null, effectively de-energizing the tap and features tapped off the tap.
Use substitution propagation
Attribute substitution values are used to recalculate network attributes when a subnetwork is exported, traced, or updated. They are set up for subnetworks in a tier using the Set Subnetwork Definition tool. This represents the default or standard definition for all subnetworks in a tier. If you want to modify this definition during an operation (export, update, or trace), access the appropriate tool using model builder of programmatically through Python.
Attribute substitution values are not used to override the values on your features or the associated network attribute values. When you export a subnetwork, propagated values are stored in the extracted information. When a subnetwork is traced or updated, propagated values are stored in the Propagated Attribute field. This field is set using the Set Subnetwork Definition tool during the configuration stage of a tier.
Propagated values are used in place of network attribute values used for calculating or determining analytic pathways during a trace, export, or update. Summaries, for example, are functions you can set up to run calculations on your subnetwork. You could set up a summary on a gas network to calculate, for example, the total pressure of your subnetwork (this information is stored in the SubnetLine feature class). Without attribute substitution, the values used to calculate the pressure come from the network attribute (for example, NA_Pressure) associated with an attribute on your feature (for example, Pressure). With attribute substitution, the values for each feature are calculated on the fly using the configuration settings for the tier the subnetwork belongs to. Barriers, as another example, use network attributes on features to determine stopping locations. Barriers can be used to determine what information about a subnetwork to export; for example, do not export information about de-energized features. Attribute substitution can be used to de-energize features on the fly (see the phase swap example above).
Define what features use substitute attributes
The attribute substitution network category is a system-provided network category that allows you to specify which asset types are to be considered for attribute substitution. Any features with this category will be considered for attribute substitution.
This category is set on asset types by the utility network administrator at the time of configuration using the Set Network Category tool. Attribute substitution can be configured by running the Set Subnetwork Definition for an existing tier.
Attribute substitution setup overview
Attribute substitutions are configured by the administrator of a utility network. These are the necessary steps for establishing attribute substitution:
- On each feature class in your network that will use attribute substitution, create a field to store measurable or changing asset information. For example, Phase in an electrical network.
- Assign the Attribute Substitution network category to feature classes for specific asset groups and asset types. For example, an electrical Tap from the Junction feature class.
- Create a field to store the value that will be used to determine how to substitute the values in the field created in step 1. The value 128, for example, when decoded means A becomes B, C becomes de-energized, and B remains as B.
- Create an inline network attribute and assign it to the field created in step 1.
- Create a substitution network attribute and specify that it substitutes for the network attribute created in step 4.
- Assign the substitution network attribute to the field created in step 3.
- Use the Set Subnetwork Definition tool to define attribute substitutions used for propagation during analytic events.