mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-18 06:21:40 +00:00
Fix #3939. Bug where IfcLabel data type was incorrectly used for longer text data.
This commit is contained in:
@@ -908,14 +908,14 @@ class OverrideDuplicateMoveAggregate(bpy.types.Operator):
|
|||||||
"pset.edit_pset",
|
"pset.edit_pset",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
pset=tool.Ifc.get().by_id(pset["id"]),
|
pset=tool.Ifc.get().by_id(pset["id"]),
|
||||||
properties={"Data": json.dumps(data)},
|
properties={"Data": tool.Ifc.get().createIfcText(json.dumps(data))},
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
ifcopenshell.api.run(
|
ifcopenshell.api.run(
|
||||||
"pset.edit_pset",
|
"pset.edit_pset",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
pset=tool.Ifc.get().by_id(pset["id"]),
|
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:
|
else:
|
||||||
@@ -927,7 +927,7 @@ class OverrideDuplicateMoveAggregate(bpy.types.Operator):
|
|||||||
"pset.edit_pset",
|
"pset.edit_pset",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
pset=pset,
|
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):
|
def add_child_to_assembly_data(new_entity):
|
||||||
@@ -941,7 +941,7 @@ class OverrideDuplicateMoveAggregate(bpy.types.Operator):
|
|||||||
"pset.edit_pset",
|
"pset.edit_pset",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
pset=tool.Ifc.get().by_id(parent_pset["id"]),
|
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):
|
def create_data_structure(entity, level=-1):
|
||||||
@@ -1215,7 +1215,10 @@ class RefreshAggregate(bpy.types.Operator):
|
|||||||
"pset.edit_pset",
|
"pset.edit_pset",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
pset=pset,
|
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)
|
part_obj = tool.Ifc.get_object(part)
|
||||||
@@ -1254,7 +1257,10 @@ class RefreshAggregate(bpy.types.Operator):
|
|||||||
"pset.edit_pset",
|
"pset.edit_pset",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
pset=pset,
|
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)
|
part_obj = tool.Ifc.get_object(part)
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ class AddArray(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
"pset.edit_pset",
|
"pset.edit_pset",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
pset=pset,
|
pset=pset,
|
||||||
properties={"Parent": element.GlobalId, "Data": json.dumps(data)},
|
properties={"Parent": element.GlobalId, "Data": tool.Ifc.get().createIfcText(json.dumps(data))},
|
||||||
)
|
)
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@ class EditArray(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
tool.Model.regenerate_array(parent, data)
|
tool.Model.regenerate_array(parent, data)
|
||||||
|
|
||||||
pset = tool.Ifc.get().by_id(pset["id"])
|
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})
|
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)
|
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)
|
ifcopenshell.api.run("pset.remove_pset", tool.Ifc.get(), pset=pset)
|
||||||
else:
|
else:
|
||||||
del data[self.item]
|
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})
|
ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": data})
|
||||||
tool.Blender.Modifier.Array.constrain_children_to_parent(element)
|
tool.Blender.Modifier.Array.constrain_children_to_parent(element)
|
||||||
|
|
||||||
|
|||||||
@@ -549,7 +549,7 @@ class AddDoor(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
"pset.edit_pset",
|
"pset.edit_pset",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
pset=pset,
|
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)
|
update_door_modifier_representation(context, obj)
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
@@ -608,7 +608,7 @@ class FinishEditingDoor(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
update_door_modifier_representation(context, obj)
|
update_door_modifier_representation(context, obj)
|
||||||
|
|
||||||
pset = tool.Pset.get_element_pset(element, "BBIM_Door")
|
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})
|
ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": door_data})
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|||||||
@@ -856,7 +856,7 @@ class MEPAddTransition(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
"pset.edit_pset",
|
"pset.edit_pset",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
pset=pset,
|
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)
|
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",
|
"pset.edit_pset",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
pset=pset,
|
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)
|
tool.System.add_ports(obj, end_port_pos=second_object_offset)
|
||||||
|
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ def update_bbim_railing_pset(element, railing_data):
|
|||||||
pset = tool.Pset.get_element_pset(element, "BBIM_Railing")
|
pset = tool.Pset.get_element_pset(element, "BBIM_Railing")
|
||||||
if not pset:
|
if not pset:
|
||||||
pset = ifcopenshell.api.run("pset.add_pset", tool.Ifc.get(), product=element, name="BBIM_Railing")
|
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})
|
ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": railing_data})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -412,7 +412,7 @@ def update_bbim_roof_pset(element, roof_data):
|
|||||||
pset = tool.Pset.get_element_pset(element, "BBIM_Roof")
|
pset = tool.Pset.get_element_pset(element, "BBIM_Roof")
|
||||||
if not pset:
|
if not pset:
|
||||||
pset = ifcopenshell.api.run("pset.add_pset", tool.Ifc.get(), product=element, name="BBIM_Roof")
|
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})
|
ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": roof_data})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -377,7 +377,7 @@ class AddStair(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
"pset.edit_pset",
|
"pset.edit_pset",
|
||||||
ifc_file,
|
ifc_file,
|
||||||
pset=pset,
|
pset=pset,
|
||||||
properties={"Data": json.dumps(stair_data)},
|
properties={"Data": tool.Ifc.get().createIfcText(json.dumps(stair_data))},
|
||||||
)
|
)
|
||||||
regenerate_stair_mesh(context)
|
regenerate_stair_mesh(context)
|
||||||
update_ifc_stair_props(obj)
|
update_ifc_stair_props(obj)
|
||||||
@@ -419,7 +419,7 @@ class FinishEditingStair(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
update_stair_representation(obj)
|
update_stair_representation(obj)
|
||||||
|
|
||||||
pset = tool.Pset.get_element_pset(element, "BBIM_Stair")
|
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})
|
ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": data})
|
||||||
|
|
||||||
# update IfcStairFlight properties
|
# update IfcStairFlight properties
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ class UpdateDataFromSverchok(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
"pset.edit_pset",
|
"pset.edit_pset",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
pset=pset,
|
pset=pset,
|
||||||
properties={"Data": json.dumps(sverchok_data)},
|
properties={"Data": tool.Ifc.get().createIfcText(json.dumps(sverchok_data))},
|
||||||
)
|
)
|
||||||
update_sverchok_modifier(context)
|
update_sverchok_modifier(context)
|
||||||
|
|
||||||
|
|||||||
@@ -496,7 +496,7 @@ class AddWindow(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
"pset.edit_pset",
|
"pset.edit_pset",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
pset=pset,
|
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)
|
update_window_modifier_representation(context, obj)
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
@@ -553,7 +553,7 @@ class FinishEditingWindow(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
update_window_modifier_representation(context, obj)
|
update_window_modifier_representation(context, obj)
|
||||||
|
|
||||||
pset = tool.Pset.get_element_pset(element, "BBIM_Window")
|
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})
|
ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": window_data})
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|||||||
@@ -513,7 +513,8 @@ class Model(blenderbim.core.tool.Model):
|
|||||||
else:
|
else:
|
||||||
pset = ifcopenshell.api.run("pset.add_pset", tool.Ifc.get(), product=element, name="BBIM_Boolean")
|
pset = ifcopenshell.api.run("pset.add_pset", tool.Ifc.get(), product=element, name="BBIM_Boolean")
|
||||||
data = boolean_ids
|
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
|
@classmethod
|
||||||
def unmark_manual_booleans(cls, element, booleans):
|
def unmark_manual_booleans(cls, element, booleans):
|
||||||
@@ -526,7 +527,8 @@ class Model(blenderbim.core.tool.Model):
|
|||||||
data = list(data)
|
data = list(data)
|
||||||
pset = tool.Ifc.get().by_id(pset["id"])
|
pset = tool.Ifc.get().by_id(pset["id"])
|
||||||
if data:
|
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:
|
else:
|
||||||
ifcopenshell.api.run("pset.remove_pset", tool.Ifc.get(), pset=pset)
|
ifcopenshell.api.run("pset.remove_pset", tool.Ifc.get(), pset=pset)
|
||||||
|
|
||||||
@@ -601,7 +603,7 @@ class Model(blenderbim.core.tool.Model):
|
|||||||
else:
|
else:
|
||||||
obj = tool.Ifc.get_object(element)
|
obj = tool.Ifc.get_object(element)
|
||||||
array_pset = tool.Pset.get_element_pset(element, "BBIM_Array")
|
array_pset = tool.Pset.get_element_pset(element, "BBIM_Array")
|
||||||
default_data = '[{"children": []}]'
|
default_data = tool.Ifc.get().createIfcText('[{"children": []}]')
|
||||||
ifcopenshell.api.run(
|
ifcopenshell.api.run(
|
||||||
"pset.edit_pset",
|
"pset.edit_pset",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
@@ -611,7 +613,7 @@ class Model(blenderbim.core.tool.Model):
|
|||||||
|
|
||||||
tool.Model.regenerate_array(obj, array_data)
|
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})
|
ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=array_pset, properties={"Data": json_data})
|
||||||
|
|
||||||
for i in range(len(array_data)):
|
for i in range(len(array_data)):
|
||||||
|
|||||||
Reference in New Issue
Block a user