diff --git a/src/blenderbim/blenderbim/bim/helper.py b/src/blenderbim/blenderbim/bim/helper.py
index 37807c275c..230022467b 100644
--- a/src/blenderbim/blenderbim/bim/helper.py
+++ b/src/blenderbim/blenderbim/bim/helper.py
@@ -120,7 +120,6 @@ class IfcHeaderExtractor:
line = next(ifc_file)
if isinstance(line, bytes):
line = line.decode("utf-8")
- print(line)
if line.startswith("FILE_DESCRIPTION"):
for i, part in enumerate(line.split("'")):
if i == 1:
diff --git a/src/blenderbim/blenderbim/bim/module/patch/operator.py b/src/blenderbim/blenderbim/bim/module/patch/operator.py
index 6f3e6647c3..08fde84fc2 100644
--- a/src/blenderbim/blenderbim/bim/module/patch/operator.py
+++ b/src/blenderbim/blenderbim/bim/module/patch/operator.py
@@ -128,6 +128,9 @@ class RunMigratePatch(bpy.types.Operator):
def execute(self, context):
core.run_migrate_patch(tool.Patch, infile=self.infile, outfile=self.outfile, schema=self.schema)
- bpy.ops.file.refresh()
+ try:
+ bpy.ops.file.refresh()
+ except:
+ pass # Probably running in headless mode
blenderbim.bim.handler.refresh_ui_data()
return {"FINISHED"}
diff --git a/src/blenderbim/test/core/test_patch.py b/src/blenderbim/test/core/test_patch.py
index 436e8cc496..37b8b1bbd4 100644
--- a/src/blenderbim/test/core/test_patch.py
+++ b/src/blenderbim/test/core/test_patch.py
@@ -16,11 +16,11 @@
# You should have received a copy of the GNU General Public License
# along with BlenderBIM Add-on. If not, see .
-import blenderbim.core.owner as subject
+import blenderbim.core.patch as subject
from test.core.bootstrap import patch
class TestRunMigratePatch:
def test_run(self, patch):
patch.run_migrate_patch("infile", "outfile", "schema").should_be_called()
- assert subject.run_migrate_patch(patch, infile="infile", outfile="outfile", schema="schema")
+ subject.run_migrate_patch(patch, infile="infile", outfile="outfile", schema="schema")
diff --git a/src/ifcpatch/ifcpatch/recipes/ExtractElements.py b/src/ifcpatch/ifcpatch/recipes/ExtractElements.py
index 2e6f5ce375..69c5b56173 100644
--- a/src/ifcpatch/ifcpatch/recipes/ExtractElements.py
+++ b/src/ifcpatch/ifcpatch/recipes/ExtractElements.py
@@ -18,6 +18,7 @@
# along with IfcPatch. If not, see .
import ifcopenshell
+import ifcopenshell.api
import ifcopenshell.util.selector
@@ -49,18 +50,17 @@ class Patcher:
self.file = self.new
def add_element(self, element):
- new_element = self.new.add(element)
+ new_element = ifcopenshell.api.run("project.append_asset", self.new, library=self.file, element=element)
+ if not new_element:
+ return
for rel in element.ContainedInStructure:
spatial_element = rel.RelatingStructure
new_spatial_element = self.new.add(spatial_element)
self.contained_ins.setdefault(spatial_element.GlobalId, set()).add(new_element)
self.add_spatial_tree(spatial_element, new_spatial_element)
for rel in element.Decomposes:
- self.new.add(rel.RelatingObject)
+ ifcopenshell.api.run("project.append_asset", self.new, library=self.file, element=rel.RelatingObject)
self.aggregates.setdefault(rel.RelatingObject.GlobalId, set()).add(new_element)
- for opening in element.HasOpenings:
- self.new.add(opening)
- self.new.add(opening.RelatedOpeningElement)
def add_spatial_tree(self, spatial_element, new_spatial_element):
for rel in spatial_element.Decomposes: