Can you fix the 404 links here? I need the actual correct location from the ezdxf docs. Give me the markdown output exactly the same back, but with the corrected links

# Complete DXF Mapping for Duc FBS Schema

## Table 1: Full FBS Schema to DXF Mapping

### Document & State Management

| Duc FBS Field | DXF Equivalent | ezdxf Reference | Notes/Default |
|---------------|----------------|-----------------|---------------|
| **ExportedDataState** | | | |
| `type` | N/A | | Store in custom XDATA |
| `version` | `$ACADVER` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | Default: "AC1027" (AutoCAD 2013) |
| `source` | `$LASTSAVEDBY` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | Default: "DUC" |
| `thumbnail` | `$THUMBNAILIMAGE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html#thumbnailimage-group-code-310) | Binary data |
| `dictionary` | Root `DICTIONARY` | [Dictionary](https://ezdxf.readthedocs.io/en/stable/dxfinternals/dictionary.html) | |
| `elements` | `ENTITIES` section | [Entities](https://ezdxf.readthedocs.io/en/stable/dxfinternals/entities.html) | |
| `blocks` | `BLOCKS` section | [Blocks](https://ezdxf.readthedocs.io/en/stable/dxfinternals/blocks.html) | |
| `groups` | `GROUP` objects | [Group](https://ezdxf.readthedocs.io/en/stable/dxfobjects/group.html) | |
| `layers` | `LAYER` table | [Layer](https://ezdxf.readthedocs.io/en/stable/tables/layer_table.html) | |
| `standards` | Multiple tables | | Composite of STYLE, DIMSTYLE, LTYPE |
| `files` | N/A | | Store in XDATA or custom DICTIONARY |
| `version_graph` | N/A | | Store in XDATA |
| | | | |
| **DucGlobalState** | | | |
| `name` | Drawing filename | | External to DXF |
| `view_background_color` | N/A | | Application setting |
| `main_scope` | `$INSUNITS` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | Default: 4 (mm) |
| `dash_spacing_scale` | `$LTSCALE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | Default: 1.0 |
| `is_dash_spacing_affected_by_viewport_scale` | `$PSLTSCALE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | Default: 1 |
| `scope_exponent_threshold` | N/A | | Store in XDATA |
| `dimensions_associative_by_default` | `$DIMASSOC` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | Default: 2 |
| `use_annotative_scaling` | `$ANNOALLVISIBLE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | Default: 1 |
| `display_precision_linear` | `$LUPREC` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | Default: 4 |
| `display_precision_angular` | `$AUPREC` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | Default: 0 |
| | | | |
| **DucLocalState** | | | |
| `scope` | Current UCS | | Store in XDATA |
| `active_standard_id` | N/A | | Store in XDATA |
| `scroll_x` | `VPORT.center[0]` | [Viewport](https://ezdxf.readthedocs.io/en/stable/tables/vport_table.html) | |
| `scroll_y` | `VPORT.center[1]` | [Viewport](https://ezdxf.readthedocs.io/en/stable/tables/vport_table.html) | |
| `zoom` | `VPORT.height` | [Viewport](https://ezdxf.readthedocs.io/en/stable/tables/vport_table.html) | |
| `active_grid_settings` | `$GRIDMODE`, `$GRIDUNIT` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `active_snap_settings` | `$OSMODE`, `$SNAPMODE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `is_binding_enabled` | N/A | | Store in XDATA |
| `current_item_stroke` | `$CECOLOR`, `$CELTYPE`, `$CELWEIGHT` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `current_item_background` | N/A | | No global fill setting |
| `current_item_opacity` | `$CETRANSPARENCY` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `current_item_font_family` | `$TEXTSTYLE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `current_item_font_size` | `$TEXTSIZE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `current_item_text_align` | N/A | | Store in XDATA |
| `current_item_start_line_head` | `$DIMBLK1` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `current_item_end_line_head` | `$DIMBLK2` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `current_item_roundness` | N/A | | Store in XDATA |
| `pen_mode` | N/A | | UI state |
| `view_mode_enabled` | N/A | | UI state |
| `objects_snap_mode_enabled` | `$OSMODE > 0` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `grid_mode_enabled` | `$GRIDMODE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `outline_mode_enabled` | `$FILLMODE == 0` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | Inverted logic |

### Base Element Properties

| Duc FBS Field | DXF Equivalent | ezdxf Reference | Notes/Default |
|---------------|----------------|-----------------|---------------|
| **_DucElementBase** | | | |
| `id` | Handle (GC 5) | [Common](https://ezdxf.readthedocs.io/en/stable/dxfinternals/entities.html#common-dxf-attributes) | |
| `x` | GC 10 | [Common](https://ezdxf.readthedocs.io/en/stable/dxfinternals/entities.html#common-dxf-attributes) | Primary X coordinate |
| `y` | GC 20 | [Common](https://ezdxf.readthedocs.io/en/stable/dxfinternals/entities.html#common-dxf-attributes) | Primary Y coordinate |
| `width` | Entity-specific | | Calculate from geometry |
| `height` | Entity-specific | | Calculate from geometry |
| `angle` | GC 50 | [Common](https://ezdxf.readthedocs.io/en/stable/dxfinternals/entities.html#common-dxf-attributes) | Convert rad to deg |
| `scope` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `label` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `description` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `is_visible` | GC 60 | [Common](https://ezdxf.readthedocs.io/en/stable/dxfinternals/entities.html#common-dxf-attributes) | 0=visible, 1=invisible |
| `seed` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `version` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `version_nonce` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `updated` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `index` | SORTENTS table | [Sortents](https://ezdxf.readthedocs.io/en/stable/dxfobjects/sortents.html) | Draw order |
| `is_plot` | Layer GC 290 | [Layer](https://ezdxf.readthedocs.io/en/stable/tables/layer_table.html) | Inherit from layer |
| `is_annotative` | XDATA "AcadAnnotative" | [Annotative](https://ezdxf.readthedocs.io/en/stable/concepts/annotative_entities.html) | |
| `is_deleted` | N/A | | Don't export deleted items |
| `group_ids` | GROUP membership | [Group](https://ezdxf.readthedocs.io/en/stable/dxfobjects/group.html) | |
| `layer_id` | GC 8 | [Common](https://ezdxf.readthedocs.io/en/stable/dxfinternals/entities.html#common-dxf-attributes) | Layer name |
| `frame_id` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `bound_elements` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `z_index` | SORTENTS order | [Sortents](https://ezdxf.readthedocs.io/en/stable/dxfobjects/sortents.html) | |
| `link` | HYPERLINK | [Hyperlink](https://ezdxf.readthedocs.io/en/stable/dxfinternals/hyperlink.html) | |
| `locked` | Layer GC 70 bit 4 | [Layer](https://ezdxf.readthedocs.io/en/stable/tables/layer_table.html) | Inherit from layer |
| `custom_data` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |

### Style Properties

| Duc FBS Field | DXF Equivalent | ezdxf Reference | Notes/Default |
|---------------|----------------|-----------------|---------------|
| **_DucElementStylesBase** | | | |
| `roundness` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | No native roundness |
| `blending` | GC 440 | [Transparency](https://ezdxf.readthedocs.io/en/stable/dxfinternals/transparency.html) | Limited to opacity |
| `background` | HATCH/SOLID entity | [Hatch](https://ezdxf.readthedocs.io/en/stable/dxfentities/hatch.html) | Separate entity |
| `stroke` | Multiple GCs | | See ElementStroke |
| `opacity` | GC 440 | [Transparency](https://ezdxf.readthedocs.io/en/stable/dxfinternals/transparency.html) | |
| | | | |
| **ElementStroke** | | | |
| `content.preference` | N/A | | Determine from content |
| `content.src` | GC 62, 420, 430 | [Color](https://ezdxf.readthedocs.io/en/stable/dxfinternals/colors.html) | |
| `content.visible` | N/A | | Default: true |
| `content.opacity` | GC 440 | [Transparency](https://ezdxf.readthedocs.io/en/stable/dxfinternals/transparency.html) | |
| `content.tiling` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | Not native |
| `content.hatch` | N/A | | For stroke patterns |
| `content.image_filter` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `width` | GC 370 | [Lineweight](https://ezdxf.readthedocs.io/en/stable/dxfinternals/lineweight.html) | |
| `style.preference` | GC 6 | [Linetype](https://ezdxf.readthedocs.io/en/stable/tables/linetype_table.html) | |
| `style.cap` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | Not in basic DXF |
| `style.join` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | Not in basic DXF |
| `style.dash` | LTYPE definition | [Linetype](https://ezdxf.readthedocs.io/en/stable/tables/linetype_table.html) | |
| `style.dash_line_override` | Complex linetype | [Linetype](https://ezdxf.readthedocs.io/en/stable/tables/linetype_table.html) | |
| `style.dash_cap` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `style.miter_limit` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `placement` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `stroke_sides` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |

### Geometry Types

| Duc FBS Field | DXF Equivalent | ezdxf Reference | Notes/Default |
|---------------|----------------|-----------------|---------------|
| **GeometricPoint** | | | |
| `x` | Double precision | | |
| `y` | Double precision | | |
| | | | |
| **DucPoint** | | | |
| `x` | Vertex X | | |
| `y` | Vertex Y | | |
| `mirroring` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | For Bezier |
| | | | |
| **DucHead** | | | |
| `type` | Block name | [Block](https://ezdxf.readthedocs.io/en/stable/dxfinternals/blocks.html) | Arrow blocks |
| `block_id` | Block name | [Block](https://ezdxf.readthedocs.io/en/stable/dxfinternals/blocks.html) | Custom block |
| `size` | Scale factor | | |
| | | | |
| **DucPointBinding** | | | |
| `element_id` | Handle reference | | For associativity |
| `focus` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `gap` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `fixed_point` | Override point | | |
| `point` | Parameter data | | |
| `head` | Arrow override | | |

### Text & Document Styles

| Duc FBS Field | DXF Equivalent | ezdxf Reference | Notes/Default |
|---------------|----------------|-----------------|---------------|
| **DucTextStyle** | | | |
| `base_style` | See above | | |
| `is_ltr` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | Default: true |
| `font_family` | STYLE.font | [Text Style](https://ezdxf.readthedocs.io/en/stable/tables/style_table.html) | |
| `big_font_family` | STYLE.bigfont | [Text Style](https://ezdxf.readthedocs.io/en/stable/tables/style_table.html) | Asian fonts |
| `text_align` | GC 72, 73 | [Text](https://ezdxf.readthedocs.io/en/stable/dxfentities/text.html) | |
| `vertical_align` | GC 73 | [Text](https://ezdxf.readthedocs.io/en/stable/dxfentities/text.html) | |
| `line_height` | MTEXT line spacing | [MText](https://ezdxf.readthedocs.io/en/stable/dxfentities/mtext.html) | |
| `line_spacing` | GC 44 | [MText](https://ezdxf.readthedocs.io/en/stable/dxfentities/mtext.html) | |
| `oblique_angle` | GC 51 | [Text](https://ezdxf.readthedocs.io/en/stable/dxfentities/text.html) | Convert to deg |
| `font_size` | GC 40 | [Text](https://ezdxf.readthedocs.io/en/stable/dxfentities/text.html) | |
| `paper_text_height` | Annotative scale | [Annotative](https://ezdxf.readthedocs.io/en/stable/concepts/annotative_entities.html) | |
| `width_factor` | GC 41 | [Text](https://ezdxf.readthedocs.io/en/stable/dxfentities/text.html) | |
| `is_upside_down` | GC 71 bit 2 | [Text](https://ezdxf.readthedocs.io/en/stable/dxfentities/text.html) | |
| `is_backwards` | GC 71 bit 4 | [Text](https://ezdxf.readthedocs.io/en/stable/dxfentities/text.html) | |

### Element Type Mappings

| Duc FBS Type | DXF Entity | ezdxf Reference | Notes/Default |
|--------------|------------|-----------------|---------------|
| **DucRectangleElement** | LWPOLYLINE | [LWPolyline](https://ezdxf.readthedocs.io/en/stable/dxfentities/lwpolyline.html) | 4 vertices, closed |
| **DucPolygonElement** | LWPOLYLINE | [LWPolyline](https://ezdxf.readthedocs.io/en/stable/dxfentities/lwpolyline.html) | N vertices, closed |
| `sides` | Vertex count | | Generate vertices |
| | | | |
| **DucEllipseElement** | ELLIPSE | [Ellipse](https://ezdxf.readthedocs.io/en/stable/dxfentities/ellipse.html) | |
| `ratio` | GC 40 | [Ellipse](https://ezdxf.readthedocs.io/en/stable/dxfentities/ellipse.html) | Minor/major ratio |
| `start_angle` | GC 41 | [Ellipse](https://ezdxf.readthedocs.io/en/stable/dxfentities/ellipse.html) | Convert to deg |
| `end_angle` | GC 42 | [Ellipse](https://ezdxf.readthedocs.io/en/stable/dxfentities/ellipse.html) | Convert to deg |
| `show_aux_crosshair` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| | | | |
| **DucImageElement** | IMAGE | [Image](https://ezdxf.readthedocs.io/en/stable/dxfentities/image.html) | |
| `file_id` | IMAGEDEF | [Image](https://ezdxf.readthedocs.io/en/stable/dxfentities/image.html) | |
| `status` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `scale` | GC 41, 42 | [Image](https://ezdxf.readthedocs.io/en/stable/dxfentities/image.html) | |
| `crop` | Clipping boundary | [Image](https://ezdxf.readthedocs.io/en/stable/dxfentities/image.html) | |
| `clipping_boundary` | GC 71 | [Image](https://ezdxf.readthedocs.io/en/stable/dxfentities/image.html) | |
| `filter` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| | | | |
| **DucTextElement** | TEXT | [Text](https://ezdxf.readthedocs.io/en/stable/dxfentities/text.html) | Single line |
| `text` | GC 1 | [Text](https://ezdxf.readthedocs.io/en/stable/dxfentities/text.html) | |
| `auto_resize` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `container_id` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `original_text` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| | | | |
| **DucLinearElement** | LINE/LWPOLYLINE | [Line](https://ezdxf.readthedocs.io/en/stable/dxfentities/line.html)/[LWPolyline](https://ezdxf.readthedocs.io/en/stable/dxfentities/lwpolyline.html) | |
| `points` | Vertices | | |
| `lines` | Segments | | |
| `path_overrides` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `last_committed_point` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `start_binding` | Dimension assoc | | |
| `end_binding` | Dimension assoc | | |
| `wipeout_below` | DRAWORDER | [Sortents](https://ezdxf.readthedocs.io/en/stable/dxfobjects/sortents.html) | |
| | | | |
| **DucArrowElement** | LEADER | [Leader](https://ezdxf.readthedocs.io/en/stable/dxfentities/leader.html) | |
| `elbowed` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| | | | |
| **DucFreeDrawElement** | SPLINE | [Spline](https://ezdxf.readthedocs.io/en/stable/dxfentities/spline.html) | |
| `points` | Control points | | |
| `size` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `thinning` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `smoothing` | Spline degree | | |
| `streamline` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `easing` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `start` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `end` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `pressures` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `simulate_pressure` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `svg_path` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| | | | |
| **DucBlockInstanceElement** | INSERT/MINSERT | [Insert](https://ezdxf.readthedocs.io/en/stable/dxfentities/insert.html) | |
| `block_id` | GC 2 | [Insert](https://ezdxf.readthedocs.io/en/stable/dxfentities/insert.html) | Block name |
| `element_overrides` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `attribute_values` | ATTRIB | [Attrib](https://ezdxf.readthedocs.io/en/stable/dxfentities/attrib.html) | |
| `duplication_array` | MINSERT | [Insert](https://ezdxf.readthedocs.io/en/stable/dxfentities/insert.html) | |
| | | | |
| **DucTableElement** | TABLE | [Table](https://ezdxf.readthedocs.io/en/stable/dxfentities/table.html) | ACAD_TABLE |
| `column_order` | Column defs | | |
| `row_order` | Row defs | | |
| `columns` | Column data | | |
| `rows` | Row data | | |
| `cells` | Cell data | | |
| `header_row_count` | GC 91 | [Table](https://ezdxf.readthedocs.io/en/stable/dxfentities/table.html) | |
| `auto_size` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| | | | |
| **DucDimensionElement** | DIMENSION | [Dimension](https://ezdxf.readthedocs.io/en/stable/dxfentities/dimension.html) | |
| `dimension_type` | GC 70 | [Dimension](https://ezdxf.readthedocs.io/en/stable/dxfentities/dimension.html) | |
| `definition_points` | GC 10-16 | [Dimension](https://ezdxf.readthedocs.io/en/stable/dxfentities/dimension.html) | |
| `oblique_angle` | GC 52 | [Dimension](https://ezdxf.readthedocs.io/en/stable/dxfentities/dimension.html) | |
| `ordinate_axis` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `bindings` | Associativity | | |
| `text_override` | GC 1 | [Dimension](https://ezdxf.readthedocs.io/en/stable/dxfentities/dimension.html) | |
| `text_position` | GC 11, 21 | [Dimension](https://ezdxf.readthedocs.io/en/stable/dxfentities/dimension.html) | |
| `tolerance_override` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `baseline_data` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `continue_data` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| | | | |
| **DucLeaderElement** | MLEADER | [MLeader](https://ezdxf.readthedocs.io/en/stable/dxfentities/mleader.html) | |
| `content` | Content block | | |
| `content_anchor` | Content point | | |
| | | | |
| **DucFeatureControlFrameElement** | TOLERANCE | [Tolerance](https://ezdxf.readthedocs.io/en/stable/dxfentities/tolerance.html) | |
| `rows` | GC 1 | [Tolerance](https://ezdxf.readthedocs.io/en/stable/dxfentities/tolerance.html) | Text string |
| `frame_modifiers` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `leader_element_id` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `datum_definition` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| | | | |
| **DucDocElement** | MTEXT | [MText](https://ezdxf.readthedocs.io/en/stable/dxfentities/mtext.html) | |
| `content` | GC 1, 3 | [MText](https://ezdxf.readthedocs.io/en/stable/dxfentities/mtext.html) | |
| `flow_direction` | GC 72 | [MText](https://ezdxf.readthedocs.io/en/stable/dxfentities/mtext.html) | |
| `columns` | GC 75, 76 | [MText](https://ezdxf.readthedocs.io/en/stable/dxfentities/mtext.html) | |
| `auto_resize` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| | | | |
| **DucViewportElement** | VIEWPORT | [Viewport](https://ezdxf.readthedocs.io/en/stable/dxfentities/viewport.html) | |
| `view` | View settings | | |
| `scale` | GC 45 | [Viewport](https://ezdxf.readthedocs.io/en/stable/dxfentities/viewport.html) | |
| `shade_plot` | GC 281 | [Viewport](https://ezdxf.readthedocs.io/en/stable/dxfentities/viewport.html) | |
| `frozen_group_ids` | Layer freeze | | |
| `standard_override` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| | | | |
| **DucXRayElement** | XLINE/RAY | [XLine](https://ezdxf.readthedocs.io/en/stable/dxfentities/xline.html)/[Ray](https://ezdxf.readthedocs.io/en/stable/dxfentities/ray.html) | |
| `origin` | GC 10, 20 | [XLine](https://ezdxf.readthedocs.io/en/stable/dxfentities/xline.html) | |
| `direction` | GC 11, 21 | [XLine](https://ezdxf.readthedocs.io/en/stable/dxfentities/xline.html) | |
| `start_from_origin` | RAY vs XLINE | | |
| | | | |
| **DucFrameElement** | N/A | | Use block with attributes |
| **DucPlotElement** | LAYOUT | [Layout](https://ezdxf.readthedocs.io/en/stable/dxfobjects/layout.html) | Paper space |
| **DucMermaidElement** | N/A | | Store as block |
| **DucParametricElement** | N/A | | Store as block |
| **DucEmbeddableElement** | N/A | | Store as block |

### Organizational Structures

| Duc FBS Field | DXF Equivalent | ezdxf Reference | Notes/Default |
|---------------|----------------|-----------------|---------------|
| **DucBlock** | | | |
| `id` | Block name | [Block](https://ezdxf.readthedocs.io/en/stable/dxfinternals/blocks.html) | |
| `label` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `description` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `version` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `elements` | Block entities | | |
| `attribute_definitions` | ATTDEF | [AttDef](https://ezdxf.readthedocs.io/en/stable/dxfentities/attdef.html) | |
| | | | |
| **DucGroup** | | | |
| `id` | Group name | [Group](https://ezdxf.readthedocs.io/en/stable/dxfobjects/group.html) | |
| `stack_base` | Group desc | [Group](https://ezdxf.readthedocs.io/en/stable/dxfobjects/group.html) | |
| | | | |
| **DucLayer** | | | |
| `id` | Layer name | [Layer](https://ezdxf.readthedocs.io/en/stable/tables/layer_table.html) | |
| `stack_base.label` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `stack_base.description` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `stack_base.is_collapsed` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | UI state |
| `stack_base.is_plot` | GC 290 | [Layer](https://ezdxf.readthedocs.io/en/stable/tables/layer_table.html) | |
| `stack_base.is_visible` | GC 62, 70 | [Layer](https://ezdxf.readthedocs.io/en/stable/tables/layer_table.html) | |
| `stack_base.locked` | GC 70 bit 4 | [Layer](https://ezdxf.readthedocs.io/en/stable/tables/layer_table.html) | |
| `stack_base.styles.opacity` | GC 440 | [Layer](https://ezdxf.readthedocs.io/en/stable/tables/layer_table.html) | |
| `stack_base.styles.labeling_color` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `readonly` | Name == "0" | | Layer 0 is readonly |
| `overrides.stroke` | GC 62, 6, 370 | [Layer](https://ezdxf.readthedocs.io/en/stable/tables/layer_table.html) | |
| `overrides.background` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |

### Standards System

| Duc FBS Field | DXF Equivalent | ezdxf Reference | Notes/Default |
|---------------|----------------|-----------------|---------------|
| **Standard** | | | |
| `identifier` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | Composite concept |
| `version` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `readonly` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `overrides` | Various | | See StandardOverrides |
| `styles` | Various tables | | See StandardStyles |
| `view_settings` | Various | | See StandardViewSettings |
| `units` | Header vars | | See StandardUnits |
| `validation` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| | | | |
| **StandardUnits** | | | |
| `primary_units.linear.format` | `$LUNITS` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `primary_units.linear.precision` | `$LUPREC` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `primary_units.linear.decimal_separator` | `$DIMDSEP` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `primary_units.linear.suppress_leading_zeros` | `$DIMZIN` bit 4 | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `primary_units.linear.suppress_trailing_zeros` | `$DIMZIN` bit 8 | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `primary_units.linear.suppress_zero_feet` | `$DIMZIN` bit 1 | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `primary_units.linear.suppress_zero_inches` | `$DIMZIN` bit 2 | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `primary_units.angular.format` | `$AUNITS` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `primary_units.angular.precision` | `$AUPREC` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `alternate_units` | `$DIMALT*` vars | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |

### Grid & Snap Settings

| Duc FBS Field | DXF Equivalent | ezdxf Reference | Notes/Default |
|---------------|----------------|-----------------|---------------|
| **GridSettings** | | | |
| `type` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `readonly` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `display_type` | `$GRIDSTYLE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `is_adaptive` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `x_spacing` | `$GRIDUNIT[0]` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `y_spacing` | `$GRIDUNIT[1]` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `subdivisions` | `$GRIDDISPLAY` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `origin` | `$GRIDMODE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `rotation` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `follow_ucs` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `major_style` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `minor_style` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `show_minor` | `$GRIDDISPLAY` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `min_zoom` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `max_zoom` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `auto_hide` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `polar_settings` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `isometric_settings` | `$SNAPISOPAIR` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `enable_snapping` | `$SNAPMODE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| | | | |
| **SnapSettings** | | | |
| `readonly` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `twist_angle` | `$SNAPANG` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `snap_tolerance` | `$APERTURE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `object_snap_aperture` | `$APERTURE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `is_ortho_mode_on` | `$ORTHOMODE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `polar_tracking` | `$POLARMODE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `is_object_snap_on` | `$OSMODE > 0` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `active_object_snap_modes` | `$OSMODE` bits | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `snap_priority` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `show_tracking_lines` | `$TRACKPATH` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `tracking_line_style` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `dynamic_snap` | `$DYNMODE` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `temporary_overrides` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `incremental_distance` | `$SNAPUNIT` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `magnetic_strength` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `layer_snap_filters` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `element_type_filters` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `snap_mode` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `snap_markers` | `$AUTOSNAP` | [Header](https://ezdxf.readthedocs.io/en/stable/dxfinternals/header.html) | |
| `construction_snap_enabled` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `snap_to_grid_intersections` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |

### Version Control

| Duc FBS Field | DXF Equivalent | ezdxf Reference | Notes/Default |
|---------------|----------------|-----------------|---------------|
| **VersionGraph** | N/A | | Store entire structure in XDATA |
| All fields | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | No DXF equivalent |

### File Management

| Duc FBS Field | DXF Equivalent | ezdxf Reference | Notes/Default |
|---------------|----------------|-----------------|---------------|
| **BinaryFileData** | | | |
| `mime_type` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `id` | IMAGEDEF handle | [ImageDef](https://ezdxf.readthedocs.io/en/stable/dxfobjects/image_def.html) | |
| `data_url` | IMAGEDEF path | [ImageDef](https://ezdxf.readthedocs.io/en/stable/dxfobjects/image_def.html) | |
| `created` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `last_retrieved` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| `version` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |

### Additional Utility Types

| Duc FBS Field | DXF Equivalent | ezdxf Reference | Notes/Default |
|---------------|----------------|-----------------|---------------|
| **DucUcs** | UCS table | [UCS](https://ezdxf.readthedocs.io/en/stable/tables/ucs_table.html) | |
| `origin` | GC 10, 20 | [UCS](https://ezdxf.readthedocs.io/en/stable/tables/ucs_table.html) | |
| `angle` | X/Y axis vectors | [UCS](https://ezdxf.readthedocs.io/en/stable/tables/ucs_table.html) | |
| | | | |
| **DucView** | VIEW table | [View](https://ezdxf.readthedocs.io/en/stable/tables/view_table.html) | |
| `scroll_x` | View center X | [View](https://ezdxf.readthedocs.io/en/stable/tables/view_table.html) | |
| `scroll_y` | View center Y | [View](https://ezdxf.readthedocs.io/en/stable/tables/view_table.html) | |
| `zoom` | View height | [View](https://ezdxf.readthedocs.io/en/stable/tables/view_table.html) | |
| `twist_angle` | View twist | [View](https://ezdxf.readthedocs.io/en/stable/tables/view_table.html) | |
| `center_point` | Target point | [View](https://ezdxf.readthedocs.io/en/stable/tables/view_table.html) | |
| `scope` | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | |
| | | | |
| **Margins** | | | |
| All fields | XDATA | [XDATA](https://ezdxf.readthedocs.io/en/stable/dxfinternals/xdata.html) | No native margins |

### Features that are supported in unexepected ways


| DXF Feature | Description | Impact/Recommendation |
|-------------|-------------|----------------------|
| **Complex Linetypes** | Linetypes with embedded text/shapes | Partially supported via dash_line_override |
| **Wipeout Entity** | Masks background content | Partially supported via wipeout_below flag |
| **Multileader Styles** | MLEADERSTYLE table | Map to DucLeaderStyle |


## Table 2: Important DXF Features Not in Duc System

| DXF Feature | Description | Impact/Recommendation |
|-------------|-------------|----------------------|
| **Dynamic Blocks** | Blocks with parameters, actions, visibility states | Major feature - consider for future versions |
| **External References (XREF)** | Link to external DWG/DXF files | Important for large projects - add as DucXRefElement |
| **3D Entities** | 3DFACE, MESH, SURFACE, SOLID3D | Intentionally excluded per requirements |
| **Proxy Entities** | Custom entity types from AutoCAD verticals | Store as blocks with XDATA |
| **OLE Objects** | Embedded Office documents | Not supported - convert to image |
| **Underlay (PDF/DWF/DGN)** | Reference external formats | Consider adding similar to XRef |
| **Helix** | 3D spiral curve | 3D entity - excluded |
| **Region** | 2D closed area for boolean operations | Could add for advanced 2D operations |
| **Fields** | Dynamic text that updates automatically | Partial support via text variables |
| **Sheet Sets** | Drawing organization system | Beyond single file scope |
| **Constraints** | Parametric/geometric constraints | Partially supported via bindings |
| **Action Recorder** | Macro recording | Application feature |
| **Visual Styles** | 3D display styles | 3D feature - excluded |
| **Plot Style Tables** | CTB/STB files | External to DXF |
| **Materials** | 3D rendering materials | 3D feature - excluded |
| **Lights** | 3D lighting | 3D feature - excluded |
| **Section Planes** | 3D cutting planes | 3D feature - excluded |
| **Point Clouds** | Large point datasets | Specialized feature |

## Estimated DXF Coverage: **85-90%**

This schema covers the vast majority of 2D drafting features in DXF. The missing 10-15% consists primarily of:
- 3D features (intentionally excluded)
- Dynamic blocks and complex parametrics
- External references and underlays
- Specialized features (point clouds, OLE, etc.)