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

Navisworks: Clash

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

Clash.Deduplicate

Keeps ONE clash per unique item pair — the same two elements clashing at five points, or mirrored across an A-vs-B and B-vs-A test matrix, count once. Wire the results of ONE test, or of several tests at once (the list of lists from Clash.Tests and ClashTest.Results, or several wires): everything is flattened first, so the pair is recognised across tests and both outputs are flat lists. Pairs are unordered; an element is recognised by its InstanceGuid, or, when the source file has none (DWG, NWC), by the scene node itself, so two sibling elements with the same name are never taken for one. The first result in input order is the representative, the rest come out on duplicates. 400 raw results, 60 real issues.

Inputs

Input Type Default What it does
results any number of wires required any[] — The clash results — from one test, or from several tests at once (a list of lists is flattened, and several wires are merged): mirrored A-vs-B / B-vs-A test pairs dedupe across the tests.

Outputs

Output Type
results ClashResult[]
duplicates ClashResult[]

Returns: The first result of each unique unordered item pair, and the duplicates that were dropped (both flat lists).

Tags: clash deduplicate duplicates unique pair mirror matrix noise merge

Clash.FilterByAngle

Keeps only the clash results whose crossing angle (see ClashResult.Angle) is within a degree range — e.g. 80–90 for near-perpendicular crossings, or 0–10 for parallel runs. The angle is always between 0 (parallel) and 90 (perpendicular), so the range stops at 90. Results with no measurable direction are dropped.

Inputs

Input Type Default What it does
results any number of wires required ClashResult[] — The clash results (e.g. from ClashTest.Results).
minDegrees number 0.0 Lowest crossing angle to keep (0 = parallel).
maxDegrees number 90.0 Highest crossing angle to keep (90 = perpendicular).

Outputs

Output Type What it gives
results ClashResult[] The matching results, input order preserved (angle-less results are dropped).

Tags: clash filter angle perpendicular parallel crossing degrees

Clash.FilterByDepth

Keeps clashes whose penetration depth falls in a range, in the unit you name — minDepth 0.025 with units Meters drops every grazing clash shallower than 25 mm, the #1 noise reducer. Depth is positive for overlaps (hard clashes); clearance-test results carry their gap as a NEGATIVE depth, so a range like -1..0 keeps clearance violations instead.

Inputs

Input Type Default What it does
results any number of wires required ClashResult[] — The clash results (e.g. from ClashTest.Results).
minDepth number 0.0 Smallest penetration depth to keep. Positive = overlap; clearance-test gaps read as negative depths.
maxDepth number PositiveInfinity Largest penetration depth to keep (default: unlimited).
units string "document" Unit of the depth numbers: "document" uses the file's internal unit (often feet!), or name the unit your numbers are in.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
results ClashResult[] The matching results, input order preserved.

Tags: clash filter depth penetration distance grazing significant units tolerance

Clash.FilterByItemProperty

Keeps clashes whose two items' PROPERTY values match a pair of texts, in either order — the semantic clash rule: category "Element", property "Category", value1 "Pipe", value2 "Wall" keeps pipe-vs-wall clashes whichever side the pipe landed on. An empty value matches anything (one-sided rules). Looks up the property on the item and, by default, its ancestors — clash items are often bare geometry while the data lives on the element above. The geometric sibling is Clash.FilterByOrientation.

Inputs

Input Type Default What it does
results any number of wires required ClashResult[] — The clash results (e.g. from ClashTest.Results).
category required string — The property category (tab) name, as the Properties window shows it (e.g. "Element", "Item").
property required string — The property name inside that category (e.g. "Category", "System").
value1 required string — Text one item's property value must match. Empty = any.
value2 string "" Text the other item's property value must match (either order). Empty = any.
mode string "contains" How the texts must match: contains, equals, starts with or ends with.
searchAncestors boolean true True (default) also reads the property from the item's ancestors when the item itself lacks it — clash items are often geometry leaves while the data sits on the element or file above.
caseSensitive boolean false True matches exact casing; false (default) ignores case.

Outputs

Output Type What it gives
results ClashResult[] The matching results, input order preserved.

Tags: clash filter property category discipline pair pipe wall rule semantic

Clash.FilterByOrientation

Keeps only the clashes between elements of the given box shapes, matched in either order — shape1=run + shape2=wall keeps pipes through walls, run/riser + slab keeps pipes through floors; Clash.FilterByAngle alone cannot tell those apart (both cross at ~90°). Shapes are ClashResult.Orientation's: slab, wall, riser, run, block, or any.

Inputs

Input Type Default What it does
results any number of wires required ClashResult[] — The clash results (e.g. from ClashTest.Results).
shape1 string "any" Required shape of one element: any, slab, wall, riser, run or block.
shape2 string "any" Required shape of the other element (the pair is matched in either order).

Outputs

Output Type What it gives
results ClashResult[] The matching results, input order preserved (results without geometry are dropped).

Tags: clash filter orientation wall floor slab pipe shape crossing

Clash.FilterBySet

Keeps clashes whose items belong to a selection/search set (either one, both, or a specific side) — sets are the coordination scope language: "only my package", "only against the existing building". invert turns it into the classic ignore-list: drop every clash touching the "Accepted penetrations" set. An item counts as in the set when itself OR any ancestor is a member, matching how Navisworks selections include descendants. The set input takes a set, its name, or a list of model items or sets, and a list is read as ONE combined set; to filter once per set, right-click the set socket, choose List Levels and @L1.

Inputs

Input Type Default What it does
results any number of wires required ClashResult[] — The clash results (e.g. from ClashTest.Results).
set required any — The set to test against: a selection/search set, its name, or a list of model items.
which string "either" Which items must be in the set: either, both, item1 or item2.
invert boolean false True keeps the results that do NOT satisfy the test — the ignore-list mode.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
results ClashResult[] The matching results, input order preserved.

Tags: clash filter set selection search scope ignore exclude membership

Clash.FilterBySnapshot

Turns "what is new since last week" into live clash results you can select, group, assign or report: compares the results with a snapshot saved by Clash.SnapshotToFile, using the same identity as Clash.CompareSnapshots (the test and the pair of items, by InstanceGuid or tree path), and keeps the new ones (not in the snapshot) or the persisting ones (already in it). The other group comes out on others. Clashes that were resolved no longer exist in the model, so they can only be listed by Clash.CompareSnapshots. The same two items clashing at several points are matched one for one, in order.

Inputs

Input Type Default What it does
results any number of wires required ClashResult[] — The live clash results (e.g. from ClashTest.Results).
snapshotPath required string — The snapshot .json written by Clash.SnapshotToFile (last week's file).
keep string "new" new keeps the results that are not in the snapshot; persisting keeps the ones that are.

Outputs

Output Type
results ClashResult[]
others ClashResult[]

Returns: The results that were kept, and the others, both in input order.

Tags: clash filter snapshot new persisting delta baseline weekly compare history

Clash.FilterByStatus

Keeps only the clash results with the given status(es) — pick one from the dropdown, or wire several comma-separated ("New,Active"; the Clash.Statuses node builds that from toggles). The triage staple: drop the already-Approved ones and work the rest.

Inputs

Input Type Default What it does
results any number of wires required ClashResult[] — The clash results (e.g. from ClashTest.Results).
status required string — One or several of: New, Active, Reviewed, Approved, Resolved — comma-separated for several ("New,Active"; Clash.Statuses builds this from toggles).

Outputs

Output Type What it gives
results ClashResult[] The matching results, input order preserved.

Tags: clash filter status statuses new active approved resolved triage multiple

Clash.AllGroups

Every result group of every clash test in the document, as ONE flat list — the whole-project entry point for group workflows: wire it into Loop.Item and let ClashGroup.Info hand each iteration its results, group name and test name. Saves walking Clash.Tests then ClashTest.Groups per test (ClashTest.Groups runs once per test and gives a list of lists). Tests without groups contribute nothing.

Inputs

Input Type Default What it does
document Document null The document (defaults to the active document).

Outputs

Output Type
groups ClashResult[]
names string[]
testNames string[]
counts integer[]

Returns: One flat list of every group, with each group's name, its test's name and its result count (index-aligned).

Tags: clash groups all project every tests flat loop batch

Clash.GroupResults

Puts an explicit list of clash results into a named group in Clash Detective — YOUR grouping rule, not a built-in one: filter results any way you like, then group what came out. Results already in other groups are left alone (skipped) unless moveExisting is true, which pulls them into this group. An existing same-named group is extended; re-runs are clean. An empty list (a filter that found nothing) changes nothing and says so; several wires are merged into one list.

Inputs

Input Type Default What it does
results any number of wires required ClashResult[] — The clash results to group (from ClashTest.Results, Clash.FilterBy*, ...). All must belong to the same test.
groupName required string — The group's display name — an existing same-named group is extended, otherwise one is created.
moveExisting boolean false True pulls results that already sit in OTHER groups into this one; false leaves them where they are (they are counted as skipped).
document Document null The document (defaults to the active document).

Outputs

Output Type
test ClashResult
group ClashResult
added integer
moved integer
skipped integer

Returns: The test, the stored group, and how many results were added, moved and skipped.

Tags: clash group results move triage bucket organize

Clash.GroupResultsByGridIntersection

Groups a test's results by the model's own grid: each group is named after the nearest grid intersection and level (e.g. "B-3 : Level 2"). Requires a document with grids (Revit/IFC sources). Rebuilds the test's result tree: every group the test already has (also one made by Clash.GroupResults) is dissolved first and a group's own status, assignee and comments are not kept; a bucket with only one result stays ungrouped (a group needs two or more), so a status held by a single result gets no group. Both are reported as warnings.

Inputs

Input Type Default What it does
test required ClashTest — The stored clash test.
document Document null The document (defaults to the active document).

Outputs

Output Type
test ClashResult
groupCount integer

Returns: The regrouped test and the number of groups created.

Tags: clash group grid intersection level location triage

Clash.GroupResultsByLevel

Groups a test's results by nearest level below each clash point (wire your level names and elevations) — per-floor triage. The elevations are in document units unless units names another unit. Rebuilds the test's result tree: every group the test already has (also one made by Clash.GroupResults) is dissolved first and a group's own status, assignee and comments are not kept; a bucket with only one result stays ungrouped (a group needs two or more), so a status held by a single result gets no group. Both are reported as warnings.

Inputs

Input Type Default What it does
test required ClashTest — The stored clash test.
levelNames required string[] — Level names, index-aligned with the elevations.
levelElevations required number[] — Level elevations (Z), in the unit chosen under "units" (document units by default).
units string "document" Unit of the elevations: "document" uses the file's internal unit (often feet!), or name the unit your numbers are in.
document Document null The document (defaults to the active document).

Outputs

Output Type
test ClashResult
groupCount integer

Returns: The regrouped test and the number of groups created.

Tags: clash group level floor storey elevation triage

Clash.GroupResultsByProximity

Groups a test's results into clusters whose clash points lie within a radius of the cluster seed — one issue per hotspot. The radius is in document units unless units names another unit. Rebuilds the test's result tree: every group the test already has (also one made by Clash.GroupResults) is dissolved first and a group's own status, assignee and comments are not kept; a bucket with only one result stays ungrouped (a group needs two or more), so a status held by a single result gets no group. Both are reported as warnings.

Inputs

Input Type Default What it does
test required ClashTest — The stored clash test.
radius required number — Cluster radius, in the unit chosen under "units" (document units by default).
units string "document" Unit of the radius: "document" uses the file's internal unit (often feet!), or name the unit your number is in.
document Document null The document (defaults to the active document).

Outputs

Output Type
test ClashResult
groupCount integer

Returns: The regrouped test and the number of groups created.

Tags: clash group proximity cluster radius triage

Clash.GroupResultsBySameItem

Groups a test's results so every clash involving the same element lands in one group (named after the element) — turns thousands of raw clashes into one issue per element. Rebuilds the test's result tree: every group the test already has (also one made by Clash.GroupResults) is dissolved first and a group's own status, assignee and comments are not kept; a bucket with only one result stays ungrouped (a group needs two or more), so a status held by a single result gets no group. Both are reported as warnings.

Inputs

Input Type Default What it does
test required ClashTest — The stored clash test.
useItem1 boolean true True to group on each result's item 1, false for item 2.
document Document null The document (defaults to the active document).

Outputs

Output Type
test ClashResult
groupCount integer

Returns: The regrouped test and the number of groups created.

Tags: clash group same item element triage

Clash.GroupResultsByStatus

Groups a test's results by status (New/Active/Reviewed/Approved/Resolved) — one triage bucket per status in Clash Detective. Rebuilds the test's result tree: every group the test already has (also one made by Clash.GroupResults) is dissolved first and a group's own status, assignee and comments are not kept; a bucket with only one result stays ungrouped (a group needs two or more), so a status held by a single result gets no group. Both are reported as warnings.

Inputs

Input Type Default What it does
test required ClashTest — The stored clash test.
document Document null The document (defaults to the active document).

Outputs

Output Type
test ClashResult
groupCount integer

Returns: The regrouped test and the number of groups created.

Tags: clash group status triage bucket

ClashGroup.ByName

Finds a clash result group by test name + group name and opens it up: the results inside, the group's own status, and the count. The lookup half of group-based triage — feed the results to any filter/report node, or the group to ClashResult.SetStatus/Assign/Rename and SavedItem.AddComment. A list of test names (or tests) with a list of group names runs once per pair, one to one.

Inputs

Input Type Default What it does
test required any — The clash test, or its display name.
groupName required string — The group's display name inside that test.
document Document null The document (defaults to the active document).

Outputs

Output Type
group ClashResult
results ClashResult[]
status string
count integer

Returns: The group, the results inside it, the group's own status, and the result count.

Tags: clash group name fetch results status lookup

ClashGroup.Info

Everything about a clash result group, straight from the group object — the results inside, its name and status, and the TEST it belongs to (object and name). This is what makes whole-project group workflows one flat loop: Clash.Tests to ClashTest.Groups to List.Flatten to Loop.Item to this node, and every iteration knows its results, its group name and its test name without parallel lists. ClashGroup.ByName is the lookup-by-name twin.

Inputs

Input Type Default What it does
group required ClashResultGroup — The result group (e.g. from ClashTest.Groups).

Outputs

Output Type
results ClashResult[]
name string
status string
count integer
test ClashResult
testName string

Returns: The results inside it, its name and status, how many results it holds, and the test it belongs to (object and name).

Tags: clash group info results name status test parent loop

Clash.CompareSnapshots

Diffs two clash snapshots: clashes NEW since the baseline, clashes RESOLVED (disappeared), and clashes PERSISTING in both (with their previous status) — the weekly delta report no plugin does via live API. Pure file IO: needs no open model.

Inputs

Input Type Default What it does
oldPath required string — The older snapshot .json (the baseline).
newPath required string — The newer snapshot .json.

Outputs

Output Type
newResults dict[]
resolved dict[]
persisting dict[]
counts dict

Returns: Result dictionaries per bucket plus a counts dictionary.

Tags: clash compare delta diff new resolved persisting report

Clash.ResultsTable

Makes a table of the clash results you wire in: one row per result with its test, group, name, GUID, status, distance, assignee, description, creation date, the two items (path and GUID) and the clash point. Wire any filter's output, so "the New clashes deeper than 25 mm" is one row each, ready for the Table nodes, Table.ToCsvFile, Excel.WriteTable or Report.Html. Distance and clash point are in document units unless units names another unit; the creation date is a real date. An empty list gives a table with the headers and no rows.

Inputs

Input Type Default What it does
results any number of wires required ClashResult[] — The clash results (e.g. from ClashTest.Results or any Clash.FilterBy* node).
units string "document" Unit of the distance and the clash point: "document" uses the file's internal unit (often feet!), or name the unit you want the numbers in.

Outputs

Output Type What it gives
table CamelGraphTable A table with the columns Test, Group, Result, Result GUID, Status, Distance, Assigned To, Description, Created, Item 1, Item 1 GUID, Item 2, Item 2 GUID, Center X, Center Y and Center Z.

Tags: clash results table report export rows csv excel list filtered

Clash.SnapshotToFile

Saves a clash-run snapshot (per result: test, item identities, status, distance, clash point) as JSON — one half of the between-runs delta report. Items are identified by InstanceGuid when available, else by their tree path. Leave tests unwired for every test in the document; a wired list means exactly those tests, so an empty list (a filter that found no test) writes a snapshot with no results and says so. A relative file path means next to the graph.

Inputs

Input Type Default What it does
filePath required string — Destination .json path; the directory is created when missing.
tests any number of wires ClashTest[] null The tests to snapshot. Leave unwired for every test in the document; a wired list means exactly those tests, and an empty list writes a snapshot without results.
document Document null The document (defaults to the active document).

Outputs

Output Type
filePath file
resultCount integer

Returns: The written path and the number of results captured.

Tags: clash snapshot save history delta baseline json

Clash.SummaryTable

Per-test clash counts by status (test × Total/New/Active/Reviewed/Approved/Resolved) — the clash summary matrix. The table output goes straight into the Table nodes, Table.ToCsvFile and Excel.WriteTable; rows and headers are the same data as plain lists. Leave tests unwired for every test in the document; a wired list means exactly those tests, so an empty list (a filter that found no test) gives a table with the headers and no rows, not a report on everything.

Inputs

Input Type Default What it does
tests any number of wires ClashTest[] null The tests to summarize. Leave unwired for every test in the document; a wired list means exactly those tests, and an empty list gives a table without rows.
document Document null The document (defaults to the active document).

Outputs

Output Type
rows any
headers string[]
table dict

Returns: Rows (one per test), headers, and the same as one table — wire the table straight into Table, CSV or Excel nodes.

Tags: clash summary table matrix counts report excel

ClashResult.Angle

The angle in degrees (0–90) between the two clashing elements, taken from each element's overall direction (its bounding-box diagonal). ~0° means they run parallel/together, ~90° means they cross perpendicular — so you can filter clashes by crossing angle (e.g. keep only ~90° crossings). Returns NaN when an element has no measurable direction (a point-like box).

Inputs

Input Type Default What it does
result required ClashResult — The clash result.

Outputs

Output Type What it gives
degrees number The angle in degrees (0–90) between the two elements' overall directions.

Tags: clash angle degrees perpendicular crossing orientation direction

ClashResult.Assign

Assigns a clash result, or a whole result group, to a person or trade. A list of results runs the node once per result (lacing), so a list of results and a list of assignees pair up one to one; each result is its own edit. For a long list right-click the result socket, choose List Levels and @L2: the node then gets the whole list and assigns all of it in one step, one undo step. Works on Navisworks 2024 and 2025; on 2026 the node reports that it is not supported yet.

Inputs

Input Type Default What it does
result required any — The clash result or result group; or, with list level 2 on this input, a whole list of them.
assignedTo required string — The assignee (e.g. "MEP", "j.smith").
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
result any What was wired in (pass-through): the same result, group or list.

Tags: clash result assign trade responsible group bulk

ClashResult.ByGuid

Finds clash results again from their GUIDs — the way back from a BCF topic or a snapshot to the live result: wire the guid output of BCF.ImportIssues and send the results to ClashResult.SetStatus. A GUID that belongs to a result group finds the group (the BCF export writes one topic per result or group). GUIDs may be written with or without braces, in any case. results holds what was found, in the order of the GUIDs; missing holds the GUIDs that matched nothing (not a GUID, or a result that is no longer in the tests you looked in). Leave tests unwired to search every test in the document; a wired list means exactly those tests.

Inputs

Input Type Default What it does
guids required string[] — The GUIDs as text (e.g. the guid output of BCF.ImportIssues or of ClashResult.Info): one, or a list.
tests any number of wires ClashTest[] null The tests to look in. Leave unwired for every test in the document; a wired list means exactly those tests.
document Document null The document (defaults to the active document).

Outputs

Output Type
results ClashResult[]
missing string[]

Returns: The clash results or groups that were found, in the order of the GUIDs, and the GUIDs that were not found.

Tags: clash result guid find lookup bcf topic id byguid

ClashResult.Center

The clash point of a result, in document units.

Inputs

Input Type Default What it does
result required ClashResult — The clash result.

Outputs

Output Type What it gives
point Point3D The clash center point, in document units.

Tags: clash result center point location

ClashResult.Documentation

How documented a clash already is — whether it has a saved viewpoint, redline markup, and how many comments. Filter to the reviewed/annotated ones, or find the ones still needing attention (commentCount = 0).

Inputs

Input Type Default What it does
result required ClashResult — The clash result.

Outputs

Output Type
hasViewpoint boolean
hasRedlines boolean
commentCount integer

Returns: Whether it has a saved viewpoint, redline markup, and its comment count.

Tags: clash comments viewpoint redline reviewed documented annotated filter

ClashResult.Focus

Focuses the view on clash results the way double-clicking one in Clash Detective does: hides everything else (isolate), zooms the camera to the clashing pair, and optionally selects the elements. Wire one result, or a list to frame a whole group together. Follow with Viewpoint.SaveCurrent to keep the view; Appearance.ShowAll brings the model back. An empty list leaves the view as it is and says so.

Inputs

Input Type Default What it does
results any number of wires required ClashResult[] — The clash result(s) to focus — one, or a list to frame together.
isolate boolean true True hides everything except the clashing elements (Appearance.ShowAll undoes it).
zoom boolean true True zooms the camera to the clashing elements.
select boolean false True also selects the elements (fills the Selection window).
paddingFactor number 1.5 Zoom padding: 1 = tight framing, larger = more context.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
items ModelItem[] The clashing model items (pass-through for chaining, e.g. into Flow.Then or a viewpoint save).

Tags: clash focus isolate zoom view show frame select

ClashResult.Info

Name, status, distance, description, assignee and creation time of a clash result, plus its GUID (what BCF topics and ClashResult.ByGuid use), the name of its test and the name of its group (empty when it is not in a group).

Inputs

Input Type Default What it does
result required ClashResult — The clash result.

Outputs

Output Type
name string
status string
distance number
description string
assignedTo string
createdTime datetime
guid string
testName string
group string

Returns: Name, status, distance, description, assignee, creation time, GUID, the name of its test and of its group.

Tags: clash result info status distance

ClashResult.Items

The two model items involved in a clash result.

Inputs

Input Type Default What it does
result required ClashResult — The clash result.

Outputs

Output Type
item1 ModelItem
item2 ModelItem

Returns: The clashing items.

Tags: clash result items elements pair

ClashResult.Orientation

ClashResult.Angle with world context: the crossing angle PLUS each element's bounding-box shape — "slab" (thin horizontal), "wall" (thin upright), "riser" (long vertical), "run" (long horizontal) or "block" — and its slope from horizontal (0–90°). This is what tells a pipe through a wall (run + wall) from a pipe through a floor (run/riser + slab) when the crossing angle alone is 90° in both cases. Box-based: a strongly diagonal linear element can read as planar; "none" means the element has no measurable box.

Inputs

Input Type Default What it does
result required ClashResult — The clash result.

Outputs

Output Type
degrees number
shape1 string
shape2 string
slope1 number
slope2 number

Returns: The crossing angle, each element's box shape (slab/wall/riser/run/block, "none" without geometry) and its slope from horizontal (0–90°).

Tags: clash orientation angle wall floor slab pipe shape slope vertical horizontal

ClashResult.Rename

Renames a clash result or result group — with lacing and String nodes this is batch renaming ("Clash1" → "Pipe vs Duct L02-B3").

Inputs

Input Type Default What it does
result required SavedItem — The clash result (from ClashTest.Results) or group.
newName required string — The new display name.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
result SavedItem The result (pass-through). Lace over results + String nodes for Smart-Results-style batch naming (e.g. "Pipe vs Duct L02-B3").

Tags: clash result rename name smart batch

ClashResult.SaveImage

Renders a clash snapshot (scene plus clash highlight) to a .png/.jpg/.bmp file — the picture half of every clash report.

Inputs

Input Type Default What it does
result required ClashResult — The clash result.
filePath required string — Destination .png, .jpg or .bmp path; the directory is created when missing.
width integer 1280 Image width in pixels.
height integer 720 Image height in pixels.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
filePath string The written file path. Lace over result lists for a snapshot folder.

Tags: clash result image snapshot screenshot report

ClashResult.SetDescription

Sets the description text of a clash result, or of a whole result group (context for reports and reviews). A list of results runs the node once per result (lacing), so a list of results and a list of texts pair up one to one. For a long list right-click the result socket, choose List Levels and @L2: the node then gets the whole list and edits all of it in one step, one undo step.

Inputs

Input Type Default What it does
result required any — The clash result or result group; or, with list level 2 on this input, a whole list of them.
description required string — The description text.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
result any What was wired in (pass-through): the same result, group or list.

Tags: clash result description set note group bulk

ClashResult.SetStatus

Sets the status of a clash result, or of a whole result group (wire the group from ClashTest.Groups or ClashGroup.ByName) — approve a group in one step. A list of results runs the node once per result (lacing), so a list of results and a list of statuses pair up one to one, e.g. the topic statuses from BCF.ImportIssues; each result is its own edit and its own undo step. For a long list (thousands of results) right-click the result socket, choose List Levels and @L2: the node then gets the whole list and edits all of it in one step, one undo step. Works on Navisworks 2024 and 2025; on 2026 the node reports that it is not supported yet.

Inputs

Input Type Default What it does
result required any — The clash result or result group; or, with list level 2 on this input, a whole list of them.
status required string — One of: New, Active, Reviewed, Approved, Resolved.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
result any What was wired in (pass-through): the same result, group or list.

Tags: clash result status set resolve approve triage group bulk

ClashResult.Size

The size of the clash overlap region — its bounding-box volume in document units³. Filter out tiny grazing clashes and keep the significant ones. Pair with Units.Convert for readable units.

Inputs

Input Type Default What it does
result required ClashResult — The clash result.

Outputs

Output Type What it gives
volume number The clash bounding-box volume in document units³ (0 when unavailable).

Tags: clash size volume extent significance big small filter

ClashResult.Viewpoint

The camera viewpoint Navisworks generates for a clash result; optionally applies it to the current view.

Inputs

Input Type Default What it does
result required ClashResult — The clash result.
apply boolean false True to also make it the current view.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
viewpoint Viewpoint The viewpoint aimed at the clash.

Tags: clash result viewpoint camera goto

Clash.RunAllTests

Runs every Clash Detective test in the document — the weekly coordination re-run in one node.

Inputs

Input Type Default What it does
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
tests ClashTest[] All tests after the run.

Tags: clash run all tests batch

Clash.Status

A clash status as a dropdown (New/Active/Reviewed/Approved/Resolved) — wire it into ClashResult.SetStatus or Clash.FilterByStatus instead of typing the text.

Inputs

Input Type Default What it does
status string "New" New, Active, Reviewed, Approved or Resolved.

Outputs

Output Type What it gives
status string The chosen status text.

Tags: clash status dropdown choice new active reviewed approved resolved

Clash.Statuses

Pick SEVERAL clash statuses with toggles — the multi-select for Clash.FilterByStatus: switch on New and Active to work everything not yet reviewed. Outputs comma-separated text ("New,Active"), which every status input accepts.

Inputs

Input Type Default What it does
newStatus boolean true Include New results.
active boolean false Include Active results.
reviewed boolean false Include Reviewed results.
approved boolean false Include Approved results.
resolved boolean false Include Resolved results.

Outputs

Output Type What it gives
statuses string The picked statuses as comma-separated text (e.g. "New,Active") — the form every status input accepts.

Tags: clash status statuses multiple select toggle new active reviewed approved resolved

Clash.Tests

All Clash Detective tests in a document, including those inside folders.

Inputs

Input Type Default What it does
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
tests ClashTest[] Every clash test, including those nested in folders.

Tags: clash tests detective all

ClashTest.ByName

Finds a clash test by its display name (searches folders too).

Inputs

Input Type Default What it does
name required string — The test's display name.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
test ClashTest The stored clash test.

Tags: clash test byname find

ClashTest.ClearResults

Removes every result (and result group) of a clash test and leaves the test and its settings in place — the clean slate before a re-run. Statuses, assignments and comments on those results are lost.

Inputs

Input Type Default What it does
test required ClashTest — The clash test to clear.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
test ClashTest The stored test, now without results.

Tags: clash test clear results reset empty clean rerun

ClashTest.Create

Creates a clash test between two item selections — script the weekly test matrix instead of clicking it. If a test with that name already exists, ifExists decides: reuse (the default) hands back the existing test untouched, with all its results, statuses, assignments, comments and groups, and says so; update keeps those results and applies the type, tolerance and selections you wired (re-run the test afterwards); replace swaps in a brand-new empty test, so everything triaged on the old one is lost; error stops. A new test goes at the top level, or into the Clash Detective folder named under folder (the folder must exist). The tolerance is in document units unless units names another unit.

Inputs

Input Type Default What it does
name required string — Display name for the test.
itemsA required ModelItem[] — Selection A (e.g. from a search or selection set).
itemsB required ModelItem[] — Selection B.
testType string "Hard" One of: Hard, HardConservative, Clearance, Duplicate, Custom.
tolerance number 0.01 Tolerance in the unit chosen under "units" (document units by default); the clearance distance for clearance tests.
units string "document" Unit of the tolerance: "document" uses the file's internal unit (often feet!), or name the unit your number is in.
ifExists string "reuse" What to do when a test with this name already exists: reuse (keep it as it is, the default), update (keep its results and apply the new settings), replace (a new empty test, results are lost) or error.
folder string "" Name of an existing Clash Detective folder to put a new test in; empty puts it at the top level.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
test ClashTest The stored clash test, ready for ClashTest.Run.

Tags: clash test create new setup matrix

ClashTest.Delete

Deletes a clash test and all of its results from the document. Returns false (and changes nothing) when the test is not there, so a clean-up step can run twice. Undoable in Navisworks.

Inputs

Input Type Default What it does
test required ClashTest — The clash test to delete.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
deleted boolean True when the test was removed; false when it was not in the document.

Tags: clash test delete remove clean matrix

ClashTest.Duplicate

Duplicates a clash test — type, tolerance, rules and both selections — as a new test named "<name> copy" (or newName) in the same folder. The copy starts un-run: its results are cleared, so run it with ClashTest.Run. Errors if a test with that name already exists, so re-runs do not pile up copies — over a list of tests, leave newName empty or give each test its own name.

Inputs

Input Type Default What it does
test required ClashTest — The clash test to copy.
newName string "" Name for the copy ("" uses "<name> copy").
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
test ClashTest The new stored test, placed in the same folder as the original.

Tags: clash test duplicate copy clone variant matrix

ClashTest.Edit

Edits an existing clash test in place — name, test type, tolerance, merge-composites and the two selections; every input left at its default ("", "unchanged", -1, unwired) keeps the current value. The tolerance is in document units unless units names another unit. The test's existing results are kept but are stale after a change: re-run it with ClashTest.Run.

Inputs

Input Type Default What it does
test required ClashTest — The stored clash test (from Clash.Tests, ClashTest.ByName or ClashTest.Create).
newName string "" A new display name ("" keeps the current name).
testType string "unchanged" Hard, HardConservative, Clearance, Duplicate or Custom ("unchanged" keeps the current type).
tolerance number -1 The new tolerance, in the unit chosen under "units" (document units by default) — the clearance distance for clearance tests (any negative number, the default -1, keeps the current tolerance).
mergeComposites string "unchanged" "yes" or "no" to switch the merge-composites option, "unchanged" to keep it.
itemsA any number of wires ModelItem[] null Items to use as the test's selection A (leave unwired to keep the current selection).
itemsB any number of wires ModelItem[] null Items to use as the test's selection B (leave unwired to keep the current selection).
units string "document" Unit of the tolerance: "document" uses the file's internal unit (often feet!), or name the unit your number is in.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
test ClashTest The edited stored test.

Tags: clash test edit modify tolerance type clearance hard selection update

ClashTest.Groups

All result groups of a clash test — groups, names, each group's own status and result count, index-aligned. The overview half of group-based triage; ClashGroup.ByName opens a single one. Wire a test, its name, or a list of them: with a list the node runs once per test and every output is one list per test (List.Flatten joins them).

Inputs

Input Type Default What it does
test required any — The clash test, or its display name.
document Document null The document (defaults to the active document).

Outputs

Output Type
groups ClashResult[]
names string[]
statuses string[]
counts integer[]

Returns: The groups with their names, statuses and result counts, index-aligned.

Tags: clash test groups list names statuses overview

ClashTest.Info

Name, status, type, tolerance, last run time and result count of a clash test. The tolerance is in document units unless units names another unit.

Inputs

Input Type Default What it does
test required ClashTest — The clash test.
units string "document" Unit to give the tolerance in: "document" uses the file's internal unit (often feet!), or name a unit.

Outputs

Output Type
name string
status string
testType string
tolerance number
lastRun datetime
resultCount integer

Returns: Name, status, type, tolerance, last-run time and result count.

Tags: clash test info status tolerance

ClashTest.Name

The display name of a clash test — the one-output companion of ClashTest.Info for wiring names into reports, group lookups and file paths.

Inputs

Input Type Default What it does
test required ClashTest — The clash test.

Outputs

Output Type What it gives
name string The test's display name.

Tags: clash test name display title

ClashTest.Rename

Renames a clash test — wire a test or its current name. Batch-rename the whole matrix via lacing: a list of tests (or of names) and a list of new names pair up one to one, one test per name.

Inputs

Input Type Default What it does
test required any — The clash test, or its current display name.
newName required string — The new display name.
document Document null The document (defaults to the active document).

Outputs

Output Type What it gives
test ClashTest The stored test (pass-through for chaining).

Tags: clash test rename name

ClashTest.Results

The individual results of a clash test (grouped results are flattened).

Inputs

Input Type Default What it does
test required ClashTest — The clash test.

Outputs

Output Type What it gives
results ClashResult[] Every result, with grouped results flattened.

Tags: clash test results clashes

ClashTest.Run

Runs one clash test now and reports the result count.

Inputs

Input Type Default What it does
test required ClashTest — The stored clash test (from Clash.Tests, ClashTest.ByName or ClashTest.Create).
document Document null The document (defaults to the active document).

Outputs

Output Type
test ClashResult
resultCount integer

Returns: The test (pass-through) and its result count after the run.

Tags: clash test run execute detect