Views > Navigate

Camera Sync

Mirrors the camera live between two Navisworks windows on this computer, for two model versions side by side. Turn it on in both windows; the one you move leads.

Tab and panelViews > Navigate
KindToggle button

Status

Launched Ran inside Navisworks at least once with no error logged; nobody checked the result yet.

Recorded on 2026-10-05. The evidence is a line in a pyNavis log.

The public ask

No public source is on record for this tool.

Events it listens to

It needs these Navisworks event hooks, so installing it also copies the shared hooks folder:

  • app-closing

Files

Paths are relative to the Playground.extension folder.

  • Views.tab/Navigate.panel/Camera_Sync.toggle/bundle.yaml
  • Views.tab/Navigate.panel/Camera_Sync.toggle/icon.dark.png
  • Views.tab/Navigate.panel/Camera_Sync.toggle/icon.off.dark.png
  • Views.tab/Navigate.panel/Camera_Sync.toggle/icon.off.png
  • Views.tab/Navigate.panel/Camera_Sync.toggle/icon.on.dark.png
  • Views.tab/Navigate.panel/Camera_Sync.toggle/icon.on.png
  • Views.tab/Navigate.panel/Camera_Sync.toggle/icon.png
  • Views.tab/Navigate.panel/Camera_Sync.toggle/icon.small.dark.png
  • Views.tab/Navigate.panel/Camera_Sync.toggle/icon.small.png
  • Views.tab/Navigate.panel/Camera_Sync.toggle/script.py

Install

  1. Only this tool. In Navisworks, click pyNavis > Playground, search for Camera Sync, 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. Camera Sync is on the Views tab, Navigate 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.

Views.tab/Navigate.panel/Camera_Sync.toggle/script.py View on GitHub
"""Mirrors the camera live between Navisworks sessions on this machine, or stops mirroring."""
from namo import camsync, ui, vp_common
from pynavis import script, toast


def run():
    if camsync.is_running():
        camsync.stop()
        script.set_toggle_state(False)
        toast.info('Camera sync off', 'This window no longer follows or leads the other one.')
        return
    if vp_common.active_doc() is None:
        script.set_toggle_state(False)
        toast.info('No document open', 'Open a model, then turn Camera Sync on.')
        return
    try:
        partner = camsync.start(log=ui.pinned_logger())
    except Exception as error:
        camsync.stop()
        script.set_toggle_state(False)
        toast.error('Could not start Camera Sync', str(error))
        return
    script.set_toggle_state(True)
    message, detail = camsync.status_text(partner)
    if partner is None:
        toast.info(message, detail)
    else:
        toast.success(message, detail)


run()

Library modules this tool uses

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

  • namo.camsyncCamera Sync: the camera mirrored live between Navisworks sessions on this machine (two model versions side by side, an NWD next to its NWF, a federation next to one trade model).
  • namo.uiWPF building blocks for Playground tools, themed from the pyNavis design system.
  • namo.vp_commonShared helpers for the Views tools (Viewpoints, Capture and Navigate panels).

bundle.yaml

The bundle contract: the keys pyNavis reads for this tool.

Views.tab/Navigate.panel/Camera_Sync.toggle/bundle.yaml View on GitHub
title: Camera\nSync
title_on: Syncing
tooltip: Mirrors the camera live between two Navisworks windows on this computer, for two model versions side by side. Turn it on in both windows; the one you move leads.
tooltip_on: Camera Sync is on: this window follows and leads the other Navisworks window. Click to stop.