Ok, that makes sense. 
How do I create a IfcHalfSpaceSolid? I'm stuck here: 
body = ifcopenshell.util.representation.get_context(model, "Model", "Body", "MODEL_VIEW")
vertices = [[(0.,0.,0.), (0.,2.,0.), (2.,2.,0.), (2.,0.,0.), (1.,1.,1.)]]
faces = [[(0,1,2,3), (0,4,1), (1,4,2), (2,4,3), (3,4,0)]]
representation = run("geometry.add_mesh_representation", model, context=body, vertices=vertices, faces=faces)
matrix = np.array(
            (
                (1, 0, 0, 0),
                (0, 1, 0, 0),
                (0, 0, 1, 0),
                (0, 0, 0, 1),
            )
        )
half_space = ifcopenshell.api.run(
        "geometry.add_boolean", 
        model, 
        representation = representation,
        # # IfcHalfSpaceSolid, Mesh
        type = "IfcHalfSpaceSolid",
        # # The XY plane is the clipping boundary and +Z is removed.
        matrix = matrix,  # A matrix to define a clipping Ifchalfspacesolid.
    )
  File "/home/smr/Desktop/simple_truss/test.py", line 52, in <module>
    half_space = ifcopenshell.api.run(
  File "/home/smr/.config/blender/3.6/scripts/addons/blenderbim/libs/site/packages/ifcopenshell/api/__init__.py", line 66, in run
    result = usecase_class(ifc_file, **settings).execute()
  File "/home/smr/.config/blender/3.6/scripts/addons/blenderbim/libs/site/packages/ifcopenshell/api/geometry/add_boolean.py", line 44, in execute
    result = self.create_half_space_solid()
  File "/home/smr/.config/blender/3.6/scripts/addons/blenderbim/libs/site/packages/ifcopenshell/api/geometry/add_boolean.py", line 58, in create_half_space_solid
    self.file.createIfcCartesianPoint(
  File "/home/smr/.config/blender/3.6/scripts/addons/blenderbim/libs/site/packages/ifcopenshell/file.py", line 337, in create_entity
    e[idx] = arg
  File "/home/smr/.config/blender/3.6/scripts/addons/blenderbim/libs/site/packages/ifcopenshell/entity_instance.py", line 262, in __setitem__
    self.method_list[idx](self.wrapped_data, idx, entity_instance.unwrap_value(value))
  File "/home/smr/.config/blender/3.6/scripts/addons/blenderbim/libs/site/packages/ifcopenshell/ifcopenshell_wrapper.py", line 3814, in setArgumentAsAggregateOfDouble
    return _ifcopenshell_wrapper.entity_instance_setArgumentAsAggregateOfDouble(self, i, v)
TypeError: Attribute of type AGGREGATE OF REAL needs a python sequence of floats