The Feature Code List command allows you to define default, ready-to-use point descriptions whose values can be configured to generate point symbology, optional linework and placed onto designated CAD layers. This field-to-finish (f2f) process can greatly aid in plat generation and permits the surveyor to think of the prism/GPS pole as a "digital pencil" for the sketching of survey data on the project site.

Note: The drawing of point symbols and linework is further controlled by Use Code Table for Descriptions option. Additionally, the Use Line Details option controls the automatic updating of feature code-controlled linework.
Overview
- A feature code (also known as a field code) is typically a short (1 to 4 characters) abbreviation that is used to describe what it is that is being measured in the field. The code can be alpha-, numeric- and/or alphanumeric-based. Alpha-based codes tend to be easier for new surveyors to learn and their use is suggested.
- Common practice for feature codes is to create a minimal number of unique alpha-based entries in the list and differentiate multiple instances of the feature through the use of in-field numerical identifiers.
Example
Suppose a single linework code of EP has been established to designate Edge of Pavement. While in the field, the surveyor might code shots on one pavement edge as EP1, EP1, EP1, EP1, etc, and designate measurements on the other pavement edge as EP2, EP2, EP2, EP2, etc. During the data reduction process, linework to the EP1 measurements will be distinct to that of the EP2 measurements.
- A feature code is structured in one of three ways:
Field Code Classifications Category Type Examples Point ground shot, stop sign, tree, etc 2D polyline fence line, parcel boundary, tree drip-line, etc 3D polyline break/fault lines, walls, centerlines, etc - Reserved for special mapping purposes are Special Codes whose values can be changed to accomodate a desired coding style. However, the character sequence of a special code cannot be used as a feature code.
- Both point and line codes can have GIS attributes describing aspects such as type, condition, date measured, etc.
- Codes can be organized into categories so that lengthy code lists can be more easily navigated.
- Codes can be organized into groups permitting a surveyor to select from a commonly used grouping of codes.
- A measurement in the field can be described with one or more feature codes with one or more special codes. This is known as multi-coding and permits one measured location to control two or more field features (e.g. the mutual intersection of two or more lines). Natural benefits of multi-coding are:
- Fewer measurements are needed in the field to accurately represent field conditions.
- Crossing breakline geometry is minimized resulting in the creation of more accurate surface model (TIN) files.
- The structure of the default feature code list is essentially an Excel-friendly CSV file with an alternate (*.fcl) file extension.
Note: Changing the *.fcl extension to *.csv permits the editing of the file in applications such as Excel but the modified file must be re-saved to the CSV format and then the file extension returned to *.fcl for use in SurvPC.
- In its most basic form, the feature code list file contains a minimum of four-fields (a sample file with three codes is shown below):
Code, Linework (Y or N), 3D Linework (Y or N), Layer, gs, N, N, GROUND, fn, Y, N, FENCE, bl, Y, Y, BREAKLINE,
Note: The column headers are not to be included.
Code Management
SurvPC can store any number of feature code library files which permits data to be communicated based on specific jurisdictional or client requirements. The collection of controls is summarized below:
- Set: Use the Set button to manage the Categories in which codes can be organized.
- Manage Groups: The Manage Groups button permits available codes to be organized into (for example) task-oriented (or field-crew preferred) groupings.
- Add: The Add button permits the creation of a new code into the current field code library.
- Load: The Load button launches the standard File Selector dialog box where an alternate feature code list can be specified.
Note: The Type control on this dialog box can be expanded which permits other file types (e.g. the more expansive *.FLD format used by Carlson Survey or properly formatted Excel-friendly *.CSV files) among others.
- Edit: If you wish to edit an existing code, double tap on the code or highlight it and tap Edit.
- Save As: Select the Save As button to save the file. Choose an existing file or enter a new file name to create a new feature code list.
- Remove: To remove a code from the list, highlight an existing code and press the Remove button. SurvPC will ask you to confirm deletion of the code.
Set (Category)
Clicking the Set button exposes the Category Manager dialog box that permits established feature codes to be assigned to a designated category:

- Category: (drop-list) Select the desired Category for whose codes you want to manage.
Note: There is always at least one category available (NO CATEGORY) which summarizes the code(s) that have not yet been assigned to a category. This category cannot be renamed or deleted.
- Category: (edit-control) Indicate a desired Category label.
- New: With a proper value cited in the Category edit control, tap the New button to create the new category.
- Rename: With a proper value cited in the Category edit control, tap the Rename button to give the category a new name.
- Delete: For a previously created category, tap the Delete button to remove the category from the list. You will be prompted to confirm the deletion of the category.
Note: Codes that were previously housed under the category will be retained and re-assigned to the NO CATEGORY list.
- View Categories: Indicate the category whose codes should be listed.
Note: There are always at least two categories available for viewing:
- NO CATEGORY: Shows the codes that have not yet been assigned to a designated category.
- ALL: Shows all codes within the current list, regardless of their category assignment.
- Move To: Permits the reassignment of the selected code(s) from the category being viewed into the category as specified in the Category drop-list.
- Clear All: De-selects any previously selected codes for the category currently being viewed.
- Select All: Selects all codes within the category currently being viewed.
Note: Category names are prepended to each code with a $[CategoryName] designator. For example, a category of Topo might result in the following:
$Category, Code, Linework (Y or N), 3D Linework (Y or N), Layer,
$Topo, gs, N, N, GROUND,
fn, Y, N, FENCE,
$Topo, bl, Y, Y, BREAKLINE,
Note: The column headers are not to be included.
Note: The ability to switch between the utilization of Categories vs. Groups during data entry is established by tapping the currently selected option while codes are visible:


Manage Groups
Clicking the Manage Groups button exposes the Edit Groups dialog box that permits established feature codes to be assigned into groupings that might be established for a particular work-mode:

- Group Settings: Tapping on the Settings (Gears) button exposes additional Group controls:
Group Settings - Include Multiple Codes: When enabled, permit multiple codes to be added to the group.
- Include Action Codes: When enabled, permit special codes to be added to the group.
- Include Descriptions/Comments: When enabled, permit Descriptions to be added to the group.
- Clear Recently Used Code List: When clicked, the listing of recently used codes will be cleared permitting a fresh instance of recently used codes. You will be prompted to confirm the clearing of the recently used codes.
- Group:
- New: Tap the New button to create a new group configuration. The resulting dialog box permits codes from an alternate group to be cloned into the new group.
- Rename: With a proper value cited in the Group drop-list, tap the Rename button to give the group a new name.
- Delete: For a previously created group, tap the Delete button to remove the group from the list. You will be prompted to confirm the deletion of the group.
Note: Codes that were previously housed under the category will be retained for use in other groups.
- Codes: Provides a listing of current codes that can be moved into the current group.
- >: Use this button to assign the currently selected code into the specified group.
- <: Use this button to remove the currently selected code within the group from the group itself.
- Up/Down: Use these buttons to order the selected code higher or lower in the list, respectively.
Note: Group settings are stored within a "feature group" (*.fgr) file whose filename matches that of the current feature code library (*.fcl) file.
Add
The Add button (like its virtually identical Edit button counterpart) permits the establishment of a desired feature code:

- Code: Supply the name of the Feature Code. Generally, it should be kept as brief as possible (e.g. SSMH for Sanitary Sewer Man Hole).
- Category: Indicate the desired Category to which the code should be assigned.
- Set Symbol: For Point entity types, Carlson-defined or user-defined Symbols can be optionally defined. When specified, Symbols plot on the screen for quick reference and can be conveyed if the Include Symbols option of the file export is enabled.
Note: You can also create/use your own symbol library.
Details
To create/customize your own symbols, the general process is to:
- create the additional subdirectory within the Symbols folder on your device, and,
- create a named DXF file (e.g. MySymbol.dxf) that contains the symbol geometry (this geometry is inserted with the point in the Map Screen), and,
- create an equivalent-named BMP file (e.g. MySymbol.bmp) that is used to render the symbol in the Feature Code dialog box.
Note: A restart of SurvPC may be needed for it to recognize any newly added symbols.
- Layer: Indicate the desired CAD layer upon which to place the field code geometry. Clicking the Select button provides a dialog box interface showing the listing of CAD layers currently defined in the Map Screen:
Select Layer - Color: Indicate the Color of the feature geometry. Changing the color here also sets the color for the specified CAD layer:
Color Picker - Full Text: Enter a description for the code. This is only for your information; it is particularly helpful when using numeric codes, to remind you of the meaning of the code. It will not be added to the point description.
- Entity Type: There are three entity types:
- Point: With this option, linework is not generated to/from the specific code. This option permits Symbols and Notes.
- 2D Polyline: When specified, the entire polyline is constructed at elevation 0, regardless of each point's elevation. If 2D is selected, you can change the Width of the polyline. Selecting Custom allows entry of a user-defined width.
- 3D Polyline: When specified, each polyline vertex is located at the elevation of the point.
- (New/Edit) Features: (GIS Attributes) This option leads to GIS type attributing, where you can further describe the code (e.g. SSMH for Sanitary Sewer Manhole) with additional attributes. If GIS attributes are entered for a code, then the New Feature button becomes Edit Feature. SurvPC allows use of the identical, "preferred" names for features as outlined in the Esri Geodatabase Schema enabling direct uploading to Esri products and Carlson office products (the data is auto-linked to screen elements). Integration into the Esri environment is flexible and robust.
Example
Consider a manhole survey where four distinct attributes that provide additional information for each manhole surveyed:
- Rim Diameter
- Depth to Flow Line
- Number of Inverts
- Date Inspected
Such a list might resemble the following:
Example GIS Feature Classes - Set: This permits you to establish or otherwise override the Feature Class:
Note: Do not use a colon (:), semicolon (;) or forward slash (/) in the Feature Class name.
Note: Typically, each field code will have its own feature class. However, a feature class can be assigned to different codes. For example, Pine, Spruce and Deciduous trees can all use a Trees Feature Class.
- In Use: When enabled, you will be prompted for attributes for the code when working in the field.
- Feature Type: For Point oriented field codes, only the Point feature type is available. For Polyline oriented field codes, the GIS Feature Type can be either Point or Line based on the geometry that is to be assigned the attributes.
Note: If you select the Point option for codes that involve linework, you will get prompted for attributes at each vertex, and then once for the line as a whole. In this way, you can be prompted for attributes of (for example) each pole on a power line, and then once for the entire power line (separate set of attributes).
- Load: When clicked, the standard File Selector dialog box where a previously saved *.GIS collection can be associated with the field code.
- Edit: Permits a previously added feature attribute to be modified.
- Remove: Removes the selected feature attribute from the GIS attribute list. Any previous GIS data specified from the feature remains intact.
- Up/Down: Repositions the selected attribute within the list to determine the order in which it is prompted.
- Add: Permits the creation of a new attribute in one of several configurations:
GIS Attribute - Name: Specify the name of the attribute field that is to hold the resulting data.
- Codes: Clicking this button permits you to pull attribute information from a pre-established listing of software generated fields (e.g. Northing, Easting, Elevation, etc).
Note: A previously supplied Name value will be replaced with that of the Code name.
- Prompt: Indicate a desired user-friendly prompt that is displayed during data entry.
- Default Value: Indicate a value for the attribute that should be automatically presented to the user during data entry.
Note: Such a value can only be established if there is at least one List entry. Use the Set Default button to specify the desired default value and the Clear Default to remove the default value.
- Type: Indicate the type of data that best describes the GIS feature:
- Char: (Character) Use this field type to store alpha- and/or numeric-values.
Note: When numerical values (Integers or Real numbers) are stored within a character field, they will likely need to undergo a conversion to a numerical format if subsequent math operations on the value are to be used.
- Int: (Integer) Use this field type to store whole-number "counts" of items.
- Real: (Real/Rational) Use this field type to store rational numbers (fractional or otherwise).
- Code: Use this field type to indicate values that come from pre-established Codes.
- Char: (Character) Use this field type to store alpha- and/or numeric-values.
- Req.: Indicate whether or not data entry is required for the attribute.
- Field Edit Mode: Indicate the desired level of in-field modification to the attribute data:
- Allow: The user is permitted to see and change the underlying data.
- Read-only: The user is only permitted to see the underlying data.
- Use List Only: Indicate if the type of data should be limited to the preset list of values.
- Add: Permits the creation of a new attribute list item. Use Edit to modify a previously added item.
- Remove: Removes the selected list item. Any previous GIS data specified from the list item remains intact.
- Up/Down: Repositions the selected list value within the list to determine the order in which it is displayed.
- Save: Commits the current Feature configuration to a named *.GIS file for use with other field codes.
Note: SurvPC also creates a separate *.VTT file which contains the actual user-entered attributes. This file uses the same file name as the Job Name. The combination of these files are used to generate GIS Shape Files.
- Notes: Allows the association of a user-entered Note with any point-type field codes. Since notes have no character limit, large descriptions can be entered as notes and applied to each instance of the field code, avoiding the need to enter or select the note in the field.
Example
You can define a field code (e.g. TR for "tree") and preset notes to indicate the type of tree (e.g. Oak, Maple, Ash, etc) and select the desired option.
Example Notes Note: Enable the Prompt for Point Notes option to make use of Notes.
Note: You can limit the list of notes to choose from just the list associated with the Field Code by enabling Use Code Notes Only, when Storing Points option.
Special Codes
In addition to the codes that you add to the Feature Code List, there are some predefined code suffixes that you may use to further control geometry with specific actions.

Note: To specify an alternate syntax for each code, select it and indicate the desired value and tap Accept. Default values are shown below:
- Settings: The Settings (gears) button permits additional configuration options to determine how SurvPC handles (among other things) feature coding and GIS attributes.
More Information
Settings - Additional Settings: Used to control the placement of arc geometry in an effort to provide smooth transitions into and out of the arc.
More Information
Additional Settings - Fit Arcs by PC/PT only, Maximum Deviation allowed to Move PC/PT: When enabled, the tangent in/tangent out directions are held fixed and the PC and/or PT locations are allowed to move along the tangent directions by the Maximum Deviation amount in an effort to create a smooth curve transition.
- Fit Arcs between PC and PT using Minimum Radius: When enabled, the tangent in/tangent out directions and the PC and/or PT locations are held fixed and the radius of the arc is adjusted to a value no smaller than the Minimum Radius.
- Tangent In/Out Fit to Smooth Curves: When enabled, the geometry of the arc itself is maintained but its position can vary through the adjustment of the Tangent In/Tangent Out directions to the Maximum Deflection amount for the tangent directions and limited to the Cut Off displacement distance.
- Store GIS Line Data to Vertices: When lines are created by field coding, points at the vertices are also created (except for features created by RECT and OH). In addition to associating attribute data with the linework itself, you can click this option to store the GIS attribute data to each point on the line that was surveyed.
- Prompt At: For linework feature codes that include GIS attributes, indicate the position where the attribute prompting should occur.
- Add New Descriptions to FC List: If this option is selected, field-specified point descriptions that are not already in the Feature Code List are added to the active field code library.
- Save Only One GIS Feature to the Stored Pt: When two codes are entered for the same point (separated by the Code Separator) and both codes lead to GIS prompting, only the first code will be used for the GIS prompts and stored attributes.
- Store Attributes(AT) to RW5 File: All attribute data will store as "AT" records in the raw file. The name of the attribute is identified with a TN prefix and the value of the attribute is identified with a TV prefix.
- Use Code Notes Only, when Storing Points: This is a method that allows storing more than 31 characters for point descriptions in *.crd files.
More Information
- Enable Prompt for Point Notes.
- Then, a code such as CP can be associated with a long note (e.g. Control Point from City Record Book 12-A).
- The notes can then be exported with the points using Export ASCII Text option.
- Using File Export, one technique is to set the delimiter on the coordinate values (Pt ID, N, E, Z, Description) to comma and on "Other" (e.g. the note) to Space. In this way, within File Export, you can append the long note to the description as a single field to be imported and used by any office software.
Another use of this option is to limit the list of Notes that appear to just those associated with the Feature Code.
- Create Points for All Linework Elements: When using features created by RECT and OH, this option creates a Point ID at all vertices of linework, whether surveyed or created by the software. Some office software packages, like earlier versions of Geopak, required point IDs to process coding. Points are increments sequentially from the last entered point.
Note: This option only appears when certain Special Code styles are selected, indicating linkages to office software needing Point IDs.
- Auto-increment Colors for Linework: Produces different colors, increasing sequentially from 1 to 7 (AutoCAD® color conventions), for each new version of the same feature code (e.g. EP). After color 7, it goes to other distinct colors.
- Auto Increment Layers for Linework: This appends numbers to the linework layer as you make new lines for the same feature code. For example, if code EP makes lines in the ROAD layer, then the first EP line goes to ROAD1, the next line to ROAD2, the third line to ROAD3, etc.
- Recall Last Point Note: Recalls and applies to the newly stored point whatever point note was used last.
- Save Last Point Note to Point List: When enabled, all notes that are entered are saved to a file of notes making a Note List (users can select previously entered notes from the list to save typing in the field).
- Auto-Create Linework Layer: <CODE>_<LAYER>: This option changes the layer dynamically by appending the code to the layer. So, if both FH (fire hydrant) and MH (Manhole) are defined to be in the Utility Layer, this option will place them in FH_Utility and MH_Utility layers, respectively.
- Force Code Separator Between Code and Value: When enabled (and when Prompt for Height and Description is enabled) the Code Separator value is placed after the code if not already present, permitting additional values to be appended to the code.
- Store GIS Line to RW5 (First Vertex Only): When enabled, GIS data (if present) associated with the first vertex will be stored into the raw file.
- Store GIS Line to RW5 as FC (Feature Name): Adds an entry as a FC record (usually processed by Bentley Office software) to the raw file (e.g. FC,PN4,FNfence [Feature code, Key, Feature name]).
- Force Single Linework if only OV's are used: When enabled, individual lines (compared to a continuous polyline) when the Offset Vertical option is used.
- Apply F2F to Elevation Difference: This will enable Field-to-Finish during the Elevation Difference command.
- Warn on Repeated Code: This option allows SurvPC to warn the user that a code used has been repeated.
- Use PC (no PT) Arc, F2F Style: Style of no PT. When enabled, three-point arcs are assumed with the first point being identified as a Point of Curvature with the following two points being a point-on-curve and the point-of-tangency, respectively.
- Storing GIS Attrib. Time HH:MM (No Seconds): This option allows for feature codes with time-related attributes to be stored in Hours:Minutes format, thereby eliminating the seconds field.
- Disable F2F descriptions when user edits the polylines in Map: When enabled, manual edits to polylines in the Map Screen will remove the Carlson field-to-finish signature on the polyline entity to prevent the modified polyline from responding to re-processing instructions.
- Additional Settings: Used to control the placement of arc geometry in an effort to provide smooth transitions into and out of the arc.
- (space): Code Separator. When storing two or more field codes with a single measurement (e.g. where two distinct lines intersect one another), indicate the type of character that should be used to separate the multiple codes.
- (null): String Designator. For applications that require a linework (or "string") designater, indicate the character that separates the field code from that of the linework code.
- ST & EL: Begin and End Line. Indicate the instructions that specify the explicit beginning location of linework and/or its ending position.
Note: Within Carlson F2F, linework codes do not necessarily need begin/end codes as the first instance of a linework code will begin the line and the last instance of the code will end the line. "Interior" linework codes with begin/end designators will generate linework gaps.
Note: Within Carlson Survey, the default codes are BEG and END, respectively.
Begin, End, PC, PT Special Codes - PC & PT: Point of Curvature and Tangency. Utilize these codes to generate curves.
Note: Compound curvature(s) can be created by simultaneously indicating the PT of one curve with an immediate PC of the following curve.
PC, Compound Curve, PT Special Code Example Note: Additional Settings are available to provide smooth transitions in and out of arcs.
Note: Explicit use of the Point of Tangency code can be omitted from three-point arcs through the use of the Use PC (no PT) Arc, F2F Style option.
- CLO: Close Figure. Use this code to close from the last point coded as CLO back to the first point of the figure.
Note: After using a special code such as "CLO", the program automatically removes the special code as an option for the next feature code. The "CLO" code also has the effect of ending the line and starting a new line.
Close Special Code - SMO: Smooth Feature. Use this code to smooth the line through all of the points.
Note: This code must occur on the first point of the line.
Smooth Special Code - JPN: Join Point Number. Use this code followed by a point ID to create a new line segment between the current point and the entered point ID.
Join Point Number Special Code - RECT: Rectangular Close. This special code can be used in 2 different ways.
- Two Measurement Points: Measure two sides of a building and enter the distance right (RECT15) or distance left (RECT-15) to create the other parallel side based on the two measured locations.
- Three Measurement Points: Measure three sides of a building and on the third side, add the special code RECT, and the program will create a 4-sided building.
Rectangle Special Code - OH & OV: Offset Horizontal and Vertical. You can also create horizontal offset lines and you can offset these same lines vertically as well by combining OH and OV as in EP1 OH2 OV-0.125 OH2.167 OV0.5 OH2.667 OV0.50 (which might create a typical curb flow-line, top and back face series of polylines).
Note: The OH and/or OV codes only need to be specified at the locations where the offset geometry changes.
Offset Horizontal/Vertical Special Codes - NE: No Elevation. When a point is coded NE, it will not be used inside SurvPC for contouring or use in volumes. However, if a 3D Polyline is drawn connecting between points, the elevation will be used.
- JOG: Extend by Distance (90° Jog). This powerful option allows you to hand-enter right-angle deflections of the last line segment. So, if you have just measured 2 BLD points from 211 to 212, you can enter 212 as BLD JOG -29 -12 -12 38 -17 (minus means left). This represents L29 L12 L12 R38 L17.
Jog Special Code - ZO: Elevation Only. This is just a way of coding points as being important only for elevation; typically for processing in other software. It can be viewed as reference information on the point, only the elevation matters.
- AFIT: Arc Fit. This option is used with 3-point arcs to avoid bulges caused by not measuring the PC (start) and PT (end) of a true tangent curve accurately. When measuring curbs, it is common to get a bulging curve by placing the assumed PC location fully within the inbound tangent to the arc. To remove the bulge in the arc and make it tangent, add code AFIT to point within the arc itself.
- CIR: Close Circular. The Close Circular special code can be used in three ways.
Note: The CIR code used must accompany a linework code (e.g. rim, roundabout, tank, etc) for the circle to be drawn.
- For a single measured point, include a radius distance with the code (e.g. CIR2.5 for a 2.5 unit circle).
- For two measured points, the radius becomes the mid-point between the two points and a circle will be drawn through both points.
- For three measured points, the third point defines a unique circle.
- BFIT: Best Fit Line. This code creates a best-fit line using the points for the linework. This feature can be used when you have multiple points on a feature that you know is a straight line (e.g. found monuments along a typical city block). Each of the points that you want to include in the best-fit need to have the BFIT code.
- BPRJ: Best Fit Projection (profile from points). Useful for cross-section generation, this command projects all points to a line between the begin and end points of the sequence.
Best Fit Projection Special Code General requirements:
- The command can be used for any 3D polyline feature type.
- The sequence of "cross-section" points does not necessarily need a Begin Line designator but requires an End Line designator.
- One or more points in the sequence must have the Best Fit Projection code.
- Coding Style: SurvPC comes installed with a Carlson suggested Special Code but also offers numerous other configurations (i.e. primarily DOT conventions).
More Information
Select a desired Special Coding Style that best fits your needs. Various coding systems as used by different State Highway Departments have been assembled and are available for independent download at:
DOT Feature Code Lists
Carlson Knowledgebase Article 388:
https://web.carlsonsw.com/files/knowledgebase/kbase05.php?action=display_topic&topic_id=388
Using Short-Cut Icons to Append Special Codes
With the Prompt for Height and Description enabled, you have the opportunity to choose from your existing descriptions saved in your Feature Code List whenever you Store Points. You also have the ability to select icons for the Special Codes as shown here:
Button | Code Name | Button | Code Name |
---|---|---|---|
![]() | Begin Line | ![]() | Offset Horizontal |
![]() | End Line | ![]() | Offset Vertical |
![]() | Arc PC | ![]() | No Elevation |
![]() | Arc PT | ![]() | Extend by Distance |
![]() | Close Figure | ![]() | Elevation Only |
![]() | Smooth Line | ![]() | Arc Fit by Second Point |
![]() | Join Point | ![]() | Close Circular |
![]() | Close Rectangle | ![]() | Best Fit Line |
![]() | Best Projection Line |
Reprocessing the Field Codes
The processing of field codes into a representative map generally occurs without any user intervention. However, the Field to Finish command can be used with its Update option to manually reprocess the data.
Note: If you enable Use Line Details, this reprocessing is fully automatic whenever a graphic screen is displayed, whether in active Survey commands or by going to the Map Screen.