This describes an older ST-Developer release (2014). You can find the details for the latest release here
Overview
For the past two decades, ST-Developer has been the most complete and mature SDK for building applications for STEP, IFC, and CIS/2. ST-Developer v16 achieves new levels of convenience and power with libraries focused on STEP CAD and CAM/CNC applications with the latest AP242 definitions, or IFC BIM applications with the latest IFC4 model.
A new higher-level library for STEP Faceting transforms STEP geometry into meshes for graphics display and other lightweight tasks. A STEP Helper library simplifies work with common STEP concepts. The ROSE C++ Library now handles compressed STEP files and external references from the upcoming Part 21 third edition, has better traversal marking, error reportings, and other API improvements.
As operating systems and compilers evolved, we responded with support for versions. On Windows, ST-Developer now has libraries for Visual Studio 2013 and 2012. DLLs and installers are now digitally signed for use in your Windows 8 logo tests. On MacOS, we now support Mavericks, the Clang compiler, and the latest Xcode. We also have shared library support on Linux 32bit, 64bit, and MacOS X.
Supported Platforms
ST-Developer is available for all of the different operating systems and compiler combinations shown below. Contact us if you would like to arrange support for other configurations. Each platform has versions of the programming libraries for use with all major C++ compiler versions and build flags. See Windows Installation, MacOS Installation, and UNIX Installation for details on each.
Platform | Supported Compilers |
---|---|
Windows 32bit | Visual Studio 2013 (VC++ 12), Visual Studio 2012 (VC++ 11), Visual Studio 2010 (VC++ 10), Visual Studio 2008 (VC++ 9), Visual Studio 2005 (VC++ 8), and Visual C++ 6.0 with the /MD option. Library versions for static and DLL linking. |
Windows 64bit | Visual Studio 2013 (VC++ 12), Visual Studio 2012 (VC++ 11), Visual Studio 2010 (VC++ 10), Visual Studio 2008 (VC++ 9), and Visual Studio 2005 (VC++ 8) with the /MD option. Library versions for static and DLL linking. |
MacOS X 10.8 (Mountain Lion) or 10.9 (Mavericks) | Clang (Xcode 4.3 or 5.0) with libraries built for Mach-O universal binaries. Library versions for plain and position-independent static linking, and dynamic linking. |
Linux 32bit All recent distros, RHEL 5, SuSE 10-11, and anything with glibc 2.5+. |
GCC 3.4/4.x. Library versions for plain and position-independent static linking, and dynamic linking. |
Linux 64bit All recent distros, RHEL 5, SuSE 10-11, and anything with glibc 2.5+. |
GCC 3.4/4.x. Library versions for plain and position-independent static linking, and dynamic linking. |
IBM POWER-series AIX v5.3, POWER5 |
IBM XL C/C++ 64bit. Library versions for plain and thread safe static linking. |
Hewlett Packard HP-UX v11, Itanium |
HP ANSI C++ 64bit. Library versions for plain and position-independent static linking (+Z -z -mt) |
Solaris v10+, SPARC | Sun Studio v11 64bit. Library versions for plain and position-independent static linking (-PIC -mt) |
Solaris v10+, Intel x86 | Sun Studio v11 64bit. Library versions for plain and position-independent static linking (-PIC -mt) |
STEP CAD, CAM, and IFC BIM Libraries
In this release, the STEP Merged CAD Library now has the latest AP242 definitions. This library handles AP242, AP214, and AP203 in one program, and now has the latest tesselation model, updated PMI, and external product structure. We added new recommendations and instructions for updating your programs to the revised structures in AP242. We also updated our sample programs with better examples for Brep geometry, presentation styling, and assembly creation. All of these libraries have built-in schema and short name information so they do not require runtime support files.
For CAM and CNC applications, we have added a new STEP Merged Manufacturing Library. This library handles STEP-NC and other STEP manufactuing APs, plus AP242, AP214, and AP203 in one program. Start using the latest PMI, manufacturing tolerances, and machine tool kinematics definitions from AP242 in your manufacturing programs.
Both merged libraries have new complex instance combinations for the PMI model, tesselated geometry model, and kinematics models. We have also improved support for reading very early AP203 files that used preliminary versions of the standard.
Finally, we have added the new IFC BIM Library for AEC applications with the latest HVAC, piping, and electrical coverage in the IFC4 Industry Foundation Classes model. As with the STEP merged libraries, this is one library for building IFC applications that read and write IFC4, IFC 2x3, or IFC 2x2 data. The library currently reads most older data and we are working to expand the migration capabilities.
STEP Faceter Library and ST-Viewer
The STEP Faceter Library is a new addition to ST-Developer v16, but the technology has been inside the ST-Viewer for several years. In this release, we are making it available as a public API so that you can quickly build your own programs graphics, costing, or other applications with STEP geometry.
This library transforms STEP geometry and topology definitions into triangular meshes for OpenGL, WebGL, or other graphics display. We provide sample programs that show how to facet simple parts or full assemblies. The library is multi-threaded for maximum performance and the API calls give you a range of options, from high-level calls to detailed thread management. You can facet solids or just individual faces, and have control over the render tolerance and tradeoffs between the mesh quality, size and computational cost.
We have also made many improvements to the geometry processing within the library, which is also seen in ST-Viewer. Rendering and performance is much better for unusually trimmed spheres, surfaces with hundreds of holes, periodic surfaces, and singularities. Mesh quality is greatly improved and error recovery code prevents crashes when a face does not facet properly.
We added support for the new tesselated models in AP242 and geometric sets of curve bounded surfaces (class 2), support for mixed units, better rendering of revolved surfaces, and improved display for poly_loop face boundaries and oriented_face instances. Files without product structure are not legal STEP files, but they may have some shape information in them that is now displayed if possible.
STEP AP Helper Library
The STEP AP Helper Library is a new addition to ST-Developer v16. it contains a collection of helper functions to simplify work with assemblies, properties, units and measures, representation contexts, and other common STEP structures. The functions are mostly geared towards analyzing existing data sets and tagging them for quicker traversal, but some of the functions also simplify creation of new data.
Versions of this library are provided for use with the STEP CAD and STEP Manufacturing libraries.
ROSE C++ Library
The ROSE library has been refined with new support for compressed STEP files, a test implementation of URL references from the upcoming third edition of the Part 21 file format, better traversal marking and error reportings, and better reading of bad or misformatted STEP files.
The library now transparently reads STEP Part 21 files that have been zip-compressed or gzip-compressed. No special filenames or extensions are needed — the format is automatically detected when reading. You can write compressed files by setting the RoseDesign format to "step-zip" or "step-gzip".
The ROSE library now has initial support for anchors and URL references in the upcoming third edition of the STEP Part 21 file format. The ISO community is still exploring the full range of possibilities for these new capabilities, but these references make it possible to distribute data across multiple files or a ZIP archive.
Within the library, reference data is kept by new RoseReference and
RoseRefUsage objects and RoseDesigns have a a new reference_section(),
similar to the header_section() and system_section(), that holds all
of the references in a file.
As part of the release of the STEP Faceting
Library, we have moved some thread API functions down into the
ROSE library. Your application programs should still only access the
ROSE library through one thread at a time, but we are beginning to
leverage threads throughout the ST-Developer code. No changes are
needed on Windows, but MacOS programs will need to link "-lpthread".
Other UNIX applications will link "-lpthread -lrt".
The RoseObject
marking API has been improved so that you can now nest traversals
or use several concurrent marks. For concurrent marking, you can pass
an optional RoseMark handle identify the mark, otherwise the functions
use the most recently begun handle. Having multiple marks makes it
easier to categorize objects and to perform more advanced network
traversal algorithms. Error reporting has been streamlined and enhanced. You can now
find the maximum severity of issues seen during file reads or other
complex operations. You can
also collect counts and
then query specific errors or print summaries. It is also easier
to provide your
own custom code to handle error reporting.
We also combined several return codes into a single RoseStatus
type, which indicates the maximum error status (warning, error, etc).
The function prototypes for the following callbacks have changed, but
they will still return the ROSE_OK value on success.
The internal APIs used for reading and writing files are now
simpler. They use new input stream and output stream classes that
wrap non-filesystem sources or destinations for STEP data. This is
used for the compressed read/write (like the zip and gzip handling
discussed above), and can be extended for network links or other
character sources. We also added some hooks to the EXPRESS data
dictionary to customize attribute orderings. These hooks are used by
the stpcad and stpman libraries to read and migrate very early AP203
files.
The Set(), List(), Bag(), and Array() macros have been retired
because they caused symbol conflicts on some systems. Just use the
expanded name directly or use the new prefixed macros ROSE_SET_OF(t),
ROSE_LIST_OF(t), etc. We also added ROSE prefixes to the NULL_INDEX
and NOTFOUND macros.
Compiling with DLLs on Windows
is now simpler. You only need to defining ROSE_DLL to turn on DLL
linkage for all ST-Developer libs.
The ST-Developer DLLs are now all digitally signed and contain
embedded version numbers.
We also corrected some issues with international character
filenames. All of the Windows command line tools now properly handle
wide character arguments, and we have corrected some rare issues that
arise from using international characters and switching locales.
RoseP21Parser::add_schema_fn
RoseP21Parser::set_schema_fn
RoseP21Parser::status_fn
RoseP21Writer::renumber_fn
RoseP21Writer::comment_fn
RoseP21Writer::status_fn
Other Improvements