Delete face(s) along axis with python
bmesh version
If choosing answers from that question would recommend editing the answer of @CoDEmanX
Test script, removes all faces which have all vertices with an x coordinate less than zero.
import bpy
import bmesh

ob = bpy.context.object
assert ob.type == &quot;MESH&quot;
mat = ob.matrix_world
me = ob.data


if me.is_editmode:
    bm = bmesh.from_edit_mesh(me)
else:
    bm = bmesh.new()
    bm.from_mesh(me)

bmesh.ops.delete(
        bm,
        geom=[f for f in bm.faces if all(
                v.co.x &lt; 1e-6 for v in f.verts)
            ],
        context='FACES'
        )


if bm.is_wrapped:
    bmesh.update_edit_mesh(me)
else:
    bm.to_mesh(me)
    me.update()

To remove faces with a normal pointing in the -X direction
bmesh.ops.delete(
        bm,
        geom=[f for f in bm.faces if f.normal.angle((-1, 0, 0)) &lt; 1e-6
            ],
        context='FACES'
        )