mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 09:21:46 +00:00
Add posibility to edit classification system name in menu after invoking enable_editing_classification_reference
This commit is contained in:
@@ -257,7 +257,9 @@ class EnableEditingClassificationReference(bpy.types.Operator):
|
||||
def execute(self, context):
|
||||
props = tool.Classification.get_classification_reference_props()
|
||||
props.reference_attributes.clear()
|
||||
bonsai.bim.helper.import_attributes(tool.Ifc.get().by_id(self.reference), props.reference_attributes)
|
||||
ifc_reference = tool.Ifc.get().by_id(self.reference)
|
||||
bonsai.bim.helper.import_attributes(ifc_reference, props.reference_attributes)
|
||||
props.classification_system_name = ifc_reference.ReferencedSource.Name or ""
|
||||
props.active_reference_id = self.reference
|
||||
return {"FINISHED"}
|
||||
|
||||
@@ -324,9 +326,13 @@ class EditClassificationReference(bpy.types.Operator, tool.Ifc.Operator):
|
||||
props = tool.Classification.get_classification_reference_props()
|
||||
attributes = bonsai.bim.helper.export_attributes(props.reference_attributes)
|
||||
ifc_file = tool.Ifc.get()
|
||||
reference_entity = ifc_file.by_id(props.active_reference_id)
|
||||
referenced_source = reference_entity.ReferencedSource
|
||||
if props.classification_system_name:
|
||||
referenced_source.Name = props.classification_system_name
|
||||
ifcopenshell.api.classification.edit_reference(
|
||||
ifc_file,
|
||||
reference=ifc_file.by_id(props.active_reference_id),
|
||||
reference=reference_entity,
|
||||
attributes=attributes,
|
||||
)
|
||||
bpy.ops.bim.disable_editing_classification_reference()
|
||||
|
||||
@@ -95,6 +95,7 @@ class BIMClassificationReferenceProperties(PropertyGroup):
|
||||
classifications: EnumProperty(items=get_classifications, name="Classifications")
|
||||
reference_attributes: CollectionProperty(name="Reference Attributes", type=Attribute)
|
||||
active_reference_id: IntProperty(name="Active Reference Id")
|
||||
classification_system_name: StringProperty(name="Classification System Name")
|
||||
|
||||
if TYPE_CHECKING:
|
||||
is_adding: bool
|
||||
|
||||
@@ -258,6 +258,9 @@ class ReferenceUI:
|
||||
row = self.layout.row(align=True)
|
||||
row.operator("bim.edit_classification_reference", text="Save changes", icon="CHECKMARK")
|
||||
row.operator("bim.disable_editing_classification_reference", text="", icon="CANCEL")
|
||||
row = self.layout.row()
|
||||
row.prop(self.props, "classification_system_name", text="Classification System Name")
|
||||
|
||||
bonsai.bim.helper.draw_attributes(self.props.reference_attributes, self.layout)
|
||||
|
||||
def draw_reference_ui(self, reference: dict[str, Any]) -> None:
|
||||
|
||||
Reference in New Issue
Block a user