Navisworks: Properties¶
13 nodes. Types ending in [] are lists. An input with a default is optional.
Nodes¶
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