Deprecate the "allow non-element aggregates" workaround for prostructures as the new aggregate system should make it obsolete.

This commit is contained in:
Dion Moult
2021-03-05 16:42:39 +11:00
parent 13fe011c75
commit 76487ea3bf
2 changed files with 1 additions and 26 deletions
@@ -321,9 +321,6 @@ class IfcImporter:
self.profile_code("Loading file")
self.set_ifc_file()
self.profile_code("Setting file")
if self.ifc_import_settings.should_auto_set_workarounds:
self.auto_set_workarounds()
self.profile_code("Set vendor worksarounds")
self.calculate_unit_scale()
self.profile_code("Calculate unit scale")
self.calculate_model_offset()
@@ -375,13 +372,6 @@ class IfcImporter:
self.set_default_context()
self.profile_code("Setting default context")
def auto_set_workarounds(self):
applications = self.file.by_type("IfcApplication")
if not applications:
return
if "prostructures" in applications[0].ApplicationFullName.lower():
self.ifc_import_settings.should_allow_non_element_aggregates = True
def is_element_far_away(self, element):
try:
return self.is_point_far_away(element.ObjectPlacement.RelativePlacement.Location)
@@ -1178,19 +1168,7 @@ class IfcImporter:
self.add_related_objects(collection, rel_aggregate.RelatedObjects)
def create_aggregates(self):
if self.ifc_import_settings.should_allow_non_element_aggregates:
if self.file.schema == "IFC2X3":
rel_aggregates = [
a
for a in self.file.by_type("IfcRelAggregates")
if not a.RelatingObject.is_a("IfcSpatialStructureElement")
]
else:
rel_aggregates = [
a for a in self.file.by_type("IfcRelAggregates") if not a.RelatingObject.is_a("IfcSpatialElement")
]
else:
rel_aggregates = [a for a in self.file.by_type("IfcRelAggregates") if a.RelatingObject.is_a("IfcElement")]
rel_aggregates = [a for a in self.file.by_type("IfcRelAggregates") if a.RelatingObject.is_a("IfcElement")]
for rel_aggregate in rel_aggregates:
self.create_aggregate(rel_aggregate)
@@ -1572,7 +1550,6 @@ class IfcImportSettings:
self.should_clean_mesh = True
self.deflection_tolerance = 0.001
self.angular_tolerance = 0.5
self.should_allow_non_element_aggregates = False
self.should_offset_model = False
self.model_offset_coordinates = (0, 0, 0)
self.ifc_import_filter = "NONE"
@@ -124,7 +124,6 @@ class ImportIFC(bpy.types.Operator, ImportHelper):
should_clean_mesh: bpy.props.BoolProperty(name="Import and Clean Mesh", default=True)
deflection_tolerance: bpy.props.FloatProperty(name="Import Deflection Tolerance", default=0.001)
angular_tolerance: bpy.props.FloatProperty(name="Import Angular Tolerance", default=0.5)
should_allow_non_element_aggregates: bpy.props.BoolProperty(name="Import Non-Element Aggregates", default=False)
should_offset_model: bpy.props.BoolProperty(name="Import and Offset Model", default=False)
model_offset_coordinates: bpy.props.StringProperty(name="Model Offset Coordinates", default="0,0,0")
ifc_import_filter: bpy.props.EnumProperty(
@@ -150,7 +149,6 @@ class ImportIFC(bpy.types.Operator, ImportHelper):
settings.should_clean_mesh = self.should_clean_mesh
settings.deflection_tolerance = self.deflection_tolerance
settings.angular_tolerance = self.angular_tolerance
settings.should_allow_non_element_aggregates = self.should_allow_non_element_aggregates
settings.should_offset_model = self.should_offset_model
settings.model_offset_coordinates = (
[float(o) for o in self.model_offset_coordinates.split(",")]