This describes an older ST-Developer release (1999). You can find the details for the latest release here
1.1 ST-Developer Version 7
ST-Developer v7 contains many new features. We continue to refine the programming libraries, improve Part 21 file handling, and strengthen the EXPRESS compiler, EXPRESS-G tools, and conformance checking tools.
The SDAI C DIS binding is now the default SDAI library. The older CD version is still present, but has been renamed and will be retired in the next release. The SDAI library now supports the SDAI validation functions, schema instances, and has several significant bug fixes.
The ROSE C++ library now supports unset/null values for all data types, including reals and integers. A new reference forwarding API can "redirect" references to an object, which can be extremely useful when merging data sets and eliminating duplicate objects. The library also has functions designed to simplify the packaging of applications for distribution. Several engineering changes in the library have increased traversal performance and can reduce memory usage by up to 40%.
The new library has better support for multiple data section Part 21 files. Multiple data section files support integrated schemas, such as combined AP-203/AP-202 files, as well as extension schemas, such as an AP-203 file with extensions in the extra data sections.
We have added a new Part 21 Filter Library, which can be useful for work on large STEP Part 21 files. This library gives applications the ability to reduce the amount of data that must be read into memory by reading a subset of a file.
The advanced EXPRESS compiler expxfront is now much better at handling multiple "short-form" schemas. The compiler can link schemas against a library of STEP resource parts and has a new "very strict" checking mode for schema validation. The EXPRESS to HTML converter also supports multiple schemas, and has been extended to produce frames for easier navigation.
The EXPRESS-G editor has been enhanced in several ways. The navigation tool now provides a reference chain and a menu of root objects. The Windows version supports bookmarks and other navigation refinements. The editor can also create working set files by marking objects. The working sets can be used when generating classes, or to create more specific EXPRESS-G diagrams..
This release contains a new AP Conformance tool and STEP Conformance Editor based upon the new EXPRESS interpreter used by the DIS SDAI. This release includes the new versions ( apconform_v2 / stepedit_v2 ) as well as the original tools ( apconform / stepedit ).
The new AP-203 Conformance Checker is a fast alternative to the EXPRESS interpreter-based apconform tools. The AP-203 checker has custom code to efficiently check AP-203 files against all applicable local rules (WHERE clauses) and global rules (RULEs) defined by AP-203. The AP-203 checker also verifies the presence of required attribute values.
This release contains a demonstration STEP to XML converter. This tool demonstrates how STEP Part 21 files can be converted into an XML format. The XML format is being explored as an alternative transport mechanism for EXPRESS-defined information.
The Windows version of ST-Developer now contains a Part 21 File Browser. This tool uses entity references as hypertext links for moving around a file. The tool also uses color to highlight syntactic elements of a file, such as entity IDs, references to entities, and text strings.
We have added some new tutorials that should help remove some of the "mystery" from AP-203. We have studied the AP-203 document, the EXPRESS rules, and the PDES Inc. recommended practices and have packaged this knowledge into a series of programming examples that you can build, experiment with, and use as the basis for your own programs.
Finally, we are now distributing all of our manuals in electronic form. This will help us to provide you with the most accurate and timely information. All reference and tutorial manuals are shipped as hyperlinked HTML documents that can be read with any web browser. We have also included PostScript and PDF versions so that you can print the manuals if you prefer paper documentation.
1.2 Supported Platforms
ST-Developer is available for a wide variety of platform, operating system, and compiler combinations. The platforms covered by this document are listed below. An installation may contain several versions of the programming libraries for use with the C++ compilers shown below.
To install ST-Developer, follow the instructions in UNIX Installation or Windows NT/9x Installation . You must also install a software key for each license that you have. Software License Keys describes how to obtain software license keys.
Platform | Operating System | Supported C++ Compilers |
---|---|---|
DEC Alpha/AXP | DEC UNIX v4.0 | DEC C++ v5.3, GCC v2.7-96q1 |
DEC Alpha/AXP | Windows NT v4.0 | Microsoft Visual C++ v5.0 with the /ST, /MT, and /MD options |
HP PA-RISC | HP-UX v10.20 | HP C++ with and w/o +eh, HP ANSI C++ |
IBM PowerPC | AIX v4.x | IBM Cset / xlC, GCC v2.7.2 |
Intel x86 | Linux glibc 2.0+ (libc 6, RedHat 5.x) | egcs-1.0.2 |
Intel x86 | Windows NT v4.0 Windows 95/98 | MS Visual C++ v5.0 & v6.0 with the /ST, /MT, and /MD options |
Silicon Graphics | IRIX v6.x | SGI C++ default and -n32 |
Silicon Graphics | IRIX v5.x | SGI C++, GCC v2.7.2 |
Sun SPARC | SunOS v4.1.4 | Sun C++ v4.0, GCC v2.7.2 |
Sun SPARC | Solaris v2.4 | Sun C++ v4.0, GCC v2.7.2 |
1.3 All Electronic Documentation
Beginning with this release, we are distributing all of our documentation in electronic form. This will allow us to provide you with the most accurate documentation for our tools and to distribute patches and new manuals on our web site.
We are distributing documentation in three different forms, so that you may use the manuals in the way that best suits your needs:
- HTML -- On-line, hyperlinked versions for viewing with any web browser.
- PDF -- For interactive viewing of the exact page representation and for printing local copies with Adobe Acrobat readers.
- PostScript -- For those that prefer printed versions and have access to a PostScript compatible printer.
The on-line, hyperlinked copies of all manuals can be found under the ST-Developer installation in the docs directory. Your system administrator may also make the HTML files available via a local web server, as long as access is limited to internal use only. Use the following URL to get to the documentation home page:
file:/<stdev_install_dir>/docs/index.html
The PostScript and PDF versions of the manuals can also be found in the docs directory. If, for some reason, you would like to order sets of printed documentation, please contact us.
1.4 AP-203 "Mystery" Tutorials
We have added some new tutorials that should help remove some of the "mystery" from AP-203. The demos/mystery directory contains some simple, well-documented programs that show how to work with the units of functionality in AP-203.
We have gone through the AP-203 spec, the EXPRESS rules, and the PDES Inc. recommended practices to collect what you need to know for using parts of AP-203. We've packaged this knowledge into a series of programming examples that you can build, experiment with, and use as the basis for your own programs.
- AP-203 CC1 -- The ap203_cc1.cxx program creates a data set that contains all of the configuration management information required for a minimal AP-203 Conformance Class One file. This is an excellent starting point for programs based on any of the STEP APs.
- Design Activity -- The activity.cxx program explores the AP-203 design activity information. The program creates data to document design releases and change requests for a fictional product.
- Assembly -- The assembly.cxx program shows how to construct an assembly between two products. The program constructs an assembly relationship between configuration management information as well as geometry.
- Bill-of-Materials Assembly Report -- The print_assy.cxx program finds all of the engineering assemblies in a STEP file and prints their structure as an indented list. This program finds each of the assembly relations and traverses them as a tree.
1.5 EXPRESS-G Improvements
The EXPRESS-G editor has many enhancements to improve navigation, diagram layout, and overall accuracy in diagram production. The major improvements are:
- Navigation -- The navigation tool menus now provide reference chains, so you can through several attributes at once, or through inheritance trees. The tool can also provide a menu of root objects (not attributes of any other object)
- Working Set -- You can now define a working set by marking entities with a special color. You can save and use the working set file for the EXPRESS compiler or to create new, smaller EXPRESS-G diagrams on the fly.
- Diagram Layout -- Select boxes now provide "Fan out below" and "Fan out above" options, for a more tree-like layout of SELECT types.
In addition, the Windows platform contains the following:
- Bookmarks -- Bookmarks are small text boxes that can be placed anywhere on the diagram, much like a "post-it" notes. Bookmarks can be moved, removed, and edited. They can also be shown with text, as icons, or hidden completely. Bookmarks do not scale with the diagram, so they are always readable.
- Autoscroll -- Clicking in the area near the window boundary will scroll the diagram in the corresponding direction: clicking near the bottom of the window will scroll the diagram up, clicking in the top-left corner will scroll the diagram north-west, etc.
- Improved Navigation -- The editor has a browser-like interface for navigation. Jumps via page references, direct jumps to objects, pages and bookmarks are recorded in a "navigation sequence" that then can be traversed back and forth.
- New "Go To" Command -- You can now jump directly to a page by number or a bookmark by name.
- Custom Layout for SELECTS -- The custom layout feature now includes SELECT types as well as entities.
- Scalable fonts -- The fonts now scale correctly, causing objects to scale proportionally. (Previously, objects did not scale when the font size changed.)
1.6 Advanced EXPRESS Compiler
The expxfront advanced compiler complements the original expfront EXPRESS compiler. The advanced compiler performs more thorough checking and resolution, but the original compiler is still used for generating several key outputs (EXPRESS-G diagrams, C++ classes, and ROSE data-dictionaries). These outputs will be moved to the new compiler in a future release.
The expfront original EXPRESS compiler currently performs basic checking of EXPRESS schemas as well as:
- Generation of C++ class definitions, ROSE data-dictionaries, cross-reference listings.
- EXPRESS parse data and dictionary information for the EXPRESS-G tools, original AP Conformance Checker, STEP Editor, and the outdated CD SDAI binding.
The expxfront advanced EXPRESS compiler currently performs very thorough checking of EXPRESS schemas as well as:
- Compilation of "short-form" schemas with linking against libraries of resource schemas, such as the STEP 40-series schemas.
- Compilation of EXPRESS-X schema maps.
- Generation of HTML and formatted text from EXPRESS.
- EXPRESS parse data and dictionary information for the current SDAI binding, and the new AP Conformance Checker and STEP Editor.
In this release, the expxfront compiler handles multiple schemas much more thoroughly. When schemas refer to each other by USE and REFERENCE clauses, the compiler can search a repository of pre-compiled schemas for the definitions. This allows the entire library of STEP Integrated Resources to be pre-compiled and used whenever a STEP short-form AP is compiled. These improvements also make compilation of PLIB and MARISTEP schemas much more robust.
Error checking has also been improved, particularly for assignment compatibility and operator/operand compatibility. The compiler can now predict possible results from an expression at runtime and point out violations. EXPRESS errors are always flagged, but warnings can be limited using options. There have also been some improvements in the checking of TYPEOF, ROLESOF, and USEDIN opertions, especially intersections with aggregates of strings.
1.7 EXPRESS to HTML Converter
The express2html EXPRESS to HTML converter now handles short form schemas using the new capabilities of the advanced EXPRESS compiler. It was easy to get lost when browsing through multiple schemas, so the converter was enhanced to produce HTML frames. With frames, you can keep some context while browsing through function and entity definitions.
As before, plain HTML (no frames) can be generated from the tool as can pretty printed text. The control file has also been simplified to allow easier creation of custom output formats.
1.8 AP-203 Conformance Checking Tool
The new AP-203 Conformance Checking Tool is a fast alternative to the general EXPRESS interpreter-based apconform tools. The AP-203 checker has custom code to efficiently check AP-203 files against all applicable local rules (WHERE clauses) and global rules (RULEs) defined in the AP-203 AIM. The AP-203 checker also verifies the presence of all required (non-OPTIONAL) attribute values.
The ap203check tool is faster than apconform , but is specific to AP-203 data only. Whereas the apconform tool utilizes a general EXPRESS interpreter, ap203check is built using early-bound C++ (generated classes) and is optimized for speed using such techniques as pre-computing all reverse (USEDIN/INVERSE) references between entity instances.
Enhancements planned for future releases include validation for UNIQUE constraints, aggregate bounds constraints, and INVERSE cardinality constraints. We are investigating a "healing" capability where the tool can correct straightforward errors, producing a more conformant version of the input data.
1.9 Windows Part 21 Browser
The Windows version of ST-Developer now contains a new hypertext-oriented browser for Part 21 files. The Windows STEP File Browser is a simple utility for viewing STEP Part 21 files. It uses color to highlight elements of a file, such as entity IDs, references to entities, and text strings.
The browser uses entity references as hypertext links to corresponding entity definitions. This allows you to navigate through a Part 21 file in the same way as you would with a Web browser.
The browser also allows you to select a subset of entities (apply a working set ) to display instead of the whole file. If you select a subset then all the entities in the subset as well as all the entities they refer to will be displayed in the browser.
1.10 STEP to XML Converter
This release contains a demonstration STEP to XML converter. This tool demonstrates how STEP Part 21 files can be converted into an XML format. The XML format is being explored as an alternative transport mechanism for EXPRESS-defined information.
The XML encoding was informally proposed in discussions among the ISO working groups on the mixture of web standards with STEP and EXPRESS. The encoding is general purpose, but rather verbose. The step2xml tool can convert any Part 21 file to this form. For example, given the following lines from a Part 21 file:
#10 = POINT(1.,0.); #20 = POINT(2.5,4.); #40 = LINE(#10,#20);
The XML output would be:
<data-instance ID="i40"><type IDREF="Line"> <attribute name="enda" type="Point"><instance-ref IDREF="i10"/> </attribute> <attribute name="endb" type="Point"><instance-ref IDREF="i20"/> </attribute> </type> </data-instance> <data-instance ID="i10"><type IDREF="Point"> <attribute name="x" type="REAL">1.</attribute> <attribute name="y" type="REAL">0.</attribute> </type> </data-instance> <data-instance ID="i20"><type IDREF="Point"> <attribute name="x" type="REAL">2.5</attribute> <attribute name="y" type="REAL">4.</attribute> </type> </data-instance>
1.11 Part 21 Filter Library
A new addition in this release is the Part 21 filter library, which can be useful for work on large STEP Part 21 files. This library gives applications the ability to reduce the amount of data that must be read into memory by reading a subset of a file. The library contains several C++ classes and global functions that can be used to perform the following operations:
- Obtaining statistical information about a STEP Part 21 file.
- Retrieving entity IDs for a set of entity types.
- Finding types of particular entity instances.
- Finding references of the given entity instances.
- Extracting a subset of entities (called working set) from a file according to the user's specification.
- Loading the specified working set into the memory as a RoseDesign object.
- Merging the modified working set into the original file.
- Splitting a large STEP file into several smaller files, each containing a separately specified subset of entities.
All of these operations are done "out-of-memory," that is the original large file is never loaded into the memory as a whole. The operations are done on the file at the text level and therefore can be run very quickly. This offers a major advantage over using the ROSE library to perform the same operations on large files. On the smaller files (less than a few megabytes in size), however, the ROSE library will outperform the P21 Working Set library.
1.12 SDAI C DIS Binding
The SDAI C DIS Binding has several major improvements and is now installed as the default version of the SDAI library. The older CD version is still present, but has been renamed and will be retired in the next release. The SDAI library now implements the SDAI validation functions, schema instances, an extended interface to the ROSE-level data structures, and a number of bug fixes.
The SDAI validation functions are provided using a new EXPRESS interpreter based on the advanced EXPRESS compiler. The EXPRESS interpreter is a large piece of software, so we provide two version of the SDAI library -- a lightweight version without the interpreter, and a full version with the interpreter.
The SDAI dictionary is now generated at run-time from ROSE compiled schema files, as well as EXPRESS parse data. When a model is loaded, the SDAI generates a dictionary based on the ROSE compiled schema files. It then looks for EXPRESS parse data, and if present, uses it to extend the dictionary. If parse data is not available, the dictionary will be as complete as possible, but a number of items; including inverse and derived attribute, rules, and some types; will not be included in the dictionary. The express2sdai_dis utility is no longer needed and has been retired.
This release of the SDAI library supports schema instances. A schema instance is a set of models which contain data. A model may belong to more than on schema instance. Schema instances are used to identify the set of data over which global and uniqueness rules are evaluated.
A memory leak in the non-persistent lists (NPLs) has been corrected, complex entities contained in the schema are now created implicitly, and dictionary objects are now created with lower-case names.
1.13 ROSE C++ Library
The ST-Developer v7 ROSE library contains many new features. The library now supports unset/null values for all data types, including reals and integers. The ANSI C++ language changes are now supported and many functions have been updated to use const input parameters. There are also several new functions designed to simplify the packaging of applications for distribution. These functions allow applications to control how the search paths for schemas and data files are set.
The new library has improved support for multiple data section Part 21 files. RoseDesigns can now contain multiple design sections ( RoseDesignSection objects). Each design section is either a header, system, or data section. Designs with more than one data section are written using the extended Part 21 format. Multiple data sections can be used to produce files based on an integrated set of schemas, such as a combined AP-203/AP-202 file, or a primary schema with some extension schemas, such as an AP-203 file with extensions in the extra data sections.
The design cursors have been updated as well. The cursors now traverse over individual data sections, sections of a particular type (either header, data, or system), sections that use a particular AP schema, as well as entire designs. They also support additional selection criteria for objects, such as all objects of a particular type, either with or without all subtypes.
The assumptions and algorithms used by RoseObject::mutate() function have changed. The mutate functionality is still there, but has been better defined. In addition, the key feature of this function -- reference forwarding -- has been broken out for use in other situations. This new reference forwarding API allows an application to "redirect" references to a particular object, which can be extremely useful when merging data sets and eliminating duplicate objects.
There have been several internal engineering changes in the ROSE library. These changes increase traversal performance and reduce memory usage, but should otherwise be transparent to most applications. The memory and time savings could be significant. The base memory, aside from attributes, used for each persistent object has been reduced by over 40% and traversals no longer require as many type comparisons.
Only applications that used some of the more advanced library features may need to be changed. In particular, code that makes use of RoseManager fields and operations that require RoseOIDs may need to be updated. Generally, we have changed the function prototype in cases where the operation semantics have changed significantly. This should expose any problems in existing code.
1.14 Other Changes
The TCL/SDAI interpreter has been retired in this release. The xapconform GUI front end for apconform has also been retired -- this tool was just a TCL script that called the underlying tool.
The prototype Java/SDAI libraries and EXPRESS-X mapping libraries that were distributed with the last release have been moved to the new ST-WebExchange product. Any ST-Developer v1.6 sites that have been using these libraries in a project should contact us, and we will work out a transition plan.