Skip to main content
Version: 2026.02

Siemens NX

Note: Users must procure and maintain valid licenses to integrate this commercial DE tool with the Istari Digital platform. Please contact your local IT administrator for assistance.

Supported Functions:

extract
extract_geometry
extract_parameters_full
update_parameters

Summary

The Siemens NX integration provides comprehensive CAD data extraction and parameter management from Siemens NX 2506 models using the NXOpen Python API. This integration enables users to extract geometry, assembly structure, parameters, mass properties, and metadata from NX part files (.prt) and assembly packages (.zip). The module also supports exporting geometry to neutral formats (STEP, IGES, STL) and updating user-defined parameters in NX models.

Supported File Types: .prt, .zip (for assemblies)

Connection Methods: Upload

How and Where to Use

You can use the Siemens NX integration through either the Istari Digital Platform UI or the Istari Digital SDK. Both methods allow you to upload NX files and extract comprehensive data including geometry, assembly structure, parameters, and mass properties, or update parameters in existing models.

What You Can Do

The Siemens NX integration enables you to:

  • Extract 3D geometry as OBJ files for visualization and downstream processing
  • Extract assembly structure and hierarchy information with mass properties and bounding boxes (JSON)
  • Extract user-defined parameters and expressions (JSON)
  • Extract all parameters including system parameters with formulas and dependencies (JSON)
  • Extract model metadata including name, units, NX version, and creation date (JSON)
  • Export geometry to neutral formats: STEP (.step, .stp), IGES (.iges, .igs), or STL (.stl)
  • Generate rendered component visualizations from 7 standard engineering views (directory)
  • Update user-defined parameters in NX models

Prerequisites

Before using this integration, ensure:

  • Siemens NX 2506 is installed and configured by your administrator
  • Required NX Programming Tools components are installed (UGALLIANCE, UGOPEN, UGOPENPP)
  • NX license is configured for batch execution (see Installation section)
  • You have access to the Istari Digital Platform UI or the Istari Digital SDK
  • The Siemens NX Module is installed on the Istari Digital Agent

API

Functions

FunctionDescriptionInputsOutputs
@istari:extractExtracts comprehensive CAD data from NX models including geometry, assembly structure, parameters, and mass properties.prt, .zipmodel_info, parameters, parts, obj, views
@istari:extract_geometryExports NX model to derivative geometry formats (STEP, IGES, STL).prt, .zip + output_format parametergeometry
@istari:extract_parameters_fullExtracts all expressions/parameters from the model, including system parameters with formulas and dependencies.prt, .zipparameters_full
@istari:update_parametersUpdates user-defined parameters in NX models.prt, .zip + parameters parameternx_model

Output Examples

Artifact NameTypeDescription
model_infoFile (JSON)Basic model metadata including name, units, NX version, creation date
parametersFile (JSON)User-defined parameters/expressions that can be modified
partsFile (JSON)Assembly structure with mass properties, bounding boxes, and materials
objFile (OBJ)Wavefront OBJ format file representing the 3D mesh of the model
viewsDirectory7 rendered orthographic views (iso, top, bottom, front, back, left, right)
geometryFileExported derivative geometry (STEP, IGES, or STL format)
parameters_fullFile (JSON)All expressions including system parameters with formulas and dependencies
nx_modelFileThe modified NX model file after parameter updates

Usage

Method 1: Upload

Upload your NX files directly to the Istari Digital Platform and run extraction or update jobs using either the Platform UI or the SDK.

Using the Istari Digital Platform UI

Follow these steps to extract data from NX files using the web interface:

  1. Navigate to the Files page.
    Click the Files option in the left-hand sidebar of the Istari Digital Platform.

  2. Click + Add Files.
    Click the + Add Files button in the top right corner of the Files page.

  3. Select Upload.
    In the dialog that appears, select Upload to upload a file from your computer.

  4. Select your NX model for upload.
    Choose your NX model file (either .prt for a part file or .zip containing an assembly model with all component parts). Wait for the upload to complete.

  5. Select your file in the Files page tree.
    After successful upload, select your NX file in the Files page tree on the left side of the screen.

  6. Click Extract.
    In the middle of the screen, you will see a preview area. Click the Extract button (or "Extract to view the file contents" if no preview is available) to initiate data extraction.

  7. Fill out the job execution dialog.
    A "Create Job" dialog will appear. In the Tool/Function Combination dropdown:

    • Select siemens_nx from the tool list
    • Select the function you want to run:
      • @istari:extract – Extract comprehensive data
      • @istari:extract_geometry – Export geometry (requires output_format parameter in Advanced options)
      • @istari:extract_parameters_full – Extract all parameters
      • @istari:update_parameters – Update parameters (requires parameters parameter in Advanced options)
  8. Configure Advanced options (if needed).
    Expand the Advanced options section if you need to:

    • Set output_format for @istari:extract_geometry (e.g., step, stp, iges, igs, stl)
    • Set parameters for @istari:update_parameters (JSON object with parameter names and values)
  9. Choose Agent (optional).
    In the Choose Agent dropdown, either:

    • Select Auto-select Best Agent (Recommended) to let the system choose automatically
    • Or select a specific agent from the list (e.g., an agent running on Windows 10, Windows 11, Windows Server 2019, or Windows Server 2022)
  10. Execute the function.
    Click the Execute Function button to start processing. The system will begin processing the function asynchronously.

  11. View the results in the Files tree.
    When execution completes, expand the file tree in the left sidebar. You will see:

    • Your NX file (.prt or .zip)
    • A job entry showing siemens_nx / @istari:extract (or the function you selected)
    • Artifacts as children of the job, including:
      • model_info.json – Model metadata
      • parameters.json – User-defined parameters
      • parts.json – Assembly structure
      • nx_model.obj – 3D geometry file (OBJ format, filename matches your model)
      • views/ directory containing rendered views:
        • front.png, back.png, left.png, right.png, top.png, bottom.png, iso.png
      • geometry – Exported geometry file (for extract_geometry function)
      • parameters_full.json – All parameters (for extract_parameters_full function)
      • nx_model.prt or nx_model.zip – Updated model (for update_parameters function)
  12. Download or view artifacts.
    Click on any artifact name in the tree to view its contents, or use the download option to save it to your local machine.

Using the Istari Digital SDK

Prerequisite: Install Istari Digital SDK and initialize Istari Digital Client per instructions here

Step 1: Upload and Extract the File(s)

Upload the file as a model

# Upload NX model (supports .prt files and .zip for assemblies)
model = client.add_model(
path="model.prt", # Can also use: .zip files for assemblies
description="NX CAD model",
display_name="My NX Model",
)
print(f"Uploaded base model with ID {model.id}")

Extract once you have the model ID

extraction_job = client.add_job(
model_id=model.id,
function="@istari:extract",
tool_name="siemens_nx",
tool_version="2506",
operating_system="Windows 11", # Or: Windows 10, Windows Server 2019, Windows Server 2022
)
print(f"Extraction started for model ID {model.id}, job ID: {extraction_job.id}")

Please choose appropriate tool_version and operating_system for your installation of Siemens NX.
Above is an example of how to call the function

Step 2: Check the Job Status

extraction_job.poll_job()

Step 3: Retrieve Results

Example

for artifact in model.artifacts:
output_file_path = f"c:\\extracts\\{artifact.name}"

if artifact.extension in ["txt", "csv", "md", "json", "html"]:
with open(output_file_path, "w") as f:
f.write(artifact.read_text())
else:
with open(output_file_path, "wb") as f:
f.write(artifact.read_bytes())

Notes on File Types

  • Part files (.prt): Single NX part files. Extract geometry, parameters, mass properties, and metadata.
  • Assembly packages (.zip): ZIP archives containing multiple .prt files. The module automatically identifies the root assembly. Ensure all component parts are included in the ZIP for proper extraction.

Extract Geometry Example

# Export geometry to STEP format
geometry_job = client.add_job(
model_id=model.id,
function="@istari:extract_geometry",
tool_name="siemens_nx",
tool_version="2506",
operating_system="Windows 11",
parameters={
"output_format": "step" # Can also use: "stp", "iges", "igs", "stl"
},
)
geometry_job.poll_job()

# Retrieve the exported geometry file
for artifact in model.artifacts:
if artifact.name == "geometry":
with open("exported_model.step", "wb") as f:
f.write(artifact.read_bytes())

Extract All Parameters Example

# Extract all parameters including system parameters
params_full_job = client.add_job(
model_id=model.id,
function="@istari:extract_parameters_full",
tool_name="siemens_nx",
tool_version="2506",
operating_system="Windows 11",
)
params_full_job.poll_job()

# Retrieve the parameters_full artifact
for artifact in model.artifacts:
if artifact.name == "parameters_full":
with open("all_parameters.json", "w") as f:
f.write(artifact.read_text())

Update Parameters Example

# Update user-defined parameters in NX model
update_job = client.add_job(
model_id=model.id,
function="@istari:update_parameters",
tool_name="siemens_nx",
tool_version="2506",
operating_system="Windows 11",
parameters={
"parameters": {
"Width": "100",
"COMPONENT\\Height": "50"
}
},
)
update_job.poll_job()

# Retrieve the updated model
for artifact in model.artifacts:
if artifact.name == "nx_model":
with open("updated_model.prt", "wb") as f:
f.write(artifact.read_bytes())

Installation

Prerequisites

Before installing the Siemens NX Module, ensure:

  • Siemens NX 2506 is installed on the machine where the Istari Digital Agent runs
  • Administrator access to the Windows machine
  • Valid NX license with batch execution support
  • Network access to the license server (if using floating licenses)
  • Istari Digital Agent version 9.0.0 or higher is installed

Required NX Components

The NX module requires the Programming Tools components to be installed. These provide the NXOpen API and batch execution capabilities.

Component Checklist:

ComponentRequiredPurpose
Programming Tools✅ YesParent category for programming interfaces
└── Programming Interfaces✅ YesAPI access category
    └── UGALLIANCE✅ YesThird-party integration APIs
    └── UGOPEN✅ YesNXOpen API and run_journal.exe
    └── UGOPENPP✅ YesC++ NXOpen wrappers

Installation Steps:

  1. For New Installation:

    • Launch the NX Installer
    • Select Custom installation type
    • Expand Programming ToolsProgramming Interfaces
    • Check: ☑️ UGALLIANCE, ☑️ UGOPEN, ☑️ UGOPENPP
    • Complete installation
  2. For Existing Installation:

    • Launch the NX Installer
    • Select Modify option
    • Navigate to Programming ToolsProgramming Interfaces
    • Enable missing components: ☑️ UGALLIANCE, ☑️ UGOPEN, ☑️ UGOPENPP
    • Apply changes

Critical Files Verification

After installation, verify these files exist in your NX installation directory:

FileLocationPurpose
run_journal.exe{NX_DIR}/NXBIN/Executes Python/VB journals in batch mode
ugpc.exe{NX_DIR}/NXBIN/Part checker for assembly analysis
python312.dll{NX_DIR}/NXBIN/python/Embedded Python runtime
NXOpen.pyd{NX_DIR}/NXBIN/python/NXOpen Python API module

Verification Command:

$NX_DIR = "C:\Program Files\Siemens\NX2506"
Test-Path "$NX_DIR\NXBIN\run_journal.exe" # Should return True
Test-Path "$NX_DIR\NXBIN\ugpc.exe" # Should return True
Test-Path "$NX_DIR\NXBIN\python\NXOpen.pyd" # Should return True
Test-Path "$NX_DIR\NXBIN\python\python312.dll" # Should return True

Configuration

Centralized Configuration

The Istari Agent is configured via the file istari_digital_config.yaml. The Agent expects the file to be located at:

  • %LOCALAPPDATA%\istari_digital\ on Windows
  • ~/.config/istari_digital/ on RHEL/Ubuntu

Configure the Siemens NX module using the istari_digital_agent_module_configurations section. The agent will pass this centralized configuration to the module:

agent:
istari_digital_agent_module_configurations:
"@istari:siemens_nx":
"siemens_nx_installation_dir": "C:\\Program Files\\Siemens\\NX2506" # required

Configuration Parameters

ParameterTypeRequiredDescription
siemens_nx_installation_dirStringYesPath to Siemens NX installation directory. Example: "C:\\Program Files\\Siemens\\NX2506"

Configuration Priority:

The module determines the NX installation path in this order:

  1. Agent config (istari_digital_config.yaml) - Production deployments
  2. Module config (module_config.json) - Local development
  3. Environment variable (UGII_BASE_DIR) - Fallback
  4. Default paths - Auto-detection of standard installation locations

License Configuration

CRITICAL: The module requires a license that supports batch execution. By default, some NX licenses may not include batch mode support.

Step 1: Open NX Licensing Tool

  1. Open the Start Menu
  2. Navigate to Siemens NXToolsLicensing Tool
    • Or search for "NX Licensing Tool"

Step 2: Configure Bundle Settings

  1. In the Licensing Tool, go to the Bundle Settings tab
  2. Locate NX Design Standard Floating in the Available Bundles list
  3. Move it to Applied Bundles:
    • Select NX Design Standard Floating
    • Click the (right arrow) button
    • Or double-click the bundle name
  4. Save and Close
    • Click Apply or OK
    • Close the Licensing Tool

Alternative Licenses:

If "NX Design Standard Floating" is not available, the following licenses may also work:

License BundleSupports Batch
NX Design Standard Floating✅ Yes
NX Design Advanced Floating✅ Yes
NX Design Premium Floating✅ Yes
NX Mach Series Floating✅ Yes

Note: Contact your Siemens representative or license administrator if you're unsure which license bundles are available.

License Server Configuration (Floating Licenses):

If using a floating license server:

  1. Set the SPLM_LICENSE_SERVER environment variable:

    SPLM_LICENSE_SERVER=28000@license-server.company.com
  2. Or configure via NX Licensing Tool:

    • Go to License Server tab
    • Enter your license server address

Verification

After installation and licensing configuration, verify the setup using the following manual verification steps:

  1. Check NX Installation Directory:

    reg query "HKLM\SOFTWARE\Unigraphics Solutions\NX\2506" /v UGII_BASE_DIR
  2. Verify Critical Files:

    $NX_DIR = "C:\Program Files\Siemens\NX2506"
    Test-Path "$NX_DIR\NXBIN\run_journal.exe" # Should return True
    Test-Path "$NX_DIR\NXBIN\ugpc.exe" # Should return True
    Test-Path "$NX_DIR\NXBIN\python\NXOpen.pyd" # Should return True
    Test-Path "$NX_DIR\NXBIN\python\python312.dll" # Should return True
  3. Test Batch Execution:

    # Create a simple test script
    $testScript = @"
    import NXOpen
    session = NXOpen.Session.GetSession()
    print("NX Session created successfully")
    "@
    $testScript | Out-File -FilePath "test_nx.py" -Encoding UTF8

    # Run it
    & "C:\Program Files\Siemens\NX2506\NXBIN\run_journal.exe" "test_nx.py"

Versions

Current Module Version: 1.0.0

Compatibility Notes

  • Siemens NX Version: Requires NX 2506
  • Supported Operating Systems:
    • Windows 10
    • Windows 11
    • Windows Server 2019
    • Windows Server 2022
  • Istari Digital Agent: Requires version 9.0.0 or higher
  • File Format Support:
    • NX part files (.prt)
    • NX assembly packages (.zip)

Changelog

Module Version 1.0.0

  • Initial release of Siemens NX Module
  • Support for NX 2506
  • Comprehensive data extraction including geometry, assembly structure, parameters, and mass properties
  • Geometry export to STEP, IGES, and STL formats
  • Full parameter extraction including system parameters with formulas and dependencies
  • Parameter update functionality
  • Integrated rendering with 7 standard engineering views via bundled cad-geometry-toolkit
  • Subprocess launcher architecture for reliable NX batch execution
  • Support for both part files and assembly packages

Release Notes

Key Changes Between Versions

Version 1.0.0 (Initial Release)

  • Comprehensive CAD data extraction from NX models
  • Geometry export as OBJ files and neutral formats (STEP, IGES, STL)
  • Assembly structure and hierarchy extraction with mass properties
  • User-defined parameter extraction and updates
  • Full parameter extraction including system parameters
  • Model metadata extraction
  • Rendered views from 7 standard engineering perspectives
  • Support for part files and assembly packages
  • Launcher architecture for reliable NX integration
  • Windows operating system support

Troubleshooting

Common Issues

Issue: NX Installation Not Found

  • Symptom: Module reports NX not found, environment check fails
  • Cause: NX is not installed or not detectable by the module
  • Solution:
    1. Verify NX 2506 is installed in standard location: C:\Program Files\Siemens\NX2506
    2. Check UGII_BASE_DIR in Registry: reg query "HKLM\SOFTWARE\Unigraphics Solutions\NX\2506" /v UGII_BASE_DIR
    3. For non-standard installations, set siemens_nx_installation_dir in configuration
    4. Verify the path contains required files (run_journal.exe must exist)

Issue: License Checkout Failed

  • Symptom: Error: "No license available for NX batch execution" or "Feature not licensed"
  • Cause: NX license does not support batch execution or license server is not accessible
  • Solution:
    1. Verify license server connection: ping license-server.company.com and telnet license-server.company.com 28000
    2. Open NX Licensing Tool and verify "NX Design Standard Floating" is in Applied Bundles
    3. Check license availability with your license administrator
    4. Ensure SPLM_LICENSE_SERVER environment variable is set correctly for floating licenses

Issue: run_journal.exe Not Found

  • Symptom: Error: "Required executable not found: run_journal.exe"
  • Cause: Programming Tools (UGOPEN component) is not installed
  • Solution:
    1. Re-run NX installer
    2. Select Modify option
    3. Enable UGOPEN component under Programming Tools → Programming Interfaces
    4. Verify installation: Get-ChildItem "C:\Program Files\Siemens\NX2506\NXBIN\run_journal.exe"

Issue: Python Script Execution Fails

  • Symptom: Error in NX journal execution, import errors for NXOpen
  • Cause: NX Python runtime files are missing or corrupted
  • Solution:
    1. Verify NX Python runtime files exist:
      • {NX_DIR}\NXBIN\python\python312.dll
      • {NX_DIR}\NXBIN\python\NXOpen.pyd
    2. Test run_journal.exe with a simple script:
      "import NXOpen; print('NXOpen imported successfully')" | Out-File test_nx.py -Encoding UTF8
      & "C:\Program Files\Siemens\NX2506\NXBIN\run_journal.exe" test_nx.py
    3. Note: NX uses an embedded Python runtime via run_journal.exe, not a standalone python.exe

Issue: Empty Geometry Export

  • Symptom: Export completes but output file is empty or minimal, mass properties are all zeros
  • Cause: Model contains only wireframe/surfaces or assembly components are missing
  • Solution:
    1. Open the model in NX GUI and verify it contains solid bodies (not just wireframe/surfaces)
    2. For assemblies, ensure all component parts are included in the ZIP
    3. Verify components are not suppressed in the assembly

Getting Help

  1. For general Agent and Software Troubleshooting Click Here
  2. Check the module log file for detailed error messages
  3. Verify NX installation and licensing configuration
  4. Review the module manifest and configuration parameters
  5. Siemens Support: Contact Siemens PLM support for NX installation issues
  6. License Issues: Contact your organization's license administrator
  7. Module Issues: File an issue in the nx-module repository
  8. Contact Istari Digital support for additional assistance

FAQ

  • Why do I need to configure the license for batch execution?

    • By default, some NX license bundles may not include batch execution support. The module requires batch mode to run without GUI. You must configure the NX Licensing Tool to apply a bundle that supports batch execution (e.g., "NX Design Standard Floating").
  • Can I use assemblies without packaging them in a ZIP?

    • No, assemblies must be packaged as ZIP files containing all component parts. The module automatically identifies the root assembly within the ZIP.
  • What geometry formats can I export?

    • The @istari:extract_geometry function supports STEP (.step, .stp), IGES (.iges, .igs), and STL (.stl) formats. Specify the format using the output_format parameter.
  • What's the difference between parameters and parameters_full?

    • parameters contains only user-defined parameters that can be modified. parameters_full includes all expressions including system parameters, formulas, and dependencies, providing complete parameter information for analysis.
  • Can I update system parameters?

    • No, the @istari:update_parameters function only supports updating user-defined parameters. System parameters are read-only and cannot be modified through this integration.