Skip to content

Code Lists

A CodeList defines the valid survey codes used in your field data. Every code in your survey file should exist in the active CodeList — unknown codes produce a warning when running R3STRING.

Structure

A CodeList is organised in three levels:

CodeList
└── CodeGroup (e.g., "Drainage")
    └── Code (e.g., "KERB")
        └── Attributes (e.g., A1 = string ID, A2 = material, A3 = position — defined by the surveyor)

CodeGroups are logical groupings — typically by survey feature type. They don't directly affect stringing but help organise the list.

Codes are the actual field codes your total station operators record. Each code can have up to 8 user-defined attributes (A1–A8).

Attributes define the additional information recorded with each point. Each attribute has: - A name (displayed to the operator in the field) - A type: Text, Integer, or Real - An optional constraint: a choice list (fixed options) or a range (min/max for numeric values)

Importing a code list

The easiest way to create a CodeList is to import it from an existing source:

From a Hexagon/Leica XML file

If you use Leica instruments with the Captivate field software, you can export your code list from Captivate and import it directly into R3Survey. In R3MANAGECONFIGS, click Import → Import from XML and select the HeXML file.

R3Survey reads the code groups, code names, quick codes, and all attribute definitions from the file.

From a survey file

R3Survey can scan a survey data file and derive a code list from the codes it finds. In R3MANAGECONFIGS, click Import → Import from survey file. This creates a basic CodeList with one entry per unique code found — attributes are inferred from the data where possible.

Use this as a starting point, then refine the CodeList with proper attribute definitions.

Attributes (A1–A8)

Attributes are additional fields stored with each point. They correspond directly to the attributes defined in your Leica Captivate codelist.

Leica Captivate codelists are digital libraries containing feature codes, descriptions, and attributes that standardise data collection in the field. Each feature code in Captivate can have multiple user-defined attributes — for example, a KERB code might have attributes for string number, kerb type, and position. When a surveyor records a point with that code in the field, they fill in those attribute values. R3Survey reads them as A1, A2, A3… in the order they are defined in the codelist.

If you import your codelist from a Leica Captivate HeXML export, the attribute names and definitions come across automatically.

Attribute names and their meanings are entirely defined by the surveyor in the codelist — there are no fixed conventions. What A1 means for a KERB code may be completely different from what A1 means for a BLD code. The meaning of each attribute is whatever was set up in the Leica Captivate codelist (or defined manually).

How attributes drive stringing

The CodeStringRules file uses attribute names from the CodeList to define how points are grouped. For example:

KERB = A1, A3

This means: group KERB points by their A1 value and their A3 value together. Two KERB points with the same A1 but different A3 values end up in different strings.

See Code String Rules for the full rules format.

Code list storage

CodeLists are stored as JSON files in %APPDATA%\SpatialViz\CodeLists\. You can open these files in any text editor. Do not edit the JSON directly unless you understand the structure — use the import tools or the Code List editor in R3MANAGECONFIGS instead.