NOTICE: Due to a lapse in annual appropriations, most of this website is not being updated. Learn more.
Form submissions will still be accepted but will not receive responses at this time. Sections of this site for programs using non-appropriated funds (such as NVLAP) or those that are excepted from the shutdown (such as CHIPS and NVD) will continue to be updated.
An official website of the United States government
Here’s how you know
Official websites use .gov
A .gov website belongs to an official government organization in the United States.
Secure .gov websites use HTTPS
A lock (
) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.
Design of a C++ Software Library for Implementing EXPRESS: The NIST Step Class Library
Published
Author(s)
David A. Sauder, Katherine C. Morris
Abstract
The NIST STEP Class Library is a C++ software toolkit designed to provide software building blocks for developing STEP software applications. It has evolved over past years along with ISO 10303-23 Product Data Representation and Exchange: C++ Programming Language Binding to the Standard Data Access Interface (SDAI) Specification. Experience gained in implementing SCL has been important for providing feedback into the C++ binding and SDAI. This paper presents basic data structures used in the SCL to implement an EXPRESS data dictionary and to instantiate instances of entities. Design decisions with respect to EXPRESS inheritance mechanisms which are difficult to implement in C++ are discussed. These include multiple inheritance and complex inheritance via AND and ANDOR contructs in EXPRESS. Design decisions are discussed that also support of an early binding to an EXPRESS schema along with late binding style data access. Finally, implementation issues that have been overcome related to implementing EXPRESS agregates using C++ templates are discussed.
Data Dictionary, Entity Instantiation, EXPRESS, Part--23, SDAI, Software Toolkit, STEP, STEP Data Access Interface
Citation
Sauder, D.
and Morris, K.
(1995),
Design of a C++ Software Library for Implementing EXPRESS: The NIST Step Class Library, EXPRESS User Group, [online], https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=821491
(Accessed October 21, 2025)