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:
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
| Function | Description | Inputs | Outputs |
|---|---|---|---|
@istari:extract | Extracts comprehensive CAD data from NX models including geometry, assembly structure, parameters, and mass properties | .prt, .zip | model_info, parameters, parts, obj, views |
@istari:extract_geometry | Exports NX model to derivative geometry formats (STEP, IGES, STL) | .prt, .zip + output_format parameter | geometry |
@istari:extract_parameters_full | Extracts all expressions/parameters from the model, including system parameters with formulas and dependencies | .prt, .zip | parameters_full |
@istari:update_parameters | Updates user-defined parameters in NX models | .prt, .zip + parameters parameter | nx_model |
Output Examples
| Artifact Name | Type | Description |
|---|---|---|
model_info | File (JSON) | Basic model metadata including name, units, NX version, creation date |
parameters | File (JSON) | User-defined parameters/expressions that can be modified |
parts | File (JSON) | Assembly structure with mass properties, bounding boxes, and materials |
obj | File (OBJ) | Wavefront OBJ format file representing the 3D mesh of the model |
views | Directory | 7 rendered orthographic views (iso, top, bottom, front, back, left, right) |
geometry | File | Exported derivative geometry (STEP, IGES, or STL format) |
parameters_full | File (JSON) | All expressions including system parameters with formulas and dependencies |
nx_model | File | The 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:
-
Navigate to the Files page.
Click the Files option in the left-hand sidebar of the Istari Digital Platform. -
Click + Add Files.
Click the + Add Files button in the top right corner of the Files page. -
Select Upload.
In the dialog that appears, select Upload to upload a file from your computer. -
Select your NX model for upload.
Choose your NX model file (either.prtfor a part file or.zipcontaining an assembly model with all component parts). Wait for the upload to complete. -
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. -
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. -
Fill out the job execution dialog.
A "Create Job" dialog will appear. In the Tool/Function Combination dropdown:- Select
siemens_nxfrom the tool list - Select the function you want to run:
@istari:extract– Extract comprehensive data@istari:extract_geometry– Export geometry (requiresoutput_formatparameter in Advanced options)@istari:extract_parameters_full– Extract all parameters@istari:update_parameters– Update parameters (requiresparametersparameter in Advanced options)
- Select
-
Configure Advanced options (if needed).
Expand the Advanced options section if you need to:- Set
output_formatfor@istari:extract_geometry(e.g.,step,stp,iges,igs,stl) - Set
parametersfor@istari:update_parameters(JSON object with parameter names and values)
- Set
-
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)
-
Execute the function.
Click the Execute Function button to start processing. The system will begin processing the function asynchronously. -
View the results in the Files tree.
When execution completes, expand the file tree in the left sidebar. You will see:- Your NX file (
.prtor.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 metadataparameters.json– User-defined parametersparts.json– Assembly structurenx_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.prtornx_model.zip– Updated model (for update_parameters function)
- Your NX file (
-
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
.prtfiles. 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:
| Component | Required | Purpose |
|---|---|---|
| Programming Tools | ✅ Yes | Parent category for programming interfaces |
| └── Programming Interfaces | ✅ Yes | API access category |
| └── UGALLIANCE | ✅ Yes | Third-party integration APIs |
| └── UGOPEN | ✅ Yes | NXOpen API and run_journal.exe |
| └── UGOPENPP | ✅ Yes | C++ NXOpen wrappers |
Installation Steps:
-
For New Installation:
- Launch the NX Installer
- Select Custom installation type
- Expand Programming Tools → Programming Interfaces
- Check: ☑️ UGALLIANCE, ☑️ UGOPEN, ☑️ UGOPENPP
- Complete installation
-
For Existing Installation:
- Launch the NX Installer
- Select Modify option
- Navigate to Programming Tools → Programming Interfaces
- Enable missing components: ☑️ UGALLIANCE, ☑️ UGOPEN, ☑️ UGOPENPP
- Apply changes
Critical Files Verification
After installation, verify these files exist in your NX installation directory:
| File | Location | Purpose |
|---|---|---|
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
| Parameter | Type | Required | Description |
|---|---|---|---|
siemens_nx_installation_dir | String | Yes | Path to Siemens NX installation directory. Example: "C:\\Program Files\\Siemens\\NX2506" |
Configuration Priority:
The module determines the NX installation path in this order:
- Agent config (
istari_digital_config.yaml) - Production deployments - Module config (
module_config.json) - Local development - Environment variable (
UGII_BASE_DIR) - Fallback - 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
- Open the Start Menu
- Navigate to Siemens NX → Tools → Licensing Tool
- Or search for "NX Licensing Tool"
Step 2: Configure Bundle Settings
- In the Licensing Tool, go to the Bundle Settings tab
- Locate NX Design Standard Floating in the Available Bundles list
- Move it to Applied Bundles:
- Select NX Design Standard Floating
- Click the → (right arrow) button
- Or double-click the bundle name
- 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 Bundle | Supports 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:
-
Set the
SPLM_LICENSE_SERVERenvironment variable:SPLM_LICENSE_SERVER=28000@license-server.company.com -
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:
-
Check NX Installation Directory:
reg query "HKLM\SOFTWARE\Unigraphics Solutions\NX\2506" /v UGII_BASE_DIR -
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 -
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)
- NX part files (
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:
- Verify NX 2506 is installed in standard location:
C:\Program Files\Siemens\NX2506 - Check UGII_BASE_DIR in Registry:
reg query "HKLM\SOFTWARE\Unigraphics Solutions\NX\2506" /v UGII_BASE_DIR - For non-standard installations, set
siemens_nx_installation_dirin configuration - Verify the path contains required files (
run_journal.exemust exist)
- Verify NX 2506 is installed in standard location:
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:
- Verify license server connection:
ping license-server.company.comandtelnet license-server.company.com 28000 - Open NX Licensing Tool and verify "NX Design Standard Floating" is in Applied Bundles
- Check license availability with your license administrator
- Ensure
SPLM_LICENSE_SERVERenvironment variable is set correctly for floating licenses
- Verify license server connection:
Issue: run_journal.exe Not Found
- Symptom: Error: "Required executable not found: run_journal.exe"
- Cause: Programming Tools (UGOPEN component) is not installed
- Solution:
- Re-run NX installer
- Select Modify option
- Enable UGOPEN component under Programming Tools → Programming Interfaces
- 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:
- Verify NX Python runtime files exist:
{NX_DIR}\NXBIN\python\python312.dll{NX_DIR}\NXBIN\python\NXOpen.pyd
- Test
run_journal.exewith 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 - Note: NX uses an embedded Python runtime via
run_journal.exe, not a standalonepython.exe
- Verify NX Python runtime files exist:
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:
- Open the model in NX GUI and verify it contains solid bodies (not just wireframe/surfaces)
- For assemblies, ensure all component parts are included in the ZIP
- Verify components are not suppressed in the assembly
Getting Help
- For general Agent and Software Troubleshooting Click Here
- Check the module log file for detailed error messages
- Verify NX installation and licensing configuration
- Review the module manifest and configuration parameters
- Siemens Support: Contact Siemens PLM support for NX installation issues
- License Issues: Contact your organization's license administrator
- Module Issues: File an issue in the nx-module repository
- 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_geometryfunction supports STEP (.step,.stp), IGES (.iges,.igs), and STL (.stl) formats. Specify the format using theoutput_formatparameter.
- The
-
What's the difference between
parametersandparameters_full?parameterscontains only user-defined parameters that can be modified.parameters_fullincludes all expressions including system parameters, formulas, and dependencies, providing complete parameter information for analysis.
-
Can I update system parameters?
- No, the
@istari:update_parametersfunction only supports updating user-defined parameters. System parameters are read-only and cannot be modified through this integration.
- No, the