NXKnowledge

NX Open C++ Reference Guide > Main Page / Namespaces

NXOpen C++ Reference Guide — Overview

This is the Doxygen-generated API reference for NXOpen when used from C++. Product id 209349590 (NX), book id nx_open_c_plus_plus_ref, version shown in this pass: NX 2212.

How this book differs from the other three language references

Like the .NET and Python reference guides, this is a raw Doxygen output (not hand-written prose). The wrapper page at https://docs.sw.siemens.com/en-US/doc/209349590/PL20220512394070742.nx_open_c_plus_plus_ref loads a single content <iframe> (no id/name attribute — same document.querySelectorAll('iframe')[0] pattern as the other Doxygen books) whose src is:

https://docs.sw.siemens.com/documentation/external/PL20220512394070742/en-US/nx_api/nx/2212/nx_api/en-US/nx_open_c_plus_plus_ref/index.html

Once that wrapper has loaded and set its signing cookie, you can redirect the same iframe's .src to sibling pages under that same directory (namespaces.html, annotated.html, or a specific class's generated page like a70616.html for Session) and they load without a fresh "Access Denied" — exactly like the .NET/Python books. Plain fetch() calls from the top-level page context are blocked by a client-side DLP/cookie heuristic; use iframe.src = ... navigation and then read iframe.contentDocument.body.textContent (NOT .innerText — that trips the same heuristic on some pages) after the load completes.

Book discovery note: the URL is not a simple sibling of nxopen_net / open_java_ref / nxopen_python_ref (i.e. it is not open_cpp_ref, which 404s). The real book id is nx_open_c_plus_plus_ref, discoverable only via the NX product Documentation Center search (search "NX Open C++ Reference" in the product-209349590 documentation facet, Document Type = Product Documentation, Category = NX Open) — the search result resolves to:

https://support.sw.siemens.com/en-US/product/209349590/doc/PL20220512394070742.nx_open_c_plus_plus_ref

which redirects to the docs.sw.siemens.com viewer.

Structure

  • Namespaces (namespaces.html) — a flat, collapsible tree of every documented C++ namespace under the NX Open API, each with a one-line purpose description (identical wording to the equivalent Java/.NET/Python namespace summaries, since all four language bindings share the same underlying object model). Root is NXOpen; most feature areas live as NXOpen::<Area> sub-namespaces (e.g. NXOpen::Features, NXOpen::Assemblies, NXOpen::Positioning, NXOpen::BlockStyler, NXOpen::UF).
  • Classes (annotated.html / classes.html / hierarchy.html) — global class list, alphabetical index, and inheritance hierarchy.
  • Each namespace's own page (e.g. a31387.html for root NXOpen) lists its directly-contained classes, structs, and enums with one-line Doxygen \brief-style descriptions and a "More..." link to the full class page (constructors, public member functions, properties).

Root NXOpen namespace — selected classes

The root namespace is described as: "Provides classes and interfaces for the NX Open Common API." It contains roughly 800+ classes; below are the core object-model classes most NX Open developers touch on day one (exact one-line descriptions as documented):

Class Kind Description
Session class Represents the NX session.
Part class Represents an NX part of type .prt.
PartCollection class Represents the collection of all parts in a session.
NXObject class A base class providing low-level services for most NXOpen classes.
TaggedObject class An object that has a Tag.
View class Represents a view.
ViewCollection class Represents a collection of NXOpen::Views.
Point3d struct Represents three-dimensional cartesian coordinates for a point (created in NX3.0.0).
Point4d struct Represents four-dimensional homogeneous coordinates for a point.
Vector3d struct Represents a three-dimensional vector (created in NX3.0.0).
Matrix3x3 struct Represents a 3 x 3 matrix (created in NX3.0.0).
Matrix4x4 struct Represents a homogenous coordinate system transformation matrix.

Session

NXOpen::Session is the entry point to the whole API — every NX Open program obtains a Session* first (typically via NXOpen::Session::GetSession() in a C++ internal/external application) and then reaches everything else — Parts() (the PartCollection), the active Part, ListingWindow, UI, undo/update managers, and the various *Utils helper classes (e.g. AssembliesUtils, obtained "To obtain an instance of this class, refer to NXOpen::Session") — through it. This mirrors the Java/.NET/Python bindings exactly: Session is always the root handle.

Part / PartCollection

  • Part represents a single loaded .prt file (a part or assembly file) — the document object that owns features, bodies, sketches, components, layers, and so on.
  • PartCollection (obtained from Session::Parts()) represents all parts currently loaded in the session, and is the usual way to iterate loaded parts, open new ones, or find the work/display part.

NXObject / TaggedObject

  • TaggedObject is the more primitive base: "An object that has a Tag" — a Tag is NX's underlying integer object-handle used throughout the C User Function (UF) API, so every NXOpen object that wraps a native NX entity carries one.
  • NXObject builds on that: "A base class providing low-level services for most NXOpen classes" — attributes, journaling identity, and the various cast/query helpers used pervasively when working generically with features, bodies, and other model objects.

View

View represents a view (e.g. a modeling view/orientation in a part), with ViewCollection as its collection type on a part.

Point3d / Vector3d / Matrix3x3 (and Point4d / Matrix4x4)

These are plain-old-data structs, not classes with behavior — the basic geometry primitives (3D point, 3D vector, 3x3 rotation/orientation matrix, homogeneous 4D point, and 4x4 transform matrix) used throughout the API wherever a coordinate, direction, or transform is passed or returned. All were introduced in NX3.0.0 and are unchanged in spirit across the C++, .NET, Java, and Python bindings (only naming convention differs, e.g. Python's NXOpen.Point3d).

Navigating to other namespaces from this book

From the namespaces.html tree, each namespace name is an <a> tag whose href is a generated aNNNNN.html page id (not a human-readable slug). Hrefs captured in this pass (NX 2212, subject to change across releases — re-derive via the namespaces.html link list rather than hardcoding):

Namespace href (relative to book root)
NXOpen (root) a31387.html
NXOpen::Features a31389.html
NXOpen::Positioning a31415.html
NXOpen::Assemblies a31398.html
NXOpen::BlockStyler a31431.html
NXOpen::UF a31532.html

See the sibling files in this folder for each of those namespaces: features-namespace.md, positioning-namespace.md, assemblies-namespace.md, blockstyler-namespace.md, uf-interop.md.

Source: https://docs.sw.siemens.com/en-US/doc/209349590/PL20220512394070742.nx_open_c_plus_plus_ref · retrieved 2026-07-07