This describes an older ST-Developer release (2010). You can find the details for the latest release here
ST-Developer v14 adds a new .NET programmable geometry viewer, new STEP Application Protocols, as well as continued support for the CIMsteel Integration Standard (CIS/2) and Industry Foundation Classes (IFC), new Visual Studio 2010 and 2008 libraries, new programming DLLs, and many other refinements.
- Added support for Visual Studio 2008 and Visual Studio 2010. The Windows versions of ST-Developer now include separate C++ programming libraries and sample projects for use with Visual Studio 2010, 2008, 2005, and 6.0 compilers.
- New ST-Viewer and the ST-Viewer .NET library for building your own custom geometry viewing applications.
- Completely updated Windows interfaces for all of the ST-Developer tools. A ST-Developer Launcher gathers all of the tools in one place, or you can just launch them from the Start Menu.
- Programming libraries on Windows can now be used as DLLs. Includes DLLs built with the Visual C++ v8, v9, and v10 runtime libraries for maximum compatibility with your development environment. Static libraries are still available.
- Many fixes to the Java programming libraries, including P21 file improvements and support for the binary type required by IFC2X3 library.
- Update of the AP214 checker to the AP214 Edition Three schema.
- Improved STEP Part 28 XML (ISO 10303-28:2007) read/write libraries.
- We have updated and extended the schemas included with ST-Developer. We added new class libraries and sample programs for the AP210 electrical design AP223 cast parts, and AP235 engineering properties schemas. We have also updated the class libraries for the 2010 IS version of AP-203 second edition, AP214 third edition, and latest schema fixes to the AP215, AP216, AP227, and IFC 2x3 standards.
- Added new tolerance sample program to AP203e2, AP214, and AP238, plus a new toolpath sample program for AP238.
- New Visual Studio 2010 and 2008 project files for all sample programs, plus all project files now have separate build configurations for use with 32bit and 64bit versions of ST-Developer.
- The widest platform support of any ST-Developer release with 32bit and 64bit Windows versions, 32bit and 64bit Linux, MacOS X Intel 32bit and 64bit, MacOS X PowerPC, IBM AIX on PowerPC, Solaris on SPARC and x86, HP-UX on PA-RISC and Itanium, and SGI Irix.
|Operating System||Architecture||Supported C++ Compilers|
|Windows 7/Vista/XP 32bit||Intel x86||Visual Studio 2010 (VC++ 10.0), Visual Studio 2008 (VC++ 9.0), Visual Studio 2005 (VC++ 8.0), and Visual C++ 6.0 with the /MT and /MD options.|
|Windows 64bit||Intel x64
|Visual Studio 2010 (VC++ 10.0), Visual Studio 2008 (VC++ 9.0), Visual Studio 2005 (VC++ 8.0) with the /MT and /MD options.|
|MacOS X on PowerPC
|PowerPC||GCC 3.3 and GCC 4.0 (Xcode 2.0)|
|MacOS X on Intel 32bit
|Intel x86||GCC 4.0 (Xcode 2.3+, Xcode 3.x)|
|MacOS X on Intel 64bit
|Intel 64bit||GCC 4.0 (Xcode 2.3+, Xcode 3.x)|
LSB 3.x or newer distros, RHEL 4/5, SuSE 9+, and many others as described in the install notes.
|Intel x86||GCC 3.4/4.x|
LSB 3.x or newer distros, built for x86_64. See install notes for examples.
|POWER5||IBM XL C/C++|
|PA-RISC||HP ANSI C++|
|Itanium||HP ANSI C++|
|MIPS||SGI C++ default and -n32|
|Sun Solaris v10||SPARC||Sun Studio v11 (default and with -PIC -mt)|
|Sun Solaris v10||Intel x86||Sun Studio v11 64bit default and with -PIC -mt|
ST-Developer v14 ships with a wide selection of C++ and Java class libraries, sample programs, HTML-documented schemas, and usage guides. In this release we have added or updated support for AP203 second edition, AP210 second edition, AP214 third edition, AP223, AP235, and technical corrigenda for AP215, AP216, AP227, and IFC 2x3.
You can start programming immediately, with out-of-the-box support for twenty two STEP Application Protocols, the CIMsteel Integration Standard (CIS/2) as well as two versions of the Industry Foundation Classes (IFC). If we missed your favorite, you can use EXPRESS compiler and other ST-Developer tools to install them yourself! The electronic manuals have quick links to each of the following:
- AP201: Explicit Draughting - Includes the schema for ISO 10303-201:1994, plus C++ and Java class libraries, and a sample geometry program.
- AP202: Associative Draughting - Includes the schema for ISO 10303-202:1996, plus C++ and Java class libraries, and a sample geometry program.
- AP203: Configuration Controlled Design - Includes the schema for ISO 10303-203:1994/Amd1:2000 and recommended practices, plus C++ and Java class libraries, and five sample programs for geometry, assemblies, and config-control information.
- AP203 Edition 2: Configuration Controlled Design - Includes the schema for the ISO 10303-203:2010 updated standard, plus C++ and Java class libraries, and five sample programs for geometry, assemblies, tolerances, and config-control information.
- AP209: Structural Analysis - Includes the schema for ISO 10303-209:2001, plus C++ and Java class libraries, recommended practices guide, and a sample geometry program.
- AP210 Edition 2: Electronic Assembly Interconnect and Packaging Design - Includes the schema for the ISO 10303-210:2010 updated standard, plus C++ and Java class libraries, and a sample program for geometry.
- AP214 Edition 3: Automotive Design - Includes the schema for the ISO 10303-214:2010 updated standard, plus C++ and Java class libraries, and four sample programs for geometry, assemblies, and tolerances. We have also expanded the workingset entries for drafting information.
- AP215: Ship Arrangement - Includes the schema for ISO 10303-215:2004 with 2008 corrections, plus C++ and Java class libraries, and a sample geometry program.
- AP216: Ship Moulded Form - Includes the schema for ISO 10303-216:2003 with 2008 corrections, plus C++ and Java class libraries, and a sample geometry program.
- AP218: Ship Structures - Includes the schema for ISO 10303-218:2004, plus C++ and Java class libraries, and a sample geometry program.
- AP219: Dimensional Inspection Information Exchange - Includes the schema for ISO 10303-219:2007, plus C++ and Java class libraries, and sample programs for geometry, properties, and round hole features.
- AP221: Functional Data and Schematics for Process Plant - Includes the schema for ISO 10303-221:2007, plus C++ and Java class libraries, and a sample program to create a simple STEP product.
- AP223: Cast Parts - Includes the schema for ISO 10303-223:2008, plus C++ and Java class libraries, and sample programs for geometry and properties, and round hole features.
- AP224 Edition 3: Feature-Based Process Planning - Includes the schema for the ISO 10303-224:2006 third edition, plus C++ and Java class libraries, and sample programs for geometry and properties, and round hole features.
- AP225: Building Elements - Includes the schema for ISO 10303-225:1999, plus C++ and Java class libraries, and a sample geometry program.
- AP227 Edition 2: Plant Spatial Configuration - Includes the schema for ISO 10303-227:2005 with 2008 corrections, plus C++ and Java class libraries, a usage guide for ship piping, and a sample geometry program.
- AP232: Technical Data Packaging - Includes the schema for ISO 10303-232:2002, plus C++ and Java class libraries, the recommended practices guide, and a sample geometry program.
- AP235: Engineering Properties - Includes the schema for ISO 10303-235:2009, plus C++ and Java class libraries, the recommended practices guide, and a sample program to create a simple STEP product.
- AP236: Furniture Catalog and Interior Design - Includes the schema for ISO 10303-236:2006, plus C++ and Java class libraries, and a sample geometry program.
- AP238: STEP-NC Integrated CNC - Includes the schema for the STEP-NC ISO 10303-238:2007 standard, plus C++ and Java class libraries, and sample programs for geometry, round hole features, tolerances, and toolplaths.
- AP239: Product Life Cycle Support - Includes the schema for ISO 10303-239:2005, plus C++ and Java class libraries, and a sample program to create a simple STEP product.
- AP240: Macro Process Planning - Includes the schema for ISO 10303-240:2005, plus C++ and Java class libraries, and sample programs to create a simple STEP product with geometry and round hole features.
- CIMsteel Integration Standard (CIS/2) - Includes the structural frame schema in the latest LPM/6 version, plus C++ and Java class libraries, a sample geometry program, and links to web resources. Plus, we have updated the data dictionary with additional complex instances.
- Industry Foundation Classes Edition 2 (IFC 2x2) - Includes the schema for the IFC 2x2 Addendum 1 schema (ifc2x2_final), plus C++ and Java class libraries, and a sample geometry program.
- Industry Foundation Classes Edition 3 (IFC 2x3) - Includes the schema for the latest IFC 2x3 schema with 2007 corrections, plus C++ and Java class libraries, and a sample geometry program.
- STEP Integrated Resources - Includes browsable EXPRESS for the integrated resources (40-series), application integrated resources (100-series), and the application interpreted constructs (AICs, the 500-series).
- STEP PDM Schema - Includes browsable EXPRESS for v1.2 of the STEP PDM schema along with the moste recent recommended practices guide.
The ST-Viewer tool has been completely updated to use the same STEP geometry visualization technology found in our STEP-NC Machine product. The new version is based on a new .NET library that that you can use to add STEP visualization to your .NET Forms applications.
The new ST-Viewer lets you explore the product and shape assembly trees in a STEP file, turn assembly components on or off, and change the display color or transparency of things. Tooltip popups display the underlying STEP entities for the shape representations, relationship, and product entities so that you can trace their use within the STEP P21 file. The tool displays STEP geometry with both context-dependent shape representation and mapped item assemblies, color information, and AP203e2 presentation tolerances.
Consult the ST-Viewer Reference Manual for a complete description of these capabilities.
The ST-Developer compilers, checkers, and other tools have always been available as both command line tools and Windows dialog versions. In this release we have updated all of the Windows versions to be even easier to use and include more options.
Previously, you could only start the Windows dialog versions one at a time through the ST-Developer Launcher and all output messages were shown in the launcher window. Now you can run all of the tools at once from the Launcher, or directly from the Start Menu, plus each tool window shows it own messages. The ST-Developer Launcher has been simplified and now has a quick link to the ST-Developer online manuals.
In addition, you can now drag and drop files into the tool windows, each one keeps a list or recently used files, and you can cut and paste, save or print the messages printed by the tools.
ST-Developer for Windows now supports DLL versions of the ROSE C++ library and all preinstalled schemas. The DLL support is available for programs built with Visual Studio 2010, 2008, and 2005. Both release and debug configurations are provided.
The DLL versions of the ST-Developer libraries are most useful if you build several sub-project DLLs that each must access C++ objects read or written to P21 files. The memory for the objects are managed by the shared ST-Developer DLLs and you can work with them across your DLLs. ST-Developer still includes static libraries, which are usually the simplest choice if your program has no sub-projects.
Switching to the DLLs is a simple change to your project files. Distributing your applications linked to the DLLs becomes a little more complex, however, because you must make sure that your programs can find the ST-Developer DLLs as well as the Visual Studio runtime.
ST-Developer makes it simple to examine STEP XML files in any web browser with the Part 28 to HTML conversion tool. On Windows, this tool integrates into the Explorer so you can open a file in a web browser by simply right clicking on it and selecting "Browse P28 XML" as shown below. In this release, we have added a "Browse P28 XML (quick)" option that handles larger XML files.
We have also made many of internal improvements to the P28 XML reading and writing library to better handle STEP data. These improvements are summarized in the table below.
|---||Fixed problem with double quote appearing in XML attributes that was not properly escaped.|
|---||Fixed crash when writing entity instances with no attributes.|
|---||Changed handling of zero byte files so that an IO error is generated rather than a ROSE error (which would exit).|
|---||Major improvement to write speed by reducing buffering for XML attributes.|
|---||Corrected memory leak during write from creating RoseDictionary instances.|
|---||Corrected P28 reader to read lists of strings.|
|---||Updated P28 reader and writer to handle binary data as hexBinary, using the P21 encoding.|
|---||Corrected P28 writer to correctly emit selects of aggregates of entities.|
|---||Applied patch for expat security bug #1990430|
|---||Updated zlib version to 1.2.5|
|---||Updated minizip version to 1.01h|
As described above, the ROSE C++ library is now available in DLL form for use with programs built in both release and debug configurations, with Visual Studio 2010, 2008, and 2005. In addition, many of the functions in the RoseInterface object were deprecated in the last release and have now been retired. These functions are simply aliases and can be replaced with the RoseDesign functions of the same name.
RoseInterface::addName() RoseInterface::addSchema() RoseInterface::designName() RoseInterface::display() RoseInterface::findDomain() RoseInterface::findObject() RoseInterface::findObjects() RoseInterface::format() RoseInterface::nameTable() RoseInterface::pnewInstance() RoseInterface::removeDesign() RoseInterface::removeName() RoseInterface::rootObject() RoseInterface::saveDesign() RoseInterface::saveDesignAs() RoseInterface::setDesignName() RoseInterface::setFormat() RoseInterface::setRootObject() RoseInterface::useSchema()
In addition, the following type aliases have been deprecated and will be removed in a future release.
STR ==> use RoseSTR ArrayOfSTR ==> use ArrayOfString BagOfSTR ==> use BagOfString ListOfSTR ==> use ListOfString SetOfSTR ==> use SetOfString DictionaryOfSTR ==> use DictionaryOfString
With previous versions, you could use declare() and implement() macros for manually declaring new aggregate classes. These macros have been retired, so you so you must change any uses to the ROSE_DECLARE_AGG() and ROSE_IMPLEMENT_AGG() macros as shown below.
declare(npList,DefInfo); // Change this implement(npList,DefInfo); ROSE_DECLARE_AGG(npList,DefInfo); // To this ROSE_IMPLEMENT_AGG(npList,DefInfo);
See Migrating Programs from Earlier Versions for a complete list of changes if you are upgrading code written for an earlier version of ST-Developer.
In addition to these changes described above, we have addressed a number of library issues in this release. The issues are listed in the table below.
|370||GCC 4.1 roselib warnings. The roseHdefs.h file had a warning about a multi-line comment caused by a commented macro containing backslashes, The RoseError.h file had several warnings about non-virtual destructors reported when using -Wnon-virtual-dtor. These have been fixed.|
|447||rose_get_nested_object type filter does not work. Using the filter would produce "cannot typecast" warnings. These have been fixed.|
|465||Late-bound ANDORs are missing redeclared as derived info. When the domains for complex instances are generated at runtime instead of being generated at compile time by a workingset, the result did not have information about attributes redeclared as derived. This resulted in incorrect P21 encoding because the required star * is missing from the attribute field. Seen with si_unit andors. This has been fixed.|
|466||Allow P21 read of incorrectly wrapped primitives. The P21 parser rejected simple primitives when they were incorrectly wrapped with a name in the manner of selects. There is a system (SAP2000) that is writing CIS files in this manner. We have improved the parser so that it now warns and ignores any typed parameter wrapping that shows up around non-select values, which takes care of this particular class of syntax errors and lets us still get useful data from the wrapped value.|
|517||Part 21 files with unusual line breaks. Fixed the P21 writer so that it now inserts a newline when writing an enum or a select keyword tag that would extend beyond the normal wrapping point.|
|521||RoseBackPtrCursor traversal problem. RoseBackPtrCursor would only work properly within a ROSE.traversal block. It now works properly everywhere.|
We have made a number of improvements to the Java programming libraries. The library issues that were addressed in this release are listed in the table below.
|294||A string with an embedded quote char ('') in a P21 file could not be read. This has been fixed.|
|296||EntityDomain.domain(List) should take Set as its parameter, not a list. The API mathod has been updated to take a generic Collection.|
|445||The two argument version of EntityInstance.usedin did not work. The three arg version did, but only if explicitly passing in the target domain. This has been fixed.|
|446||Add one arg version of EntityIDTable methods. The methods forModel and getId take a boolean parameter which if true will create the appropiate value. This are now optional, and default to false, to make client code simpler.|
|461||P21 parse error with \\. Escaped backslashes in strings were not handled correctly, and instead caused a P21SyntaxException to be thrown.|
|462||Implement Binary types. Binary types were not implemented, but have now been added to support List Of Binary in IFC2X3.|
|463||Report line number on ClassCastException in P21 filer. The exception now includes the STEP P21 file line number to simplify error tracking.|
|490||Implement PopulationBase.getExtent(String). Added a convenience method to get an EntityExtent by name from a population.|
|494||P21 parse error with enums/booleans. The Java Part 21 parser could not read a boolean value contained within a select. This has been fixed.|
|499||Usedin of aggregates of instances does not work. This has been fixed.|
|518||Part 21 file strings containing backslashes not written with proper escape characters. Fixed the P21 writer so that it now writes the proper double backslash escape sequence.|
The ap214check AP214 Conformance Checker has been extended to now support the third edition of AP214. In addition, all of the conformance checkers are easier to use with new tool windows that can cut, paste, save, or print the checking results. Consult the ST-Developer Tools Manual for more information on the updated checkers.
We have made a number of improvements and fixes to the expfront EXPRESS Compiler. In addition, the new tool window should simplify managing the many different compiler options. Consult the ST-Developer Tools Manual for a complete description of the new interface. The compiler issues that were addressed in this release are listed in the table below.
|303||Case preservation bugs. When two different constructs shared a name, only the capitalization of the first one would be preserved used for all further code generation. This was first noticed with the Owner attribute in multiple IFC entities. The compiler and class generator now tracks each defining use, so the capitalization should be as expected in C++ classes.|
|359||Problem with attribute having same name as type. Upon review, this was found to be a duplicate of Issue 454 below.|
|443||Conflict between enumeration value and type name. Enumeration values and type names should be in separate namespaces, but the compiler was handling them in the same namespace. This has been fixed, and as a side effect, the compiler is now much more vocal when something does not resolve to a type.|
|454||Not proper specialization warnings in modular longforms. The second TC to EXPRESS E1 added several new redeclaration cases to clause 18.104.22.168 that say a redeclare can go from SELECT to a member as well as from an entity to a SELECT of subtypes. The compiler has been updated to allow these cases without complaint.|
|455||Crash when compiling schema. Compiler front-end now reports cyclic inheritance.|