STEP exporter

STEP is the current standard for exchange of CAD data between different software packages. BRL-CAD makes use of the NIST STEP Class Libraries code to support its step-g converter, but we don't have an exporter.

For this project, there's a lot of directions that can be taken but the main goal is to export geometry as faithfully as possible. That means the implementation will have to be aware of the geometry representation type being exported, whether it's implicit CSG geometry, NURBS geometry, polygonal mesh (NMG or BoT) geometry, or something else and export accordingly to the appropriate STEP container type.

There are two relevant standards, AP203 and AP214. We have copies of the standards that will be shared to make sure you're exporting appropriately. It may also save you a lot of time and effort if the STEP Class Library (SCL) can be used for writing out geometry.

Specific items to remember:

  • The libraries should compile with strict compiler flags, as used in recent BRL-CAD compilations.
  • The generated source code files should be usable "out of the box" for g-step
  • BRL-CAD makes use of the doxygen system for source code documentation, so organizing source code documentation in the step libraries to work well with doxygen should be part of the review and updating process.


  • src/conv/step
    • this is where the current step-g importer resides
  • src/other/step
    • this is the SCL


  • Familiarity with C++