NX Open C++ Reference Guide > Namespaces > NXOpen::Features
NXOpen::Features Namespace Reference (C++)
Documented purpose: "Provides classes and interfaces for features."
This namespace is enormous — 759 classes in the NX 2212 C++ reference —
because nearly every parametric feature type in NX (every dialog you can
open from Insert > Design Feature, Insert > Detail Feature, sheet metal,
routing, etc.) gets its own Feature subclass plus a matching ...Builder
class. This file summarizes the pattern and the handful of classes almost
every NX Open developer touches, rather than enumerating all 759.
Sub-namespaces
NXOpen::Features itself nests further feature-domain namespaces:
AECDesign, DrawShapes, Industry, SheetMetal, ShipDesign,
StructureDesign, Subdivision, TopologyOptimization, VehicleDesign —
each scoped to one discipline's feature set (e.g. SheetMetal for sheet
metal features).
The core pattern: Feature + Builder
Every parametric feature in NX Open follows a two-class pattern:
Feature(base class, abstract) — "Represents a feature on a part. This is an abstract class, and cannot be instantiated." All concrete feature types (e.g.Extrude,Revolve, a specificHole) derive from this. You interact with existing features on a part primarily through this base type and its subclasses, reached viaNXOpen::Features::FeatureCollection.<Name>Builder— the object you actually construct, configure, andCommit()to create or edit an instance of the corresponding feature. NX Open's convention (documented on nearly every builder class) is: "To create or edit an instance of this class, use NXOpen::Features::Builder." Builders are always obtained from a factory method (typically onNXOpen::Features::FeatureCollectionor a domain-specific collection), configured via properties/methods, then committed — the standard NX Open builder pattern used across the entire API (not just Features).
FeatureCollection
NXOpen::Features::FeatureCollection — "Represents a collection of
features. To obtain an instance of this class, refer to
NXOpen::BasePart." (Created in NX3.0.0.) This is the entry point for
enumerating a part's feature tree and for creating new features via its
Create...Builder() factory methods.
Commonly used builders (class-level summary)
| Class | One-line description |
|---|---|
ExtrudeBuilder |
Represents a extrude feature builder. |
RevolveBuilder |
Represents a revolve builder. |
HoleFeatureBuilder |
Represents a Hole feature builder. |
HolePackageBuilder |
Builder for a hole package (pattern of holes using a standard/counterbore/countersink/tapped definition). |
FillHoleBuilder |
Builder for a "fill hole" feature (plugs/removes a hole). |
ResizeHoleBuilder |
Builder for resizing an existing hole feature. |
(HolePackage / FillHole / ResizeHole are the corresponding Feature
subclasses for each of those builders, following the Feature+Builder
pattern above.)
Other very-high-traffic builders that exist in this namespace but were not
individually pulled in this pass (same pattern applies — look them up by
name in annotated.html or classes.html in this book): BlockFeatureBuilder,
CylinderBuilder, SphereBuilder, ChamferBuilder, EdgeBlendBuilder,
PatternFeatureBuilder, MirrorBuilder, TrimBodyBuilder,
BooleanFeatureBuilder/boolean-operation builders, UserDefinedFeatureBuilder
(for adding custom/UDF features).
Practical notes for NX Open developers
- Because
Featureis abstract, generic code that walks a part's feature tree (Part.Featuresin the object model) works with the base type and down-casts (or uses type checks) to the specific subclass only when it needs feature-specific data. - Builders are transient — create one, set its inputs, call
Commit()(and typicallyDestroy()afterward to free the builder), and the committed result is the actualFeatureobject added to the part. - This is the same namespace/class-per-feature pattern mirrored in the
.NET, Java, and Python NXOpen bindings (only naming casing/module path
differs) — see the sibling
features-namespace.mdfiles in the other three language folders where available.
Source: https://docs.sw.siemens.com/en-US/doc/209349590/PL20220512394070742.nx_open_c_plus_plus_ref · retrieved 2026-07-07