Skip to content
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).
Branch: master
Clone or download
tpaviot Merge pull request #385 from cclauss/modernize-Python-2-codes
Use print() function in both Python 2 and Python 3
Latest commit b06466c Jan 9, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake Misc. typos Jul 13, 2018
data data/ap238/ap238-aim-long.exp comment typo Oct 9, 2017
example/ap203min Add ExternalProject_add based build of ap203min example Mar 27, 2015
misc Use print() function in both Python 2 and Python 3 Jan 4, 2019
src Use print() function in both Python 2 and Python 3 Jan 4, 2019
test test for, and use, nullptr if we have it Aug 4, 2015
.appveyor.yml appveyor: don't skip test on Windows Aug 28, 2017
.travis.yml travis: no longer allow osx failures Aug 23, 2017
CMakeLists.txt Add an option to completely bypass the git management of the version … Aug 6, 2016
NEWS More Misc. typos Dec 23, 2017 README: put CI badges in table Aug 24, 2015
ctest_matrix.cmake Case and whitespace on toplevel CMake files Mar 1, 2014
lcov.cmake Case and whitespace on toplevel CMake files Mar 1, 2014

Travis-CI AppVeyor CI
Linux, OSX (LLVM) Windows (MSVC)
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.

You can’t perform that action at this time.