Skip to content
Get on GitHub Autodesk App Store - coming soon

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