diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index 2c6f2aec23..a06540d42e 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -116,7 +116,7 @@ class SwitchRepresentation(bpy.types.Operator, Operator): def _execute(self, context): target = tool.Ifc.get().by_id(self.ifc_definition_id).ContextOfItems is_subcontext = target.is_a("IfcGeometricRepresentationSubContext") - for obj in context.selected_objects: + for obj in set(context.selected_objects + [context.active_object]): element = tool.Ifc.get_entity(obj) if not element: continue diff --git a/src/blenderbim/blenderbim/tool/geometry.py b/src/blenderbim/blenderbim/tool/geometry.py index 22ea707921..231295fb47 100644 --- a/src/blenderbim/blenderbim/tool/geometry.py +++ b/src/blenderbim/blenderbim/tool/geometry.py @@ -174,7 +174,8 @@ class Geometry(blenderbim.core.tool.Geometry): settings = ifcopenshell.geom.settings() settings.set(settings.WELD_VERTICES, True) - if representation.ContextOfItems.ContextIdentifier == "Body": + context = representation.ContextOfItems + if context.ContextIdentifier == "Body" and context.TargetView == "MODEL_VIEW": if element.is_a("IfcTypeProduct"): shape = ifcopenshell.geom.create_shape(settings, representation) else: diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py index d7a357cc69..a136a43ae8 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py @@ -153,7 +153,7 @@ class Usecase: elif self.settings["context"].ContextIdentifier == "Axis": return self.create_curve2d_representation() elif self.settings["context"].ContextIdentifier == "Body": - pass + return self.create_annotation2d_representation() elif self.settings["context"].ContextIdentifier == "Box": pass elif self.settings["context"].ContextIdentifier == "Clearance":