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 isNXOpen; most feature areas live asNXOpen::<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.htmlfor rootNXOpen) 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
Partrepresents a single loaded.prtfile (a part or assembly file) — the document object that owns features, bodies, sketches, components, layers, and so on.PartCollection(obtained fromSession::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
TaggedObjectis the more primitive base: "An object that has a Tag" — aTagis 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.NXObjectbuilds 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