Cathodic Protection System

Autoupdaters: The Cathodic Protection trace depends upon the GasTraceWeight autoupdaters being properly set. These autoupdaters read the fields set by the user and set the corresponding bitgate fields accordingly. The Cathodic Protection trace relies on these bitgate fields.

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)

CP System Status


Bonded Indicator


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

    TIP: The Gas Cathodic Protection Trace evaluates the above attributes in the order listed. That means, for example, that BondedIndicator trumps InsulatedIndicator: If BondedIndicator is set to Yes, the trace will continue despite InsulatedIndicator also being set to Yes.

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 which allows the flow of gas). 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. If the CPSystemStatus field is set to 0 (Closed) the trace will continue.

BondedIndicator: If the BondedIndicator field is set to N (No) and the Material is non-conductive (e.g., Cast Iron or Plastic) it is a CP stop and the trace will not continue. If the BondedIndicator is set to Y (Yes) and the Material is non-conductive, the trace will continue.

InsulatedIndicator: If the InsulatedIndicator field is set to 1 (Yes), it is a CP Stop and the trace will not continue.

Material: Material types are defined in different places for different features. On the DistributionMain 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 GasValve 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 GasValve feature class uses the Gas Valve 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?