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 Go Other
Clone or download
Latest commit 64ac71c Jan 5, 2018
Permalink
Failed to load latest commit information.
cmake sc_version_string: Use temporary names resilient against parallel builds Aug 21, 2017
data data/ap238/ap238-aim-long.exp comment typo Oct 9, 2017
doc Misc. typos Sep 15, 2017
example/ap203min Add ExternalProject_add based build of ap203min example Mar 27, 2015
include Misc. typos Sep 15, 2017
misc Misc. typos Nov 27, 2017
src Misc. typo Jan 4, 2018
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
.gitignore update .gitignore Feb 8, 2015
.travis.yml travis: no longer allow osx failures Aug 23, 2017
AUTHORS bump version (0.8), update AUTHORS, NEWS for v0.8, add travis-ci buil… Dec 26, 2014
CMakeLists.txt Add an option to completely bypass the git management of the version … Aug 6, 2016
CONTRIBUTING.md add CONTRIBUTING.md Jul 19, 2015
COPYING Misc. typos Sep 15, 2017
CTestConfig.cmake Add CMake footer comment to CMake files Mar 1, 2014
ChangeLog v0.7: Update changelog, INSTALL, NEWS, README, version string Apr 16, 2013
INSTALL v0.7: Update changelog, INSTALL, NEWS, README, version string Apr 16, 2013
NEWS More Misc. typos Dec 23, 2017
README.md README: put CI badges in table Aug 24, 2015
SC_VERSION.txt bump version (0.8), update AUTHORS, NEWS for v0.8, add travis-ci buil… Dec 26, 2014
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
run_ctest.cmake Case and whitespace on toplevel CMake files Mar 1, 2014

README.md

Travis-CI AppVeyor CI
Linux, OSX (LLVM) Windows (MSVC)
Build Status Build status

STEPcode v0.8 -- stepcode.org, github.com/stepcode/stepcode

  • 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: http://github.com/stepcode/stepcode/wiki/About-STEPcode

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



CODING STANDARDS

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 http://www.stack.nl/~dimitri/doxygen/docblocks.html)

If in doubt about a large patch, run astyle with the config file misc/astyle.cfg. Download astyle from http://sourceforge.net/projects/astyle/files/astyle/


For more info, see the wiki.