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

Navisworks: Transform

7 nodes. Types ending in [] are lists. An input with a default is optional.

ModelItem.GetTransform

Reads an item's current (active) transform: origin = its translation (a practical base point), matrix = 16 numbers row-major (feed ModelItem.SetTransform to round-trip), hasOverride = whether a permanent transform override is applied.

Inputs

Input Type Default What it does
item required ModelItem — The model item.

Outputs

Output Type
origin Point
matrix number[]
hasOverride boolean

Returns: The transform origin (translation — a practical base point), the 16-number row-major matrix, and whether a permanent override is active.

Tags: item transform get read matrix origin override position

ModelItem.MoveTo

Moves model items so the centre of their combined bounding box lands on a target point — place a group by where it should be, not by how far to push it. A permanent override: undoable, saved in the NWF, removed by ModelItem.ResetTransform. Re-running with the same target is a no-op once the items are there. One target per run: a list of targets moves the same items to each in turn and the last one stays (the node warns). Items that sit below another listed item are left out, because moving a container already moves everything under it.

Inputs

Input Type Default What it does
items any number of wires required ModelItem[] — The model items to move (they keep their layout relative to each other). An item with another listed item above it is left out (moving a container moves everything below it).
target required any — Where the centre of the items' combined bounding box should end up (a Point or a list of three numbers), in document units. One target per run: a list of targets moves the same items to each in turn and the last one stays.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
items ModelItem[] The moved items (pass-through for chaining).

Tags: item move moveto place position target centre center transform

ModelItem.ResetTransform

Removes permanent transform overrides, restoring items to their original position. To reset every override in the whole document, set resetAll to true — an unwired or empty items input alone does nothing (and errors) so an empty upstream filter can never wipe all placement work.

Inputs

Input Type Default What it does
items any number of wires ModelItem[] null The model items to reset.
resetAll boolean false True to reset EVERY transform override in the document (items may then be left unwired). Explicit opt-in — an unwired or empty items list alone never wipes the whole document.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
items ModelItem[] The reset items (empty when every override was reset via resetAll).

Tags: item transform reset restore original undo position

ModelItem.RotateAboutAxis

Rotates model items by an angle (degrees) about an axis through a point. A permanent override: undoable, saved in the NWF, removed by ModelItem.ResetTransform. Re-runs accumulate; in Advanced, switch accumulate off to turn the items exactly this much from where the model had them, so re-running does not pile up. One angle per run: a list of angles against the whole item list turns the same items once per angle and the turns add up ([10, 20] turns them 30 degrees in total, and the node warns). To give every item its own angle, set List Levels L1 on items and on degrees and wire one angle per item. Items that sit below another listed item are left out, because turning a container already turns everything under it.

Inputs

Input Type Default What it does
items any number of wires required ModelItem[] — The model items to rotate. An item with another listed item above it is left out (turning a container turns everything below it).
origin required any — A point on the rotation axis (document units): a Point or a list of three numbers.
axis required any — The axis direction (need not be unit length): a Vector or a list of three numbers.
degrees required number — The rotation angle in degrees (right-hand rule around the axis). One angle per run: to turn every item by its own angle, set List Levels L1 on both items and degrees and wire one angle per item.
accumulate boolean true True (default) adds this turn to whatever override the items already have, so every run turns them again. False replaces their override, so the items end up turned exactly this much from where the model had them and re-running does not pile up.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
items ModelItem[] The rotated items (pass-through for chaining).

Tags: item rotate rotation axis angle degrees transform

ModelItem.Scale

Scales model items uniformly about a point — default: the centre of the items' combined bounding box, so the group grows or shrinks in place and keeps its internal layout. A permanent override: undoable, saved in the NWF, removed by ModelItem.ResetTransform. Re-runs accumulate (each run scales again); in Advanced, switch accumulate off to scale from where the model had the items, so re-running does not pile up. One factor per run: a list of factors against the whole item list scales the same items once per factor and the factors multiply ([2, 3] is 6 in total; the node warns). Items that sit below another listed item are left out, because scaling a container already scales everything under it. One override per item, so allow a moment on large selections.

Inputs

Input Type Default What it does
items any number of wires required ModelItem[] — The model items to scale. An item with another listed item above it is left out (scaling a container scales everything below it).
factor required number — The scale factor: 2 doubles the size, 0.5 halves it, 1 changes nothing. Must be positive. One factor per run: a list of factors scales the same items once per factor and the factors multiply ([2, 3] scales by 6 in total).
about any null The fixed point of the scaling (a Point or a list of three numbers); leave unwired to scale about the centre of the items' combined bounding box.
accumulate boolean true True (default) adds this scaling to whatever override the items already have, so every run scales them again. False replaces their override, so the items end up exactly this much larger or smaller than the model has them and re-running does not pile up.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
items ModelItem[] The scaled items (pass-through for chaining).

Tags: item scale resize size grow shrink factor transform units

ModelItem.SetTransform

Sets the permanent transform override of model items to an absolute 4×4 matrix (16 numbers, row-major, translation at indices 3/7/11) — mirror-place or scale-in-place for power users. Unlike Translate/RotateAboutAxis this REPLACES any earlier override; re-runs are idempotent. One matrix per run: several matrices against the whole item list would replace each other and only the last stays.

Inputs

Input Type Default What it does
items any number of wires required ModelItem[] — The model items to transform.
matrix required any — 16 numbers, row-major (translation at indices 3, 7, 11; bottom row 0 0 0 1), or four rows of four numbers, or a matrix from ModelItem.GetTransform.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
items ModelItem[] The transformed items (pass-through for chaining).

Tags: item transform matrix set override scale mirror

ModelItem.Translate

Moves model items by a vector, in document units (chain Units.Convert for meters/feet). A permanent override: undoable, saved in the NWF, removed by ModelItem.ResetTransform. Re-runs accumulate — each run moves the items again; in Advanced, switch accumulate off to put the items exactly this far from where the model had them, so re-running (or tuning the vector with Auto-run on) does not pile up. One vector per run: to give every item its own vector set List Levels L1 on items and on vector and wire one vector per item; a list of vectors against the whole item list moves the same items once per vector and the moves add up (the node warns). Items that sit below another listed item are left out, because moving a container already moves everything under it. A container has no override of its own to read, so each run on a container starts from where the model had it; use Selection.Resolve with level Geometry first if re-runs should add up.

Inputs

Input Type Default What it does
items any number of wires required ModelItem[] — The model items to move. An item with another listed item above it is left out (moving a container moves everything below it).
vector required any — The offset, in document units: a Vector (Vector.ByCoordinates) or a list of three numbers. One vector per run: to move every item by its own vector, set List Levels L1 on both items and vector.
accumulate boolean true True (default) adds this move to whatever override the items already have, so every run moves them again. False replaces their override, so the items end up exactly this far from where the model put them and re-running does not pile up.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
items ModelItem[] The moved items (pass-through for chaining).

Tags: item translate move offset transform shift