Geometry¶
42 nodes. Types ending in [] are lists. An input with a default is optional.
Nodes¶
BoundingBox.ByCorners¶
Creates an axis-aligned bounding box spanning two opposite corner points, given in any order (the smaller coordinates become the box's min corner, the larger its max corner).
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
cornerA required |
Point |
— | One corner of the box. |
cornerB required |
Point |
— | The opposite corner of the box. |
Outputs
| Output | Type | What it gives |
|---|---|---|
boundingBox |
BoundingBox |
The bounding box. |
Tags: box extent aabb
BoundingBox.Center¶
Returns the center point of a bounding box.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
boundingBox required |
BoundingBox |
— | The bounding box. |
Outputs
| Output | Type | What it gives |
|---|---|---|
point |
Point |
The center point. |
Tags: middle centroid midpoint
BoundingBox.Contains¶
Tests whether a point lies inside a bounding box (points on the boundary count as inside).
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
boundingBox required |
BoundingBox |
— | The bounding box (e.g. a zone volume). |
point required |
Point |
— | The point to test (e.g. an element's bounding-box center). |
Outputs
| Output | Type | What it gives |
|---|---|---|
contains |
boolean |
True when the point is inside or on the box. |
Tags: inside within containment zone point in box
BoundingBox.ContainsBox¶
True when the inner box fits entirely inside the outer box (touching faces count as inside).
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
outer required |
BoundingBox |
— | The box that should hold the other. |
inner required |
BoundingBox |
— | The box that should fit inside. |
Outputs
| Output | Type | What it gives |
|---|---|---|
contains |
boolean |
True when every part of the inner box is inside or on the outer box. |
Tags: inside within fits enclosed enclose zone test containment
BoundingBox.Corners¶
The 8 corner points of a bounding box: the bottom face counter-clockwise from the Min corner (0-3), then the top face in the same order (4-7).
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
boundingBox required |
BoundingBox |
— | The bounding box. |
Outputs
| Output | Type | What it gives |
|---|---|---|
corners |
Point[] |
The eight corners: indices 0-3 bottom face, 4-7 top face. |
Tags: vertices points extremes eight decompose explode
BoundingBox.Expand¶
Grows a bounding box by an amount on every side (negative shrinks it; shrinking past zero size is an error) — a clearance or tolerance zone around an element.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
boundingBox required |
BoundingBox |
— | The bounding box. |
amount required |
number |
— | Distance to move every face outwards (negative moves them inwards). |
Outputs
| Output | Type | What it gives |
|---|---|---|
boundingBox |
BoundingBox |
The expanded bounding box. |
Tags: grow inflate pad offset margin clearance buffer shrink tolerance
BoundingBox.Footprint¶
The plan (floor) area of a bounding box: size X times size Y, ignoring height.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
boundingBox required |
BoundingBox |
— | The bounding box. |
Outputs
| Output | Type | What it gives |
|---|---|---|
area |
number |
The footprint area, in square model units. |
Tags: plan floor area base ground xy measure m2
BoundingBox.Intersects¶
Tests whether two bounding boxes overlap (touching counts as intersecting).
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
boundingBox required |
BoundingBox |
— | The first box. |
other required |
BoundingBox |
— | The second box. |
Outputs
| Output | Type | What it gives |
|---|---|---|
intersects |
boolean |
True when the boxes overlap or touch. |
Tags: overlap collision touch clash
BoundingBox.Overlap¶
The bounding box shared by two overlapping boxes; an error when they do not meet, so test with BoundingBox.Intersects first.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
BoundingBox |
— | The first bounding box. |
b required |
BoundingBox |
— | The second bounding box. |
Outputs
| Output | Type | What it gives |
|---|---|---|
boundingBox |
BoundingBox |
The intersection box. |
Tags: intersection intersect common shared clash interference volume
BoundingBox.PlanGap¶
The widest strip of open floor between an inner box (equipment) and the outer box (opening) in plan — the 'space between the equipment and the opening edge'. Returns the largest of the four horizontal side gaps; 0 when the equipment reaches every edge. Threshold it to flag openings that need a handrail.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
outer required |
BoundingBox |
— | The opening's bounding box. |
inner required |
BoundingBox |
— | The equipment's bounding box. |
Outputs
| Output | Type | What it gives |
|---|---|---|
gap |
number |
The largest horizontal clear gap, in the same units as the boxes. |
Tags: gap clearance opening edge plan space perimeter handrail
BoundingBox.Scale¶
Scales a bounding box about its center by a factor (2 = double, 0.5 = half) — e.g. to pad a box before a section or zoom.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
boundingBox required |
BoundingBox |
— | The bounding box. |
factor required |
number |
— | Scale factor above 0 (2 = double size, 0.5 = half, 1 = unchanged). Applied about the center. |
Outputs
| Output | Type | What it gives |
|---|---|---|
boundingBox |
BoundingBox |
The scaled bounding box. |
Tags: scale grow shrink expand pad resize inflate
BoundingBox.Size¶
Returns a bounding box's size along each axis and its min/max corner points.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
boundingBox required |
BoundingBox |
— | The bounding box. |
Outputs
| Output | Type |
|---|---|
sizeX |
number |
sizeY |
number |
sizeZ |
number |
min |
Point |
max |
Point |
Returns: Dictionary with "sizeX", "sizeY", "sizeZ", "min" and "max".
Tags: extent dimensions width height depth
BoundingBox.SurfaceArea¶
The total area of a bounding box's six faces (square model units) — e.g. for a coating or cladding estimate.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
boundingBox required |
BoundingBox |
— | The bounding box. |
Outputs
| Output | Type | What it gives |
|---|---|---|
area |
number |
The surface area, in square model units. |
Tags: area faces skin paint coating cladding measure m2
BoundingBox.Translate¶
Moves a bounding box by an offset vector, keeping its size.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
boundingBox required |
BoundingBox |
— | The bounding box. |
offset required |
Vector |
— | The displacement (same units as the box). |
Outputs
| Output | Type | What it gives |
|---|---|---|
boundingBox |
BoundingBox |
The moved bounding box. |
Tags: move shift offset displace vector
BoundingBox.Union¶
ONE bounding box fitting every box and/or point wired in — the geometric union, e.g. one frame around scattered elements' boxes or around a set of points (several wires can feed the one input; [x,y,z] triples work too; lists nest freely, a list of lists included).
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
geometry any number of wires required |
any[] |
— | Boxes and/or points to enclose (several wires can feed this one input; lists nest freely; at least one required). Wire a single [x, y, z] triple on its own, or inside a list: next to other wires a bare list is spread into its numbers. |
Outputs
| Output | Type | What it gives |
|---|---|---|
boundingBox |
BoundingBox |
The bounding box fitting all inputs. |
Tags: union combine fit merge enclose multiple all extents aabb around points bounds from points
BoundingBox.Volume¶
The volume of a bounding box (cubic model units); a flat box has volume 0.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
boundingBox required |
BoundingBox |
— | The bounding box. |
Outputs
| Output | Type | What it gives |
|---|---|---|
volume |
number |
The volume, in cubic model units. |
Tags: size cubic capacity space measure m3
Point.ByCoordinates¶
Creates a 3D point from X, Y and Z coordinates.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
x |
number |
0 |
X coordinate. |
y |
number |
0 |
Y coordinate. |
z |
number |
0 |
Z coordinate. |
Outputs
| Output | Type | What it gives |
|---|---|---|
point |
Point |
The point. |
Tags: xyz coordinate position
Point.Centroid¶
The centroid (average position) of a list of points; several wires can feed the one input. An empty list, a null or a non-point item is an error naming the item.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
points any number of wires required |
any[] |
— | The points to average (several wires can feed this one input); at least one, and every item must be a point. |
Outputs
| Output | Type | What it gives |
|---|---|---|
point |
Point |
The mean point. |
Tags: average mean center centre middle barycenter cluster list
Point.Components¶
Splits a point into its X, Y and Z coordinates.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
point required |
Point |
— | The point to decompose. |
Outputs
| Output | Type |
|---|---|
x |
number |
y |
number |
z |
number |
Returns: Dictionary with "x", "y" and "z" values.
Tags: deconstruct xyz coordinates
Point.Distance2D¶
The distance between two points measured in plan (XY only, Z ignored) — for horizontal run lengths and offsets.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
Point |
— | The first point. |
b required |
Point |
— | The second point. |
Outputs
| Output | Type | What it gives |
|---|---|---|
distance |
number |
The distance measured in the XY plane. |
Tags: plan horizontal xy flat length measure between ignore z
Point.DistanceTo¶
Returns the straight-line distance between two points.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
Point |
— | The first point. |
b required |
Point |
— | The second point. |
Outputs
| Output | Type | What it gives |
|---|---|---|
distance |
number |
The distance. |
Tags: length measure euclidean between
Point.Lerp¶
Interpolates between two points: t = 0 is the first, t = 1 the second; t is not clamped, so other values extend the line beyond them.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
Point |
— | The point at t = 0. |
b required |
Point |
— | The point at t = 1. |
t required |
number |
— | The interpolation parameter (not clamped): 0 to 1 lies between the points, other values extend the line. |
Outputs
| Output | Type | What it gives |
|---|---|---|
point |
Point |
The interpolated point. |
Tags: interpolate blend between fraction along mix extrapolate
Point.Midpoint¶
The point halfway between two points.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
Point |
— | The first point. |
b required |
Point |
— | The second point. |
Outputs
| Output | Type | What it gives |
|---|---|---|
point |
Point |
The midpoint. |
Tags: middle center halfway average between
Point.Round¶
Rounds a point's X, Y and Z to the given number of decimal digits (midpoints round away from zero) — tidies float noise before comparing or grouping points.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
point required |
Point |
— | The point to round. |
digits |
integer |
3 |
Number of decimal digits to keep (0–15). |
Outputs
| Output | Type | What it gives |
|---|---|---|
point |
Point |
The rounded point. |
Tags: round snap tidy precision decimals clean
Point.Translate¶
Offsets a point by a vector, returning a new point.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
point required |
Point |
— | The point to offset. |
vector required |
Vector |
— | The offset vector (same units as the point). |
Outputs
| Output | Type | What it gives |
|---|---|---|
point |
Point |
The translated point. |
Tags: move offset shift add vector
Vector.Add¶
Adds two vectors (a + b).
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
Vector |
— | The first vector. |
b required |
Vector |
— | The second vector. |
Outputs
| Output | Type | What it gives |
|---|---|---|
vector |
Vector |
The sum a + b. |
Tags: sum plus combine resultant
Vector.Angle¶
The angle between two vectors in degrees, 0 (same direction) to 180 (opposite); a zero-length vector has no direction and is an error.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
Vector |
— | The first vector; it must not have zero length. |
b required |
Vector |
— | The second vector; it must not have zero length. |
Outputs
| Output | Type | What it gives |
|---|---|---|
degrees |
number |
The angle in degrees, 0 to 180. |
Tags: between degrees bearing deviation measure
Vector.ByCoordinates¶
Creates a 3D direction vector from X, Y and Z components.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
x |
number |
0 |
X component. |
y |
number |
0 |
Y component. |
z |
number |
0 |
Z component. |
Outputs
| Output | Type | What it gives |
|---|---|---|
vector |
Vector |
The vector. |
Tags: xyz direction axis
Vector.ByPoints¶
Creates the vector that leads from one point to another (end minus start).
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
from required |
Point |
— | The start point. |
to required |
Point |
— | The end point. |
Outputs
| Output | Type | What it gives |
|---|---|---|
vector |
Vector |
The vector from the start point to the end point. |
Tags: between direction from to two points displacement
Vector.Components¶
Splits a vector into its X, Y and Z components.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
vector required |
Vector |
— | The vector to decompose. |
Outputs
| Output | Type |
|---|---|
x |
number |
y |
number |
z |
number |
Returns: Dictionary with "x", "y" and "z" values.
Tags: deconstruct xyz coordinates components
Vector.Cross¶
The cross product of two vectors: a vector perpendicular to both (right-hand rule), zero when they are parallel.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
Vector |
— | The first vector. |
b required |
Vector |
— | The second vector. |
Outputs
| Output | Type | What it gives |
|---|---|---|
vector |
Vector |
a × b. |
Tags: perpendicular normal orthogonal product right hand
Vector.Dot¶
The dot product of two vectors: positive when they point the same way, 0 when perpendicular, negative when opposed.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
Vector |
— | The first vector. |
b required |
Vector |
— | The second vector. |
Outputs
| Output | Type | What it gives |
|---|---|---|
dot |
number |
a · b. |
Tags: scalar inner product projection multiply
Vector.IsParallel¶
True when two vectors lie along the same line (same or opposite direction) within a length-independent tolerance; zero-length vectors are an error.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
Vector |
— | The first vector; it must not have zero length. |
b required |
Vector |
— | The second vector; it must not have zero length. |
tolerance |
number |
1e-9 |
Largest allowed sine of the angle between them (0 = exactly parallel). |
Outputs
| Output | Type | What it gives |
|---|---|---|
isParallel |
boolean |
True when the vectors are parallel or anti-parallel within the tolerance. |
Tags: parallel collinear same direction aligned test
Vector.IsPerpendicular¶
True when two vectors meet at a right angle within a length-independent tolerance; zero-length vectors are an error.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
Vector |
— | The first vector; it must not have zero length. |
b required |
Vector |
— | The second vector; it must not have zero length. |
tolerance |
number |
1e-9 |
Largest allowed cosine of the angle between them (0 = exactly perpendicular). |
Outputs
| Output | Type | What it gives |
|---|---|---|
isPerpendicular |
boolean |
True when the vectors are perpendicular within the tolerance. |
Tags: perpendicular orthogonal right angle normal square test
Vector.Length¶
Returns the length (magnitude) of a vector.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
vector required |
Vector |
— | The vector to measure. |
Outputs
| Output | Type | What it gives |
|---|---|---|
length |
number |
The Euclidean length. |
Tags: magnitude norm size measure
Vector.Negate¶
Reverses a vector so it points the opposite way.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
vector required |
Vector |
— | The vector to reverse. |
Outputs
| Output | Type | What it gives |
|---|---|---|
vector |
Vector |
The vector pointing the opposite way. |
Tags: reverse flip opposite invert minus
Vector.Normalize¶
Scales a vector to length 1, keeping its direction (a zero-length vector has no direction and is an error).
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
vector required |
Vector |
— | The vector to normalise; it must not have zero length. |
Outputs
| Output | Type | What it gives |
|---|---|---|
vector |
Vector |
The unit vector with the same direction. |
Tags: unit normalise normalize direction unitize
Vector.Scale¶
Multiplies a vector by a number (2 doubles its length, -1 reverses it). A factor that is not a finite number gives a warning.
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
vector required |
Vector |
— | The vector to scale. |
factor required |
number |
— | The scale factor (2 = twice as long, -1 = reversed, 0 = the zero vector). |
Outputs
| Output | Type | What it gives |
|---|---|---|
vector |
Vector |
The scaled vector. |
Tags: multiply stretch factor times resize
Vector.Subtract¶
Subtracts one vector from another (a - b).
Inputs
| Input | Type | Default | What it does |
|---|---|---|---|
a required |
Vector |
— | The vector to subtract from. |
b required |
Vector |
— | The vector to subtract. |
Outputs
| Output | Type | What it gives |
|---|---|---|
vector |
Vector |
The difference a - b. |
Tags: minus difference delta
Vector.XAxis¶
The unit vector along the X axis, (1, 0, 0).
No inputs.
Outputs
| Output | Type | What it gives |
|---|---|---|
vector |
Vector |
The X axis direction. |
Tags: axis unit east right direction
Vector.YAxis¶
The unit vector along the Y axis, (0, 1, 0).
No inputs.
Outputs
| Output | Type | What it gives |
|---|---|---|
vector |
Vector |
The Y axis direction. |
Tags: axis unit north forward direction
Vector.ZAxis¶
The unit vector along the Z axis, (0, 0, 1) — straight up.
No inputs.
Outputs
| Output | Type | What it gives |
|---|---|---|
vector |
Vector |
The Z axis direction. |
Tags: axis unit up vertical direction