mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-22 20:02:30 +00:00
Fix #2427. Don't treat missing mandatory attributes as fatal in IFC version migration
This commit is contained in:
@@ -125,6 +125,8 @@ class Migrator:
|
|||||||
}
|
}
|
||||||
|
|
||||||
def migrate(self, element, new_file):
|
def migrate(self, element, new_file):
|
||||||
|
if element.id() == 0:
|
||||||
|
return new_file.create_entity(element.is_a(), element.wrappedValue)
|
||||||
try:
|
try:
|
||||||
return new_file.by_id(self.migrated_ids[element.id()])
|
return new_file.by_id(self.migrated_ids[element.id()])
|
||||||
except:
|
except:
|
||||||
@@ -214,13 +216,12 @@ class Migrator:
|
|||||||
for item in value:
|
for item in value:
|
||||||
new_value.append(self.migrate(item, new_file))
|
new_value.append(self.migrate(item, new_file))
|
||||||
value = new_value
|
value = new_value
|
||||||
setattr(new_element, attribute.name(), value)
|
if value is not None:
|
||||||
|
setattr(new_element, attribute.name(), value)
|
||||||
|
|
||||||
def generate_default_value(self, attribute, new_file):
|
def generate_default_value(self, attribute, new_file):
|
||||||
if attribute.name() in self.default_values:
|
if attribute.name() in self.default_values:
|
||||||
return self.default_values[attribute.name()]
|
return self.default_values[attribute.name()]
|
||||||
elif self.default_entities[attribute.name()]:
|
|
||||||
return self.default_entities[attribute.name()]
|
|
||||||
elif attribute.name() == "OwnerHistory":
|
elif attribute.name() == "OwnerHistory":
|
||||||
self.default_entities[attribute.name()] = new_file.create_entity(
|
self.default_entities[attribute.name()] = new_file.create_entity(
|
||||||
"IfcOwnerHistory",
|
"IfcOwnerHistory",
|
||||||
@@ -249,4 +250,4 @@ class Migrator:
|
|||||||
"CreationDate": int(time.time()),
|
"CreationDate": int(time.time()),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
return self.default_entities[attribute.name()]
|
return self.default_entities.get(attribute.name(), None)
|
||||||
|
|||||||
Reference in New Issue
Block a user