MOSS / MX GENIO Export Command

D_MossExport_600ppi   MOSS / MX GENIO Export

Command Licensing and Default Menu Location

  • The MOSS / MX GENIO Export command is part of the RPS Tool Shed Toolbox
  • The command is located on the Tool Shed macros menu ribbon
  • The command is located in the Export menu group

Command Description

Provides a high quality MOSS / MX GENIO export from either finished survey drawings (as a survey deliverable) or from a corridor linework model (imported or created by TBC) for use with Trimble Access (Trimble Access Road Strings). The MOSS Export process can utilize the layer names of the exported objects or the feature code library associated with the data, combined with a sophisticated mapping process to meet the MOSS / MX 4 character string naming needs.

Command Interface Description

The MOSS / MX GENIO command dialog looks as follows

Select objects to export:
Select the data that you wish to export to the MX GENIO file. The objects can include alignments, linestrings, polylines, points, text and surface models. Surface models are exported as a 3D string for each triangle face of the surface model.

Group objects by:
In this section you can choose the method that you want to use for the definition of the feature coding on the output data. The options are feature code (as defined in your feature code (FXL) library) or by layer name.

  • Feature code - In this method we use all of the codes that are defined in the feature code library as the basis for the mapping to the MOSS GENIO coding standards, In some cases, users adopt their client feature coding system for MX GENIO directly, so the mapping is 1:1 directly, in others surveyors wish to use their own coding methods in Trimble Access or Siteworks and they want to map from their approach to the clients needs at the time of export. Both approaches are supported by this method.
  • Layer - In this method we use layer name as the basis for the mapping. We map a layer name in TBC to a feature code for the MX GENIO output. For example we have a layer called Fence in TBC and we map that to an F string in the GENIO output.

Use object name for MOSS codes / labels checkbox:
If you imported an MX GENIO file or maybe a 12DA file into TBC which already has the MX GENIO coding standards applied, or if you have created a corridor model, and adopted a coding system for the template nodes that meets the needs of the MX GENIO output directly then you can check this checkbox and directly use the codes as defined for the output information. You can subset the imported or modeled data and export only what is needed to the MX GENIO file for use in e.g. Trimble Access (Trimble Access Road Strings).

Export points with valid MOSS point codes checkbox:
MOSS GENIO has a specific rule for coding of point data. The points for different features e.g. a Tree, a Light Pole, a Bollard etc would all fall into the P string category. The 4 character limit for the feature code still applies, however the first character has to be a P e.g. PTR for Tree, PLP for Light Pole and PBD for Bollard etc. If you have used this coding method already, then if you check this checkbox, these coded points would be output as P string data. A P string would include all the points representing that feature type together in one string. The points however will be drawn as disconnected points in MX on import.

Export lines as:
In this section you can decide how you want to export line features to the MX GENIO file. MX supports different types of line, based on the way that the geometry is defined in the GENIO file. The following options are available

  • 3D String - A 3D string in MX is a line based on a string of 3D coordinates. The string will forma chorded line in MX.
  • 6D String - A 6D string in MX is typically a string of 3D coordinates that also have additional geometry information including station, instantaneous radius and vertical geometry information. For example a spiral in an alignment can be represented as a series of chord points, where each chord point has an instantaneous radius that changes from point to point. An arc in an alignment can be represented as a series of chord points, where each chord point has an instantaneous radius that is constant for all points that are a part of the arc element. A straight or tangent section can be represented as a series of chord points where each chord point has an instantaneous radius equal to infinity.
  • 12D String - A 12D string in MX is equivalent to a TBC alignment. It contains both horizontal and vertical alignment geometry defined with the full geometrical properties.
  • Based on line content - This option allows the command to make the decision as to what line types should be written to the MX GENIO file. For example an alignment will be written as a 12D string, a chorded linestring ill be written as a 3D string and a complex linestring that contains horizontal and vertical curves will be written as a 6D string.
  • Trimble Access - This is a special case that writes data specifically for Trimble Access. This satisfies the Trimble Access Road Strings work methodology. It requires a single alignment (which can be selected using the Select alignment pull down list. It also outputs 3D strings for all strings (chording lines as necessary) with the exception of the tie slope lines that have to be named INT and also are written as a special 5D string on the left and right side of the corridor model.

Text Mapping:
There is no option in the dialog that addresses text mapping via the GENIO file. The command will export text strings that are less than 40 characters in length. Multiline text objects are exported as multiple text strings in the GENIO file. Any text string longer than 40 characters will be truncated to 40 characters automatically on export.

Layer Mapping:
Complete the layer mapping table if you elected the layer method in the Group objects by section above. The mapping tables are described in detail below. The layer mapping table will be auto populated with layer names from your project that contain the selected data by default. If you wish to show all of the project layers and set up a mapping table for all layers regardless of whether you have data on those layers or not, you can also elect to do so. The mapping file that you create is stored in the current project folder. If you will be using it over and over for work with the same client, you can copy the completed mapping table from the project folder, to the macros folder located at


The file is called TBC_MossMap.rps

Feature Code Mapping:
Complete the feature code mapping table if you elected the feature code method in the Group objects by section above. The mapping tables are described in detail below. The feature code mapping will auto populate all of your Feature Codes from your feature code library (fxl) used in the current project. You will map the feature codes from your library to the feature codes required by your clients deliverable specification. The mapping file that you create is stored in the current project folder. If you will be using it over and over for work with the same client, you can copy the completed mapping table from the project folder, to the macros folder located at


The file is called TBC_MossMap.rps

Surface Mapping:
Complete the surface mapping table if you wish to also export TBC surface models to the GENIO file. The mapping table is described in detail below.

Mapping Table Instructions:

Layer Mapping:

  • Ignore - check the checkbox next to any layer names that you wish to ignore during the processing of layer names as the basis of coding for the GENIO file.
  • Layer Name - This shows the list of available / relevant layer names for the processing of layer names as the basis of coding for the GENIO file.
  • Primary Code - The is the first 4 character code that you want exported to the GENIO file for lines that are found on the layer named on this row of the table. The primary code is 4 characters in length and can contain a string name and a string number. Typically 2 characters are used for string name e.g. KB, WL, FE, VE etc. and two for string numbers. String numbers can be alpha e.g. AA or Numeric e.g. 01 or alphanumeric A1 etc. String names for line features should not start with an M, G or P as those are reserved codes in MX. INT strings are typically used for surface ties in MX. The code selected here will be used by all line features found on the selected layer during output. The expectation then is that features of different types will be found on separate layers in TBC for this type of export.
  • Primary Increment Definition - this applies to the string number of the code. the options are None, Alpha, Numeric or Both.
  • Secondary Code - it is uncommon for feature lines in an MX Model. A code for a main alignment would typically be e.g. G001 and the 6D string derived from it would be M001, and they can be named e.g. G001 M001 or M001 G001 so you can see the cross referenceing and derivation of the 6D string from the 12D string. If you are not using this leave it blank.
  • Secondary Increment Definition - It is uncommon for feature lines in an MX model. If you are using this then select a method of string number incrementing from none, alpha, numeric or both.
  • Point Code - If you select point data that is associated with the line features, those points will be exported as a Point String (P*). The point code that you wish to use for Point Features can be defined here e.g. PKB for points on a Kerb string.

Display Layers:
The seed list of layers is defined by this pull down list. The default behavior is to map only the layers of selected objects. You can however select any of the following options.

  • Selected objects - This will list all of the layers occupied by the selected objects.
  • Project + Mapping - This will list all of the layers in the project and those from the Master Mapping file. i.e. if you are using a Master Mapping File that has been set up to work with a Master Project Template, that incorporates layers that are not in the current project, they will also show up when this option is selected.
  • Hide Ignored - If you check the Ignored check box next to any layers in the list, this option will hide those layers in the list.
  • Project - This will list all of the layers of the current project whether or not they have data on them.

Within the table, click in the cell that you wish to edit, enter the new values and press Enter or Tab to complete the process. If you wish to change the same value within a number of rows in the table you can group select the rows and then press F2 to make the last row cell editable. Change the value in the one cell and then press Enter or Tab to make the change to all selected rows.

Click Save to update and save the mapping file.

Click Cancel to close the mapping file without saving the changes.

Feature code mapping Table:

The feature code mapping table will be automatically popuated using the codes from your feature code library (FXL) that is in use with the current TBC project. The mapping table is almost identical to the layer mapping table, with the exception that it lists feature codes in place of layers. It also lists the feature code description and the code type (line, block, point etc.). The primary code and secondary code naming and the string numbering is identical in approach to the layer mapping table.

Display feature codes pulldown list:
You can choose how the feature code list is populated within the table from one of the following options

  • Project FXL - This will populate the list with the entire contents of the current TBC project FXL library file.
  • Project FXL + Mapping - This will populate the list with the entire contents of the current TBC project FXL library and the Master Mapping file.
  • Selected Objects - This will populate the list with the codes of selected objects only.
  • Hide Ignored - This will hide the rows where the Ignored checkbox has been checked.

Surface Mapping Table:

The surface mapping table will be auto populated with all of the surfaces in the current TBC project. The surface mapping table works in the same way that the layer mapping table works but with the following differences

  • Ignore - check this checkbox if you wish to ignore the surface listed on this row and not output the surface to the GENIO file.
  • Surface - this lists the surfaces in the current TBC project
  • Primary Code - the code entered here will be used for all of the 3D strings created for each triangle face in the model. Note, it you can designate a unique code for each surface model you wish to output, you do not need to also include string numbers, so you can use all 4 characters to define the code for the surface model.
  • Secondary Code - It is uncommon for surface models to have primary and secondary codes when output to a GENIO file. You can enter a secondary code if you need one e.g. for different versions of the same surface model you could use e.g. VER2 or VER3 as the secondary code.

Display surfaces pulldown list:
This list determines which surfaces will be listed in the table. The default behavior is to use all Project surfaces, however you have the following options to choose from

  • Project - This lists only surfaces that are in the current TBC project
  • All - This lists all surfaces in the current TBC project and the master mapping table combined.
  • Hide Ignored - This option will hide those surfaces where you have checked the Ignore checkbox.
  • Selected objects - This option will only list surfaces that are selected in the selected objects section of the dialog.

Model / output file name:
MX GENIO files require a Model Name. In the export process the Model Name is written into the header records of the GENIO file, and the file is also named using the Model Name.mos. The output file is written by default to the Project folder for the current TBC project.

Master mapping file:
The mapping processes can use one of the following for execution

  • Master Mapping File - The master mapping file typically resides in the macro programs folder, and will provide the default setup unless it is overridden or supplemented by the current projects mapping information. The macro program folder is located at


    You can also select a different Master mapping file by using the file browser if you have established a number of Master files for different clients.

  • Current Project Mapping Setup - If you wish the current project mapping to override the Master Mapping file, check the Override Master checkbox.
  • Combined Master Mapping and Current Project Mapping Setup. To choose this option select a Master Mapping File that will be added to the current project mapping detail.

When you tap apply, the MX GENIO file is exported using the selected data and the command will ready itself for another selection set and repeat process execution. If you do not want to make a second selection and repeat the process tap Close to finish the process.

Executes the command to create the MX GENIO file and closes on completion

Closes the command without further execution.

Video Demonstration

The following video shows how to utilize the MOSS / MX GENIO Export command

Use Case Videos

The following videos show the use of the MOSS / MX GENIO Export command in a work process context

Feedback and Enhancement Requests

If you would like to provide feedback on the use of the MOSS / MX GENIO Export command or to request enhancements or improvements to the command please Click Here

MX / MOSS is a Design Software product from Bentley that originates in the UK and is used globally in countries like UK, Ireland, Netherlands, Middle East, Australia and New Zealand. It is being replaced by OpenRoads Designer gradually, however there are many Designers and Government Agencies that still utilize the software. MX formerly known as MOSS, has an interface data format called GENIO. TBC can read GENIO files but has no way to output them properly. There is an Export for Trimble Access Road Strings which is a GENIO file (but with certain restrictions), however that doesn’t handle the required feature code mapping for MX purposes.

MX is a “String Modeling” system. It has several types of String that it supports, the commonest strings are the following

  1. 3D Strings - Connected 3D coordinate points. Line is chorded
  2. 6D Strings - Connected 3D coordinate points with curve geometry. Arcs include radius, Spirals are a series of short arcs with continuously changing radius.
  3. 12D Strings - Geometry Alignments with full curve Geometry (Arcs, Spirals, Vertical Curves, Vertical Arcs etc.)

The GENIO Export command will typically output

  1. Polylines and linestrings as 3D or 6D strings. If a linestring incorporates Arcs and Vertical Curves or Smooth Curve elements, some of the elements like Smooth Curve will be output using a chorded approximation, because MX GENIO does not support these geometries.
  2. Geometry Alignments as 12D Strings
  3. Surface Model Triangles as 3D Strings of 4 Points per triangle.

MX has a 4 character feature code limitation. That 4 character code can include both a code and a string number e.g. K001 is a Kerb String #1 and F001 is a Fence String #1. String numbering can be Alpha, Numeric or Alpha Numeric. The more characters you use for the code portion the less you have available for the string numbers. The string numbering system is what MX uses to separate linework into different lines.

Because TBC is more flexible than 4 character codes, and because you will likely want to survey the same way no matter what your deliverable format, and also because each MX House will have their own specifications of codes that they require for specific feature types, we provide a mapping system that allows you to map your survey codes to MX Codes during this export process. The Mapping File created can be saved and reused on many projects, and you can create different mapping files for different clients in order to meet their specifications yet retain your own survey methodology. MX does allow two blocks of 4 characters in order to facilitate transfer of additional information. For example it is possible to output the second 4 character code to provide a pipe diameter for example.

MX has some specific coding elements that you should be aware of

Point data e.g. Trees, Manholes, Spot Elevations etc. are output to GENIO as a P string e.g. PSL or PTR and all of the points of that type are typically put out in that same string. i.e. if you have 100 trees on a project, you would have a P String that contained 100 point records. MX processes a P String as a series of discrete and disconnected points.

Alignment Geometry is typically named with a G (G String) where G represents “Geometry”. Often you will get a G String (12D String) as well as a M string (Master Alignment String) for the same line, the M string will typically be a 6D string. Sometimes you will find the naming of the strings to be e.g. G001 M001 or M001 G001. This is a special use of the two blocks of 4 character codes that MX allows in the feature code field.

In addition there are a number of standard conventions that designers use for certain types of string e.g. a tie slope where it intersects a target surface will create an I or INT string. In addition the designers or agency will have their own coding systems that you will need to adhere to when you deliver your models to them.

The MX / MOSS GENIO Export Command has two primary purposes

  1. To Export Survey Data from TBC in MX GENIO Format suited to specifications required by MX Software Designers.
  2. To Export MX GENIO Format information to Trimble Access with good coding conventions for use in Field Measurement and Stakeout relating to road or highway projects. Access allows for a single Alignment (12D string) and the remainder of the lines need to be 3D strings. The exporter has a specific option that when selected will ensure that the GENIO file exported meets the requirements of Trimble Access.

The MX / MOSS GENIO Export for Survey Deliverable Workflow

The video below captures the entire process of setting up a Feature Code Library, Layers and Layer Group recommendations for TBC and then the creation of a survey model and output to GENIO format using this command. It concludes by re-importing the data back into TBC as a check before sending the model over to the client.

The MX / MOSS GENIO Trimble Access Road Strings Workflow

Video 1 of 2 - Exporting a road design to Moss / MX GENIO files for use with Trimble Access Road Stakeout capability (Trimble Access Road Strings).

Video 2 of 2 - Using the exported GENIO file in the Trimble Access system for Road Stakeout

The document below provides a more detailed description of the command and how to use it.

MOSS GENIO Export.pdf (961.9 KB)

The files below can be used to test and experiment with the command and are the ones used in the video.

Moss Export Training.vce (54.3 KB)
MOSS TEST.fxl (488 Bytes)
TBC_MossMap.rps (6.5 KB)
Test Survey 2.mos (43.4 KB)