Skip to content


Subversion checkout URL

You can clone with
Download ZIP
STEPcode (formerly NIST's STEP Class Library) is used with IFC, STEP, and other standards that utilize the technologies of ISO10303 (STEP). It generates C++ and Python from EXPRESS (10303-11) schemas. The code is capable of reading and writing STEP Part 21 exchange files. It also utilizes Parts 22 and 23 (SDAI and its C++ binding).
C C++ Python CMake Yacc Lex Other

Merge pull request #344 from cshorler/python_p21_lexer_and_parser_imp…


Python p21 lexer and parser improvements
latest commit 7568033499
@mpictor mpictor authored
Failed to load latest commit information.
cmake make appveyor happier
data update AP209 ATS files. enum element_order now has the _order prefix …
doc update Doxyfile
example/ap203min Add ExternalProject_add based build of ap203min example
include Patch for MSVC2013 compilation
misc in appveyor summary, print errors first
src simplification - invocation of t_STRING / t_BINARY guarantees we can …
test add stepcore test for segfault in STEPattribute::set_null()
.gitignore update .gitignore
.travis.yml tweak travis-ci more
AUTHORS bump version (0.8), update AUTHORS, NEWS for v0.8, add travis-ci buil…
CMakeLists.txt make appveyor happier
COPYING Update text files for v0.6
CTestConfig.cmake Add CMake footer comment to CMake files
ChangeLog v0.7: Update changelog, INSTALL, NEWS, README, version string
INSTALL v0.7: Update changelog, INSTALL, NEWS, README, version string
NEWS NEWS: forgot to include BRL-CAD changes rename altered rendering of sample code block
SC_VERSION.txt bump version (0.8), update AUTHORS, NEWS for v0.8, add travis-ci buil…
appveyor.yml give up on msbuild, seems to offer no benefits. go back to cmake --build
ctest_matrix.cmake Case and whitespace on toplevel CMake files
lcov.cmake Case and whitespace on toplevel CMake files
run_ctest.cmake Case and whitespace on toplevel CMake files

Travis-CI build status: Build Status

STEPcode v0.8 --,

  • What is STEPcode? SC reads ISO10303-11 EXPRESS schemas and generates C++ source code that can read and write Part 21 files conforming to that schema. In addition to C++, SC includes experimental support for Python.

  • Renamed in April/May 2012: SC was formerly known as STEP Class Libraries, SCL for short. It was renamed because the name wasn't accurate: the class libraries make up only a part of the code.

  • Much of the work to update SC has been done by the developers of BRL-CAD, and SC (then STEP Class Library) was originally created at NIST in the 90's.

  • For information on changes version-by-version, see the NEWS file

  • Building and testing SCL - see the INSTALL file

  • For more details on the libraries and executables, see the wiki:

  • For license details, see the COPYING file. Summary: 3-clause BSD.


SC's source has been reformatted with astyle. When making changes, try to match the current formatting. The main points are:

  • compact (java-style) brackets:
    if( a == 3 ) {
        c = 5;
        function( a, b );
    } else {
        somefunc( );
  • indents are 4 spaces
  • no tab characters
  • line endings are LF (linux), not CRLF (windows)
  • brackets around single-line conditionals
  • spaces inside parentheses and around operators
  • return type on the same line as the function name, unless that's too long
  • doxygen-style comments (see

If in doubt about a large patch, run astyle with the config file misc/astyle.cfg. Download astyle from

For more info, see the wiki.

Something went wrong with that request. Please try again.