mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-27 10:51:13 +00:00
Add AuthoringData.data["relating_type_id_current"] to model data.
This commit is contained in:
committed by
Bruno Perdigão
parent
084c2aa25a
commit
b416df538a
@@ -58,6 +58,7 @@ class AuthoringData:
|
|||||||
cls.data["ifc_classes"] = cls.ifc_classes()
|
cls.data["ifc_classes"] = cls.ifc_classes()
|
||||||
cls.data["ifc_class_current"] = cls.ifc_class_current()
|
cls.data["ifc_class_current"] = cls.ifc_class_current()
|
||||||
cls.data["relating_type_id"] = cls.relating_type_id() # only after .ifc_classes()
|
cls.data["relating_type_id"] = cls.relating_type_id() # only after .ifc_classes()
|
||||||
|
cls.data["relating_type_id_current"] = cls.relating_type_id_current() # only after .ifc_classes()
|
||||||
cls.data["relating_type_name"] = cls.relating_type_name() # only after .relating_type_id()
|
cls.data["relating_type_name"] = cls.relating_type_name() # only after .relating_type_id()
|
||||||
cls.data["relating_type_description"] = cls.relating_type_description() # only after .relating_type_id()
|
cls.data["relating_type_description"] = cls.relating_type_description() # only after .relating_type_id()
|
||||||
cls.data["predefined_type"] = cls.predefined_type() # only after .relating_type_id()
|
cls.data["predefined_type"] = cls.predefined_type() # only after .relating_type_id()
|
||||||
@@ -248,17 +249,21 @@ class AuthoringData:
|
|||||||
return []
|
return []
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def relating_type_name(cls):
|
def relating_type_id_current(cls):
|
||||||
relating_type_id = tool.Blender.get_enum_safe(cls.props, "relating_type_id")
|
relating_type_id = tool.Blender.get_enum_safe(cls.props, "relating_type_id")
|
||||||
relating_type_id_data = cls.data["relating_type_id"]
|
relating_type_id_data = cls.data["relating_type_id"]
|
||||||
if not relating_type_id and relating_type_id_data:
|
if not relating_type_id and relating_type_id_data:
|
||||||
relating_type_id = relating_type_id_data[0][0]
|
relating_type_id = relating_type_id_data[0][0]
|
||||||
if relating_type_id:
|
return relating_type_id
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def relating_type_name(cls):
|
||||||
|
if relating_type_id := cls.data["relating_type_id_current"]:
|
||||||
return tool.Ifc.get().by_id(int(relating_type_id)).Name or "Unnamed"
|
return tool.Ifc.get().by_id(int(relating_type_id)).Name or "Unnamed"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def relating_type_description(cls):
|
def relating_type_description(cls):
|
||||||
if relating_type_id := cls.props.relating_type_id:
|
if relating_type_id := cls.data["relating_type_id_current"]:
|
||||||
return tool.Ifc.get().by_id(int(relating_type_id)).Description or "No description"
|
return tool.Ifc.get().by_id(int(relating_type_id)).Description or "No description"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
@@ -936,18 +936,18 @@ class Hotkey(bpy.types.Operator, tool.Ifc.Operator):
|
|||||||
|
|
||||||
def hotkey_S_A(self):
|
def hotkey_S_A(self):
|
||||||
props = bpy.context.scene.BIMModelProperties
|
props = bpy.context.scene.BIMModelProperties
|
||||||
|
relating_type_id = AuthoringData.data["relating_type_id_current"]
|
||||||
|
props.relating_type_id = relating_type_id
|
||||||
if bpy.context.scene.BIMGeometryProperties.mode == "ITEM":
|
if bpy.context.scene.BIMGeometryProperties.mode == "ITEM":
|
||||||
bpy.ops.wm.call_menu(name="BIM_MT_add_representation_item")
|
bpy.ops.wm.call_menu(name="BIM_MT_add_representation_item")
|
||||||
else:
|
else:
|
||||||
for obj in tool.Blender.get_selected_objects():
|
for obj in tool.Blender.get_selected_objects():
|
||||||
obj.select_set(False)
|
obj.select_set(False)
|
||||||
if (
|
if relating_type_id and tool.Model.get_usage_type(tool.Ifc.get().by_id(int(relating_type_id))) == "LAYER2":
|
||||||
relating_type_id := tool.Blender.get_enum_safe(props, "relating_type_id")
|
|
||||||
) and tool.Model.get_usage_type(tool.Ifc.get().by_id(int(relating_type_id))) == "LAYER2":
|
|
||||||
bpy.ops.bim.draw_polyline_wall("INVOKE_DEFAULT")
|
bpy.ops.bim.draw_polyline_wall("INVOKE_DEFAULT")
|
||||||
elif (
|
elif (
|
||||||
relating_type_id := tool.Blender.get_enum_safe(props, "relating_type_id")
|
relating_type_id and tool.Model.get_usage_type(tool.Ifc.get().by_id(int(relating_type_id))) == "LAYER3"
|
||||||
) and tool.Model.get_usage_type(tool.Ifc.get().by_id(int(relating_type_id))) == "LAYER3":
|
):
|
||||||
bpy.ops.bim.draw_polyline_slab("INVOKE_DEFAULT")
|
bpy.ops.bim.draw_polyline_slab("INVOKE_DEFAULT")
|
||||||
else:
|
else:
|
||||||
bpy.ops.bim.add_occurrence("INVOKE_DEFAULT")
|
bpy.ops.bim.add_occurrence("INVOKE_DEFAULT")
|
||||||
|
|||||||
Reference in New Issue
Block a user