How-To - ArcFM - Analyzing trace weight/bitgate fields

Version 3


    ArcFM Electric, Water, and Gas tools all rely on fields that are referred to as "trace weights." These values are stored in fields on features that participate in the geometric network, and the values are also stored inside of the geometric network for fast tracing.


    Most of the ArcFM traces rely on these trace weight fields to perform fast and efficient traces. There can be many fields that are relevant to the results of the trace, such as the phase of an electric conductor, or whether or not a valve in a water network is open or closed. It's much faster to read the trace weight value out of the geometric network than it is to query the full object and look at multiple fields.


    However, sometimes a trace may not perform in ways that we would expect it to, and sometimes that can be caused by trace weights that don't match up to what their fields show. It can be useful to manually examine a trace weight field to see if it is contains the correct values. Sometimes this can help diagnose problems, such as missing model names, autoupdaters, or improperly configured fields.


    These fields are represented as 32-bit integer fields in the database. This means that they show up in the Attribute Editor as very large values, but when we convert them to binary, we actually get 32 digits that can be either a 1 or a 0.  Depending on which digits are 1 and which are 0, the trace can do different things.


    Each different category of trace weight (Electric/Water/Gas) and each type of network feature (junction or edge) has different definitions. The meaning of each bit means is defined in the Resource Center topic regarding Bitgate Fields.



    To best look at the bitgate field's binary value, there are two useful tools that you can choose.


    Windows Calculator

    The basic Windows calculator works very well for analyzing trace weight fields, as it's included with every Windows installation. When you first launch it, it may look a little bit like this:

    What we want is the Programmer View, which lets us view the binary representation of a number. Click View > Programmer, and it will change to this:

    From here, we can paste in a trace weight value. For example, with a primary overhead line that has an ElectricTraceWeight value of 268435968, here's how it looks like when pasted into Calculator:

    Here you can see that pretty much every bit is 0 except for two of them. For these fields, we start counting bits at bit 0 and go up to bit 31 (for a total of 32 bits). The Windows calculator shows bit 0 as being in the bottom left corner (where the little grey 0 is) and then also labels every 16 bits from there (bits 15, 31, etc., as you can see above). In this example, bits 9 and 28 have a value of 1. If we look at the meanings for those bits in the Electric Tracing - Edges section of the documentation, we can see that bit 9 is one of the bits that represents the electric voltage of the line, and bit 28 means that the line is an A-phase line.



    This tool is slightly easier to use than Calculator and can be found in this exchange post. In the screenshot below, we are looking at a Gas Valve feature and have pasted the trace weight value into the field in the BitGateExtractor.  When Display Binary is clicked, it will check boxes on the left side that correspond to which bits are set. If the check boxes on the left are manually clicked, then Display Decimal is selected, it will give you the value that you would see in the field in ArcMap, if those bits were set.

    In this case, the checkboxes next to bit 22 and bit 29 are checked. If we look at the Gas Tracing - Junctions page in the documentation, we can see that bit 22 indicates an unused isolation level value, and bit 29 indicates that the feature is a valve. Also notable is bit 31, which indicates whether or not the valve is open or closed. In this case, a value of 0 for that bit means that the valve is open. If bit 31 was set (if it was a 1), it would mean that traces would treat the feature as being a CLOSED valve.


    Hopefully this explanation of available tools and tricks is useful for your own personal troubleshooting.