On this page
Record unit hints without treating them as a transform
Record a neutral file ID, digest, DXF version, code page if present, $INSUNITS, $MEASUREMENT, $LUNITS, base points, extents, and the exporter or transform note. The Autodesk, (opens in a new tab) table gives $INSUNITS as a default unit hint and $MEASUREMENT as an English or Metric setting. Neither field alone proves the units used by every entity or dimension.
The source dates in this guide use 22 October 2026 as retrieval evidence for documentation without a verified publication date. They are not publication claims. Where a verified publication date is available, it is recorded in the source ledger.
| Header evidence | Record | Stop if |
|---|---|---|
| DXF version | ACADVER value and reader | Version is guessed from extension |
| $INSUNITS | Code and decoded label | Unitless is converted silently |
| $MEASUREMENT | English or Metric setting | It is treated as a coordinate scale |
| $INSBASE | WCS insertion base point | Base is applied without recording |
| Extents | Header min and max values | Extents are treated as geometry proof |
| Export note | Source transform and tool version | A transform is inferred from drawing size |
Keep a raw header snapshot and a normalized interpretation. If a consumer asks for millimeters or a projected coordinate system, record the requested transform separately from the source unit hint. Do not overwrite the source numbers to make a preview look correct.
Parse group codes as typed pairs, not fixed line positions
The Autodesk, (opens in a new tab) documentation says group-code order can change and undefined codes should be tolerated by a table-driven parser. Record code, raw value, decoded type, entity path, source offset, and whether the code is optional. A point is assembled from related X, Y, and Z code values, not from one number chosen by line position.
| Parser field | Record | Open question |
|---|---|---|
| Entity boundary | Code 0 and entity type | Is the next 0 a new entity or section end? |
| Handle | Code 5 and owner references | Can the object be linked without names? |
| Layer | Code 8 and layer state | Does layer visibility change interpretation? |
| Point codes | 10, 20, 30 or related triplets | Are all coordinates in the same WCS? |
| Extrusion | 210, 220, 230 when present | Did a consumer apply a normal transform? |
| Unknown code | Raw code and bounded value summary | Can it affect geometry or ownership? |
Keep WCS coordinates, entity roles, and flags together
The Autodesk, (opens in a new tab) reference lists 3DFACE corner coordinates in WCS and an optional invisible-edge flag. Record entity type, section, layer, point tuples, elevation or extrusion fields, flags, and sequence. A coordinate range can be numerically plausible while belonging to a different unit or entity role.
| Entity evidence | Supports | Cannot prove |
|---|---|---|
| Point tuple | Decoded X, Y, Z values for one entity field | Real-world location or datum |
| WCS label | The specification’s coordinate context | A drawing-wide projection |
| Extrusion vector | Entity orientation metadata | A complete transform history |
| Layer | Grouping and display context | Ownership of the geometry |
| Invisible-edge flag | Rendering hint for a face edge | That the edge is absent |
| Handle and owner | Reference relationships | Human identity of a creator |
Synthetic 3DFACE record
{"entity":"3DFACE","layer":"fixture-layer","corners":[["fixture-x1","fixture-y1","fixture-z1"],["fixture-x2","fixture-y2","fixture-z2"],["fixture-x3","fixture-y3","fixture-z3"],["fixture-x4","fixture-y4","fixture-z4"]],"coordinate_context":"WCS","invisible_edges":"fixture-flags","unit_decision":"unresolved"}Reconcile source and transformed exports
Compare entity counts by type, layer, and section before and after any import or export. Capture source digest, reader version, transformed digest, unit assumption, origin shift, scale, axis change, and dropped or synthesized entities. A visually aligned preview does not prove coordinate identity or preservation of non-graphical objects.
| Comparison | Record | Hold when |
|---|---|---|
| Header to entity units | Hint and interpreted unit policy | No source basis for scale |
| Entity count | Counts by type and section | Importer drops unknown entities |
| Coordinates | Sampled tuples and transform formula | Axis or origin changes are implicit |
| Layers | Names, visibility, and counts | Layer state is flattened |
| Unknown codes | Preserved, ignored, or rewritten | Parser silently discards them |
| Round trip | Changed bytes and semantic findings | Only visual comparison is available |
Stop before unit or coordinate meaning is guessed
Stop conditions
- Stop if DXF version, unit hints, code page, base point, or export transform is unknown.
- Stop if an entity parser depends on code order, skips group 0 boundaries, or drops undefined codes.
- Stop if coordinate triplets, WCS context, extrusion vectors, or entity roles cannot be matched.
- Stop if a unitless drawing is scaled from a preview or a layer name without source evidence.
- Stop if a round trip changes entities, flags, or coordinates without a transform record.
- Stop before sampling real geometry when layers, paths, or coordinates expose private locations.
Pair this worksheet with the data provenance log for export and transform history and the data card template for collection context. A valid DXF parse does not prove coordinate accuracy, ownership, privacy clearance, or permission.
For a supported non-health collection, after the owner has authority to describe the scope and a controlled metadata packet, the qualified physical-data appraisal request path may be a preparation step. It does not render CAD, transform coordinates, certify a survey, create a quote, match a buyer, or grant a license.