diff --git a/src/blenderbim/blenderbim/bim/module/brick/operator.py b/src/blenderbim/blenderbim/bim/module/brick/operator.py index 01a66418b9..4bd2015b71 100644 --- a/src/blenderbim/blenderbim/bim/module/brick/operator.py +++ b/src/blenderbim/blenderbim/bim/module/brick/operator.py @@ -131,16 +131,13 @@ class AddBrick(bpy.types.Operator, Operator): def _execute(self, context): props = context.scene.BIMBrickProperties - library = None - if props.libraries: - library = tool.Ifc.get().by_id(int(props.libraries)) core.add_brick( tool.Ifc, tool.Brick, element=tool.Ifc.get_entity(context.active_object) if context.selected_objects else None, namespace=props.namespace, brick_class=props.brick_entity_class, - library=library, + library=tool.Ifc.get().by_id(int(props.libraries)) if props.libraries else None, label=props.new_brick_label, ) diff --git a/src/blenderbim/blenderbim/bim/module/brick/ui.py b/src/blenderbim/blenderbim/bim/module/brick/ui.py index a32ec17bf9..5642735858 100644 --- a/src/blenderbim/blenderbim/bim/module/brick/ui.py +++ b/src/blenderbim/blenderbim/bim/module/brick/ui.py @@ -90,8 +90,13 @@ class BIM_PT_brickschema(Panel): row = self.layout.row(align=True) row.prop(data=self.props, property="brick_entity_create_type", text="") + # hide this if selected entity already has a reference row = self.layout.row(align=True) - row.prop(data=self.props, property="new_brick_label", text="") + active = tool.Ifc.get_entity(context.active_object) + if active and context.selected_objects: + row.label(text=active.Name if active.Name else "Unnamed") + else: + row.prop(data=self.props, property="new_brick_label", text="") prop_with_search(row, self.props, "brick_entity_class", text="") row.operator("bim.add_brick", text="", icon="ADD") diff --git a/src/blenderbim/blenderbim/tool/brick.py b/src/blenderbim/blenderbim/tool/brick.py index f16e959c4a..bdc3aaa4ee 100644 --- a/src/blenderbim/blenderbim/tool/brick.py +++ b/src/blenderbim/blenderbim/tool/brick.py @@ -67,9 +67,12 @@ class Brick(blenderbim.core.tool.Brick): def add_brick_from_element(cls, element, namespace, brick_class): ns = Namespace(namespace) brick = ns[element.GlobalId] - BrickStore.graph.add((brick, RDF.type, URIRef(brick_class))) - if element.Name: - BrickStore.graph.add((brick, URIRef("http://www.w3.org/2000/01/rdf-schema#label"), Literal(element.Name))) + with BrickStore.new_changeset() as cs: + cs.add((brick, RDF.type, URIRef(brick_class))) + if element.Name: + cs.add((brick, URIRef("http://www.w3.org/2000/01/rdf-schema#label"), Literal(element.Name))) + else: + cs.add((brick, URIRef("http://www.w3.org/2000/01/rdf-schema#label"), Literal("Unnamed"))) return str(brick) @classmethod