Documentation / Node reference / geo nodes

geo/Delete

Removes points, primitives or objects that match one or more criteria.

Topology

Pick what is being removed with `entity`, then turn on one or more `by*` criteria; `combineMode` decides whether they union or intersect, and `invert` deletes everything they did NOT match. Nothing is copied that does not have to be: an object that loses no entity is forwarded untouched, one that loses some is rebuilt from its survivors. The bounding rules are in WORLD space, so an object placed by a geo/Transform in OBJECT mode upstream is tested where it stands; the expression and normal rules read the geometry as stored and are not turned by that transform.

On a CAD body, PRIMITIVE deletes faces and POINT deletes vertices, and a deleted vertex takes every face that touches it, as a deleted point takes the triangles that use it. A solid that loses a face is no longer closed: what is left is an open sheet. The faces left keep their exact surfaces (a plane stays a plane, a cylinder a cylinder) and the edges they share, and an edge they shared with a deleted face becomes the edge of the sheet. When the faces left fall into pieces that share no edge, each piece is a sheet object of its own: a box without its four sides gives two, the top and the bottom. A sheet that loses faces stays a sheet, split the same way. Deleting every face removes the object. The groups and attributes of the body follow the faces and vertices they were on.

Parameters

Name Type What it does
entity UInt8 POINT · PRIMITIVE · OBJECT · STAGE What is being deleted: points, primitives or objects. On a CAD body the points are its vertices and the primitives its faces.
invert Bool Delete everything the criteria did NOT match.
keepUnreferencedPoints Bool PRIMITIVE mode only: keep the points the surviving primitives no longer use, unreferenced, instead of dropping them with the primitives that owned them. A CAD body never keeps a vertex no face uses, so this does not apply to it.
combineMode UInt8 OR · AND How several active criteria combine: OR takes the union, AND the intersection.
group String Restrict the deletion to a group. Only entities in it may be deleted; an OBJECT group restricts which objects may be. Empty = anything may be.
byRange Bool Keep a repeating slice of the entities and delete the rest of each step.
range Vector2UInt First number = how many of each step are KEPT, second = how long the step is; the rest of each step is deleted, and `invert` swaps the two. So 1 and 3 keeps every third entity and deletes the other two, 2 and 5 keeps the first two of every five. This is a repeating step, not a from-to range. Beside other rules it only adds the entities it deletes: it never brings back one another rule deleted.
byExpression Bool Delete with an expression evaluated per entity.
expression Bool A true/false expression run on each entity, e.g. `attrib(.P).y > 0`. True means deleted. `attrib(.P)` is the point exactly as stored, with no object transform applied.
byBoundingBox Bool Delete what falls inside a box.
boundingBoxMin Vector3 Lower corner of the box, in world space.
boundingBoxMax Vector3 Upper corner of the box, in world space.
byBoundingObject Bool Delete what falls inside the shape plugged into input 1. Triangle meshes use a real inside test; anything else uses its bounding box.
byHalfSpace Bool Delete what lies on one side of a plane.
halfSpaceOrigin Vector3 A point the plane passes through, in world space.
halfSpaceDirection Vector3 The direction across the plane, in world space. It does not have to be a unit vector.
halfSpaceMode UInt8 ABOVE · BELOW Which side is deleted: ABOVE is the side the direction points to, BELOW the other one. What lies exactly on the plane is deleted either way.
byNormal Bool Delete primitives facing a given direction, read off the geometry as stored.
normal Vector3 The direction to face, in the geometry's own frame. An object transform upstream does not turn it.
angle Float How far a primitive may point away from that direction and still count, in degrees.
byArea Bool Delete primitives by their area.
areaMode UInt8 SMALLER · LARGER Delete the primitives SMALLER or LARGER than the threshold.
area Float The area threshold.
byName Bool Delete objects by name.
name String Object names to match. `*` and `?` are wildcards, `^name` excludes, e.g. `box* ^boxTemp`. A plain name matches exactly.
byGeometryType Bool Delete objects by what kind of geometry they hold.
geometryType UInt8 UNDEFINED · POINT · SEGMENT · TRIANGLE · QUAD · TETRAHEDRON · HEXA · MANIFOLD_2D · MANIFOLD_3D · CAD_SHAPE · VOLUME · NURBS_CURVE · NURBS_SURFACE · BREP · VOXEL · SDF_3D · SDF_2D The geometry kind to match.
byBrepKind Bool Delete CAD objects by what they are: lines, circles, planes, cylinders, NURBS and so on. An object is read by all of its faces, or by all of its curves when it has no face, such as a piece out of geo/CADDecompose. Anything that is not CAD is never deleted by this.
brepKind UInt8 ANALYTIC · NON_ANALYTIC · LINE · CIRCLE · ELLIPSE · PARABOLA · HYPERBOLA · SHAPE · NURBS_CURVE · INTERSECTION · PLANE · CYLINDER · CONE · SPHERE · TORUS · NURBS_SURFACE · OFFSET The kind to match. ANALYTIC is anything with an exact formula: lines, circles and the other conics, outlines, planes, cylinders, cones, spheres and tori. NON_ANALYTIC is the rest: NURBS, offset surfaces, and the curves where two surfaces meet. An object matches a kind when all its faces or curves are of that kind, and NON_ANALYTIC when at least one is not analytic.

Examples

Scenes you can open in the editor that teach this node.

See also

This page is generated from the engine, so it describes the release you can download. The same text is in the editor's Help panel next to the node itself.