diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index b659ea2a69..a36ed6138f 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -908,14 +908,14 @@ class OverrideDuplicateMoveAggregate(bpy.types.Operator): "pset.edit_pset", tool.Ifc.get(), pset=tool.Ifc.get().by_id(pset["id"]), - properties={"Data": json.dumps(data)}, + properties={"Data": tool.Ifc.get().createIfcText(json.dumps(data))}, ) else: ifcopenshell.api.run( "pset.edit_pset", tool.Ifc.get(), pset=tool.Ifc.get().by_id(pset["id"]), - properties={"Parent": parent.GlobalId, "Data": json.dumps(data)}, + properties={"Parent": parent.GlobalId, "Data": tool.Ifc.get().createIfcText(json.dumps(data))}, ) else: @@ -927,7 +927,7 @@ class OverrideDuplicateMoveAggregate(bpy.types.Operator): "pset.edit_pset", tool.Ifc.get(), pset=pset, - properties={"Parent": parent.GlobalId, "Data": json.dumps(data)}, + properties={"Parent": parent.GlobalId, "Data": tool.Ifc.get().createIfcText(json.dumps(data))}, ) def add_child_to_assembly_data(new_entity): @@ -941,7 +941,7 @@ class OverrideDuplicateMoveAggregate(bpy.types.Operator): "pset.edit_pset", tool.Ifc.get(), pset=tool.Ifc.get().by_id(parent_pset["id"]), - properties={"Data": json.dumps(data)}, + properties={"Data": tool.Ifc.get().createIfcText(json.dumps(data))}, ) def create_data_structure(entity, level=-1): @@ -1215,7 +1215,10 @@ class RefreshAggregate(bpy.types.Operator): "pset.edit_pset", tool.Ifc.get(), pset=pset, - properties={"Parent": instance_entity.GlobalId, "Data": json.dumps(data)}, + properties={ + "Parent": instance_entity.GlobalId, + "Data": tool.Ifc.get().createIfcText(json.dumps(data)), + }, ) part_obj = tool.Ifc.get_object(part) @@ -1254,7 +1257,10 @@ class RefreshAggregate(bpy.types.Operator): "pset.edit_pset", tool.Ifc.get(), pset=pset, - properties={"Parent": instance_entity.GlobalId, "Data": json.dumps(data)}, + properties={ + "Parent": instance_entity.GlobalId, + "Data": tool.Ifc.get().createIfcText(json.dumps(data)), + }, ) part_obj = tool.Ifc.get_object(part) diff --git a/src/blenderbim/blenderbim/bim/module/model/array.py b/src/blenderbim/blenderbim/bim/module/model/array.py index f8a40c2713..7ecef126fc 100644 --- a/src/blenderbim/blenderbim/bim/module/model/array.py +++ b/src/blenderbim/blenderbim/bim/module/model/array.py @@ -59,7 +59,7 @@ class AddArray(bpy.types.Operator, tool.Ifc.Operator): "pset.edit_pset", tool.Ifc.get(), pset=pset, - properties={"Parent": element.GlobalId, "Data": json.dumps(data)}, + properties={"Parent": element.GlobalId, "Data": tool.Ifc.get().createIfcText(json.dumps(data))}, ) return {"FINISHED"} @@ -132,7 +132,7 @@ class EditArray(bpy.types.Operator, tool.Ifc.Operator): tool.Model.regenerate_array(parent, data) pset = tool.Ifc.get().by_id(pset["id"]) - data = json.dumps(data) + data = tool.Ifc.get().createIfcText(json.dumps(data)) ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": data}) tool.Blender.Modifier.Array.set_children_lock_state(element, self.item, True) @@ -196,7 +196,7 @@ class RemoveArray(bpy.types.Operator, tool.Ifc.Operator): ifcopenshell.api.run("pset.remove_pset", tool.Ifc.get(), pset=pset) else: del data[self.item] - data = json.dumps(data) + data = tool.Ifc.get().createIfcText(json.dumps(data)) ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": data}) tool.Blender.Modifier.Array.constrain_children_to_parent(element) diff --git a/src/blenderbim/blenderbim/bim/module/model/door.py b/src/blenderbim/blenderbim/bim/module/model/door.py index 06411761e9..a00559afec 100644 --- a/src/blenderbim/blenderbim/bim/module/model/door.py +++ b/src/blenderbim/blenderbim/bim/module/model/door.py @@ -549,7 +549,7 @@ class AddDoor(bpy.types.Operator, tool.Ifc.Operator): "pset.edit_pset", tool.Ifc.get(), pset=pset, - properties={"Data": json.dumps(door_data, default=list)}, + properties={"Data": tool.Ifc.get().createIfcText(json.dumps(door_data, default=list))}, ) update_door_modifier_representation(context, obj) return {"FINISHED"} @@ -608,7 +608,7 @@ class FinishEditingDoor(bpy.types.Operator, tool.Ifc.Operator): update_door_modifier_representation(context, obj) pset = tool.Pset.get_element_pset(element, "BBIM_Door") - door_data = json.dumps(door_data, default=list) + door_data = tool.Ifc.get().createIfcText(json.dumps(door_data, default=list)) ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": door_data}) return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/model/mep.py b/src/blenderbim/blenderbim/bim/module/model/mep.py index dfe709eaf6..f7a96f9431 100644 --- a/src/blenderbim/blenderbim/bim/module/model/mep.py +++ b/src/blenderbim/blenderbim/bim/module/model/mep.py @@ -856,7 +856,7 @@ class MEPAddTransition(bpy.types.Operator, tool.Ifc.Operator): "pset.edit_pset", tool.Ifc.get(), pset=pset, - properties={"Data": json.dumps(transition_data, default=list)}, + properties={"Data": tool.Ifc.get().createIfcText(json.dumps(transition_data, default=list))}, ) tool.System.add_ports(obj, offset_end_port=profile_offset_si) @@ -1200,7 +1200,7 @@ class MEPAddBend(bpy.types.Operator, tool.Ifc.Operator): "pset.edit_pset", tool.Ifc.get(), pset=pset, - properties={"Data": json.dumps(bend_data, default=list)}, + properties={"Data": tool.Ifc.get().createIfcText(json.dumps(bend_data, default=list))}, ) tool.System.add_ports(obj, end_port_pos=second_object_offset) diff --git a/src/blenderbim/blenderbim/bim/module/model/railing.py b/src/blenderbim/blenderbim/bim/module/model/railing.py index 87ebfb2a98..28aaab790d 100644 --- a/src/blenderbim/blenderbim/bim/module/model/railing.py +++ b/src/blenderbim/blenderbim/bim/module/model/railing.py @@ -114,7 +114,7 @@ def update_bbim_railing_pset(element, railing_data): pset = tool.Pset.get_element_pset(element, "BBIM_Railing") if not pset: pset = ifcopenshell.api.run("pset.add_pset", tool.Ifc.get(), product=element, name="BBIM_Railing") - railing_data = json.dumps(railing_data, default=list) + railing_data = tool.Ifc.get().createIfcText(json.dumps(railing_data, default=list)) ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": railing_data}) diff --git a/src/blenderbim/blenderbim/bim/module/model/roof.py b/src/blenderbim/blenderbim/bim/module/model/roof.py index e8b529cf96..5582f15879 100644 --- a/src/blenderbim/blenderbim/bim/module/model/roof.py +++ b/src/blenderbim/blenderbim/bim/module/model/roof.py @@ -412,7 +412,7 @@ def update_bbim_roof_pset(element, roof_data): pset = tool.Pset.get_element_pset(element, "BBIM_Roof") if not pset: pset = ifcopenshell.api.run("pset.add_pset", tool.Ifc.get(), product=element, name="BBIM_Roof") - roof_data = json.dumps(roof_data, default=list) + roof_data = tool.Ifc.get().createIfcText(json.dumps(roof_data, default=list)) ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": roof_data}) diff --git a/src/blenderbim/blenderbim/bim/module/model/stair.py b/src/blenderbim/blenderbim/bim/module/model/stair.py index 1f82c4ee44..ec7d178387 100644 --- a/src/blenderbim/blenderbim/bim/module/model/stair.py +++ b/src/blenderbim/blenderbim/bim/module/model/stair.py @@ -377,7 +377,7 @@ class AddStair(bpy.types.Operator, tool.Ifc.Operator): "pset.edit_pset", ifc_file, pset=pset, - properties={"Data": json.dumps(stair_data)}, + properties={"Data": tool.Ifc.get().createIfcText(json.dumps(stair_data))}, ) regenerate_stair_mesh(context) update_ifc_stair_props(obj) @@ -419,7 +419,7 @@ class FinishEditingStair(bpy.types.Operator, tool.Ifc.Operator): update_stair_representation(obj) pset = tool.Pset.get_element_pset(element, "BBIM_Stair") - data = json.dumps(data) + data = tool.Ifc.get().createIfcText(json.dumps(data)) ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": data}) # update IfcStairFlight properties diff --git a/src/blenderbim/blenderbim/bim/module/model/sverchok_modifier.py b/src/blenderbim/blenderbim/bim/module/model/sverchok_modifier.py index ab54ef8d24..8a1946896a 100644 --- a/src/blenderbim/blenderbim/bim/module/model/sverchok_modifier.py +++ b/src/blenderbim/blenderbim/bim/module/model/sverchok_modifier.py @@ -169,7 +169,7 @@ class UpdateDataFromSverchok(bpy.types.Operator, tool.Ifc.Operator): "pset.edit_pset", tool.Ifc.get(), pset=pset, - properties={"Data": json.dumps(sverchok_data)}, + properties={"Data": tool.Ifc.get().createIfcText(json.dumps(sverchok_data))}, ) update_sverchok_modifier(context) diff --git a/src/blenderbim/blenderbim/bim/module/model/window.py b/src/blenderbim/blenderbim/bim/module/model/window.py index 43e0da7128..db204a7ac8 100644 --- a/src/blenderbim/blenderbim/bim/module/model/window.py +++ b/src/blenderbim/blenderbim/bim/module/model/window.py @@ -496,7 +496,7 @@ class AddWindow(bpy.types.Operator, tool.Ifc.Operator): "pset.edit_pset", tool.Ifc.get(), pset=pset, - properties={"Data": json.dumps(window_data, default=list)}, + properties={"Data": tool.Ifc.get().createIfcText(json.dumps(window_data, default=list))}, ) update_window_modifier_representation(context, obj) return {"FINISHED"} @@ -553,7 +553,7 @@ class FinishEditingWindow(bpy.types.Operator, tool.Ifc.Operator): update_window_modifier_representation(context, obj) pset = tool.Pset.get_element_pset(element, "BBIM_Window") - window_data = json.dumps(window_data, default=list) + window_data = tool.Ifc.get().createIfcText(json.dumps(window_data, default=list)) ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": window_data}) return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/tool/model.py b/src/blenderbim/blenderbim/tool/model.py index e58a13eaed..e974b675e3 100644 --- a/src/blenderbim/blenderbim/tool/model.py +++ b/src/blenderbim/blenderbim/tool/model.py @@ -513,7 +513,8 @@ class Model(blenderbim.core.tool.Model): else: pset = ifcopenshell.api.run("pset.add_pset", tool.Ifc.get(), product=element, name="BBIM_Boolean") data = boolean_ids - ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": json.dumps(data)}) + data = tool.Ifc.get().createIfcText(json.dumps(data)) + ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": data}) @classmethod def unmark_manual_booleans(cls, element, booleans): @@ -526,7 +527,8 @@ class Model(blenderbim.core.tool.Model): data = list(data) pset = tool.Ifc.get().by_id(pset["id"]) if data: - ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": json.dumps(data)}) + data = tool.Ifc.get().createIfcText(json.dumps(data)) + ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": data}) else: ifcopenshell.api.run("pset.remove_pset", tool.Ifc.get(), pset=pset) @@ -601,7 +603,7 @@ class Model(blenderbim.core.tool.Model): else: obj = tool.Ifc.get_object(element) array_pset = tool.Pset.get_element_pset(element, "BBIM_Array") - default_data = '[{"children": []}]' + default_data = tool.Ifc.get().createIfcText('[{"children": []}]') ifcopenshell.api.run( "pset.edit_pset", tool.Ifc.get(), @@ -611,7 +613,7 @@ class Model(blenderbim.core.tool.Model): tool.Model.regenerate_array(obj, array_data) - json_data = json.dumps(array_data) + json_data = tool.Ifc.get().createIfcText(json.dumps(array_data)) ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=array_pset, properties={"Data": json_data}) for i in range(len(array_data)):