Water Cathodic Protection System

Tracing queries may be crucial to a utility’s procedures in routine maintenance or an emergency. These configuration details explicitly link the decisions made by the administrator with what the user can expect to happen when traces are performed.

The purpose of this trace is to find all connected equipment belonging to a specific cathodic protection (CP) zone or structure through which current flows to help prevent pipe corrosion. The CP trace solver looks for those junctions with Bit 19 (CP barrier) and those edges where Bit 23 (CP barrier) is set. It sets those features as junction or edge barriers and then traces out from the flag as far as possible. It does not use Bit 25 (Pipe Status) to set edge barriers. This trace solver currently requires that there exist in your current document feature classes with the following object model names assigned: CONTROLFITTING, NONCONTROLFITTING, and DISTRIBUTIONMAIN. The same feature class can represent both fitting types if your data model breaks this out at the subtype level.


Field Name (can be any name)

Field Model Name (exact spelling)





Insulated Indicator




Cathodic Protection Bit Interpretations

The Cathodic Protection trace looks at the following four fields (in order) when it gets to each feature to determine whether the feature is a CP trace stop:

  1. CPSystemStatus

  2. BondedIndicator

  3. InsulatedIndicator

  4. Material

CPSystemStatus: If the value of the CPSystemStatus field is 1 it is automatically a CP Stop, and the trace will not continue. Usually the value in this field is a coded value of a domain. In our sample data this domain is called CP System Status (1 = Open and 0 = Closed). Since Cathodic Protection essentially looks for electricity, a value of Open indicates a stopping point for the trace (unlike an Open gas valve). If the value of the CPSystemStatus field is set to 1 (Open), bit 19 for junctions or bit 23 for edges is set meaning that the trace will stop at this feature. Once the bit is set, the code exits.

If the CPSystemStatus field is set to 0 (Closed) the trace continues on to look at the BondedIndicator field on the feature. If the BondedIndicator field is set to "Y" (indicating the feature is bonded), this feature will be returned in the trace (without exception) because it is bonded and carries electricity. Thus no bits get set and the trace goes on to look at the next feature.

BondedIndicator: If the BondedIndicator field is set to "N" it is a CP stop, and the trace will not continue. If the BondedIndicator field is set to "Y" (the feature is bonded) then the trace must go on to look at the InsulatedIndicator field.

InsulatedIndicator: If the InsulatedIndicator field is set to "1", "Y", or "YES", it is a CP Stop and the trace will not continue. If this field contains any other value then the trace must look at the value in the Material field.

Material: Material types are defined in different places for different features. On the wGravityPressureMain feature class in the sample data, for example, material types are defined in the Subtypes tab of the Esri Feature Class Properties window in ArcCatalog. Other feature classes, such as wControlValve in the sample data, have their material types defined by a domain and assigned on the Fields tab of their Esri Feature Class Properties window in ArcCatalog. The wControlValve feature class uses the Water Line Material domain.

Regardless of where material types are defined, the tools that operate against the gas feature classes, such as the Cathodic Protection trace, check the coded values of the feature's material domain or subtype against the Material Conductivity domain in order to determine whether the material is conductive. If the Material Conductivity domain recognizes that material as non-conductive, the trace stops. If not, the trace continues. View the ArcFM Desktop Configuration Guide help topic titled Configure Domains for Cathodic Protection Systems for more information on working with this domain.

QR code for this page

Was this helpful?