geo/PrintOverhangMeasure geo/AttributePromote geo/AttributeDisplay geo/Delete
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
- geo/GroupCreate
- geo/GroupDelete
- geo/Clip
- geo/Transform
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.