Other formats overview:
Parasolid is another popular geometric kernel; like ACIS from the previous post in this series, its development began in the '80s and, currently, it's developed by Siemens. It is at the heart of many popular CAD applications: SolidWorks, Solid Edge, Siemens NX, OnShape, and others. As is standard for any serious kernel, it has a persistence format, usually called Parasolid-XT, which is designed to transmit the B-Rep geometry of the model. The format's versioning is mainly aligned with the versioning of the kernel, although the core of the format has long been stable between versions.
Parasolid-XT comes in two flavors - text and binary. Technically, XT in the format name actually refers to the text version of the format. The files in the text version have an x_t extension. The binary version normally has an x_b extension. Both versions contain the same data, but in different forms - x_t in space-separated text form, x_b in architecture-independent binary form. Unlike ACIS-SAT, text Parasolid-XT is not very human-readable and editable by hand (see Fig. 1), however, for separate files, it's much more popular than the binary version.
Parasolid-XT file consists of a list of entities, each assigned a number. The entities can have various data fields describing them, of numeric, boolean, string type, and also references to other entities. The set of data fields for each entity is fixed and is defined by the Parasolid-XT schema - a description of the data model of the format. There are many schemas for Parasolid-XT files, roughly one for each version of the kernel. Normally an importer of Parasolid-XT has to be presented with a schema to understand the files written in the version that the schema describes. However, later versions of the format can have a mechanism for embedding a schema within a file, so that a properly constructed importer that hasn't yet seen the new schema can actually read the file and extract at least the data it knows how to interpret. This greatly improves the applicability of the newer versions of the format.
Like with the ACIS-SAT format, the biggest strength of Parasolid-XT is its kernel nature. If you've got to import some data in a CAD software running on the Parasolid kernel, this format should be your first choice. Keep in mind that although big-brand CAD systems running on Parasolid might already have the importers for your original format, this kernel lies at the heart of many more CAD-related applications whose exchange capabilities might be much less impressive.
Being a kernel format, Parasolid-XT naturally supports B-Rep geometry extremely well. It can store complex B-Rep models with a solid, sheet, wireframe, mixed, and even non-manifold topology. A great benefit when comparing it to the ACIS-SAT is that it has support for the representation of the model hierarchy. Although this support is somewhat limited (parts and bodies are equated with each other), the conversion to Parasolid-XT is in principle capable of retaining your part-assembly hierarchies. Another powerful feature is the support for the representation of hybrid models, namely those where a single logical part contains both B-Rep and mesh geometry. It's currently a niche (in terms of percentage of real-world data exchange) but trendy scenario, so the Parasolid kernel has been taking strides in the direction of supporting such models, and the latest versions of Parasolid-XT format can accommodate them.
Parasolid-XT is further distinguished by the pervasive use of procedural geometry. This type of geometry comprises a large range of curve and surface implicit definitions (i.e. as solutions of some systems of equations), as opposed to the explicit parametric geometry which is normally used in CAD. We already mentioned that ACIS-SAT defines many curve and surface types arising from various modeling operations - this is procedural geometry too. When speaking of Parasolid specifically, it makes sense to narrow the definition down to the 2 most important geometric entities in that space - intersection curves and rolling ball surfaces (see Fig. 3). The former arise in all sorts of boolean operations and the latter are the cornerstone of edge filleting. Parasolid-XT stores these implicit definitions rather than convert them to the de-facto standard NURBS curves and surfaces (unlike ACIS-SAT, which normally contains NURBS approximations right next to the implicit definitions). Therefore, the reading of Parasolid-XT almost always requires the conversion of this geometry to NURBS and this task is notoriously technical and difficult for real-world models. That makes the implementation of a good Parasolid-XT importer a monumental effort.
Similar to ACIS-SAT, the metadata and visual attributes support in Parasolid-XT is not the most extensive. It supports naming entities, allows to attach colors to shapes, has layers and user-defined properties in the form of key-value pairs.
To summarize, the Parasolid-XT format should be the first choice for transferring data to the Parasolid-based software. It can also be used at other points in the workflow, for example for CAD data storage, provided that the functionality it offers (and that your software makes use of) is sufficient for your workflow. However, when one has to work with multi-body parts, or PMI, or other high-level metadata, another format, such as STEP or JT should be considered.