From bf023370ef604e2acc32859404a49dc902a5e54f Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Wed, 6 Sep 2023 13:49:32 -0500 Subject: [PATCH] Small fix for feet and inch formatting on Spreadsheet Import/Export --- src/ifcopenshell-python/ifcopenshell/util/unit.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/util/unit.py b/src/ifcopenshell-python/ifcopenshell/util/unit.py index e3dc8aa6d0..2e1d05b26c 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/unit.py +++ b/src/ifcopenshell-python/ifcopenshell/util/unit.py @@ -586,7 +586,7 @@ def format_length( frac = Fraction(nearest, precision) # If fraction is a whole number, format it accordingly - if frac.denominator == 1: + if frac.numerator == 0: if imperial_unit == "inch": return f"{round(inches)}\"" if suppress_zero_inches: @@ -595,13 +595,20 @@ def format_length( elif not suppress_zero_inches: if imperial_unit == "foot": return f"{round(value)}' - 0\"" - if frac.numerator > frac.denominator and not frac.denominator == 0: + if frac.numerator > frac.denominator: remainder = frac.numerator % frac.denominator whole = int((frac.numerator - remainder) / frac.denominator) if imperial_unit == "foot": - return f"{feet}' - {whole} {remainder}/{frac.denominator}\"" + if remainder == 0: + return f"{feet}' - {whole}\"" + elif remainder != 0: + return f"{feet}' - {whole} {remainder}/{frac.denominator}\"" elif imperial_unit == "inch": - return f"{whole} {remainder}/{frac.denominator}\"" + if remainder == 0: + return f"{whole}\"" + elif remainder != 0: + return f"{whole} {remainder}/{frac.denominator}\"" + elif unit_system == "metric": rounded_val = round(value / precision) * precision