Model > Select
Save as Set
Saves the current selection as a selection set named from a template such as Ducts - 412 items - 2026-10-05, in the Playground folder. Shift+Click for settings.
Status
Launched Ran inside Navisworks at least once with no error logged; nobody checked the result yet.
Ran headless under pynavis run against a sample model; 17 parts selected: ran to the end: 'Saved set 'Object Material - 17 items - 2026-10-09''; result not checked by a person.
The public ask
No public source is on record for this tool.
Installs with
Save as Set sits in a stack, so installing it also installs:
Events it listens to
None. It runs only when you click it.
Files
Paths are relative to the Playground.extension folder.
Model.tab/Select.panel/Quick.stack/Save_as_Set.pushbutton/bundle.yamlModel.tab/Select.panel/Quick.stack/Save_as_Set.pushbutton/config.pyModel.tab/Select.panel/Quick.stack/Save_as_Set.pushbutton/icon.dark.pngModel.tab/Select.panel/Quick.stack/Save_as_Set.pushbutton/icon.pngModel.tab/Select.panel/Quick.stack/Save_as_Set.pushbutton/icon.small.dark.pngModel.tab/Select.panel/Quick.stack/Save_as_Set.pushbutton/icon.small.pngModel.tab/Select.panel/Quick.stack/Save_as_Set.pushbutton/script.py
Install
- Only this tool. In Navisworks, click pyNavis > Playground, search for Save as Set, tick it and click Install.
- The whole extension. Download
Playground.extension.zip, unzip it, put thePlayground.extensionfolder in%APPDATA%\pyNavis\extensions\, and click pyNavis > Reload. Save as Set is on the Model tab, Select panel.
You need pyNavis 1.3.0 or later.
Tried it? Tell us whether it worked or not. That report is what moves a tool up the status ladder.
ReportSource
The tool's own files, word for word as published in pynavis/Playground. Paths are relative to the Playground.extension folder.
script.py
The script that runs on a click.
Model.tab/Select.panel/Quick.stack/Save_as_Set.pushbutton/script.py View on GitHub# -*- coding: utf-8 -*-
"""Saves the current selection as a selection set named from a template, in one click."""
from pynavis import script, toast
from namo import find_sets, items, naming, selecttools
cfg = script.get_config(selecttools.SAVE_DEFAULTS)
selected = items.selected()
if not selected:
toast.info('Nothing selected', 'Select the items to save first.')
else:
sample = selected[:200]
values = selecttools.name_values([items.category(i) for i in sample],
[items.model_name(i) for i in sample], len(selected),
naming.standard_values())
name, missing = selecttools.set_name(cfg['template'], values)
folder = (cfg['folder'] or '').strip() or None
_item, final = find_sets.create_set(name, selected, folder)
where = 'In folder %s' % folder if folder else 'At the top of the Sets window'
detail = '%s; %s items.' % (where, '{:,}'.format(len(selected)))
if missing:
toast.warning("Saved set '%s'" % final, '%s Unknown tokens kept as written: %s.' % (
detail, ', '.join('{%s}' % m for m in missing)))
else:
toast.success("Saved set '%s'" % final, detail)
config.py
The Shift+Click action.
Model.tab/Select.panel/Quick.stack/Save_as_Set.pushbutton/config.py View on GitHub# -*- coding: utf-8 -*-
"""Options for Save as Set: the name template and the folder the sets go in."""
from pynavis import script, toast
from namo import selecttools, ui
cfg = script.get_config(selecttools.SAVE_DEFAULTS)
values = ui.form('Save as Set', [
{'kind': 'text', 'key': 'template', 'label': 'Set name', 'default': cfg['template'],
'required': True,
'hint': 'Tokens: {category} (most common), {count}, {date}, {time}, {user}, {file}, {model}. '
'Dates take a format: {date:%d %b %Y}.'},
{'kind': 'text', 'key': 'folder', 'label': 'Folder', 'default': cfg['folder'],
'hint': 'Created when missing; use / for subfolders. Leave blank for the top level.'},
], ok='Save', width=520)
if values is not None:
cfg['template'] = values['template'].strip() or selecttools.SAVE_DEFAULTS['template']
cfg['folder'] = values['folder'].strip()
script.save_config(cfg)
toast.success('Saved', 'Sets will be named %s.' % cfg['template'])
Library modules this tool uses
From the shared namo library, which installs with every tool. Each name opens the module on GitHub.
namo.find_setsThe saved-sets tree, shared by the Find tools: paths, lookups and creating sets.namo.itemsModel items: walking, collecting, identifying, measuring and showing them.namo.namingName templates: '{test} - {n:000}', '{date:%Y%m%d} {project}', '{{literal braces}}'.namo.selecttoolsSelect panel logic: Select Similar, Filter Selection, Invert, Select by File, Save as Set.namo.uiWPF building blocks for Playground tools, themed from the pyNavis design system.
bundle.yaml
The bundle contract: the keys pyNavis reads for this tool.
Model.tab/Select.panel/Quick.stack/Save_as_Set.pushbutton/bundle.yaml View on GitHubtitle: Save as Set
tooltip: Saves the current selection as a selection set named from a template such as Ducts - 412 items - 2026-10-05, in the Playground folder. Shift+Click for settings.
context: selection