diff --git a/src/bonsai/test/bim/test_feature.py b/src/bonsai/test/bim/test_feature.py index cdb080e65c..34484fa018 100644 --- a/src/bonsai/test/bim/test_feature.py +++ b/src/bonsai/test/bim/test_feature.py @@ -417,20 +417,25 @@ def i_create_default_mep_types(): model_props = tool.Model.get_model_props() # add couple segments types - model_props.type_class = "IfcDuctSegmentType" - model_props.type_name = "RECT1" - model_props.type_template = "FLOW_SEGMENT_RECTANGULAR" - bpy.ops.bim.add_type() + i_trigger_operator("Add Element") + i_set_the_prop_property_to_value("Name", "RECT1") + i_set_the_prop_property_to_value("Class", "IfcDuctSegmentType") + i_set_the_prop_property_to_value("Representation", "Rectangular Distribution Segment") + i_click_button("OK") - model_props.type_template = "FLOW_SEGMENT_CIRCULAR" - model_props.type_name = "CIRCLE1" - bpy.ops.bim.add_type() + i_trigger_operator("Add Element") + i_set_the_prop_property_to_value("Name", "CIRCLE1") + i_set_the_prop_property_to_value("Class", "IfcDuctSegmentType") + i_set_the_prop_property_to_value("Representation", "Circular Distribution Segment") + i_click_button("OK") # add an actuator type - model_props.type_class = "IfcActuatorType" - model_props.type_template = "MESH" # cube representation - model_props.type_name = "ACTUATOR" - bpy.ops.bim.add_type() + i_trigger_operator("Add Element") + i_set_the_prop_property_to_value("Name", "ACTUATOR") + i_set_the_prop_property_to_value("Class", "IfcActuatorType") + i_set_the_prop_property_to_value("Representation", "Custom Tessellation") + i_click_button("OK") + with bpy.context.temp_override(active_object=bpy.data.objects["IfcActuatorType/ACTUATOR"]): bpy.ops.bim.add_port() # port at cube's left side diff --git a/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py b/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py index 27e3574f89..47926c7e0a 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py +++ b/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py @@ -1378,7 +1378,7 @@ class ShapeBuilder: # prevent mutating arguments, deepcopy doesn't work start_points = np.array(points) - if offset: + if offset is not None and offset.any(): start_points += offset extrusion_offset = np.multiply(extrusion_vector, magnitude) end_points = start_points + extrusion_offset @@ -1573,7 +1573,7 @@ class ShapeBuilder: circle_points += end_extrusion_offset # circle verts are 0-15, rect verts are 16-19 - points = circle_points + rect_points + points = np.concatenate((circle_points, rect_points)) transition_faces = [ (0, 19, 16), # base (0, 16, 1),