mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-26 02:07:36 +00:00
Simple recipe to merge two IFC files
This commit is contained in:
@@ -0,0 +1,19 @@
|
|||||||
|
import ifcopenshell
|
||||||
|
import ifcopenshell.util.element
|
||||||
|
|
||||||
|
class Patcher:
|
||||||
|
def __init__(self, src, file, logger, args=None):
|
||||||
|
self.src = src
|
||||||
|
self.file = file
|
||||||
|
self.logger = logger
|
||||||
|
self.args = args
|
||||||
|
|
||||||
|
def patch(self):
|
||||||
|
source = ifcopenshell.open(self.args[0])
|
||||||
|
original_project = self.file.by_type('IfcProject')[0]
|
||||||
|
merged_project = self.file.add(source.by_type('IfcProject')[0])
|
||||||
|
for element in source.by_type('IfcRoot'):
|
||||||
|
self.file.add(element)
|
||||||
|
for inverse in self.file.get_inverse(merged_project):
|
||||||
|
ifcopenshell.util.element.replace_attribute(inverse, merged_project, original_project)
|
||||||
|
self.file.remove(merged_project)
|
||||||
Reference in New Issue
Block a user