Design of a C++ Software Library for Implementing EXPRESS: The NIST Step Class Library
David A. Sauder, Katherine C. Morris
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
and Morris, K.
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 November 28, 2021)