|
PLEASE NOTE: The Publications System provided by the Manufacturing Systems Integration Division (MSID) has moved to: http://www.mel.nist.gov/msidlibrary/publications.html. The pages below are maintained for archival purposes only.
Publication summary
Author(s): David Sauder and K.C. Morris
Publication date: October 1995
Citation: David Sauder and K.C. Morris: "Design of a C++ Software Library for Implementing EXPRESS: The NIST Step Class Library," EXPRESS User Group, October, 1995.
Key words: EXPRESS, STEP, Software Toolkit, Part--23, STEP Data Access Interface, SDAI, Data Dictionary, Entity Instantiation
Availability:
- Postscript
- A paper copy of this document is available by contacting Kristy Thompson [web,email]
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.
Attention users of these documents: The information contained
in these files should not be altered in any way. Attempts to change
these files will adversely impact the integrity of the information and
its usefulness. It is intended for use as is and will lose its
usefulness if changed.
Send questions or comments to Webmaster.
|