Complete Dimension host model coverage for all nine subtypes

Adds a hand-written flat Dimension model to the adapter (manifest
manual_kinds hook) and a synthetic-property section to the host coverage
policy. The host derives actual_measurement and the base definition point on
scripted create/edit. staged_python_dimension_lifecycle_over_real_ipc passes
the full gate for every subtype including DWG and DXF reopen. Python ints are
now accepted for coordinates and angles.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Felix RiestraandClaude Sonnet 5 committed 2026-09-20 14:15:03 +02:00
1 parent a86d5bc727
commit 6b4c86fd7a
13 files changed
+1281 -49

No files matched your search

+518 -36
View File
@@ -1,44 +1,526 @@
{
"internal_kinds": ["Block", "BlockEnd", "Seqend"],
"opaque_kinds": ["Extended", "Unknown"],
"internal_kinds": [
"Block",
"BlockEnd",
"Seqend"
],
"opaque_kinds": [
"Extended",
"Unknown"
],
"editable": {
"Point": ["layer", "location", "thickness", "normal", "x_axis_angle"],
"Line": ["layer", "start", "end", "thickness", "normal"],
"Circle": ["layer", "center", "radius", "thickness", "normal"],
"Arc": ["layer", "center", "radius", "start_angle", "end_angle", "thickness", "normal"],
"Ellipse": ["layer", "center", "major_axis", "minor_axis_ratio", "start_parameter", "end_parameter", "normal"],
"Polyline": ["layer", "closed", "vertices"],
"Polyline2D": ["layer", "closed", "smooth_surface", "start_width", "end_width", "thickness", "elevation", "normal", "vertices"],
"Polyline3D": ["layer", "flags", "default_start_width", "default_end_width", "mesh_m_count", "mesh_n_count", "smooth_m_density", "smooth_n_density", "elevation", "normal", "vertices"],
"LwPolyline": ["layer", "vertices", "is_closed", "plinegen", "constant_width", "elevation", "thickness", "normal"],
"Spline": ["layer", "degree", "flags", "knots", "control_points", "weights", "fit_points", "normal", "knot_tolerance", "control_tolerance", "fit_tolerance", "begin_tangent", "end_tangent", "knot_parameterization", "cv_frame_visible", "dwg_flags1", "dxf_flags"],
"Text": ["layer", "text", "insertion", "alignment_point", "height", "rotation", "width_factor", "oblique_angle", "style", "horizontal_alignment", "vertical_alignment", "normal", "thickness", "generation_flags"],
"MText": ["layer", "text", "insertion", "height", "rectangle_width", "rectangle_height", "rotation", "dwg_x_direction", "style", "attachment_point", "drawing_direction", "line_spacing_factor", "line_spacing_style", "normal", "background_fill_flags", "background_scale", "background_transparency", "is_annotative", "column_data", "extents_width", "extents_height"],
"Ray": ["layer", "base_point", "direction"],
"XLine": ["layer", "base_point", "direction"],
"Solid": ["layer", "first_corner", "second_corner", "third_corner", "fourth_corner", "normal", "thickness", "is_trace"],
"Face3D": ["layer", "first_corner", "second_corner", "third_corner", "fourth_corner", "invisible_edges"],
"Insert": ["layer", "insert_point", "x_scale", "y_scale", "z_scale", "rotation", "normal", "column_count", "row_count", "column_spacing", "row_spacing"],
"Tolerance": ["layer", "insertion_point", "direction", "normal", "text", "dimension_style_name", "text_height", "dimension_gap"],
"Shape": ["layer", "insertion_point", "size", "shape_name", "shape_number", "rotation", "relative_x_scale", "oblique_angle", "normal", "thickness", "style_name"],
"AttributeDefinition": ["layer", "tag", "prompt", "default_value", "insertion_point", "alignment_point", "height", "rotation", "width_factor", "oblique_angle", "text_style", "text_generation_flags", "horizontal_alignment", "vertical_alignment", "flags", "field_length", "normal", "mtext_flag", "is_multiline", "line_count", "lock_position"],
"AttributeEntity": ["layer", "tag", "value", "insertion_point", "alignment_point", "height", "rotation", "width_factor", "oblique_angle", "text_style", "text_generation_flags", "horizontal_alignment", "vertical_alignment", "flags", "field_length", "normal", "mtext_flag", "is_multiline", "line_count", "lock_position"],
"Hatch": ["layer", "elevation", "normal", "is_solid", "pattern", "pattern_angle", "pattern_scale", "pattern_type", "is_double", "style", "is_associative", "pixel_size", "paths", "seed_points"],
"Leader": ["layer", "dimension_style", "arrow_enabled", "path_type", "creation_type", "hookline_direction", "hookline_enabled", "text_height", "text_width", "vertices", "annotation_handle", "normal", "horizontal_direction", "block_offset", "annotation_offset"],
"MLine": ["layer", "flags", "justification", "normal", "scale_factor", "style_name", "vertices"]
"Point": [
"layer",
"location",
"thickness",
"normal",
"x_axis_angle"
],
"Line": [
"layer",
"start",
"end",
"thickness",
"normal"
],
"Circle": [
"layer",
"center",
"radius",
"thickness",
"normal"
],
"Arc": [
"layer",
"center",
"radius",
"start_angle",
"end_angle",
"thickness",
"normal"
],
"Ellipse": [
"layer",
"center",
"major_axis",
"minor_axis_ratio",
"start_parameter",
"end_parameter",
"normal"
],
"Polyline": [
"layer",
"closed",
"vertices"
],
"Polyline2D": [
"layer",
"closed",
"smooth_surface",
"start_width",
"end_width",
"thickness",
"elevation",
"normal",
"vertices"
],
"Polyline3D": [
"layer",
"flags",
"default_start_width",
"default_end_width",
"mesh_m_count",
"mesh_n_count",
"smooth_m_density",
"smooth_n_density",
"elevation",
"normal",
"vertices"
],
"LwPolyline": [
"layer",
"vertices",
"is_closed",
"plinegen",
"constant_width",
"elevation",
"thickness",
"normal"
],
"Spline": [
"layer",
"degree",
"flags",
"knots",
"control_points",
"weights",
"fit_points",
"normal",
"knot_tolerance",
"control_tolerance",
"fit_tolerance",
"begin_tangent",
"end_tangent",
"knot_parameterization",
"cv_frame_visible",
"dwg_flags1",
"dxf_flags"
],
"Text": [
"layer",
"text",
"insertion",
"alignment_point",
"height",
"rotation",
"width_factor",
"oblique_angle",
"style",
"horizontal_alignment",
"vertical_alignment",
"normal",
"thickness",
"generation_flags"
],
"MText": [
"layer",
"text",
"insertion",
"height",
"rectangle_width",
"rectangle_height",
"rotation",
"dwg_x_direction",
"style",
"attachment_point",
"drawing_direction",
"line_spacing_factor",
"line_spacing_style",
"normal",
"background_fill_flags",
"background_scale",
"background_transparency",
"is_annotative",
"column_data",
"extents_width",
"extents_height"
],
"Ray": [
"layer",
"base_point",
"direction"
],
"XLine": [
"layer",
"base_point",
"direction"
],
"Solid": [
"layer",
"first_corner",
"second_corner",
"third_corner",
"fourth_corner",
"normal",
"thickness",
"is_trace"
],
"Face3D": [
"layer",
"first_corner",
"second_corner",
"third_corner",
"fourth_corner",
"invisible_edges"
],
"Insert": [
"layer",
"insert_point",
"x_scale",
"y_scale",
"z_scale",
"rotation",
"normal",
"column_count",
"row_count",
"column_spacing",
"row_spacing"
],
"Tolerance": [
"layer",
"insertion_point",
"direction",
"normal",
"text",
"dimension_style_name",
"text_height",
"dimension_gap"
],
"Shape": [
"layer",
"insertion_point",
"size",
"shape_name",
"shape_number",
"rotation",
"relative_x_scale",
"oblique_angle",
"normal",
"thickness",
"style_name"
],
"AttributeDefinition": [
"layer",
"tag",
"prompt",
"default_value",
"insertion_point",
"alignment_point",
"height",
"rotation",
"width_factor",
"oblique_angle",
"text_style",
"text_generation_flags",
"horizontal_alignment",
"vertical_alignment",
"flags",
"field_length",
"normal",
"mtext_flag",
"is_multiline",
"line_count",
"lock_position"
],
"AttributeEntity": [
"layer",
"tag",
"value",
"insertion_point",
"alignment_point",
"height",
"rotation",
"width_factor",
"oblique_angle",
"text_style",
"text_generation_flags",
"horizontal_alignment",
"vertical_alignment",
"flags",
"field_length",
"normal",
"mtext_flag",
"is_multiline",
"line_count",
"lock_position"
],
"Hatch": [
"layer",
"elevation",
"normal",
"is_solid",
"pattern",
"pattern_angle",
"pattern_scale",
"pattern_type",
"is_double",
"style",
"is_associative",
"pixel_size",
"paths",
"seed_points"
],
"Leader": [
"layer",
"dimension_style",
"arrow_enabled",
"path_type",
"creation_type",
"hookline_direction",
"hookline_enabled",
"text_height",
"text_width",
"vertices",
"annotation_handle",
"normal",
"horizontal_direction",
"block_offset",
"annotation_offset"
],
"MLine": [
"layer",
"flags",
"justification",
"normal",
"scale_factor",
"style_name",
"vertices"
]
},
"readable": {
"Insert": ["block_name"],
"Tolerance": ["dimension_style_handle"],
"Shape": ["style_handle"],
"MLine": ["start_point", "style_handle", "style_element_count"],
"Leader": ["origin", "dimension_gap", "arrowhead_type", "arrow_size", "byblock_color"],
"AttributeEntity": ["attdef_handle"]
"Insert": [
"block_name"
],
"Tolerance": [
"dimension_style_handle"
],
"Shape": [
"style_handle"
],
"MLine": [
"start_point",
"style_handle",
"style_element_count"
],
"Leader": [
"origin",
"dimension_gap",
"arrowhead_type",
"arrow_size",
"byblock_color"
],
"AttributeEntity": [
"attdef_handle"
]
},
"aliases": {
"Polyline": {"closed": "flags"},
"Polyline2D": {"closed": "flags"},
"Text": {"text": "value", "insertion": "insertion_point"},
"MText": {"text": "value", "insertion": "insertion_point"}
"Polyline": {
"closed": "flags"
},
"Polyline2D": {
"closed": "flags"
},
"Text": {
"text": "value",
"insertion": "insertion_point"
},
"MText": {
"text": "value",
"insertion": "insertion_point"
}
},
"synthetic": {
"Dimension": [
{
"name": "subtype",
"type_id": "String",
"access": "read_only"
},
{
"name": "actual_measurement",
"type_id": "f64",
"access": "read_only"
},
{
"name": "text",
"type_id": "String",
"access": "read_write"
},
{
"name": "style_name",
"type_id": "String",
"access": "read_write"
},
{
"name": "normal",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "text_middle_point",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "attachment_point",
"type_id": "AttachmentPointType",
"access": "read_write"
},
{
"name": "text_rotation",
"type_id": "f64",
"access": "read_write"
},
{
"name": "horizontal_direction",
"type_id": "f64",
"access": "read_write"
},
{
"name": "flip_arrow1",
"type_id": "bool",
"access": "read_write"
},
{
"name": "flip_arrow2",
"type_id": "bool",
"access": "read_write"
},
{
"name": "text_user_positioned",
"type_id": "bool",
"access": "read_write"
},
{
"name": "definition_point",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "first_point",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "second_point",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "angle_vertex",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "dimension_arc",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "feature_location",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "leader_endpoint",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "first_extension_point",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "second_extension_point",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "center_point",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "first_leader_point",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "second_leader_point",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "chord_point",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "override_center",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "jog_point",
"type_id": "Vector3",
"access": "read_write"
},
{
"name": "rotation",
"type_id": "f64",
"access": "read_write"
},
{
"name": "ext_line_rotation",
"type_id": "f64",
"access": "read_write"
},
{
"name": "leader_length",
"type_id": "f64",
"access": "read_write"
},
{
"name": "arc_start_parameter",
"type_id": "f64",
"access": "read_write"
},
{
"name": "arc_end_parameter",
"type_id": "f64",
"access": "read_write"
},
{
"name": "jog_angle",
"type_id": "f64",
"access": "read_write"
},
{
"name": "is_ordinate_type_x",
"type_id": "bool",
"access": "read_write"
},
{
"name": "is_partial",
"type_id": "bool",
"access": "read_write"
},
{
"name": "has_leader",
"type_id": "bool",
"access": "read_write"
}
]
}
}