Model > Data

Property Explorer

Scans the selection, the visible items or the whole model once, then lists every category, property and value with counts in three linked, searchable lists. Select the items with a value, save it as a search set, copy the list or export the whole index to Excel.

Tab and panelModel > Data
KindButton
Live whenA model is open

Status

Untested Never executed inside Navisworks. Passed the headless checks only.

The public ask

No public source is on record for this tool.

Events it listens to

None. It runs only when you click it.

Files

Paths are relative to the Playground.extension folder.

  • Model.tab/Data.panel/Property_Explorer.pushbutton/bundle.yaml
  • Model.tab/Data.panel/Property_Explorer.pushbutton/icon.dark.png
  • Model.tab/Data.panel/Property_Explorer.pushbutton/icon.png
  • Model.tab/Data.panel/Property_Explorer.pushbutton/icon.small.dark.png
  • Model.tab/Data.panel/Property_Explorer.pushbutton/icon.small.png
  • Model.tab/Data.panel/Property_Explorer.pushbutton/script.py

Install

  1. Only this tool. In Navisworks, click pyNavis > Playground, search for Property Explorer, tick it and click Install.
  2. The whole extension. Download Playground.extension.zip, unzip it, put the Playground.extension folder in %APPDATA%\pyNavis\extensions\, and click pyNavis > Reload. Property Explorer is on the Model tab, Data 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.

Report

Source

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/Data.panel/Property_Explorer.pushbutton/script.py View on GitHub
# -*- coding: utf-8 -*-
"""Opens Property Explorer: every category, property and value of the scanned items in three linked lists."""
from pynavis import script, toast

from namo import data_common, data_explorer, propindex, ui


def run():
    if ui.is_runner():
        toast.info('Property Explorer needs the Navisworks window', 'It cannot open under pynavis run.')
        return
    doc = data_common.active_doc()
    if not data_common.has_models(doc):
        data_common.no_model_toast()
        return
    existing = ui.Modeless.get(data_explorer.KEY)
    if existing is not None:
        existing.Activate()
        return
    me = script.bind()
    logger = ui.pinned_logger()
    entry = propindex.cached(doc)
    if entry is None:
        entry = data_explorer.scan_flow(me, doc)
        if entry is None:
            return
    data_explorer.show(entry, me, logger)
    if entry.get('sampled'):
        toast.warning('Scan sampled', 'It stopped at %s items; Rescan with a larger budget to read them all.'
                      % '{:,}'.format(entry['index'].total))


run()

Library modules this tool uses

From the shared namo library, which installs with every tool. Each name opens the module on GitHub.

  • namo.data_commonShared plumbing for the Inspect and Data panel tools: progress stages, where files go by default, the scope dialog fields, and the small checks every button starts with.
  • namo.data_explorerProperty Explorer: the scan flow and the modeless three-list window.
  • namo.propindexProperty scanning shared by Property Explorer, Count by Property, Data Validator and the Write Data tools: scopes, fast value reading, the category > property > value index.
  • 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/Data.panel/Property_Explorer.pushbutton/bundle.yaml View on GitHub
title: Property\nExplorer
tooltip: Scans the selection, the visible items or the whole model once, then lists every category, property and value with counts in three linked, searchable lists. Select the items with a value, save it as a search set, copy the list or export the whole index to Excel.
context: doc