Drawing Sync Home Videos Getting Started Commands

DXF-CSV v1.0 Entities

Every entity type DXF-CSV supports, one card each. Five entities (SPLINE, MTEXT, ELLIPSE, MULTILEADER, HATCH) carry extra "v2018 detail" -- deeper column behavior confirmed from live entmake/entget round-trips on modern AutoCAD. For column codes shared across entity types, see Reference.

Entity quick reference

LINE

Key columns: pt[10] start, pt[11] end

CIRCLE

Key columns: pt[10] center, real[40] radius

ARC

Key columns: pt[10] center, real[40] radius, angle[50] start, angle[51] end

Notes: angles in degrees CCW from X axis.

POINT

Key columns: pt[10] location, angle[50] display angle

TEXT

Key columns: pt[10] insertion point, real[40] height, text[1] string, int[72] horizontal justification, int[73] vertical justification

Notes: int[72]: 0=left (absent), 1=center, 2=right, 3=aligned, 4=middle, 5=fit. int[73]: 0=baseline (absent), 1=bottom, 2=middle, 3=top. Default (left/baseline): set pt[10] to the insertion point; omit pt[11] and both justification flags. Any other justification: set pt[11] to the anchor point (the center, right edge, top, etc. -- wherever the text should align to); omit pt[10]. CSVIN derives pt[10] from pt[11] automatically before calling entmake. The pt[10] values seen in CSVOUT output are AutoCAD's cached fast-render positions -- do not attempt to compute or reproduce them.

MTEXT (v2018 detail)

Key columns: pt[10] insertion point, real[40] text height, real[41] defined width (reference rectangle width, 0=undefined), text[1] content, int[71] attachment point, angle[50] rotation

Notes: \P = newline in content. Other inline codes (\A1;, {\H...}, etc.) preserved as-is. real[44] = line spacing factor (1.0=single, absent=default/none set). real[46] = defined column height (0=variable/none -- legacy XDATA-era field, distinct from any column geometry on the now-stripped embedded object). int[72] = drawing direction (1=LR, 3=TB, 5=by style). int[73] = line spacing style (1=at least, 2=exactly). long[90] = background fill flag (1/3/16/17 = filled, with trailing int[63] fill color and real[45] fill scale factor; 2 = use drawing background, long[90] only -- no trailing fields; absent/0 = no fill). long[421] = RGB background fill color override -- same relationship to int[63] as long[420] has to color[62]: int[63] is always present when fill is active, long[421] is present only when the fill color is a true-color RGB value and absent when it is an ACI; overrides int[63] for display when present. real[45] is only present as part of the fill tail -- it is not a general-purpose defined-height field. DXF code 101 (Embedded Object) and the codes unique to that block (pt[11], real[42], real[43], int[70], int[74]) are stripped -- entmake does not support them. The remaining shared codes (pt[10], real[41], real[44], int[71], int[72], int[73]) are emitted once, flattened -- not duplicated for the main entity vs. the stripped embedded object.

v2018 detail -- background fill: DXF's underlying entmake sequence also reserves a transparency slot in the fill tail position, but AutoCAD has never implemented transparency for MTEXT background fill -- that slot is not written and does not appear in the CSV. Value 2 ("use drawing background color") is a structural exception: only long[90] itself is present, and the fill tail is rejected by entmake if included -- a CSVOUT row with long[90]=2 must never carry real[45] or the other tail fields.

v2018 detail -- embedded object (code 101): MTEXT can carry column layout data two ways in DXF: as a packed XDATA value (real[46], above) or as a DXF code 101 Embedded Object block -- a second, self-contained set of MTEXT-like group codes (its own 10, 11, 40, 41, 42, 43, 71, 72, 44, 45, 73, 74, 46) nested after the 101 marker. The embedded object form is not supported by entmake and is stripped on export entirely. Codes that exist only inside the embedded object (pt[11] as a second point, real[42] actual height, real[43] actual width, int[70] column flow direction, int[74] column count) are dropped along with it -- these never appear in the CSV. real[45] is not in this shared list -- on the main entity it only appears inside the background fill tail, unlike the other listed codes.

v2018 detail -- long content: MTEXT content longer than 250 characters is split across multiple DXF code 3 continuation lines, with the final remainder in code 1. CSVOUT flattens this into two related columns: text[1] holds the complete merged content with the code-1 remainder placed first, followed by each code-3 chunk in order, tab-separated -- this is the opposite of DXF wire order, where code-3 chunks come first and code 1 is the trailing remainder. text[3] holds only the code-3 chunks, tab-separated, in DXF order, and is absent when the content fits in a single code-1 value (250 characters or fewer). A consumer reconstructing entmake input for content over 250 characters needs text[3] to know where the chunk boundaries fall -- text[1] alone gives the correct content but not the correct node split.

INSERT

Key columns: pt[10] position, name[2] block name, real[41/42/43] scale, angle[50] rotation

Notes: absent scale = 1.0. If no matching BLOCK definition exists, the block was stripped -- treat as zero-geometry insertion.

MINSERT

Key columns: same as INSERT plus real[44] column spacing, real[45] row spacing, int[70] column count, int[71] row count

Notes: rectangular array of block insertions. Exported as INSERT type -- there is no separate MINSERT entity type in the CSV. Distinguish from a plain INSERT by the presence of real[44]/real[45]. int[70] and int[71] carry column and row counts in this context -- distinct from their flag meanings on other entity types.

ATTRIB

Key columns: follows INSERT, name[2] tag, text[1] value

Notes: always same space (model or paper) as parent INSERT.

ATTDEF

Key columns: inside BLOCK definition, name[2] tag

3DFACE

Key columns: pt[10]-pt[13] four corners

Notes: int[70] = edge visibility bitmask (bit N hides edge N).

SOLID

Key columns: pt[10]-pt[13] four corners

Notes: pt[12] and pt[13] are swapped vs 3DFACE in DXF spec.

TRACE

Key columns: pt[10]-pt[13] four corners

Notes: same geometry as SOLID, legacy entity.

POLYLINE

Key columns: pt[10] elevation only (X and Y always zero), followed by VERTEX rows, terminated by SEQEND

Notes: int[70] flags: 1=closed-M, 2=curve-fit, 4=spline-fit, 8=3D, 16=polygon-mesh, 32=closed-N, 64=closed-N (polygon mesh). Flags combine -- int[70]=17 is polygon-mesh + closed-M. int[70]=128 (continuous linetype pattern) applies to 2D polylines only -- ignored on 3D polylines (int[70]=8). seq[66]=1 always present. real[40] default start width, real[41] default end width -- absent when zero. int[75] smooth surface type: 0=none, 5=quadratic B-spline, 6=cubic B-spline, 8=Bezier. Polygon mesh: when int[70] has bit 16 set, int[71]=M vertex count and int[72]=N vertex count are required -- must be present for DXF export. See sample_polylines.csv.

VERTEX

Key columns: pt[10] coordinate, real[40] start width, real[41] end width, real[42] bulge

Notes: int[70] vertex flags: 1=curve-fit generated vertex, 2=tangent defined (angle[50] carries tangent direction), 8=spline frame control point, 16=spline fit point, 18=spline fit point with tangent (16+2 -- used for spline-fit insert/anchor vertex), 32=3D polyline vertex OR 3D polygon mesh vertex, 64=polygon mesh vertex closed-N, 128=face index vertex (int[71/72/73] are vertex indices). Note: int[70]=4 on a VERTEX is not valid DXF -- never emit it. real[40]/real[41] absent when they match the POLYLINE default widths. Curve-fit POLYLINEs (int[70]=2 on POLYLINE): CSVOUT strictly interleaves original control vertices (int[70]=2, with angle[50] tangent) and generated curve-fit vertices (int[70]=1, with real[42] bulge). Last original vertex has no bulge. For AI generation, emit only the original control vertices (int[70]=2) -- AutoCAD regenerates the fit. Spline-fit POLYLINEs (int[70]=4 on POLYLINE, int[75]=6 for cubic): vertex order is strict: (1) insert/anchor vertex (int[70]=18, coordinates of first fit point, carries angle[50] tangent), (2) all generated B-spline control vertices (int[70]=8), (3) all fit-point vertices (int[70]=16). For AI generation use SPLINESEGS=2: for N fit points generate 2×(N-1)+1 control points (int[70]=8), followed by N fit points (int[70]=16). Example for 5 fit points: insert(18) → ctrl×9(8) → fit×5(16) → SEQEND. See sample_polylines.csv for complete verified examples of all POLYLINE/VERTEX flag combinations.

LWPOLYLINE

Key columns: pt[10] all vertices space-delimited, real[42] bulge values comma-delimited

Notes: post-R12, treated as R12-extended. elev[38] = elevation when non-zero. thick[39] = thickness when non-zero. int[70] = 1 when closed, absent when open.

MESH

Key columns: pt[10] vertices space-delimited, long[90] face and edge data, long[93] face data count, long[94] crease edge count, real[140] crease values comma-delimited

Notes: subdivision mesh (post-2010). long[91] = subdivision level (absent when 0). long[90] contains two sections combined: face section (long[93] values -- face vertex counts followed by vertex indices) then edge section (long[94]×2 values -- vertex index pairs per crease edge). Total long[90] field count = long[93] + long[94]×2. A fixed (90 . 0) sentinel is always appended by CSVIN after the edge section -- it is not a CSV value. int[92] (vertex count) and int[95] (crease count, always equal to int[94]) are absent from the CSV -- derived by CSVIN from pt[10] field count and long[94] respectively. real[140] absent when all creases are 0.0 -- omit for flat meshes. When present, field count must equal long[94].

MLINE

Key columns: name[2] style name, pt[10] start point, pt[11] vertex coordinates space-delimited, pt[12] segment direction unit vectors space-delimited, pt[13] miter direction unit vectors space-delimited, real[40] overall scale, real[41] element parameters comma-delimited

Notes: multiline entity -- parallel lines drawn along a path using an MLINESTYLE definition. name[2] = MLINESTYLE name (style geometry is embedded in the export rather than referencing external style data). pt[10] = origin/start point (DXF code 10, always equals first point in pt[11]). pt[11] = all vertices of the path, space-delimited (DXF code 11, one per vertex). pt[12] = segment direction unit vectors, space-delimited, one per vertex (DXF code 12). pt[13] = miter direction unit vectors, space-delimited, one per vertex (DXF code 13). real[40] = overall scale factor applied to all element offsets. real[41] = element parameter flat list, comma-delimited (DXF code 41). For a 2-element style with N vertices, each vertex contributes 2 × (offset, trailing_gap) parameter groups; for non-uniform element parameter counts see int[74]. int[70] = flags: bit 0=closed, bit 1=suppress start caps, bit 2=suppress end caps (absent=open with caps). int[74] = per-element parameter counts comma-delimited (DXF code 74) -- absent when all elements have exactly 2 parameters each at all vertices. CSVIN support: imports against the Standard MLINESTYLE -- the named style must exist in the target drawing or CSVIN substitutes Standard.

SEQEND

Key columns: terminates POLYLINE/INSERT+ATTRIB sequence

Notes: no properties -- type column only.

DIMENSION

Key columns: pt[10] dim line point, pt[11] text midpoint, pt[13] definition pt 1, pt[14] definition pt 2, pt[15] definition pt 3 (arc/angular), pt[16] arc point (angular), real[40] leader length (certain types), real[144] actual measurement value (derived, read-only), text[3] dimstyle name, angle[50] rotation angle

Notes: int[70] low 4 bits = dimension type: 0=linear-rotated, 1=aligned, 2=angular, 3=diameter, 4=radius, 5=angular-3pt, 6=ordinate. Bit 32 = unique block reference -- always set in practice; default value of int[70] when absent is 32. Bit 64 = ordinate type. Bit 128 = text user-positioned. Common values: 32=linear, 33=aligned, 34=angular, 35=radius, 36=ordinate, 37=angular-3pt. name[2] references a *D## anonymous block -- stripped by default, no matching BLOCK definition will be present. char[271]/char[272] may appear as per-entity style overrides (decimal places). real[144] is the AutoCAD-computed measurement -- present but not required for CSVIN import. See Block strip rules.

SPLINE (v2018 detail)

Key columns: pt[10] control points space-delimited, pt[11] fit points space-delimited, pt[12] start tangent vector (optional), pt[13] end tangent vector (optional), real[40] knot vector comma-delimited, real[41] weights comma-delimited (rational splines only), real[42] knot tolerance, real[43] control point tolerance, real[44] fit tolerance (present only when fit points exist)

Notes: int[70] flags (bits 0-4 only -- upper bits stripped by CSVOUT): 1=closed, 2=periodic, 4=rational, 8=planar, 16=linear. AI generators should only set bits 0-4. int[71] = degree. int[72] (knot count), int[73] (control point count), int[74] (fit point count) are absent from the CSV -- they are derived by CSVIN from field counts of real[40], pt[10], pt[11] respectively. Do not emit them. pt[12] and pt[13] are independently optional -- either may be present without the other, and both are absent in the column header unless at least one spline in the drawing has that tangent. real[44] present only when int[74] > 0. All data packed inline -- no continuation rows.

v2018 detail: all data is packed inline on a single row -- no continuation rows.

ELLIPSE (v2018 detail)

Key columns: pt[10] center, pt[11] major axis vector, real[40] minor/major axis ratio, real[42] end parametric angle

Notes: end angle in radians: 2π = full ellipse. pt[11] magnitude = major axis length, direction = major axis orientation. real[40] is the ratio of minor to major axis (0 to 1), not an absolute length. Start angle is always 0 in the current encoding -- a future revision may move to angle[50]/angle[51] in degrees to align with ARC.

HATCH (v2018 detail)

Key columns: name[2] pattern name, pt[10] boundary loop vertices (space-delimited x,y pairs per loop, loops separated by 0.0,0.0,0.0 sentinel), pt[11] spline control points for curved boundary edges, real[40] circle boundary radius (comma-delimited when multiple circle boundaries), real[41] pattern scale, real[42] boundary edge bulge values (comma-delimited), real[43] pattern line X origins (comma-delimited per line), real[44] pattern line Y origins, real[45] pattern line delta-X, real[46] pattern line delta-Y, real[49] dash/gap lengths per pattern line (comma-delimited), angle[50] circle boundary start angle (comma-delimited when multiple circles), angle[51] circle boundary end angle -- 360=full circle (comma-delimited when multiple circles), angle[52] overall hatch rotation in degrees, angle[53] per-pattern-line angles (comma-delimited), int[70] associativity (1=associative), int[71] dual/double hatch flag, int[72] edge types or polyline closed flag (see notes), int[73] complete circle flag (1=full circle when int[72]=2), int[75] hatch style (0=normal, 1=outer, 2=ignore), int[76] pattern type (0=user-defined, 1=predefined, 2=custom), int[77] island detection style, int[78] number of pattern lines, int[79] boundary loop edge type flags (comma-delimited), long[91] number of boundary loops, long[92] loop type flags (comma-delimited per loop), long[93] edge count per loop (comma-delimited), long[98] source boundary object count (absent when not associative), trans[440] transparency, long[450]-long[453] gradient fill data, real[460]-real[462] gradient angles/shift

Notes: name[2] is the pattern name -- ANSI31, SOLID, BRICK, _USER, _U (user-defined short form), FP_* (custom floor plan patterns), or other named patterns. For SOLID fill: int[76]=1, no pattern line data. long[92] loop type flags (comma-delimited, one per loop): bit 0 (1)=external boundary, bit 1 (2)=polyline boundary, bit 2 (4)=outermost, bit 3 (8)=textbox island, bit 4 (16)=hole/island. Common values: 1=external edge-type, 5=external+polyline, 7=external+polyline+outermost, 17=external+circle-type, 24=island (bits 3+4). int[72] has two roles depending on long[92]: for polyline boundaries (long[92] bit 1 set), int[72] is the polyline closed flag (0=open, 1=closed) -- one value per polyline loop, comma-delimited; for edge boundaries (long[92] bit 1 clear), int[72] is per-edge type (1=line, 2=arc/circle, 3=ellipse, 4=spline) -- comma-delimited across all edges of all edge-type loops. Circle boundaries: int[72]=2, real[40]=radius, angle[50]=start, angle[51]=end (360=full circle), int[73]=1 -- when multiple circle boundaries exist, real[40], angle[50], and angle[51] are all comma-delimited. angle[52] is the overall hatch rotation and may be any value. Multiple boundary loops separated by 0.0,0.0,0.0 sentinel in pt[10]. All comma-delimited fields are parallel arrays indexed by pattern line or boundary edge. For polyline boundaries (long[92] bit 1 set): pt[10] = origin(x,y,z) + boundary vertices (2D) + trailing pair equal to real[43],real[44]; pt[11] = same vertices starting from second vertex. AI generation: set real[43]/real[44] and the pt[10] trailing pair to 0.0 -- the hatch draws correctly and AutoCAD recomputes the exact seed on regeneration. real[45]/real[46] are computable: (-cos(angle)×spacing×scale, sin(angle)×spacing×scale). int[72] is required even for SOLID fill polyline boundaries (as the closed-polyline flag). Gradient fill: when long[450]=1, the hatch is a gradient fill. long[452] = 1 for one-color gradient, 2 for two-color. long[453] = number of gradient color entries. long[421] = packed RGB color(s) for gradient (comma-delimited when multiple). real[462] = shade/tint factor (0.0-1.0). real[463] = gradient taper values comma-delimited (one per color). string[470] = gradient type name (LINEAR, HEMISPHERICAL, CURVED, INVLIN, INVSPH, INVCUR, SPHER, HEMI, CURV). CSVIN handles group-47 (pixel size threshold) internally from flags -- do not emit real[47].

v2018 detail -- group 47: CSVIN computes and inserts real[47] (pixel size threshold) internally based on boundary flags -- do not emit it. Its presence or absence is flag-driven and an incorrect value silently breaks entmake.

v2018 detail -- pattern-line origin for AI generation: real[43]/real[44] (pattern line X/Y seed origin) are computed by AutoCAD's internal hatch seeding algorithm and cannot be reproduced analytically. Set both to 0.0 for AI-generated hatches -- the hatch will draw correctly with a slightly phase-shifted pattern, and AutoCAD recomputes the exact values on regeneration.

RAY

Key columns: pt[10] origin, pt[11] unit direction vector

Notes: extends infinitely in one direction from origin. pt[11] is a direction vector -- need not be normalized. AutoCAD normalizes internally on creation.

XLINE

Key columns: pt[10] point on line, pt[11] unit direction vector

Notes: extends infinitely in both directions (construction line). pt[11] is a direction vector -- need not be normalized.

LEADER

Key columns: pt[10] vertices space-delimited, real[40] arrowhead height, real[41] annotation width, text[3] dimstyle name, int[73] annotation type

Notes: int[73]: 0=none/MTEXT follows, 1=tolerance, 2=block reference. pt[213] = normal vector override -- present when the leader is not in the WCS XY plane.

TOLERANCE

Key columns: pt[10] insertion point, text[1] tolerance string, text[3] dimstyle name

Notes: tolerance string uses %%v control codes for geometric tolerance symbols and ^J as line separator.

ACAD_TABLE

Key columns: pt[10] insertion point, pt[11] direction vector, long[91] nROW (row count -- field[0] only for simple tables), long[92] nCOL (column count), real[141] row heights comma-delimited (nROW values), real[142] column widths comma-delimited (nCOL values), string[302] per-cell text (ncell tab-delimited fields including empty strings), text[1] unique non-empty cell text (tab-delimited, for AI readability), long[90] combined: field[0]=table flags (typically 22), field[1..N]=per-cell value flags (4=content, 0=empty), long[93] combined: field[0]=override count, field[1..N]=per-cell value type (6=content, 7=virtual/empty)

Notes: nROW × nCOL = total cell count (ncell). name[2] is never emitted -- the anonymous *T## block is auto-assigned by CSVIN and by direct-to-DXF export. string[302] is the structural cell-content column: exactly ncell tab-delimited fields, empty string for empty/virtual cells. text[1] is redundant for CSVIN but present for AI readability. For a minimal plain table, only long[91] (field[0]=nROW), long[92], real[141], real[142], string[302], long[90], and long[93] are required -- per-cell style columns may be omitted entirely and CSVIN produces a functional default-styled table. Per-cell style overrides (int[63], int[64], real[140], long[421], long[422], real[145], etc.) are exported as padded ncell comma-delimited columns -- see dxf-2018 column additions. Empty tables (nROW=0 or nCOL=0) are valid -- only table-level columns present. long[91] field[0] is sufficient for AI generation of simple tables (no merged cells); the full ncell per-cell merged-row-span values are present in CSVOUT when cells are merged.

MULTILEADER (v2018 detail)

Key columns: string[304] mtext content, pt[10] all points space-delimited (content base, last leader pt, vertices × nlines, color point), pt[11] space-delimited: field[0]=mtext normal, field[1]=dogleg direction (absent when both at default), pt[12] mtext location, pt[13] mtext direction (absent when default), pt[15] block insertion point (block-type only), pt[110]/pt[111]/pt[112] block content UCS axes (block-type only), real[40] combined: content scale + dogleg length, real[41] combined: text width + arrowhead size, real[42] combined: text height + line weight, real[43] combined: block scale x + line scale, real[45] landing gap (absent when default), real[47] line weight override (absent when default), real[140] text height override (absent when default), real[141] text width override (absent when default), real[145] landing gap override (absent when default), long[90] combined property override flags (3 fields), long[91] combined text-width flags, long[92] combined second flags, long[93] combined third flags, long[95] arrow size (absent when default), int[170] combined leader type -- 2 fields (absent when default 1,1), int[172] content type (1=mtext, 2=block), int[173] combined draw order, int[174] combined leader count, int[175] combined text attachment -- 2 fields (absent when default), int[176] text align, int[179] text angle type (absent when default), bool[290] combined has-content/leader flags -- 2 fields (no leader) or 3 fields (with leader), bool[291] has-dogleg -- 3 fields (absent when default), bool[292] has-text-direction -- 2 fields (absent when default), bool[293] combined enable flags, bool[295] text extend-to-leader, bool[296] block attribute flag, string[302] block attribute values tab-delimited (block-type only), string[304] mtext content

Notes: pt[10] field count n10 drives structure: n10=2 → no-leader/compact (field[0]=content base, field[1]=color point); n10≥4 → nlines=n10-3 (field[0]=content base, field[1]=last leader pt, field[2..N-2]=per-line vertices, field[N-1]=color point always 1.0,1.0,1.0). bool[290] field[0]=has_content is the structural gate: 0=no content, 1=with content. long[90] field[2] override bitmask: 279552=straight, 279553=spline, 279808=closed-blank arrowhead, 312704=four-leader. Block-type multileaders (int[172]=2): pt[15]=block insertion, pt[110]/pt[111]/pt[112]=UCS axes, string[302]=tab-delimited attribute values, string[304] absent. When string[302] is prefixed LEADER{⇥, the prefix is a skeleton marker injected by CSVIN -- not a user value. Several codes normalize on entget round-trip: (270) 2→0, (175) 1→6, (95) 1→6, (295) 0→1 -- CSVOUT reflects entget values; entmake accepts both. Minimum viable (straight leader, mtext): pt[10], pt[12], real[40], long[90], string[304].

v2018 detail -- minimum viable example (straight leader, mtext):

layer[8]:    target-layer
string[304]: label text
pt[10]:      content_x,content_y,0.0  lastpt_x,lastpt_y,0.0  vertex_x,vertex_y,0.0  1.0,1.0,1.0
pt[12]:      mtext_x,mtext_y,0.0
real[40]:    1.0,0.36
long[90]:    -1073741824,0,279552
bool[290]:   1,1,1
PDFUNDERLAY

Key columns: pt[10] insertion, real[41/42/43] uniform scale, char[281] contrast (0-100), char[282] fade (0-80)

Notes: undocumented entity -- PDF reference underlay attached to the drawing. Not supported by CSVIN. Non-geometric properties (layer, linetype) preserved for analysis. char[281]/char[282] columns will be absent when only PDFUNDERLAY uses them -- suppressed per single-entity-type column policy.

BLOCK

Key columns: name[2] block name, pt[10] base point

Notes: anonymous (*-prefix) and empty blocks are stripped by default. See Block structure.

ENDBLK

Key columns: closes BLOCK definition

Notes: no properties -- type column only.

LAYER

Key columns: name[2] name, linetype[6], color[62], int[70] flags

Notes: int[70]: 1=frozen, 2=frozen-by-default, 4=locked. Reserved layer names: _ai and _claude are reserved for AI directives -- CSVIN ignores all entities on these layers. Defpoints is AutoCAD's dimension point layer -- suppress for visualization.

LTYPE

Key columns: name[2] name, text[3] description, real[40] total pattern length, real[49] element lengths comma-delimited, int[70] flags, int[72] alignment (always 65=ASCII 'A'), int[73] element count

Notes: text[3] is the human-readable description shown in the linetype dialog. real[49] absent = CONTINUOUS (no elements). Positive element = dash, negative = gap, zero = dot. ByBlock and ByLayer are AutoCAD built-in linetypes -- they appear as name-only rows when the LTYPE table is exported.

STYLE

Key columns: name[2] name, text[3] font/shape filename (when differs from name), real[40] fixed height (0=variable), real[41] width factor, real[42] oblique angle, angle[50] last-used height, int[70] flags, int[71] text generation flags

Notes: int[70] bit 1 = shape file, bit 4 = vertical. int[71] bit 2 = mirror X, bit 4 = mirror Y. A STYLE row with empty name[2] is the anonymous shape file style AutoCAD creates for linetype shape references -- text[3] will be a .shx filename (e.g. ltypeshp.shx).

DIMSTYLE

Key columns: name[2] name, real[40]-real[48] dimension variables, int[70]-int[78] dimension flags, real[140]-real[147] extended reals, int[170]-int[178] extended flags

Notes: full R12 dimvar set. See the DXF R12 spec for individual variable meanings (DIMSCALE=40, DIMASZ=41, DIMEXO=42, etc.). A DIMSTYLE row with only name[2] is valid -- all other columns absent means use AutoCAD defaults for that style.

SECTION / ENDSEC

Key columns: name[2] section name

Notes: present only when the full section is included via -dxs. Absent when individual tables or blocks are selected by name. See Structural sentinel rows.

Entities not supported by CSVIN

IMAGE, 3DSOLID, LIGHT, EXTRUDEDSURFACE, OLE2FRAME -- these entity types are not supported by CSVIN -- acdbEntMake / acdbEntMod cannot create them, so they will be ignored on import regardless of what data is present. They may still appear in CSVOUT output and carry analysis value (layer, color, position). They frequently appear as zombies since their object enablers are typically not loaded during export, but the CSVIN limitation is independent of zombie status.

See also CSVIN status for the full not-supported / planned list, including VIEWPORT and PDFUNDERLAY.

dxf-2018 column additions

Columns that only appear when the source drawing was exported from a modern AutoCAD (codes:dxf-2018), beyond the standard columns in Reference.

Full dxf-2018 column additions table (63 rows)
HeaderCodeMeaningEntity
real[141]141Row heights comma-delimited (nROW values)ACAD_TABLE
real[142]142Column widths comma-delimited (nCOL values)ACAD_TABLE
long[90]90Combined: field[0]=table flags, field[1..N]=per-cell value flags (4=content, 0=empty)ACAD_TABLE
long[91]91Combined: field[0]=nROW, field[1..N]=per-cell merged-row-span (262144=no merge)ACAD_TABLE
long[92]92nCOL (single value)ACAD_TABLE
long[93]93Combined: field[0]=override count, field[1..N]=per-cell value type (6=content, 7=virtual/empty)ACAD_TABLE
string[302]302Per-cell text -- ncell tab-delimited fields including empty stringsACAD_TABLE
string[302]302Block attribute values tab-delimited; LEADER{⇥ prefix is skeleton markerMULTILEADER
pt[15]15Block content insertion pointMULTILEADER
pt[110]-pt[112]110-112UCS x/y/z axis vectors for block content orientationMULTILEADER
char[270]270Leader type indicator (entmake 2, entget 0 -- opaque)MULTILEADER
real[45]45Landing gap (absent when default)MULTILEADER
real[47]47Line weight override (absent when default)MULTILEADER
real[140]140Text height override (absent when default)MULTILEADER
real[145]145Landing gap override (absent when default)MULTILEADER
long[92]92Combined second flags columnMULTILEADER
long[93]93Combined third flags columnMULTILEADER
long[95]95Arrow size (entget form; entmake uses int[95]=1)MULTILEADER
int[172]172Content type: 1=mtext, 2=blockMULTILEADER
int[173]173Combined draw orderMULTILEADER
int[174]174Combined leader countMULTILEADER
int[176]176Text alignMULTILEADER
bool[290]290Combined has-content/leader flags (2 or 3 fields)MULTILEADER
bool[293]293Combined enable flagsMULTILEADER
bool[295]295Text extend-to-leaderMULTILEADER
bool[296]296Block attribute flagMULTILEADER
long[421]421Per-cell fill true-color (ncell comma-delimited, absent when -1 for all cells)ACAD_TABLE
long[422]422Per-cell text true-color (ncell comma-delimited, absent when -1 for all cells)ACAD_TABLE
real[145]145Per-cell rotation in radians (ncell comma-delimited, 0.0=no rotation)ACAD_TABLE
real[140]140Combined table-level + per-cell text height -- field count determines structure: 0=absent, 1=table-level only, ncell=per-cell only, ncell+1=bothACAD_TABLE
int[170]170Per-cell alignment override (ncell comma-delimited, 0=no override)ACAD_TABLE
int[172]172Per-cell flags -- non-zero signals border overrides active (ncell comma-delimited)ACAD_TABLE
int[63]63Per-cell fill ACI color override (ncell comma-delimited, 0=no override)ACAD_TABLE
int[64]64Per-cell text color override (ncell comma-delimited, 0=no override)ACAD_TABLE
string[7]7Per-cell text style name override (ncell comma-delimited, empty=no override)ACAD_TABLE
long[90]90Face and edge data combined -- face section then edge sectionMESH
long[91]91Subdivision level (absent when 0)MESH
long[93]93Face data countMESH
long[94]94Crease edge countMESH
real[140]140Crease values comma-delimited (absent when all 0.0)MESH
real[41]41Defined width (reference rectangle width, 0=undefined/no wrap)MTEXT
real[44]44Line spacing factor (1.0=single, absent=not set)MTEXT
real[45]45Background fill scale factor (~1.0-3.0, 1.5 typical) -- only present within the fill tail, see long[90]MTEXT
real[46]46Defined column height -- legacy field, 0/absent when not usedMTEXT
long[90]90Background fill flag (1/3/16/17=filled with trailing tail, 2=drawing background with no tail, absent/0=no fill)MTEXT
int[72]72Drawing direction (1=LR, 3=TB, 5=by style)MTEXT
int[73]73Line spacing style (1=at least, 2=exactly)MTEXT
real[47]47Pixel size threshold -- pattern line minimum dash length for display. Present in CSVOUT; CSVIN computes it internally from boundary flags -- do not emit in AI-generated filesHATCH
long[421]421Packed RGB color(s) comma-delimited (one per gradient color entry)HATCH
long[421]421RGB background fill color override -- int[63] always present (ACI), long[421] present only when fill color is true-color RGB, absent when ACI; overrides int[63] for displayMTEXT
real[463]463Gradient taper values comma-delimited (one per color entry)HATCH
string[470]470Gradient type nameHATCH
pt[213]213Normal vector overrideLEADER
string[304]304Mtext text content (absent when leaderless)MULTILEADER
int[95]95Arrow style index (absent when default 1)MULTILEADER
int[170]170Combined leader type -- 2 fields: 1=straight, 2=spline (absent when 1,1)MULTILEADER
int[175]175Combined text attachment -- 2 fields (absent when 1,0)MULTILEADER
int[179]179Text angle type (absent when default)MULTILEADER
bool[291]291Has-dogleg combined -- 3 fields (absent when 0,1,1)MULTILEADER
bool[292]292Has-text-direction combined -- 2 fields (absent when 0,0)MULTILEADER
long[91]91Combined text-width flags -- 3 or 6 fields (absent when all sentinel/default)MULTILEADER

Stripped dxf-2018 bookkeeping

The following group codes and sections are stripped in addition to the R12 strip list:

dxf-2018 metadata additions

New conditional clauses for codes:dxf-2018 files:

ClausePresent when
truecolor:rgb[420]Any entity uses true color (group 420) -- packed 24-bit RGB integer overriding ACI color

Drawing Sync ©2026 Code Truck LLC. All rights reserved