The NIST STEP Class Library
A product of the Manufacturing Systems
Integration Division of the National
Institute of Standards and Technology
Download now!
Overview ||
STEP Class Library Components ||
Long Form Generation ||
Related Software ||
Platform/Compiler Support ||
Download Software ||
Documents ||
Developers ||
Acknowledgments ||
Contact information ||
Disclaimer
Overview
The NIST STEP Class Library (SCL) is a set of C++ class libraries
which are capable of representing information conforming to the
EXPRESS (ISO 10303-11) data specification. The libraries may be used
to build executable C++ applications which make use of information
contained in an EXPRESS file. They contain such features as a
dictionary of EXPRESS schema information and functionality for
representing and manipulating instances of EXPRESS objects. Simple
applications, such as ones which read and write EXPRESS data
in the form of STEP Part 21 files, can be easily written and are
included in the SCL release.
SCL was developed with several purposes in mind. Most notably it has
been useful for validating emerging concepts for STEP implementation
methods and for developing software for STEP-based applications.
Developers of SCL have iterated through the following activities: STEP
standards development, development of SCL based on STEP standards, and
feedback into the standard as a result of implementation experience.
Particular attention has been devoted to implementing STEP Parts:
- 21: Implementation Methods - Clear Text Encoding (ISO 10303-21),
- 22: The Standard Data Access Interface (SDAI) (ISO 10303-22),
- 23: The SDAI C++ language binding (ISO 10303-23), and
- 26: The SDAI IDL language binding (ISO 10303-26) WD.
For more information on the STEP standard in general, see the STEP page of the SC4 subcommittee of the ISO.
STEP Class Library Components
-
fedex_plus - parses an EXPRESS file and generates a C++ class
library representation based on the STEP Data Access Interface (SDAI)
C++ language binding (ISO 10303-23). Using the -c option fedex_plus
outputs TIE implementation objects for building an Orbix (see Disclaimer) CORBA server based on the SDAI IDL
language binding (ISO 10303-26).
- fedex_idl - translates EXPRESS into idl based on the STEP Data
Access Interface IDL language binding (ISO-10303-26).
- fedex_os - parses an EXPRESS file and generates C++ necessary
for adding persistence to the classes output from
fedex_plus. Persistence is implemented using ObjectStore OODBMS (see
Disclaimer).
- mkProbe - takes an EXPRESS file and generates a Data
Probe editor/schema browser. The Data Probe is a graphical tool
which allows a user to visually browse the information contained in an
EXPRESS schema and to create and edit instances of entities defined in
the schema. It also allows input and output of files based on the
EXPRESS file which conform to the STEP Part 21 (ISO 10303-21) encoding
method.
- STEP core library - library of C++ classes providing STEP
related functionality including early and late-bound attribute access,
reading and writing of STEP Part 21 files, classes implementing
EXPRESS base types, etc.
- data access interface library - library of C++ classes
providing a partial implementation of the SDAI Session Schema.
- editor library - library of C++ classes implementing the
functionality associated with an editor for instances of entities
defined in EXPRESS.
- utils library - library of C++ classes providing generic C++
functionality.
- ivfasd library - library of C++ classes providing
general-purpose InterViews user interface objects.
- probe-ui library - library of C++ classes providing InterViews
user interface objects for implementing an editor of EXPRESS
instances.
- fedex - syntax and semantic checker for EXPRESS. Based on the
NIST EXPRESS Toolkit.
- exppp - pretty printer for formatting EXPRESS. Based on the
NIST EXPRESS Pretty Printer Toolkit.
Long Form Generation
Back in the early 1990s, Don Libes at NIST developed Shtolo,
a tool for creating a self-contained “long form” EXPRESS
schema from a “short form” schema with interface
specifications.
Shtolo is not included as part of the SCL, but those interested in
building it from source can do so by compiling this C file and linking the resulting object
file with the SCL's libexpress.a and libexppp.a
libraries.
A SunOS/Solaris binary for shtolo is
available as well.
Related Software
- EXPRESS Web Server http://www.nist.gov/express-server - a NIST-run server which provides a www
interface to several EXPRESS-related tools and access to EXPRESS
specifications for STEP standards. Some of the Server's features include:
- User Id (optionally password protected) and account on server to
store files and command results.
- Upload of user EXPRESS schemas and Part 21 files.
- Analysis of EXPRESS schemas - Schemas are analyzed for syntactic
and semantic errors. Schemas may be analyzed using fedex or ECCO (see
Disclaimer).
- Formatting of EXPRESS schemas using the NIST EXPRESS Pretty Printer software.
- Analysis of STEP Part 21 clear text encoded files - Part 21 files
are analyzed for syntactic and semantic errors using EXPRESS Engine
(formerly NIST's Expresso
software). They are also checked against accompanying schemas.
- Conversion of Short Form to Annotated Listing (Long Form) -
Multiple Integrated Resource (IR) model schemas are merged and a
subset is produced corresponding to the definitions used by a
particular schema (e.g. an Application Protocol's schema).
- Public repository for standard and draft standard schemas -
Standard, draft standard, or otherwise interesting schemas may be
viewed, retrieved, or used with other services provided by the
server.
- Sharing and collaboration between users through collective use of
a User Id - Users may collaborate on schemas or Part 21 information,
using the server as a neutral site.
- NIST EXPRESS Toolkit - the NIST EXPRESS Toolkit parses an
EXPRESS file and represents it internally as C structures. Serves as
a basis for the fedex tools above. Distributed with the SCL. (See Download Software below.)
- NIST EXPRESS Pretty Printer Toolkit - the NIST EXPRESS Pretty
Printer Toolkit, built on the EXPRESS Toolkit, reads an EXPRESS file
and writes it out in a well-formatted style. Distributed with the
SCL. (See Download Software below.)
- EXPRESS Engine (formerly NIST Expresso) -
EXPRESS Engine is an open source language environment for EXPRESS providing tools to
aid in the development and validation of EXPRESS information models and
representative Part 21 data sets. The program translates EXPRESS schema
into an object-oriented internal representation, creating class definitions
and methods for EXPRESS types, functions and rules. Data corresponding to
the EXPRESS may be loaded from part 21 files or created through the user
interface. EXPRESS Engine allows one to validate the loaded data against
constraints (WHERE rules, global rules etc.) specified in the EXPRESS
schema, provides entity type hierarchy graphs, allows incremental definition
of EXPRESS code and an interface for creation and viewing of instance data.
(See Download Software below.)
- Data Probe - a graphical application of the SCL which allows a
user to visually browse the information contained in an EXPRESS schema
and to create and edit instances of entities defined in the schema.
It also allows input and output of files based on the EXPRESS file
which conform to the STEP Part 21 (ISO 10303-21) encoding method. The
Data Probe is distributed with the SCL. It uses the InterViews
Toolkit, an X Windows-based user interface toolkit from Stanford University.
- p21read - an application of SCL for reading and writing a Part
21 file for a specific Schema Class Library. Originally built to test
whether the Schema Class Library worked, it is also useful for checking
Part 21 files. It displays the error messages from the STEP class
library as a file is read.
Platform/Compiler Support
The SCL has been developed on Sun SPARCstations under UNIX (see Disclaimer). It currently builds under SunOS
and Solaris using either the gnu or Sun SPARCcompiler C++ compiler. We
have not tested the InterViews user interface code under the Solaris
operating system. In the past, organizations outside of NIST have
ported the SCL to a number of different platforms and compilers. The
previous release of the SCL (version 3.1, see Download Software) has been successfully ported
by Stefan Schwarz to Windows NT using MS Visual C++ 6.0 as a part of
the WSTEP
Toolkit. Release 2.1 of the SCL together with the Data Probe has
previously been built using the CenterLine C++ compiler and on an HP
computer. SCL without the Data Probe (and InterViews) has been built
on AIX using CSet++. None of these efforts are being supported by
NIST.
Download Software
STEP Class Library Documents
For more information on the SCL refer to the following documents:
- Design of a C++ Software
Library for Implementing EXPRESS: The NIST STEP Class Library,
EUG '95, EXPRESS User Group International Conference - Grenoble,
France, October 21-22, 1995. (abstract)
- Data Probe Users
Guide, NISTIR 5141, March 1993. (abstract)
- Data Probe: A Tool for
EXPRESS-based Data." Published in the proceedings of the 7th
Annual Engineering Database Symposium - ASME Computers in Engineering
Conference - San Diego, CA, August 1993. (abstract)
- Validation Testing System
Reusable Software Component Design, NISTIR 4937, October 1992. (abstract)
- A Structural EXPRESS
Editor, NISTIR 4903, August 1992. (abstract)
- Architecture for the
Validation Testing System Software, NISTIR 4742, January 1992. (abstract)
- Validating STEP
Application Models at the National PDES Testbed, NISTIR 4735,
December 1991. (abstract)
- Validation Testing System
Requirements, NISTIR 4676, September 1991. (abstract)
- Diagrams of basic SCL data
structures.
Developers
Acknowledgments
The STEP Class Library (SCL) was developed by the Manufacturing Systems Integration
Division at NIST to support
testing of the Standard for the Exchange of Product Model Data (a.k.a
STEP) and validation of STEP's emerging implementation specifications.
Funding for the project has come from the Department of Commerce and
the Department of Defense agencies including the Office of the Defense
CALS (Continuous Acquisition and Life-Cycle Support) Executive and the
Defense Advanced Research Projects
Agency (DARPA). Recent enhancements were sponsored by the National Information Infrastructure Protocols
Consortium and NIST's Systems Integration
for Manufacturing Applications (SIMA) program.
Contact Information
For questions or comments, please contact us at <stepcl@cme.nist.gov>. Please
be aware, however, that NIST is no longer doing any SCL development
and that we are unable to offer any kind of support.
Disclaimer
This software was produced by the National Institute of Standards and
Technology (NIST), an agency of the U.S. government, and by statute is
not subject to copyright in the United States. Recipients of this
software assume all responsibility associated with its operation,
modification, maintenance, and subsequent redistribution.
Names of companies and products, and links to commercial pages are
provided in order to adequately specify procedures and equipment used.
In no case does such identification imply recommendation or
endorsement by the National Institute of Standards and Technology, nor
does it imply that the products are necessarily the best available for
the purpose.
Page maintained by Josh
Lubell
Disclaimer/Privacy notice
Last Updated: $Date: 2004/03/18 03:36:26 $