From 2310bf628f1a1d5a08418567479b8d34c8cb21d7 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 15 Sep 2020 15:59:52 +1000 Subject: [PATCH] You can now set facet tolerances (angular and deflection tolerance) when importing. See #766. --- src/ifcblenderexport/blenderbim/bim/import_ifc.py | 5 +++++ src/ifcblenderexport/blenderbim/bim/prop.py | 2 ++ src/ifcblenderexport/blenderbim/bim/ui.py | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/src/ifcblenderexport/blenderbim/bim/import_ifc.py b/src/ifcblenderexport/blenderbim/bim/import_ifc.py index 13fed1c88d..989e6cc961 100644 --- a/src/ifcblenderexport/blenderbim/bim/import_ifc.py +++ b/src/ifcblenderexport/blenderbim/bim/import_ifc.py @@ -251,6 +251,9 @@ class IfcImporter(): self.diff = None self.file = None self.settings = ifcopenshell.geom.settings() + self.settings.set_deflection_tolerance(self.ifc_import_settings.deflection_tolerance) + # Uncomment this when the latest IfcOpenBot build is ready + # self.settings.set_angular_tolerance(self.ifc_import_settings.angular_tolerance) if self.ifc_import_settings.should_import_curves: self.settings.set(self.settings.INCLUDE_CURVES, True) self.settings_native = ifcopenshell.geom.settings() @@ -2066,4 +2069,6 @@ class IfcImportSettings: settings.should_merge_by_material = scene_bim.import_should_merge_by_material settings.should_merge_materials_by_colour = scene_bim.import_should_merge_materials_by_colour settings.should_clean_mesh = scene_bim.import_should_clean_mesh + settings.deflection_tolerance = scene_bim.import_deflection_tolerance + settings.angular_tolerance = scene_bim.import_angular_tolerance return settings diff --git a/src/ifcblenderexport/blenderbim/bim/prop.py b/src/ifcblenderexport/blenderbim/bim/prop.py index 6caccbddf3..b9548f1ba0 100644 --- a/src/ifcblenderexport/blenderbim/bim/prop.py +++ b/src/ifcblenderexport/blenderbim/bim/prop.py @@ -1215,6 +1215,8 @@ class BIMProperties(PropertyGroup): import_should_merge_by_material: BoolProperty(name="Import and Merge by Material", default=False) import_should_merge_materials_by_colour: BoolProperty(name="Import and Merge Materials by Colour", default=False) import_should_clean_mesh: BoolProperty(name="Import and Clean Mesh", default=True) + import_deflection_tolerance: FloatProperty(name="Import Deflection Tolerance", default=0.001) + import_angular_tolerance: FloatProperty(name="Import Angular Tolerance", default=0.5) qa_reject_element_reason: StringProperty(name="Element Rejection Reason") person: EnumProperty(items=getPersons, name="Person") organisation: EnumProperty(items=getOrganisations, name="Organisation") diff --git a/src/ifcblenderexport/blenderbim/bim/ui.py b/src/ifcblenderexport/blenderbim/bim/ui.py index c1f02e1818..1c5eb13bc3 100644 --- a/src/ifcblenderexport/blenderbim/bim/ui.py +++ b/src/ifcblenderexport/blenderbim/bim/ui.py @@ -1700,6 +1700,10 @@ class BIM_PT_mvd(Panel): row = layout.row() row.prop(bim_properties, 'import_should_import_with_profiling') row = layout.row() + row.prop(bim_properties, 'import_deflection_tolerance') + row = layout.row() + row.prop(bim_properties, 'import_angular_tolerance') + row = layout.row() row.prop(bim_properties, 'export_json_compact') layout.label(text='Simplifications:')