mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-31 00:46:36 +00:00
Closes #7775: have a BBIM_Dimension.SuppressZeroFeet like there is a BBIM_Dimension.SuppressZeroInches
Generated with the assistance of an AI coding tool.
This commit is contained in:
@@ -28,7 +28,7 @@ DATA;
|
|||||||
#21=IFCSIMPLEPROPERTYTEMPLATE('1UDakJ5_f7kBhggNSW4$h5',$,'SymbolsPath','Default symbols SVG',.P_SINGLEVALUE.,'IfcLabel',$,$,$,$,$,.READWRITE.);
|
#21=IFCSIMPLEPROPERTYTEMPLATE('1UDakJ5_f7kBhggNSW4$h5',$,'SymbolsPath','Default symbols SVG',.P_SINGLEVALUE.,'IfcLabel',$,$,$,$,$,.READWRITE.);
|
||||||
#22=IFCSIMPLEPROPERTYTEMPLATE('0d53LEtgLDQxnv__NfgH7i',$,'PatternsPath','Default patterns SVG',.P_SINGLEVALUE.,'IfcLabel',$,$,$,$,$,.READWRITE.);
|
#22=IFCSIMPLEPROPERTYTEMPLATE('0d53LEtgLDQxnv__NfgH7i',$,'PatternsPath','Default patterns SVG',.P_SINGLEVALUE.,'IfcLabel',$,$,$,$,$,.READWRITE.);
|
||||||
#23=IFCSIMPLEPROPERTYTEMPLATE('26qFNMv7nCHgU6Jd7Anga5',$,'ShadingStylesPath','Default shading styles',.P_SINGLEVALUE.,'IfcLabel',$,$,$,$,$,.READWRITE.);
|
#23=IFCSIMPLEPROPERTYTEMPLATE('26qFNMv7nCHgU6Jd7Anga5',$,'ShadingStylesPath','Default shading styles',.P_SINGLEVALUE.,'IfcLabel',$,$,$,$,$,.READWRITE.);
|
||||||
#24=IFCPROPERTYSETTEMPLATE('0I9merLinF5Ap$aZwaclgm',$,'BBIM_Dimension','',.PSET_TYPEDRIVENOVERRIDE.,'IfcAnnotation/DIMENSION,IfcAnnotation/RADIUS,IfcAnnotation/DIAMETER,IfcTypeProduct',(#25,#26,#27,#28,#30,#34));
|
#24=IFCPROPERTYSETTEMPLATE('0I9merLinF5Ap$aZwaclgm',$,'BBIM_Dimension','',.PSET_TYPEDRIVENOVERRIDE.,'IfcAnnotation/DIMENSION,IfcAnnotation/RADIUS,IfcAnnotation/DIAMETER,IfcTypeProduct',(#25,#26,#35,#27,#28,#30,#34));
|
||||||
#25=IFCSIMPLEPROPERTYTEMPLATE('1rL2AbQsXD8RbpoWH5pYOV',$,'ShowDescriptionOnly','Hide the measurement values and show only annotation description',.P_SINGLEVALUE.,'IfcBoolean',$,$,$,$,$,.READWRITE.);
|
#25=IFCSIMPLEPROPERTYTEMPLATE('1rL2AbQsXD8RbpoWH5pYOV',$,'ShowDescriptionOnly','Hide the measurement values and show only annotation description',.P_SINGLEVALUE.,'IfcBoolean',$,$,$,$,$,.READWRITE.);
|
||||||
#26=IFCSIMPLEPROPERTYTEMPLATE('0SVyOfB0rC2xNfdRYf3XvY',$,'SuppressZeroInches','Suppress 0 inch values in dimension annotation text (for example: 12'' - 0" -> 12'')',.P_SINGLEVALUE.,'IfcBoolean',$,$,$,$,$,.READWRITE.);
|
#26=IFCSIMPLEPROPERTYTEMPLATE('0SVyOfB0rC2xNfdRYf3XvY',$,'SuppressZeroInches','Suppress 0 inch values in dimension annotation text (for example: 12'' - 0" -> 12'')',.P_SINGLEVALUE.,'IfcBoolean',$,$,$,$,$,.READWRITE.);
|
||||||
#27=IFCSIMPLEPROPERTYTEMPLATE('2bUmj458PBqPAtUoI3MXsb',$,'TextPrefix','Text to add before annotation measurement value',.P_SINGLEVALUE.,'IfcLabel',$,$,$,$,$,.READWRITE.);
|
#27=IFCSIMPLEPROPERTYTEMPLATE('2bUmj458PBqPAtUoI3MXsb',$,'TextPrefix','Text to add before annotation measurement value',.P_SINGLEVALUE.,'IfcLabel',$,$,$,$,$,.READWRITE.);
|
||||||
@@ -38,6 +38,7 @@ DATA;
|
|||||||
#31=IFCPROPERTYENUMERATION('CustomUnit',(IFCTEXT('Feet and Inches - Fractional'),IFCTEXT('Feet - Decimal'),IFCTEXT('Inches - Fractional'),IFCTEXT('Inches - Decimal'),IFCTEXT('Meters'),IFCTEXT('Decimeters'),IFCTEXT('Centimeters'),IFCTEXT('Millimeters')),$);
|
#31=IFCPROPERTYENUMERATION('CustomUnit',(IFCTEXT('Feet and Inches - Fractional'),IFCTEXT('Feet - Decimal'),IFCTEXT('Inches - Fractional'),IFCTEXT('Inches - Decimal'),IFCTEXT('Meters'),IFCTEXT('Decimeters'),IFCTEXT('Centimeters'),IFCTEXT('Millimeters')),$);
|
||||||
#32=IFCSIMPLEPROPERTYTEMPLATE('0gjJzDYBX8P85qn1xcAOOo',$,'Reverse_List','',.P_SINGLEVALUE.,'IfcBoolean',$,$,$,$,$,.READWRITE.);
|
#32=IFCSIMPLEPROPERTYTEMPLATE('0gjJzDYBX8P85qn1xcAOOo',$,'Reverse_List','',.P_SINGLEVALUE.,'IfcBoolean',$,$,$,$,$,.READWRITE.);
|
||||||
#34=IFCSIMPLEPROPERTYTEMPLATE('1Kx4Pm9nR8vBwZqTs2uYeL',$,'Separator','Characters placed between multiple dimension values when CustomUnit has more than one unit selected (default: '' / '')',.P_SINGLEVALUE.,'IfcLabel',$,$,$,$,$,.READWRITE.);
|
#34=IFCSIMPLEPROPERTYTEMPLATE('1Kx4Pm9nR8vBwZqTs2uYeL',$,'Separator','Characters placed between multiple dimension values when CustomUnit has more than one unit selected (default: '' / '')',.P_SINGLEVALUE.,'IfcLabel',$,$,$,$,$,.READWRITE.);
|
||||||
|
#35=IFCSIMPLEPROPERTYTEMPLATE('3Nf6Qs1mT0pWxBuCvDyEzA',$,'SuppressZeroFeet','Suppress 0 feet in dimension annotation text (for example: 0'' - 3 1/2" -> 3 1/2")',.P_SINGLEVALUE.,'IfcBoolean',$,$,$,$,$,.READWRITE.);
|
||||||
#33=IFCSIMPLEPROPERTYTEMPLATE('22TrcxF8jFNB4buSmzjGEF',$,'List_Separator','',.P_SINGLEVALUE.,'IfcText',$,$,$,$,$,.READWRITE.);
|
#33=IFCSIMPLEPROPERTYTEMPLATE('22TrcxF8jFNB4buSmzjGEF',$,'List_Separator','',.P_SINGLEVALUE.,'IfcText',$,$,$,$,$,.READWRITE.);
|
||||||
ENDSEC;
|
ENDSEC;
|
||||||
END-ISO-10303-21;
|
END-ISO-10303-21;
|
||||||
|
|||||||
@@ -799,6 +799,7 @@ class DecoratorData:
|
|||||||
pset_data = ifcopenshell.util.element.get_pset(element, "BBIM_Dimension") or {}
|
pset_data = ifcopenshell.util.element.get_pset(element, "BBIM_Dimension") or {}
|
||||||
show_description_only = pset_data.get("ShowDescriptionOnly", False)
|
show_description_only = pset_data.get("ShowDescriptionOnly", False)
|
||||||
suppress_zero_inches = pset_data.get("SuppressZeroInches", False)
|
suppress_zero_inches = pset_data.get("SuppressZeroInches", False)
|
||||||
|
suppress_zero_feet = pset_data.get("SuppressZeroFeet", False)
|
||||||
text_prefix = pset_data.get("TextPrefix", None) or ""
|
text_prefix = pset_data.get("TextPrefix", None) or ""
|
||||||
text_suffix = pset_data.get("TextSuffix", None) or ""
|
text_suffix = pset_data.get("TextSuffix", None) or ""
|
||||||
custom_units = list(pset_data.get("CustomUnit", None) or [])
|
custom_units = list(pset_data.get("CustomUnit", None) or [])
|
||||||
@@ -808,6 +809,7 @@ class DecoratorData:
|
|||||||
"dimension_style": dimension_style,
|
"dimension_style": dimension_style,
|
||||||
"show_description_only": show_description_only,
|
"show_description_only": show_description_only,
|
||||||
"suppress_zero_inches": suppress_zero_inches,
|
"suppress_zero_inches": suppress_zero_inches,
|
||||||
|
"suppress_zero_feet": suppress_zero_feet,
|
||||||
"text_prefix": text_prefix,
|
"text_prefix": text_prefix,
|
||||||
"text_suffix": text_suffix,
|
"text_suffix": text_suffix,
|
||||||
"fill_bg": fill_bg,
|
"fill_bg": fill_bg,
|
||||||
|
|||||||
@@ -490,7 +490,7 @@ class BaseDecorator:
|
|||||||
self.draw_label(context, text=text, line_no=line_number_start, multiline=True, **draw_label_kwargs)
|
self.draw_label(context, text=text, line_no=line_number_start, multiline=True, **draw_label_kwargs)
|
||||||
|
|
||||||
@cache
|
@cache
|
||||||
def format_value(self, context, value, suppress_zero_inches=False, custom_unit=None, in_unit_length=False):
|
def format_value(self, context, value, suppress_zero_inches=False, suppress_zero_feet=False, custom_unit=None, in_unit_length=False):
|
||||||
drawing_pset_data = DrawingsData.data["active_drawing_pset_data"]
|
drawing_pset_data = DrawingsData.data["active_drawing_pset_data"]
|
||||||
precision = drawing_pset_data.get("MetricPrecision", None)
|
precision = drawing_pset_data.get("MetricPrecision", None)
|
||||||
if not precision:
|
if not precision:
|
||||||
@@ -502,6 +502,7 @@ class BaseDecorator:
|
|||||||
precision=precision,
|
precision=precision,
|
||||||
decimal_places=decimal_places,
|
decimal_places=decimal_places,
|
||||||
suppress_zero_inches=suppress_zero_inches,
|
suppress_zero_inches=suppress_zero_inches,
|
||||||
|
suppress_zero_feet=suppress_zero_feet,
|
||||||
custom_unit=custom_unit,
|
custom_unit=custom_unit,
|
||||||
in_unit_length=in_unit_length,
|
in_unit_length=in_unit_length,
|
||||||
)
|
)
|
||||||
@@ -751,6 +752,7 @@ class DimensionDecorator(BaseDecorator):
|
|||||||
context,
|
context,
|
||||||
length,
|
length,
|
||||||
suppress_zero_inches=dimension_data["suppress_zero_inches"],
|
suppress_zero_inches=dimension_data["suppress_zero_inches"],
|
||||||
|
suppress_zero_feet=dimension_data["suppress_zero_feet"],
|
||||||
custom_unit=unit,
|
custom_unit=unit,
|
||||||
)
|
)
|
||||||
for unit in units_to_format
|
for unit in units_to_format
|
||||||
@@ -971,7 +973,7 @@ class RadiusDecorator(BaseDecorator):
|
|||||||
def get_text():
|
def get_text():
|
||||||
length = (spline_points[-1] - spline_points[-2]).length
|
length = (spline_points[-1] - spline_points[-2]).length
|
||||||
units_to_format = dimension_data["custom_units"] if dimension_data["custom_units"] else [None]
|
units_to_format = dimension_data["custom_units"] if dimension_data["custom_units"] else [None]
|
||||||
parts = [self.format_value(context, length, custom_unit=unit) for unit in units_to_format]
|
parts = [self.format_value(context, length, suppress_zero_feet=dimension_data["suppress_zero_feet"], custom_unit=unit) for unit in units_to_format]
|
||||||
return "R" + dimension_data["separator"].join(str(p) for p in parts)
|
return "R" + dimension_data["separator"].join(str(p) for p in parts)
|
||||||
|
|
||||||
self.draw_dimension_text(
|
self.draw_dimension_text(
|
||||||
|
|||||||
@@ -170,6 +170,7 @@ def format_distance(
|
|||||||
precision=None,
|
precision=None,
|
||||||
decimal_places=None,
|
decimal_places=None,
|
||||||
suppress_zero_inches=False,
|
suppress_zero_inches=False,
|
||||||
|
suppress_zero_feet=False,
|
||||||
in_unit_length=False,
|
in_unit_length=False,
|
||||||
custom_unit=None,
|
custom_unit=None,
|
||||||
):
|
):
|
||||||
@@ -310,10 +311,10 @@ def format_distance(
|
|||||||
tx_dist = ""
|
tx_dist = ""
|
||||||
if feet:
|
if feet:
|
||||||
tx_dist += str(feet) + "'"
|
tx_dist += str(feet) + "'"
|
||||||
if not feet and not add_inches:
|
if not feet and not add_inches and not suppress_zero_feet:
|
||||||
tx_dist += str(feet) + "'"
|
tx_dist += str(feet) + "'"
|
||||||
|
|
||||||
if not feet and add_inches and unit_length != "INCHES":
|
if not feet and add_inches and unit_length != "INCHES" and not suppress_zero_feet:
|
||||||
if value < 0:
|
if value < 0:
|
||||||
tx_dist += "-0' - "
|
tx_dist += "-0' - "
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -1377,6 +1377,7 @@ class SvgWriter:
|
|||||||
radius,
|
radius,
|
||||||
precision=self.precision,
|
precision=self.precision,
|
||||||
decimal_places=self.decimal_places,
|
decimal_places=self.decimal_places,
|
||||||
|
suppress_zero_feet=dimension_data["suppress_zero_feet"],
|
||||||
custom_unit=unit,
|
custom_unit=unit,
|
||||||
)
|
)
|
||||||
for unit in units_to_format
|
for unit in units_to_format
|
||||||
@@ -1506,6 +1507,7 @@ class SvgWriter:
|
|||||||
text_format=lambda x: "D" + x,
|
text_format=lambda x: "D" + x,
|
||||||
show_description_only=dimension_data["show_description_only"],
|
show_description_only=dimension_data["show_description_only"],
|
||||||
suppress_zero_inches=dimension_data["suppress_zero_inches"],
|
suppress_zero_inches=dimension_data["suppress_zero_inches"],
|
||||||
|
suppress_zero_feet=dimension_data["suppress_zero_feet"],
|
||||||
text_prefix=dimension_data["text_prefix"],
|
text_prefix=dimension_data["text_prefix"],
|
||||||
text_suffix=dimension_data["text_suffix"],
|
text_suffix=dimension_data["text_suffix"],
|
||||||
fill_bg=dimension_data["fill_bg"],
|
fill_bg=dimension_data["fill_bg"],
|
||||||
@@ -1533,6 +1535,7 @@ class SvgWriter:
|
|||||||
dimension_text=dimension_text,
|
dimension_text=dimension_text,
|
||||||
show_description_only=dimension_data["show_description_only"],
|
show_description_only=dimension_data["show_description_only"],
|
||||||
suppress_zero_inches=dimension_data["suppress_zero_inches"],
|
suppress_zero_inches=dimension_data["suppress_zero_inches"],
|
||||||
|
suppress_zero_feet=dimension_data["suppress_zero_feet"],
|
||||||
text_prefix=dimension_data["text_prefix"],
|
text_prefix=dimension_data["text_prefix"],
|
||||||
text_suffix=dimension_data["text_suffix"],
|
text_suffix=dimension_data["text_suffix"],
|
||||||
fill_bg=dimension_data["fill_bg"],
|
fill_bg=dimension_data["fill_bg"],
|
||||||
@@ -1561,6 +1564,7 @@ class SvgWriter:
|
|||||||
text_format=lambda x: x,
|
text_format=lambda x: x,
|
||||||
show_description_only=False,
|
show_description_only=False,
|
||||||
suppress_zero_inches=False,
|
suppress_zero_inches=False,
|
||||||
|
suppress_zero_feet=False,
|
||||||
text_prefix="",
|
text_prefix="",
|
||||||
text_suffix="",
|
text_suffix="",
|
||||||
fill_bg=False,
|
fill_bg=False,
|
||||||
@@ -1601,6 +1605,7 @@ class SvgWriter:
|
|||||||
precision=self.precision,
|
precision=self.precision,
|
||||||
decimal_places=self.decimal_places,
|
decimal_places=self.decimal_places,
|
||||||
suppress_zero_inches=suppress_zero_inches,
|
suppress_zero_inches=suppress_zero_inches,
|
||||||
|
suppress_zero_feet=suppress_zero_feet,
|
||||||
custom_unit=unit,
|
custom_unit=unit,
|
||||||
)
|
)
|
||||||
for unit in units_to_format
|
for unit in units_to_format
|
||||||
|
|||||||
Reference in New Issue
Block a user