Integrating simulation results with PLM workflows: challenges with linking artifacts and triggering validation

We’re working on integrating our simulation workflow with Windchill 11.1 to improve traceability between CAE analysis and design validation. The goal is to automatically link simulation results (stress analysis, thermal studies, CFD outputs) to the corresponding parts and trigger validation workflows based on analysis outcomes.

The technical challenge is that simulation tools generate results in various formats - some produce standard formats like FEA result files, while others output proprietary formats or even just PDF reports with embedded data. We need a consistent way to capture these results as Windchill artifacts and establish relationships with the source geometry and the parts being analyzed.

Another complexity is triggering workflows based on simulation results. If a stress analysis shows a part exceeds safety margins, we want to automatically initiate a design review workflow and notify the responsible engineer. This requires parsing result data to extract key metrics and using those to make workflow decisions. We’re exploring using the REST API to create artifacts and trigger workflows, but we’re not sure about the best approach for standardizing result formats and defining the validation logic that determines which workflow to trigger.

Has anyone implemented similar simulation-to-PLM integrations? How did you handle the variety of result formats and implement intelligent workflow triggers based on analysis outcomes?

Simulation-to-Windchill Integration: Artifact Linking and Workflow Triggers

Two distinct problems here — artifact normalization and conditional workflow invocation. Address them separately in your architecture.


Artifact Ingestion and Relationship Establishment

The most defensible pattern is a middleware normalization layer (MuleSoft, custom Python service, or similar) that sits between your simulation tools and Windchill, handling format heterogeneity before anything touches the PLM.

Format normalization strategy:

  • Define an internal simulation result envelope (JSON or XML schema) containing: analysis type, pass/fail status, key scalar metrics (max stress, safety factor, peak temp), source geometry reference (CAD file OID or part number), and a pointer to the raw result artifact.
  • Every simulation tool adapter transforms output into this envelope. FEA files get parsed by tool-specific readers; PDF reports with embedded data require text extraction (pdfplumber, Camelot) or structured tagging at the simulation tool output stage — push for structured output at the source if at all possible.

Windchill-side artifact creation via REST:

POST /Windchill/servlet/odata/PTC.SCA.SCO.Api/Documents
Content-Type: application/json

{
  "TypeDefinitionVersionReference": {
    "TypeDefinitionVersionID": "wt.doc.WTDocument"
  },
  "Name": "StressAnalysis_Part123_Rev01",
  "Number": "SIM-2024-0042",
  "FolderLocation": "/Default/Simulation Results"
}

After document creation, upload the raw artifact as a ContentItem, then establish the WTPartDescribeLink or a custom relationship type between the document and the source WTPart using the relationship endpoint (verify in your version — relationship API surface changed between 11.x and 12.x):

POST /Windchill/servlet/odata/PTC.SCA.SCO.Api/LinkObjects
{
  "role1ObjectRef": "<WTPart OID>",
  "role2ObjectRef": "<WTDocument OID>",
  "linkTypeName": "wt.part.WTPartDescribeLink"
}

For traceability to source geometry specifically, also target the EPMDocument (OOTB CAD document) rather than only the WTPart, so the link survives ECO-driven part revisions cleanly.


Conditional Workflow Triggering

Your middleware consumes the normalized envelope and evaluates business rules against the scalar metrics. Keep validation logic outside Windchill — expression-based rules in a rules engine (Drools, simple decision table) are far easier to maintain than embedded Windchill workflow conditions.

When a threshold breach is detected, invoke a named workflow template via REST:

POST /Windchill/servlet/odata/PTC.SCA.SCO.Api/WorkflowProcesses
{
  "TemplateName": "DesignReview_SimFailure",
  "ContextObject": "<WTPart OID>",
  "Variables": [
    {"Name": "triggerReason", "Value": "Stress exceeds margin by 12%"},
    {"Name": "assignedEngineer", "Value": "uid=jsmith,ou=people"}
  ]
}

Workflow template setup in Windchill (Workflow Template Administration via wftedit): define a WFAssignActivity as first node, pulling the assignedEngineer variable as the participant. Pass trigger reason into a WFNotification node for the email body.

Version compatibility note: REST workflow invocation capability matured significantly post-11.1 — verify your specific 11.1 patch level against PTC’s REST API support matrix before committing to this path. SOAP-based WindchillDS or the OTK Java client may be more reliable for workflow instantiation on older 11.x builds.


Key Architecture Decisions

  • Push structured output from simulation tools rather than parsing unstructured PDFs — negotiate this with simulation team upfront.
  • Keep metric thresholds and routing rules in an external rules store, not hardcoded in middleware or Windchill workflow conditions.
  • Use WTDocument subtypes (not generic WTDocument) to differentiate analysis types — enables type-specific lifecycle policies and access control.

This draft is based on general Windchill knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.

The format standardization challenge is real. We addressed it by creating a simulation result wrapper object in Windchill that contains both the native result files and a standardized metadata document. The metadata is XML with defined fields for key metrics (max stress, safety factor, pass/fail status, etc.). Regardless of the simulation tool, we extract these standard metrics and populate the wrapper. This gives you a consistent interface for workflow decisions while preserving the full native results for detailed analysis.

The wrapper object approach makes sense. How do you handle the extraction of metrics from different simulation tools? Is that done by each simulation tool’s export process, or do you have a separate parsing layer that reads the native results and extracts the standard metrics?

We use a plugin architecture where each simulation tool has an adapter that knows how to extract metrics from its result format. The adapters implement a common interface that returns standardized metric objects. When a simulation completes, its adapter runs, extracts the metrics, creates the wrapper object in Windchill via REST API, and links it to the source part. This keeps the extraction logic separate from Windchill and makes it easy to add new simulation tools by writing new adapters.

For workflow triggering, define validation rules in a configuration file that maps metric values to workflow actions. For example: if max_stress > yield_strength * 0.9, trigger DESIGN_REVIEW workflow; if safety_factor < 1.5, trigger URGENT_REDESIGN workflow. Your integration service evaluates these rules against the extracted metrics and calls the Windchill REST API to initiate the appropriate workflow. This makes the logic configurable without code changes and allows engineers to adjust thresholds as design standards evolve.

Don’t forget about artifact linking complexity. A single simulation might reference multiple parts (assembly analysis), multiple CAD versions (comparing design iterations), and generate multiple result files (mesh, solution, post-processing). You need a relationship model that captures all these connections. We use Windchill’s reference links to connect simulation results to parts, CAD documents, and previous simulation iterations. This creates a traceable history of how designs evolved based on analysis feedback.

Consider using Windchill’s document management capabilities to store simulation results as documents with custom attributes for the key metrics. This leverages existing Windchill functionality rather than creating entirely new object types. You can define document subtypes for different simulation types (Stress Analysis Document, Thermal Analysis Document, etc.) with specific attribute sets. The workflow trigger logic can be implemented as a custom Windchill service that monitors for new simulation documents and evaluates their attributes against your validation rules.

Based on experience with multiple simulation-PLM integration projects, here’s a comprehensive approach for your requirements:

Standard Result Formats: The key to handling diverse simulation outputs is implementing a three-layer architecture:

Layer 1 - Native Storage: Store original simulation results unchanged in Windchill as documents or attachments. This preserves full fidelity for detailed engineering review and ensures you never lose information through transformation. Use Windchill’s document management with appropriate subtypes (FEA Results, CFD Results, Thermal Analysis Results) that inherit from a base Simulation Result type.

Layer 2 - Standardized Metadata: Create a common metadata schema that captures essential metrics regardless of simulation type. Define this as XML or JSON with fields like:

  • Analysis type and tool used
  • Key performance metrics (stress, temperature, flow rate, etc.)
  • Pass/fail status against design criteria
  • Safety factors and margins
  • Simulation parameters and boundary conditions
  • Links to input geometry and material properties

Implement tool-specific adapters that extract this metadata from native result formats. Each adapter knows how to parse its tool’s output and populate the standard schema. This abstraction layer enables consistent workflow decisions across different simulation tools.

Layer 3 - Visualization Summaries: Generate standardized visualization artifacts (images, simplified reports) that can be reviewed without opening native simulation tools. These become attachments to the Windchill result document and enable quick assessment by non-CAE engineers during workflow reviews.

Workflow Triggers: Implement intelligent workflow triggering through a rule-based evaluation service:

Define validation rules in a configuration file that maps simulation results to workflow actions. Structure rules as conditions and actions:


Rule: Critical_Stress_Exceedance
Condition: max_stress > material_yield * 0.95
Action: Trigger workflow "Emergency Design Review"
Notify: Design engineer, CAE lead, Project manager

Rule: Marginal_Safety_Factor
Condition: safety_factor < 1.5 AND safety_factor >= 1.2
Action: Trigger workflow "Standard Design Review"
Notify: Design engineer

Your integration service evaluates these rules when simulation results are uploaded to Windchill. Use the REST API to initiate workflows programmatically, passing context data (part number, analysis type, metric values) as workflow variables. This allows workflow tasks to display relevant information and make informed decisions.

Implement the evaluation service as a Windchill event listener that monitors for new simulation result documents. When one is created, the listener extracts the standardized metadata, evaluates all applicable rules, and triggers appropriate workflows. This keeps the logic server-side and ensures consistent behavior.

Artifact Linking: Establish a comprehensive relationship model that connects simulation artifacts to their context:

  • Link simulation results to source CAD documents using Windchill’s “Described By” reference type
  • Link to analyzed parts using “Analyzes” custom reference type
  • Link to previous simulation iterations using “Supersedes” to track analysis evolution
  • Link to material specifications and design requirements documents
  • Link to triggered workflows so you can trace which analyses initiated which reviews

Create these links automatically in your integration service when simulation results are uploaded. Use the REST API’s relationship management endpoints to establish links programmatically. This creates a traceable network showing how simulation drives design decisions.

For assembly-level analyses that involve multiple parts, use Windchill’s multi-target references to link one simulation result to all analyzed components. This maintains the relationship integrity even as the assembly structure evolves.

Implementation Pattern: A practical implementation uses a central integration service that orchestrates the process:

  1. Simulation tool completes analysis and deposits results in a monitored directory
  2. Tool-specific adapter detects new results, extracts standardized metadata
  3. Adapter calls integration service REST endpoint with metadata and native files
  4. Integration service creates Windchill simulation result document via REST API
  5. Service establishes links to source CAD, analyzed parts, and requirements
  6. Service evaluates validation rules against extracted metrics
  7. Service triggers appropriate workflows based on rule evaluation
  8. Workflow notifications alert relevant engineers with links to results and context

This pattern decouples simulation tools from Windchill, making the integration maintainable and extensible. Adding support for a new simulation tool requires only writing a new adapter - the rest of the infrastructure remains unchanged.

The combination of standardized metadata extraction, rule-based workflow triggering, and comprehensive artifact linking creates a robust simulation-PLM integration that improves design traceability and automates validation processes while accommodating the inherent diversity of simulation tool outputs.