OpenSite/Guides/Navigate a viewport

From BathAfrica Documentation
Revision as of 14:01, 29 October 2026 by BathAfrica (talk | contribs) (Add rewritten practical lesson with steps, code and expected results)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
OpenSite 0.0.1 · DevelopmentSource scope and availability


Set a standard view and presentation options without changing model quantities.

Stable identifier
opensite.help.navigate-a-viewport

Prerequisites

A desktop viewport with an open document view. The same calls must handle a headless host or an empty view list.

Steps

Check availability

Test opensite.viewport.available(). A headless host reports that a desktop viewport is unavailable.

Select an existing view

Read viewport.views() and handle the empty list. Do not invent a view ID.

Set presentation

Fit all, choose isometric, set orthographic projection and shaded edges, then enable grid and axes.

Separate presentation from engineering data

Changing camera, projection or grid affects the display. It does not alter section dimensions, units stored in the model or a material’s constitutive values.

Expected result

A desktop view is fitted and presented with the chosen settings, or the script prints an informative unavailable/no-view message.

Limitations

A viewport foundation is not a general CAD geometry kernel, mesh generator or FEM solver. The example does not create display geometry.

Complete example

import opensite

if not opensite.viewport.available():
    print("No desktop viewport in this host.")
else:
    views = opensite.viewport.views()
    if not views:
        print("Open a document view first.")
    else:
        view = views[0]
        opensite.viewport.fit_all(view)
        opensite.viewport.standard_view(view, "isometric")
        opensite.viewport.set_projection(view, "orthographic")
        opensite.viewport.set_style(view, "shaded_edges")
        opensite.viewport.set_grid(view, True)
        opensite.viewport.set_axes(view, True)
        print("View updated; engineering quantities are unchanged.")