This page describes the primary features and capabilities of HOOPS Exchange.
What Is HOOPS Exchange?
HOOPS Exchange is a set of software libraries that provide developers with the ability to read and write popular 2D and 3D formats from within their application. Exchange reads CAD data from the most popular 3D file formats and converts that 3D data to the PRC data format, a highly compressible and open file format that has been certified by the International Organization for Standardization (ISO 14739-1:2014). PRC is also one of the container formats used for 3D in Adobe PDF.
HOOPS Exchange is optimized to read various kinds of 3D data, especially those coming from computer-aided design (CAD) systems. Most of the data types stored by CAD systems are supported by Exchange:
Assemblies and parts
Trees of 3D entities (coordinate systems, wireframes, surfaces, and solids)
Exact geometry representation for curves and surfaces
Topological structures for surface and solid models
Tessellated (triangulated) representation
Markup data including Product and Manufacturing Information (PMI)
Metadata such as name, color, layer and other non-geometric data
HOOPS Exchange also provides the capability to write PRC data to file. This PRC data file can then be inserted into a 3D PDF file. 3D PDF is currently used in 3D documentation workflows for industries such as aerospace, automotive, architecture and construction. The manufacturing industry has come to rely on PDF for the exchange of manufacturing documentation, distribution of service and parts manuals, and capture and submission of regulatory documentation.
Typical Uses for HOOPS Exchange
Users of HOOPS Exchange are developing applications for a variety of different markets, from traditional mechanical design, engineering and manufacturing to markets in which mechanical data is used but is not seen as core to the activity of that market – for example, construction, plant design, shipbuilding, and energy.
For most industries, the following use cases are common:
Visualization users are typically interested in the tessellated representation of the geometry. Topological connectivity and accurate surface definitions may not be required but markup data, graphical and non-graphical attributes are likely to be important.
Typical uses for visualization data include product catalogs, work instruction creation, re-meshing for finite element analysis and computational fluid dynamics and inclusion in large assemblies for design review and clash detection (e.g., building, ship and plant models).
Modeling includes surface and solid modelers, along with hybrid surface and solid modelers. In this case the B-rep topology and accurate surface information is important.
HOOPS Exchange users often create applications that exist downstream of mechanical design - e.g., Computer-Aided Manufacturing/Machining (CAM), Computer-Aided Engineering (CAE/CFD/FEA) and Coordinated Measurement Machine (CMM) planning software.
These applications typically integrate HOOPS Exchange alongside popular solid modelers, such as ACIS and Parasolid, allowing
Data archiving represents the requirement to preserve and protect an organization’s intellectual property in terms of accurate 3D model data. HOOPS Exchange offers the unique capability to store the original modeler-specific surface data in an open, ISO-certified format.
This allows manufacturing companies and PLM systems vendors to ensure digital assets are protected for the long term and can be made available at the original accuracy for future users.
HOOPS Exchange contains the ability to export to the PRC file format. This is the primary container format used within Adobe PDF files for 3D data. HOOPS Exchange extends this capability to convert CAD data directly into these containers for use in PDF publishing.
PLM systems vendors can use HOOPS Exchange as part of a strategy to create intelligent 3D PDF documents that can be used to set up and manage advanced document-based workflows, which – because of built-in PDF security features – are suitable for sharing beyond a company’s firewall.
Vendors of CAD systems and downstream manufacturing and analysis systems can make use of HOOPS Exchange to enhance report generation options by including secure 3D data within the PDF file. With a HOOPS Publish license, further customization options for PDF output are available.
Reading 3D Files
Reading CAD files into an Exchange-enabled application is a very simple process. The first step is to set the options to control what data is read, and then call a single API to load the CAD file, which provides access to the original CAD data in the PRC data format.
Using HOOPS Exchange With Parasolid
HOOPS Exchange includes a Parasolid connector component. This connector uses the native Parasolid APIs to ensure that the mathematical representation of the source data is correctly matched to the expectations of the Parasolid modeler. During this process, a variety of healing and optimization algorithms are used to ensure the imported model is of the highest quality. If a developer is only interested in the B-rep data, then they can use a single, high-level API which extracts B-rep from any file and brings it into an active Parasolid session. This approach greatly reduces the time needed to integrate HOOPS Exchange into a Parasolid-based application.
Using HOOPS Exchange With Other Kernel Modelers
HOOPS Exchange provides full access to the B-rep definition of the model, which developers can use to import their model to their geometric engine. APIs are also provided which allow developers to adapt the model to the constraints of their geometry kernel. Operations like splitting periodic surfaces and converting trimming curves between parametric and 3D space are available through this API.
HOOPS Exchange is able to export to a number of B-rep formats, including STEP, IGES, JT, and ACIS. Developers can simply use HOOPS Exchange to automatically convert the model to their B-rep file of choice, then import that model into their system. The export can be performed on a whole model through one single high-level API, or performed on a per-part basis depending on the preferred use-case. Face and body level attributes are maintained during export.
The PRC File Format
PRC format stands for Product Representation Compact Format. PRC is a highly accurate and highly compressible format for describing 3D CAD models including assemblies and Product and Manufacturing Information (PMI). A PRC file is a sequential binary file, written in a portable way.
The PRC format is an openly published format subject to ISO certification ISO/AWI 14739-1.
The specification document is included in our documentation and can be viewed
PRC supports PDF-based documentation workflows and can also be used as an independent 3D visualization file format. By using PRC, documents can be created that are interoperable with Computer Aided Manufacturing (CAM) and Computer Aided Engineering (CAE) applications. PRC supports documentation requirements for design reviews as well as distribution of detailed design documentation to supply chains. In addition, its use can help support regulatory mandates which require the use of open standards.
Specifically, PRC supports the following data forms:
Allows storage of large CAD files in a highly compressible form that is a fraction of the original size. The complete product structure of the parts defined by the CAD system is contained in a PRC file.
Can represent Product and Manufacturing Information (PMI), which includes Geometric Dimensioning and Tolerancing (GD&T) and Functional Tolerancing and Annotation (FT&A).
Allows geometry use in CAD, CAM, and CAE applications. The geometry can be stored in either a tessellated or precise form (B-rep).
PRC is currently used in 3D documentation workflows for several industries, including aerospace, automotive, and architecture. The manufacturing industry has come to rely on PDF for the exchange of manufacturing documentation, distribution of service and parts manuals, and capture and submission of regulatory documentation.
The release of PRC to ISO has accelerated innovation around PRC, driving even broader adoption of PRC, and is helping to ensure that PRC evolves to meet the 3D documentation needs of product manufacturing and related industries.
While there are a number of other 3D file formats, PRC integrates well with document formats such as PDF and XML.
Specifically, PRC supports:
Structural and geometrical representation PRC has direct support for a wide variety of high order primitives that correspond to those used by CAD applications. This permits more of the original design intent of the file to be retained. Compared to other 3D file formats, PRC retains more information about the product structure and relationships defined in the original design application. Other 3D formats take a more general or display-oriented approach to product structure. This may make it harder or impossible to reconstruct aspects of the original design relationships needed to support “manufacturing from a file” or maintenance workflows.
Compact file size PRC captures meshes and compresses them far more efficiently than native CAD formats. Files containing both precise geometry and tessellated geometry can be significantly smaller when converted to PRC. This results in great benefits when transporting and storing the data, particularly over limited bandwidth or to wider groups of reviewers and consumers of this data. Even large 3D models can be easily shared over email.
Product and Manufacturing Information PRC can represent Product and Manufacturing Information (PMI), which is used to primarily communicate the full design intent to suppliers and their shop floors. Without PMI embedded in the file format, OEMs are required to send many 2D drawings to their suppliers to communicate the full design intent. The use of PRC can reduce the need to create 2D drawings from 3D models for distribution to the supply chain.
PRC in-Memory and on-Disk
In general usage the term PRC is used to mean the PRC file format.
Developers using HOOPS Exchange will encounter another usage of the term PRC to represent the data structures that exist in memory within a HOOPS Exchange process either after a file has been loaded directly or after the application has populated the structures prior to export.
These internal data structures are used by HOOPS Exchange to store CAD data in a general form that maps very closely to those that define a PRC file on disk. There is no requirement to write a file to disk during the process of reading a CAD file and importing it into a host application.
The PRC file format contains versioning information that allows for backward compatibility. This means that each new version of HOOPS Exchange can read PRC files that conform to an earlier PRC format version.
When PRC is embedded in a PDF, Adobe Acrobat can also maintain forward compatibility by skipping data that may have been added in a more recent PRC version.
ISO Certification Process for PRC
In December 2008, Adobe Systems released the PRC format to the AIIM .
AIIM is an ANSI (American National Standards Institute) accredited standard’s development organization. AIIM also holds the Secretariat for the ISO (International Standards Organization) committee focused on information management compliance issues, TC 171. TC 171 is the ISO committee that developed the existing ISO standards relating to Adobe PDF/A and PDF/E. Accordingly, AIIM is an authority that ANSI uses to submit proposed standards to ISO.
In June 2010, Adobe transitioned future development of the PRC standard to Tech Soft 3D, which is committed to working together with AIIM to further develop the PRC specification as an open ISO-certified standard.
Accuracy: Preservation of Parametric Information
Exchange has a full topological structure for describing manifold and non-manifold models. Local tolerances can also be retained for vertices and edges.
The PRC file format comprises the union of all geometric entities defined and used by the major mechanical CAD systems and relevant open standards e.g. STEP and IGES. Each entity is stored in the original parametric form as defined by the originating modeling system. Therefore, PRC has a significant advantage over many existing standards as there is no requirement for loss of precision or accuracy when 3D curve and surface data is represented in PRC.
Surface definitions are preserved for the following surface types:
All curves and surfaces can be fitted with NURBS curves and surfaces that are accurate to a user specified tolerance.
Querying Modeler Specific Surfaces
Access functions are provided so that all modeler specific curves and surfaces can be obtained in their original parametric form. Additionally, PRC files containing modeler specific curve and surface definitions can be created from the appropriate functions in HOOPS Exchange.
Conversion to General Surfaces
HOOPS Exchange provides functions to convert all modeler-specific curves and surfaces to a standard general form – i.e., NURBS. A tolerance can be specified for the conversion process so that the resultant curve or surface is accurate to within that tolerance (typically 0.001 mm).
HOOPS Exchange provides functions to measure the modeler-specific surfaces directly based on the UV parameterization to return an accurate 3D point.
Files stored in the PRC format can be highly compressed. A compressed PRC file written by HOOPS Exchange can be typically 100 times smaller than the original proprietary CAD file and is typically three times smaller than U3D, a legacy 3D format still used in PDF.
Regular compression refers to directly representing the CAD data without loss or transformation from the original CAD system. Regular compression includes:
Modeler-specific representations of curves and surfaces that are often significantly more compressed than a generalized NURBS representation. Preserving them leads to a file that is both smaller and contains more accurate data.
The PRC format has the concept of current values for certain state information. This means that this state information is not necessarily duplicated within the file.
All sections of a PRC file except header sections are individually compressed with a Flate method. The Flate method is based on public-domain deflate compression, which is a variable-length Lempel-Ziv adaptive compression method cascaded with adaptive Huffman coding. This form of compression is considered to be “lossless”. It occurs systematically irrespective of the actual content of the PRC file, and even if it also contains compressed parametric or tessellated geometry.
Both parametric and tessellated geometry can be stored in a compressed form in the PRC file to a specified physical tolerance relative to the original shape. This tolerance is typically 0.001 mm for parametric data and 0.01 mm for tessellated data.
For NURBS data knot vectors, multiplicities, control points and weights are all stored in a compressed format. NURBS can also be approximated using simpler canonical surface forms such as planes and cylinders. For tessellated data triangle meshes, vertex coordinates, normals and textures are all compressed.
A variety of lossy techniques are used including variable coordinate basis, elimination of redundant coordinates and storage of floating point numbers in reduced numbers of bits depending on required precision.
Units, Tolerances, and Tolerant Modeling
Each PRC file contains a global unit definition in the header. The unit is specified in multiples of millimeters, with 1 being one millimeter, 10 being one centimeter, etc. In addition, an identifier indicates if this unit is the same as the source CAD file.
Additionally, for assemblies of multiple parts, each Product Occurrence can have its own units. However, for consistency and ease of use, HOOPS Exchange converts all the underlying data into a single unit for the model file.
When formats are read in that do not have units or for which units are unreliable, HOOPS Exchange defines a default unit.
There are several types of tolerances associated with HOOPS Exchange and the data in a PRC file:
Tolerances specifying how tessellated data can be generated from parametric curve and surface data.
A tolerance specifying how NURBS data should be created from modeler-specific curves and surfaces.
A tolerance specifying the maximum deviation between data compressed for PRC export and the original data. In HOOPS Exchange there is API access to this value for parametric surface and curve data but not for tessellated data.
Tolerance values required to circumvent numerical uncertainty present in all modeling systems. In general this will comprise a value for zero e.g. less than 1e-12, infinity e.g. greater than 1e6 and equality e.g. within 1e-3. These values are used internally and are not available in the Exchange API.
Tolerance values have no units and need to be combined with the units specified in the Model File and Product Occurrences to get physical real world values.
For example, if the dTolerance parameter of A3DGetSurfaceBaseAsNurbs is specified as 0.001 and the unit is 1000 then the real world tolerance is 1 mm.
Some modeling systems support variable tolerances for tolerant modelling. This is to allow for the situation where sets of faces, edges, or vertices need to be considered as connected even when the distance between the vertex coordinates is greater than the global tolerance for that modeling system.
This helps support cases such as translating data from a modeler with a looser tolerance to one with a tighter tolerance.
PRC supports local tolerances on faces, edge and vertices and these are preserved by HOOPS Exchange when they exist in the source CAD file.
String-based attribute data can be added to entities using the miscellaneous attribute’s mechanism. HOOPS Exchange uses miscellaneous attributes to ensure all names specified within the original CAD file are correctly preserved. Additionally, attributes can be used to store user data on any entity.
Character encoding for strings is in UTF8 format.
Some CAD formats support persistent and non-persistent unique identifiers for entities.
An identifier remains persistent if it remains the same even after the CAD file has been modified, with the exception that if the entity is destroyed the identifier is also removed. An identifier is non-persistent if it could change as successive versions of the file are saved.
CATIA V5, NX, Pro/Engineer and Parasolid XT support persistent identifiers.
As well as the ability to store user data using the Miscellaneous Attribute mechanism, application-defined data can be stored as a binary stream in the PRC file associated with subtypes of assemblies, representation items and markup data.
User data is stored as a bit stream along with the size of the stream for that item. This allows an application that does not have the definition for that data to still read the PRC file and even store the data.
In order to distinguish between user data from different applications in the same PRC file each block of user data is identified by a unique identifier for the authoring application. To obtain a unique identifier for your application, please contact Tech Soft 3D.
HOOPS Exchange supports reading tessellated data directly from the original CAD file, and also provides an internal tessellator so that all general and modeler-specific curves and surfaces can be converted to polygon data.
HOOPS Exchange divides tessellation data into three types:
3D Data, for representing 3D surfaces
Wire Bodies for representing 3D curves and polylines
Markup data for display of PMI and GD&T
For formats where both surface and corresponding tessellated data is available, a flag is available to determine whether to retrieve the tessellated data directly from the file or whether to calculate it from the surface geometry.
The tessellation process is aimed at producing low numbers of polygons for visualization purposes. A separate tessellator is used by the STL export process to create well-formed meshes such that all connecting edges meet at coincident vertices and long-thin triangles are avoided.
Tessellation data supports vertex normals and texture coordinates. Polygonal data can be provided either in a structured form so that each B-rep face and corresponding face loops are identified within the vertex arrays, or the entire body can be represented just as a single tessellated entity. Optimized triangle forms are available – i.e., triangle strips and triangle fans.
Tessellation parameters are available to control the degree of tessellation of both curves and surfaces when a file is loaded. For curves the maximum angle between linear chords can be specified.
For surfaces the maximum distance of the tessellated surface from the true surface is expressed as a ratio of the bounding box of the entity. This allows a uniform tessellation of entities irrespective of the physical size of the entity. Additionally, a maximum deviation can be specified as can the minimum angle between each edge that forms a triangle.
Some CAD formats support multiple configurations of a model or assembly structure. A configuration is a specific arrangement of the model with respect to its defining hierarchy. For example, parts may be in different positions, have different geometry or be omitted entirely in different configurations.
An example might be a model of a car with the steering wheel on the left side in one configuration and on the right side in a second configuration. A configuration is separate from a view.
HOOPS Exchange supports configurations for CATIA V4, I-deas and SolidWorks. In Pro/Engineer configurations are known as family tables and the initial/generic version is supported.
In HOOPS Exchange the term view is used specifically to refer to a particular representation of the 3D scene, including the camera settings, entity visibilities, colors, and positions.
For example, a view could be an “exploded view” where geometric entities are displayed in different positions and markup labels are used to describe instructions relating to how to assemble the model. A series of such views could comprise a work instruction.
IGES, Healing and the Sew API
HOOPS Exchange pre-processes all IGES data to maximize our success rate with IGES data. In addition to fixing geometric problems, we also try to handle corrupt files and incomplete geometric definitions. We provide a sewing API that allows you to turn a collection of surfaces into water-tight solids within a user-supplied tolerance. This is done automatically and without any user intervention.
Finally, an API is provided that allows post-processing of imported data to prepare it for import into your system. Post-processing operations include splitting periodic surfaces, ensuring C1 continuity, moving trimming curves from parameter to 3D space (and vice-versa), eliminating small edges, adjusting topological tolerances as well as a host of other minor modeler-specific adjustments. This functionality is automatically invoked when you export to ACIS and Parasolid to ensure that the imported data can be successfully operated upon by ACIS and Parasolid.