X_T File Documentation


Summary

An X_T file is a Parasolid model transmit file: a 3D CAD solid model exported by Siemens' Parasolid geometry kernel, the modelling engine inside SolidWorks, Solid Edge, NX and others. It stores exact boundary-representation (B-rep) solids — true surfaces, edges and faces, not a triangle mesh. The .x_t is the ASCII text variant and .x_b the binary equivalent of the same data. Its MIME type is model/vnd.parasolid.transmit.text. Free viewers like CAD Assistant or eDrawings open it.

Technical details

FeatureValue
Full nameParasolid Model (text transmit file)
File extension.x_t (text); .x_b (binary twin)
Older names.xmt_txt (text), .xmt_bin (binary)
MIME typemodel/vnd.parasolid.transmit.text
Format type3D CAD solid model — Parasolid kernel transmit file
EncodingASCII text (portable); .x_b is the binary form
Geometry modelBoundary representation (B-rep): exact surfaces, edges, faces, solids
DeveloperSiemens Digital Industries Software (Parasolid kernel)
IntroducedParasolid kernel since 1988; transmit files carry a schema version
Open standardNo — proprietary Siemens kernel format
Header start**ABCDEFGHIJKLMNOPQRSTUVWXYZ… alphabet sentinel, then **PARASOLID !
Text/binary markerBody first line begins T (text) or B (binary)
Used bySolidWorks, Solid Edge, NX, Fusion 360, Inventor (all embed Parasolid)
Open standard rivalSTEP (ISO 10303) — wider compatibility
Related extensions.x_b, .xmt_txt, .xmt_bin, .step, .stp, .iges, .sldprt, .sat
Specificationplm.sw.siemens.com — Parasolid
Structure at a glance

A Parasolid text transmit file is ASCII with no short hex magic. The first line opens with the alphabet sentinel **ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz followed by **PARASOLID ! and a schema/version and date. A fixed header block then contains the lines **PART1;, **PART2;, **PART3; and **END_OF_HEADER in order. The first line after the header begins with T in a .x_t file and B in a .x_b file, which is how the two variants are told apart. The body is a list of numbered entity nodes (BODY, FACE, EDGE, VERTEX, SURFACE…) each identified by a Parasolid entity number defined in the kernel's schema.

What is an X_T file?

X_T is a Parasolid transmit file: the neutral export produced by the Parasolid geometry kernel, the solid-modelling engine developed since 1988 and now owned by Siemens Digital Industries Software. Parasolid is not an application you run; it is the mathematical core that other CAD systems license and build on. SolidWorks, Solid Edge and NX are all Parasolid-based, so a .x_t is a clean way to pass exact 3D geometry from one Parasolid CAD system to another without carrying a proprietary native file such as .sldprt.

The defining property is that X_T stores exact boundary-representation solids — precise surfaces, edges and faces with true mathematical definitions — not a triangle mesh like STL or OBJ. You can measure any dimension of the part to full CAD precision and edit it as a solid. The extension travels as a pair: .x_t is the ASCII text "transmit" file and .x_b is the binary equivalent, carrying identical model data in a smaller, non-human-readable form. This article covers the text file's header, the entity-node body, the B-rep model it encodes, and how it compares with the open STEP standard.

The transmit header and the alphabet sentinel

A Parasolid text file has no short hexadecimal magic number. It is identified by a distinctive multi-line header at offset 0. The very first line begins with a full-alphabet sentinel followed by the PARASOLID marker and version information.

**ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz**PARASOLID !"...
... schema name, kernel version, date ...
**PART1;
**PART2;
**PART3;
**END_OF_HEADER =============================================
T ...              <- body starts here; 'T' marks the text variant

The alphabet sentinel is a deliberate integrity device: because it contains every letter in both cases plus punctuation, software (and transfer protocols) can check that the file survived a text transfer without character corruption or case-folding. The header block then always contains the fixed lines **PART1;, **PART2;, **PART3; and **END_OF_HEADER in that order. Immediately after the header, the first body line begins with the letter T in a .x_t file and B in a .x_b file. That single leading character is how a reader distinguishes the text transmit format from the binary one even before parsing further.

The entity-node body and the Parasolid schema

After the header, the file body is a list of numbered entity nodes. Each node describes one modelling entity and carries an index that uniquely identifies it within the file, a Parasolid entity-type number, and a fixed set of data fields. The set of fields for each type is not free-form: it is defined by the Parasolid-XT schema, a formal description of the data model. There is roughly one schema per kernel version, which is why the transmit header records the version — a reader needs the matching schema to interpret the field layout of each node.

The entity types are the building blocks of a solid model. Common ones include:

Entity nodeRole in the model
BODYA complete solid, sheet or wire body
SHELL / FACEA connected boundary surface and its individual faces
LOOP / EDGEFace boundaries and the edges that bound faces
VERTEXA point where edges meet
SURFACE / CURVEThe geometry (plane, cylinder, B-spline…) a face or edge lies on
ATTRIBUTEOptional metadata Parasolid carries on entities

Nodes reference one another by index, so the file is effectively a graph: a FACE node points at the SURFACE it lies on and at the LOOPs that bound it, each LOOP points at its EDGEs, each EDGE at its two VERTEX endpoints and the CURVE it follows. Reconstructing the part means resolving these cross-references into the connected structure below.

Boundary representation: topology over geometry

The reason X_T carries exact CAD and STL does not is its boundary representation model, which separates two things: topology (how the part is connected) and geometry (the exact shapes). A cylinder's curved face is not stored as thousands of tiny triangles; it is stored once as a cylindrical SURFACE plus the topological fact that a FACE lies on it, bounded by two circular EDGEs. The face is exactly cylindrical at any resolution.

BODY
 └─ SHELL              a watertight boundary
     └─ FACE           bounded region of a surface
         ├─ SURFACE    exact geometry: plane / cylinder / cone / B-spline
         └─ LOOP       the face's boundary
             └─ EDGE   a bounded segment of a curve
                 ├─ CURVE   exact geometry: line / circle / spline
                 └─ VERTEX  endpoint (shared with adjacent edges)

This is what makes an X_T editable and measurable. A downstream CAD system can offset the exact cylindrical face, fillet a precise edge, or read the true radius, because the mathematics is preserved. It is also why converting X_T to a mesh format is a one-way downgrade: tessellating the exact surfaces into triangles for STL or OBJ throws the exact geometry away, and you cannot recover the B-rep from the triangles afterwards.

X_T versus X_B: the same model, two encodings

The text and binary transmit files carry identical Parasolid model data. The .x_b binary form is more compact and faster for the kernel to read and write; the .x_t text form is more portable across platforms and, because it is ASCII, survives text-mode transfers and can be inspected in an editor to confirm the header. Neither is more "complete" than the other, and CAD tools read both. The choice is usually dictated by what a recipient's software or workflow expects. Opening a .x_t in a text editor shows the header and node list, but it is meaningless without a CAD viewer to resolve the graph into a rendered solid.

Parasolid versus STEP: kernel format against ISO standard

Both X_T and STEP carry exact B-rep solids, but they occupy different positions. STEP (ISO 10303) is an open international standard that virtually every CAD system reads and writes, which makes it the safest choice for exchanging a part with an unknown recipient. Parasolid is a single vendor's kernel format: between Parasolid-based systems (SolidWorks, Solid Edge, NX) it transfers with very high fidelity because those systems share the exact same geometry engine, but it is less universally supported than STEP outside that family. In practice, engineers send .x_t when they know the other side runs Parasolid CAD, and fall back to STEP for the widest compatibility. Neither preserves feature history: an X_T (like a STEP) arrives as a "dumb" solid body without the parametric feature tree of the originating .sldprt or NX part.

Getting geometry out of an X_T

To view, rotate and measure a part without buying CAD, free viewers read Parasolid directly: Open Cascade's CAD Assistant and Dassault's eDrawings both open .x_t, and web viewers such as ShareCAD render it in a browser. To edit the solid, import it into a Parasolid-based CAD system (SolidWorks, Solid Edge, NX, Fusion 360, Inventor), which brings it in as a body you can modify. For 3D printing, the necessary step is X_T to STL: a CAD kernel tessellates the exact surfaces into a triangle mesh at a chosen resolution, which the slicer then reads. X_T itself is not a printable mesh, because a printer needs triangles and X_T stores exact surfaces.

References