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
| Feature | Value |
|---|---|
| Full name | Parasolid Model (text transmit file) |
| File extension | .x_t (text); .x_b (binary twin) |
| Older names | .xmt_txt (text), .xmt_bin (binary) |
| MIME type | model/vnd.parasolid.transmit.text |
| Format type | 3D CAD solid model — Parasolid kernel transmit file |
| Encoding | ASCII text (portable); .x_b is the binary form |
| Geometry model | Boundary representation (B-rep): exact surfaces, edges, faces, solids |
| Developer | Siemens Digital Industries Software (Parasolid kernel) |
| Introduced | Parasolid kernel since 1988; transmit files carry a schema version |
| Open standard | No — proprietary Siemens kernel format |
| Header start | **ABCDEFGHIJKLMNOPQRSTUVWXYZ… alphabet sentinel, then **PARASOLID ! |
| Text/binary marker | Body first line begins T (text) or B (binary) |
| Used by | SolidWorks, Solid Edge, NX, Fusion 360, Inventor (all embed Parasolid) |
| Open standard rival | STEP (ISO 10303) — wider compatibility |
| Related extensions | .x_b, .xmt_txt, .xmt_bin, .step, .stp, .iges, .sldprt, .sat |
| Specification | plm.sw.siemens.com — Parasolid |
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 node | Role in the model |
|---|---|
| BODY | A complete solid, sheet or wire body |
| SHELL / FACE | A connected boundary surface and its individual faces |
| LOOP / EDGE | Face boundaries and the edges that bound faces |
| VERTEX | A point where edges meet |
| SURFACE / CURVE | The geometry (plane, cylinder, B-spline…) a face or edge lies on |
| ATTRIBUTE | Optional 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
- Siemens — Parasolid geometry kernel
- Open Cascade — CAD Assistant (free Parasolid-capable viewer/converter)
- eDrawings Viewer — free CAD viewer
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.