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

Navisworks: Properties

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

Properties.AsDictionary

Every property of an item flattened to a "Category.Property" → value dictionary (full data dump).

Inputs

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

Outputs

Output Type What it gives
properties dict A "Category.Property" → value dictionary (full data dump / JSON export).

Tags: property dictionary all dump json export

Properties.Categories

The property category names available on a model item.

Inputs

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

Outputs

Output Type What it gives
categories string[] The category display names.

Tags: property categories tabs groups

Properties.CustomTabs

The user-defined property tabs on an item (discovery/QA before SetCustom or RemoveCustomTab). Built-in source-file categories are not listed — use Properties.Categories for those.

Inputs

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

Outputs

Output Type What it gives
tabNames string[] The user-defined tab display names, in tab order.

Tags: property custom tabs list user discover

Properties.Discover

Lists every property the given items carry, one row per category and property with how many items have it (Items), how many different values it holds (Distinct, counted up to 10000) and the first few values (Samples) — the answer to "what data does this model actually have?". Reads every property of every item once, so cost grows with items times properties.

Inputs

Input Type Default What it does
items any number of wires required ModelItem[] — The model items to look at (their own properties only, not their children's).
maxSamples integer 3 How many distinct sample values to show per property (0 to 50).

Outputs

Output Type What it gives
table CamelGraphTable A table with the columns Category, Property, Items, Distinct and Samples.

Tags: properties discover explore schema catalog what data categories values profile audit inventory

Properties.HasProperty

True when the item carries the property — drives model-QA missing-data masks.

Inputs

Input Type Default What it does
item required ModelItem — The model item.
categoryName required string — Category display name; internal names also match.
propertyName required string — Property display name; internal names also match.

Outputs

Output Type What it gives
hasProperty boolean True when the property exists on the item — drives model-QA "missing data" masks.

Tags: property has exists qa missing

Properties.InCategory

All property names and values inside one category of an item. Returns empty lists when the item lacks the category.

Inputs

Input Type Default What it does
item required ModelItem — The model item.
categoryName required string — Category display name (e.g. "Element"); internal names also match.

Outputs

Output Type
names string[]
values any

Returns: Index-aligned property names and plain values (empty lists when the category is absent).

Tags: property category all names values tab

Properties.RemoveCustomTab

Removes a user-defined property tab from items. Items without the tab are skipped (see removedCount) — safe for clean re-runs of SetCustom graphs.

Inputs

Input Type Default What it does
modelItems any number of wires required ModelItem[] — The model items to clean.
tabName required string — The tab's user-visible name.

Outputs

Output Type
modelItems ModelItem[]
removedCount integer

Returns: The items (pass-through) and how many items actually had the tab.

Tags: property custom remove delete tab clean user

Properties.RenameCustomTab

Renames a user-defined property tab in place (same properties, same internal name — search sets targeting the tab stay valid). Items without the tab are skipped.

Inputs

Input Type Default What it does
modelItems any number of wires required ModelItem[] — The model items whose tab to rename.
tabName required string — The tab's current user-visible name.
newTabName required string — The new user-visible name.

Outputs

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

Tags: property custom rename tab user

Properties.SetCustom

Writes ONE set of names and values as a user-defined property tab onto every item you give it — values are searchable, schedulable, and travel with the NWF/NWD (source files are never modified). Each value must be a single text, number, true/false or date: a list in the values is refused with a message, because a property holds one value. For a different row of values per item (a table from Excel) use Properties.SetCustomFromTable. Merge keeps existing same-tab properties; new values win on name collisions. Inside a node group every instance writes the same tab name, so wire the name in from the group's input when instances must not share a tab.

Inputs

Input Type Default What it does
modelItems any number of wires required ModelItem[] — The model items to stamp.
names required string[] — Property display names (index-aligned with values).
values required any[] — Property values (string, number, boolean or date; index-aligned with names). Every value must be a single value: a list inside the values is refused.
tabName string "CamelGraph Data" User-visible tab name; a stable internal name is derived from it so search sets can target the tab.
merge boolean true True keeps existing properties of a same-named tab (new values win on name collisions); false replaces the tab's content entirely.

Outputs

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

Tags: property custom set write user tab parameter smartproperties stamp

Properties.SetCustomFromTable

Writes a table onto model items as a user-defined property tab, a DIFFERENT row for every item — the spreadsheet-to-model step in one node (Table.FromExcelFile, Table.Join with Properties.ToTable, then this). Each column becomes a property named after its header. Either row 1 goes to item 1, row 2 to item 2 and so on (the counts must match, or nothing is written), or give keyColumn the column that holds each row's GUID and every row finds its item by GUID in one pass (rows that match no item are skipped and listed in missing). Every value must be text, a number, true/false or a date (an empty cell is written as empty text), and all values are checked before the first item is touched. Values are searchable, schedulable, and travel with the NWF/NWD (source files are never modified); merge keeps existing same-tab properties.

Inputs

Input Type Default What it does
table required CamelGraphTable — The table: one row per item, one column per property (the header is the property name).
modelItems any number of wires ModelItem[] null The items. With no keyColumn row 1 goes to item 1, row 2 to item 2 and so on, so there must be as many rows as items. With a keyColumn these are the items the GUIDs are looked for among; leave it unwired to look in the whole model.
columns any number of wires any[] null The headers of the columns to write; leave empty for every column except the key column and the @ columns that Properties.ToTable adds.
tabName string "CamelGraph Data" User-visible tab name; a stable internal name is derived from it so search sets can target the tab.
keyColumn string null The header of the column that holds each row's item GUID (instance GUID text, or a 22-character IFC id); leave empty to pair rows and items by position.
merge boolean true True keeps existing properties of a same-named tab (new values win on name collisions); false replaces the tab's content entirely.
document Document null The document (defaults to the active document); only used to look items up by GUID.

Outputs

Output Type
modelItems ModelItem[]
written integer
missing string[]

Returns: The items that were written, how many, and the keys that matched no item.

Tags: property custom table excel spreadsheet import write user tab row guid stamp cobie classification parameter

Properties.ToTable

Reads the named properties of every item into a table with one row per item and one column per name ("Element.Category", "Item|Layer", a bare property name, or @Name, @Path, @Guid), ready for the Table nodes, Excel or CSV; a property an item lacks is an empty cell. Reads items times names values. Leave properties unwired to read EVERY property the items carry instead, one "Category.Property" column each in the order first met (capped at one million cells; with the Table nodes and Table.ToCsvFile this is the all-properties CSV export). Several wires into properties are joined into one list.

Inputs

Input Type Default What it does
items any number of wires required ModelItem[] — The model items, one table row each.
properties any number of wires any[] null The columns: "Category.Property" or "Category|Property" (split at the first "|" if there is one, otherwise at the first "."), a bare property name (searched in every category, first match wins), or @Name, @Path, @Guid. Leave it unwired (or empty) to get every property the items carry.

Outputs

Output Type What it gives
table CamelGraphTable A table with one column per entry of properties, headed with the text as written; with no properties, one column per category and property found, headed "Category.Property", in the order first met.

Tags: properties table export rows columns excel csv dataframe report schedule quantities all properties dump

Properties.Value

Reads a property value from a model item, converted to a plain value. Returns null when the property is absent.

Inputs

Input Type Default What it does
item required ModelItem — The model item.
categoryName required string — Category display name (e.g. "Element", "Item"); internal names also match.
propertyName required string — Property display name (e.g. "Category", "Name"); internal names also match.

Outputs

Output Type What it gives
value any The property value as a plain .NET value, or null when the item lacks the property.

Tags: property value parameter attribute data

Properties.ValueAsString

Reads a property value as text. Returns "" when the property is absent.

Inputs

Input Type Default What it does
item required ModelItem — The model item.
categoryName required string — Category display name; internal names also match.
propertyName required string — Property display name; internal names also match.

Outputs

Output Type What it gives
text string The value as text ("" when the property is absent).

Tags: property value string text display