Model > Data
Property Mapper
Fills one standard tab (System, Level, Mark...) from whichever source property each model uses, in order of preference, with optional regex clean-up and per-model overrides. Shows coverage per field and model before writing. Profiles are team-shareable and export to JSON.
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/Write_Data.pulldown/Property_Mapper.pushbutton/bundle.yamlModel.tab/Data.panel/Write_Data.pulldown/Property_Mapper.pushbutton/icon.dark.pngModel.tab/Data.panel/Write_Data.pulldown/Property_Mapper.pushbutton/icon.pngModel.tab/Data.panel/Write_Data.pulldown/Property_Mapper.pushbutton/icon.small.dark.pngModel.tab/Data.panel/Write_Data.pulldown/Property_Mapper.pushbutton/icon.small.pngModel.tab/Data.panel/Write_Data.pulldown/Property_Mapper.pushbutton/script.py
Install
- Only this tool. In Navisworks, click pyNavis > Playground, search for Property Mapper, 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. Property Mapper 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.
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/Data.panel/Write_Data.pulldown/Property_Mapper.pushbutton/script.py View on GitHub# -*- coding: utf-8 -*-
"""Maps properties from several sources into one standard custom tab using saved profiles."""
from pynavis import script, toast
from namo import data_common, data_write, ui
def run():
if ui.is_runner():
toast.info('Property Mapper 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
data_write.mapper_flow(script.bind(), doc)
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_writeThe Write Data pulldown's dialogs and flows: Bulk Property Writer, Find and Replace, Property Mapper and External Data Link. The logic they rest on (planning, matching, mapping, writing inside one transaction) is namo.propwrite; this module asks, previews and reports. Every flow takes the BoundScript `me` (settings) and the document, returns nothing and toasts every outcome; cancelling any dialog is silent.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/Write_Data.pulldown/Property_Mapper.pushbutton/bundle.yaml View on GitHubtitle: Property Mapper
tooltip: Fills one standard tab (System, Level, Mark...) from whichever source property each model uses, in order of preference, with optional regex clean-up and per-model overrides. Shows coverage per field and model before writing. Profiles are team-shareable and export to JSON.
context: doc