Coordinate > Clash Reports
Clash Trends
Charts open and resolved clashes over the model's snapshots with a burn-down table, and can save it to Excel or CSV.
Status
Untested Never executed inside Navisworks. Passed the headless checks only.
Related asks to confirm
No quote is on record yet. These threads look related, but a person still has to open and read them.
- https://forums.autodesk.com/t5/navisworks-forum/navisworks-clash-detective-status-reports/td-p/5563947
- https://forums.autodesk.com/t5/navisworks-forum/navisworks-clash-test-result-recording-and-monitoring/td-p/13158705
Installs with
Clash Trends sits in a stack, so installing it also installs:
Events it listens to
It needs these Navisworks event hooks, so installing it also copies the shared hooks folder:
doc-saved
Files
Paths are relative to the Playground.extension folder.
Coordinate.tab/Clash_Reports.panel/History.stack/Clash_Trends.pushbutton/bundle.yamlCoordinate.tab/Clash_Reports.panel/History.stack/Clash_Trends.pushbutton/icon.dark.pngCoordinate.tab/Clash_Reports.panel/History.stack/Clash_Trends.pushbutton/icon.pngCoordinate.tab/Clash_Reports.panel/History.stack/Clash_Trends.pushbutton/icon.small.dark.pngCoordinate.tab/Clash_Reports.panel/History.stack/Clash_Trends.pushbutton/icon.small.pngCoordinate.tab/Clash_Reports.panel/History.stack/Clash_Trends.pushbutton/script.py
Install
- Only this tool. In Navisworks, click pyNavis > Playground, search for Clash Trends, 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. Clash Trends is on the Coordinate tab, Clash Reports 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.
Coordinate.tab/Clash_Reports.panel/History.stack/Clash_Trends.pushbutton/script.py View on GitHub# -*- coding: utf-8 -*-
"""Charts open and resolved clashes over the model's clash snapshots, with a burn-down table."""
import os
from pynavis import script, toast
from namo import clashrep_forms as cf
from namo import clashreport as cr
from namo import rep_clash_trends as rep
from namo import ui
TITLE = 'Clash Trends'
DEFAULTS = {'tests': [], 'series': 'total', 'current': True, 'xlsx': False, 'csv': False}
def run():
from namo import clashdata
values = script.get_config(DEFAULTS)
if cf.runner_active():
cf.run_saved('clash_trends', values)
return
doc = cr.active_doc()
problem = cf.start(doc)
if problem:
toast.show(*problem)
return
doc_path = cr.file_info(doc)[0]
if not doc_path:
toast.info('Save the model first', 'Clash snapshots are kept per model file, so an unsaved model has none.')
return
if not clashdata.list_history(doc_path):
toast.info('No clash snapshots yet',
'Take one with Snapshot (or turn on automatic snapshots), then come back after the next run.')
return
tests = cf.pick_tests(TITLE, 'Tick the tests to follow.', values['tests'], doc)
if tests is None:
return
if not tests:
toast.info('No clash results yet', 'Run your clash tests in Clash Detective first.')
return
path = cr.default_path(rep.NAME_TEMPLATE, 'xlsx', doc)
answers = ui.form(TITLE, cf.trends_fields(values, path), ok='Draw', width=560)
if answers is None:
return
export = answers['export']
values.update({'tests': cf.test_paths(tests), 'series': answers['series'], 'current': answers['current'],
'xlsx': export in ('xlsx', 'both'), 'csv': export in ('csv', 'both')})
script.save_config(values)
target = answers['path'] if export != 'none' else ''
if export == 'csv' and target:
target = os.path.splitext(target)[0] + '.csv'
config = {'tests': values['tests'], 'series': values['series'], 'current': values['current'],
'xlsx': values['xlsx'], 'csv': values['csv'], 'path': target}
result = cf.run_report('clash_trends', config, TITLE, doc)
if result is None:
return
toast.show(result['level'], result['message'], result['detail'])
cf.reveal(result)
run()
Library modules this tool uses
From the shared namo library, which installs with every tool. Each name opens the module on GitHub.
namo.clashdataOne reader for every clash tool: snapshots, groups, run-to-run comparison, history, images, and the per-result edits that are safe at scale.namo.clashrep_formsThe questions the Clash Reports buttons ask, in one place.namo.clashreportClash reports: the row shaping, summaries and tallies every Clash Reports tool shares.namo.rep_clash_trendsClash Trends: open and resolved clashes over the model's clash snapshots.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.
Coordinate.tab/Clash_Reports.panel/History.stack/Clash_Trends.pushbutton/bundle.yaml View on GitHubtitle: Clash Trends
tooltip: Charts open and resolved clashes over the model's snapshots with a burn-down table, and can save it to Excel or CSV.
context: clash-tests