From 54da5798914d552639179dc46b2700f3dd61dbd0 Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Sat, 24 Sep 2022 05:07:32 -0500 Subject: [PATCH] Ifc text tweaks (#2431) * added 3"=1'-0" scale (a common scale), and corrected 6"=1'-0" scale * Allow float point values in smart tags, and avoid breaking when no assigned product See #2340, #2349 --- src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py | 5 +++-- src/blenderbim/blenderbim/tool/drawing.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py b/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py index 74b3b06642..eba6c3c1e8 100644 --- a/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py +++ b/src/blenderbim/blenderbim/bim/module/drawing/svgwriter.py @@ -528,8 +528,9 @@ class SvgWriter: product = tool.Drawing.get_assigned_product(element) selector = ifcopenshell.util.selector.Selector variables = {} - for variable in re.findall("{{.*?}}", literal): - literal = literal.replace(variable, selector.get_element_value(product, variable[2:-2]) or "") + if product != None: + for variable in re.findall("{{.*?}}", literal): + literal = literal.replace(variable, str(selector.get_element_value(product, variable[2:-2]) or "")) for line_number, text_line in enumerate(literal.replace("\\n", "\n").split("\n")): self.svg.add( diff --git a/src/blenderbim/blenderbim/tool/drawing.py b/src/blenderbim/blenderbim/tool/drawing.py index 62388b23b7..3dbab91995 100644 --- a/src/blenderbim/blenderbim/tool/drawing.py +++ b/src/blenderbim/blenderbim/tool/drawing.py @@ -422,7 +422,7 @@ class Drawing(blenderbim.core.tool.Drawing): selector = ifcopenshell.util.selector.Selector() variables = {} for variable in re.findall("{{.*?}}", value): - value = value.replace(variable, selector.get_element_value(product, variable[2:-2]) or "") + value = value.replace(variable, str(selector.get_element_value(product, variable[2:-2]) or "")) obj.BIMTextProperties.value = value # TODO below this point is highly experimental prototype code with no tests