diff --git a/src/bonsai/bonsai/bim/data/assets/default.css b/src/bonsai/bonsai/bim/data/assets/default.css index d82d97e8f2..f154cc0c74 100644 --- a/src/bonsai/bonsai/bim/data/assets/default.css +++ b/src/bonsai/bonsai/bim/data/assets/default.css @@ -79,6 +79,8 @@ text.header, tspan.header { /* 5mm */ font-size: 8.25px; } text.large, tspan.large { /* 3.5mm */ font-size: 5.78px; } text.regular, tspan.regular { /* 2.5mm */ font-size: 4.13px; } text.small, tspan.small { /* 1.8mm */ font-size: 2.97px; } +text.tiny, tspan.tiny { /* 1.5mm */ font-size: 2.48px; } +text.mini, tspan.mini { /* 1.3mm */ font-size: 2.15px; } text.GRID, tspan.GRID { /* 5mm */ font-size: 8.25px; } .material-blank { fill: white; } .material-diagonal1 { fill: url(#diagonal1); } diff --git a/src/bonsai/bonsai/bim/module/drawing/data.py b/src/bonsai/bonsai/bim/module/drawing/data.py index 23ee7c1987..6c42730e1c 100644 --- a/src/bonsai/bonsai/bim/module/drawing/data.py +++ b/src/bonsai/bonsai/bim/module/drawing/data.py @@ -224,6 +224,8 @@ class DocumentsData: FONT_SIZES = { + "mini": 1.3, + "tiny": 1.5, "small": 1.8, "regular": 2.5, "large": 3.5, diff --git a/src/bonsai/bonsai/bim/module/drawing/prop.py b/src/bonsai/bonsai/bim/module/drawing/prop.py index f22d7128d8..ca9c69d7a0 100644 --- a/src/bonsai/bonsai/bim/module/drawing/prop.py +++ b/src/bonsai/bonsai/bim/module/drawing/prop.py @@ -917,6 +917,8 @@ class BIMTextProperties(PropertyGroup): ) font_size: EnumProperty( items=[ + ("1.3", "1.3 - Mini", ""), + ("1.5", "1.5 - Tiny", ""), ("1.8", "1.8 - Small", ""), ("2.5", "2.5 - Regular", ""), ("3.5", "3.5 - Large", ""), diff --git a/src/bonsai/test/tool/test_drawing.py b/src/bonsai/test/tool/test_drawing.py index 580b326822..60d8ed3918 100644 --- a/src/bonsai/test/tool/test_drawing.py +++ b/src/bonsai/test/tool/test_drawing.py @@ -851,6 +851,25 @@ class TestEditText(NewFile): assert "title" in annotation_classes assert DecoratorData.get_text_data(obj)["FontSize"] == 7.0 + @pytest.mark.parametrize("font_size, class_name", [("1.3", "mini"), ("1.5", "tiny")]) + def test_change_text_font_size_to_small_sizes(self, font_size, class_name): + TestGetTextLiteral().test_run() + obj = bpy.data.objects["Object"] + + with bpy.context.temp_override(active_object=obj): + bpy.ops.bim.enable_editing_text() + props = tool.Drawing.get_text_props(obj) + props.font_size = font_size + bpy.ops.bim.edit_text() + + annotation_classes = ifcopenshell.util.element.get_pset(tool.Ifc.get_entity(obj), "EPset_Annotation", "Classes") + assert class_name in annotation_classes.split() + assert DecoratorData.get_text_data(obj)["FontSize"] == float(font_size) + + # Font size round-trips back into the property. + subject.import_text_attributes(obj) + assert tool.Drawing.get_text_props(obj).font_size == font_size + def test_add_second_literal(self, setup=True): if setup: TestGetTextLiteral().test_run()