Siemens NX Assembly: The Short Version
A Siemens NX assembly is a part file that references other parts. On Designcenter 2606 (June 2026) you create it from the assembly template, add components, Fix the first one, then constrain the rest with Auto Align or Assembly Constraints. inteliScience, Siemens NX and NXOpen specialists delivering nearshore from Romania, builds assemblies that survive replacement and Teamcenter revisions.
| Step | German query | What to do in Designcenter 2606 |
|---|---|---|
| Create the assembly | Baugruppe erstellen | File > New, pick the assembly template, save before adding anything |
| Add a part | Komponente einfügen | Add Component, select the part, choose the reference set |
| Lock the ground part | Fix | Accept the Fix option offered when you position the first component |
| Mate / join | Zusammenfügen | Auto Align (drag a face onto a face) or the Assembly Constraints command |
| Check the result | Freiheitsgrade prüfen | Position column in the Assembly Navigator, degree-of-freedom check |
The Problem: An Unconstrained Assembly Is a Screenshot
You add three parts, drag them until the picture looks right, and save. The next engineer opens the file, touches one component, and the arrangement falls apart. Nothing in NX went wrong. Nothing was constrained.
Siemens NX assembly work is relationships between geometry, not positions in space. Siemens’ Designcenter tips post on assembly constraints (28 January 2026, covering the December 2025 release) states that “conflicting assembly constraints can no longer be created” and that the software “disables OK and Apply” until a solvable constraint exists. That only helps if you use constraints at all.
The second half shows up months later, when components get replaced, WAVE-linked, arranged and revised in Teamcenter. Most “my constraints broke” tickets we see in DACH engineering teams are not constraint bugs; they are constraints attached to geometry that stopped existing.
Our position, stated early: we advise against building a production Siemens NX assembly on faces you plan to blend, chamfer or replace. Constrain to datums or to faces that define function.
Step 1: Create the Assembly and Add Components
Start from the assembly template, not from a modeling part. Siemens’ first-assembly guide (May 2025) is explicit: “make sure to select the assembly template part, as this contains specific settings optimized for assemblies”, and it recommends saving into a dedicated project folder before any component goes in.
Then Add Component. Pick the ground part, the housing in most machines, and place it. NX offers “an option to add a constraint that will fix the part to its current position in the assembly”. Accept it. One Fix per assembly, on the part everything else references. Fix two components and you have two grounds that will disagree the moment a Distance value changes.
Two habits worth building on day one:
- Choose the reference set in the Add Component dialog, not afterwards. The NXOpen
AddComponentcall takes the reference set name as a parameter for the same reason. - Leave the next components floating. Constraints come next; mouse-nudging is how screenshots get made.
Step 2: Constrain with Auto Align or the Assembly Constraints Command
Two doors lead to the same constraint objects. Auto Align is the fast door: set the selection filter to Face, “click and hold a component by one face, drag it to a matching face on another component, and release it”, and NX creates an Align constraint, planar or cylindrical. The Assembly Constraints command is the explicit door: it “positions components in relation to other components in the assembly by specifying constraint relationships”, every type by name.
Auto Align got a further push in the Magnetic Snap tips post of 17 July 2026: inside the Auto Align dialog you drag a component over the target and the system “smartly finds two constraints and adds them”, a Touch and Align pair in one motion.
The constraint types are documented in the NXOpen Positioning.Constraint.Type enumeration, the most stable list Siemens publishes:
| Constraint (UI name) | What Siemens defines it as | When we use it |
|---|---|---|
| Touch Align | “Two geometries touch” (Touch) or share an alignment (Align) | Planar mating faces, the default joint in most machine assemblies |
| Concentric | “Two geometries share a center and plane” | Circular edges: a flange on a boss |
| Distance | “Two geometries have a specified distance between them” | Gaps and offsets you want to drive later |
| Center | “One geometry is positioned mid-way between two others” | Symmetric placement in a slot or between walls |
| Parallel | “Two geometries are parallel” | Orientation without contact |
| Perpendicular | “Two geometries are perpendicular” | Orientation of brackets and guides |
| Fix | “One movable object fixed” | The ground part, once |
| Align/Lock | “Two geometries are constrained to have a common axis and no rotation about it” | Bolts and pins that must not spin |
Our recommendation: Auto Align for placement, the Assembly Constraints command when you need a specific type such as Distance, Center or Align/Lock. Do not fake a Touch with Distance 0 “because Touch was confusing”; the next engineer will read a Distance and assume it is meant to be driven. The API underneath is old and stable (CreateConstraintReference was “Created in NX4.0.0”), so constraints you script today will still be valid objects in 2612.
This runs as a POC. What’s missing for production: assembly standards that name the datums to constrain to, one Fix rule, reference-set discipline per part, and a check that constraints survive a component replacement. We close the gap from “the constraints solve on my machine” to “the constraints survive the next revision” with Siemens NX training for your team, delivered nearshore from Romania (EET = CET+1).
Step 3: Read the Assembly Navigator and Set Reference Sets
The Assembly Navigator is the component tree, and its Position column is the fastest honesty check you have. Siemens’ first-assembly guide tells you to validate through “the position column in the assembly navigator” and to use the degree-of-freedom tool to confirm a component is “fully positionally constrained”. If the column does not say so, the constraints are not done.
A reference set is a named collection of objects inside a part that decides what a parent assembly sees of that part. Two are built in: the NXOpen documentation notes that GetAllReferenceSets “does not include the default reference sets Empty and Entire Part”. Entire Part shows everything: bodies, sketches, datums, construction curves. Empty shows nothing.
In practice, almost every DACH site we work with configures a third one through customer defaults, usually named MODEL, carrying only the solid bodies. That is the one a component should be added with. Load a 400-part assembly where half the components sit on Entire Part and you get every datum plane and sketch on screen, slower loads, and constraint pickers full of construction geometry.
One subtlety: a constraint built on a datum still holds after switching the component to MODEL, because the datum is referenced, not displayed. What breaks is picking; nobody can select a hidden datum to edit the constraint. So we keep the datums we constrain to inside MODEL, deliberately. Switching a reference set is a right-click in the Assembly Navigator (NXOpen: ComponentAssembly.ReplaceReferenceSet). Reference sets also decide what a drawing sees of a master model, so the rule belongs in the same standard as drawing automation from master-model assemblies.
Checking the Structure with NXOpen
Before you hand an assembly to anyone, read its tree with code. This journal lists the direct children of the work part’s root component with display name and suppression state:
# NXOpen Python journal, Designcenter 2606.
# Lists the direct children of the work part's assembly root and
# prints each component's display name and suppression state.
import NXOpen
session = NXOpen.Session.GetSession()
work_part = session.Parts.Work
listing = session.ListingWindow
listing.Open()
root = work_part.ComponentAssembly.RootComponent
if root is None:
# A part with no components is not an assembly yet.
listing.WriteLine("No root component: the work part has no components.")
else:
children = root.GetChildren()
listing.WriteLine("Components under " + root.DisplayName + ": " + str(len(children)))
for child in children:
state = "suppressed" if child.IsSuppressed else "active"
listing.WriteLine(child.DisplayName + " " + state)
Two documented details the script relies on: GetChildren “does not return non-geometric components”, so a BOM with NGCs needs a different traversal, and IsSuppressed “returns the suppressed state of the component in its controlling arrangement”, your first hint that arrangements matter. WriteLine displays at most 132 characters per line. For the step to a compiled add-in with a check-in rule behind it, see our NX API programming overview.
What Breaks in Production
Four things, in the order we meet them.
Component replacement. Constraints reference faces and edges of a specific part. Replace housing.prt with housing_A2.prt and every constraint whose face no longer exists needs re-selection. A constraint on a datum plane or a functional bore survives more often than one on a fillet.
WAVE links. The WAVE Geometry Linker exists “to copy the geometry from components in the assembly into the work part”, and the linked bodies then live in the Part Navigator of the receiving part. Powerful, and a dependency: a renamed or replaced source pulls the rug from under every feature built on the link. Before you reach for WAVE in a variant-heavy product, read our part family vs WAVE decision.
Arrangements. ComponentAssembly carries an Arrangements collection and an ActiveArrangement, and a component’s suppression state belongs to its “controlling arrangement”. The risk is the engineer who suppresses a component in one arrangement and assumes it is gone from the product.
Teamcenter-managed assemblies. Under Teamcenter, which revision of a component loads is decided outside the assembly file, by revision rules we will not describe here. The risk: constraints that solved against last week’s revision may reference geometry this week’s revision changed. A standard that names constraint targets is the only defence that does not depend on luck.
A freshness note. Designcenter 2606 shipped in June 2026 (Siemens’ “Designcenter is for everyone” post, 23 June 2026) with the assembly headline that “multiple users can work simultaneously on the same design and make concurrent edits of the same assembly”. The next release is already in testing: Siemens ran the Designcenter 2612 Early Access Program in Mason, Ohio, with VIP week 2 on 21 to 25 September 2026. Assembly UI will keep moving. Constraint targets on datums will not.
What to Look For Before You Call an Assembly Done
Five checks, in the order we run them at handover.
- One Fix. Exactly one component carries Fix, and it is the part everything else references.
- Position column clean. Every component reads fully constrained in the Assembly Navigator.
- Reference sets deliberate. Components on MODEL (or your site’s body-only set), not on Entire Part; the datums you constrain to are inside that set.
- Constraint targets survive replacement. No constraint on a blend, chamfer or cosmetic face.
- Tree readable by code. The journal above returns the expected component count with no surprise suppressions, and lives with the project.
If your team passes four of five, the fifth is usually reference sets.
For a structured course on constraints, reference sets and WAVE, see our NX assembly training.
Frequently Asked Questions
How do I create an assembly in Siemens NX?
File > New, choose the assembly template, save into a project folder, then Add Component for each part. Accept the Fix option on the first component and constrain the rest with Auto Align or the Assembly Constraints command. In German search terms: “Baugruppe erstellen” is the file, “Komponente einfügen” is Add Component, “zusammenfügen” is the constraints.
Auto Align vs Assembly Constraints: which should I use?
Auto Align for placement: drag a face onto a matching face and NX creates the Align (with Magnetic Snap, a Touch and Align pair). The Assembly Constraints command when you need a named type such as Distance, Center, Parallel, Perpendicular or Align/Lock. Both create the same constraint objects; only the input differs.
Why does NX say my assembly constraint is conflicting?
Because it cannot be solved together with the constraints that already exist. Since the December 2025 release, Designcenter identifies the conflict and disables OK and Apply instead of letting you create it. Remove or edit the earlier constraint that contradicts the new one; do not add a Distance on top.
How much does it cost to set up assembly standards for an NX team?
Siemens does not publish list prices for NX or the Assemblies module; licences are quoted through resellers. The larger cost is time: a written standard for Fix, datums and reference sets is measured in days; cleaning up a 400-part assembly built without one is measured in weeks.
What is a reference set and why does MODEL matter?
A reference set is a named subset of a part’s objects that a parent assembly displays. Empty and Entire Part are built-in defaults; most sites add a body-only set, usually named MODEL. Adding components on MODEL keeps large assemblies light and keeps construction geometry out of constraint selection; we treat it as a rule, not a preference.
Next Step
Want assembly standards (one Fix, datums, reference sets) as a written shop rule, not a tribal habit? A free 60-minute call with our NX engineers maps where your assemblies break and what closes it. Book a strategy call about NX assembly standards
Related Topics
References
| 1. Siemens Designcenter blog, “Designcenter NX | Tips & Tricks | Assembly Constraints”, 28 January 2026: https://blogs.sw.siemens.com/designcenter/designcenter-nx-tips-tricks-assembly-constraints/ (retrieved 25 September 2026) |
|---|---|---|
| 3. Siemens Designcenter blog, “Designcenter | Tips & Tricks | Assemblies and Magnetic Snap”, 17 July 2026: https://blogs.sw.siemens.com/designcenter/nx-tips-and-tricks-magnetic-snap/ (retrieved 25 September 2026) |
| 4. Siemens Designcenter blog, “Designcenter is for everyone | June 2026 release”, 23 June 2026: https://blogs.sw.siemens.com/designcenter/designcenter-is-for-everyone-june-2026-release/ (retrieved 25 September 2026) |
- Siemens NX Manufacturing blog, “What’s new in NX for Manufacturing 2606 (June 2026)”, 19 June 2026: https://blogs.sw.siemens.com/nx-manufacturing/whats-new-in-nx-for-manufacturing-2606-june-2026/ (retrieved 25 September 2026)
- Siemens resources, “Welcome to the September 2026 Early Access Program for Designcenter” (Designcenter 2612): https://resources.sw.siemens.com/en-US/presentation-welcome-to-designcenter-early-access-program/ (retrieved 25 September 2026)
- Siemens NX documentation, “Assembly Constraints”: https://docs.sw.siemens.com/documentation/external/PL20221117716122093/en-US/static/fa/assembly_constraints.html (retrieved 25 September 2026)
- Siemens NXOpen .NET Reference Guide, NXOpen.Positioning.Constraint (Type enumeration): https://docs.sw.siemens.com/documentation/external/PL20191127135844554/en-US/nx_api_sc/nx/1926/nx_api_sc/en_US/nxopen_net/a07180.html (retrieved 25 September 2026)
- Siemens NXOpen .NET Reference Guide, NXOpen.Assemblies.Component: https://docs.sw.siemens.com/documentation/external/PL20191127135844554/en-US/nx_api_sc/nx/1926/nx_api_sc/en_US/nxopen_net/a00900.html (retrieved 25 September 2026)
- Siemens NXOpen .NET Reference Guide, NXOpen.Assemblies.ComponentAssembly: https://docs.sw.siemens.com/documentation/external/PL20191127135844554/en-US/nx_api_sc/nx/1926/nx_api_sc/en_US/nxopen_net/a00901.html (retrieved 25 September 2026)
- Siemens NXOpen .NET Reference Guide, NXOpen.BasePart (reference sets): https://docs.sw.siemens.com/documentation/external/PL20191127135844554/en-US/nx_api_sc/nx/1926/nx_api_sc/en_US/nxopen_net/a00988.html (retrieved 25 September 2026)
- Siemens NXOpen .NET Reference Guide, NXOpen.ListingWindow: https://docs.sw.siemens.com/documentation/external/PL20191127135844554/en-US/nx_api_sc/nx/1926/nx_api_sc/en_US/nxopen_net/a06005.html (retrieved 25 September 2026)
- Siemens Simcenter 3D documentation, tutorial “Preparing a part for meshing” (WAVE Geometry Linker): https://docs.sw.siemens.com/documentation/external/PL20190701133928562/en-US/sc3d_2019_1_tutorials/content/default/1.0/sc3d_2019_1_tutorials/en_US/tutorials_prepost/tutorials_prepost/preparing_a_part_for_meshing.html (retrieved 25 September 2026)

