Streamlined Model State Member Document Generation Using the “GenerateOnSaveStatus” Property in Inventor 2027 API

The Autodesk Inventor 2027 API introduces a powerful enhancement that significantly simplifies Model State workflows—GenerateOnSaveStatus. This capability enables automatic generation of Model State member documents, removing the need for indirect or manual triggers used in earlier versions.

For developers working with Model States in automation, this feature represents a major improvement in efficiency and scalability.


Why GenerateOnSaveStatus Matters

Before Inventor 2027, generating Model State member documents required indirect workflows such as:

  • Referencing the Model State from another document
  • Manually activating each Model State

Challenges with the legacy approach:

  • Time-consuming execution
  • Difficult to scale for large assemblies
  • Inefficient for automation workflows

With Inventor 2027

The introduction of GenerateOnSaveStatus enables automatic generation of Model State member documents during save operations.

  • ✅ More predictable automation behavior
  • ✅ Easier scripting and integration
  • ✅ Reduced dependency on UI-driven workflows

What is GenerateOnSaveStatus in Inventor API?

GenerateOnSaveStatus is a read-write API property that controls whether Model State member documents are automatically generated when a document is saved.

This is especially useful for:

  • Automation scripts
  • Large assembly workflows
  • Batch processing scenarios

Key Advantage in Inventor 2027

❌ Before Inventor 2027

  • No automatic Model State member document generation
  • Required external references or manual activation
  • Not scalable for automation workflows

✅ Inventor 2027 and Later

  • Set GenerateOnSaveStatus
  • Save the document
  • Member documents are generated automatically

VBA Sample Code for Inventor Model State Automation

This sample demonstrates how to work with Model State generation status and Member Document status using the Autodesk Inventor API. These routines are particularly useful for automation workflows where visibility and control over Model State generation behavior are required.

The following VBA examples show how to:

  • Read GenerateOnSaveStatus values
  • Read Member Document status
  • Access Active Model State properties
  • Toggle generation behavior at both Active and Global levels

Sample Code

Sub PrintGenerateOnSaveStatus(status As ModelStateMemberGenerationStatusEnum)
    Select Case status
    Case kAlwaysGenerateOnSaveStatus
        Debug.Print "kAlwaysGenerateOnSaveStatus"
    Case kLegacyGenerateOnSaveStatus
        Debug.Print "kLegacyGenerateOnSaveStatus"
    Case kMixedGenerateOnSaveStatus
        Debug.Print "kMixedGenerateOnSaveStatus"
    End Select
End Sub

Sub PrintMemberDocumentStatus(status As ModelStateMemberDocumentStatusEnum)
    Select Case status
    Case kMemberDocumentUpToDateStatus
        Debug.Print "kMemberDocumentUpToDateStatus"
    Case kMemberDocumentNotGeneratedStatus
        Debug.Print "kMemberDocumentNotGeneratedStatus"
    Case kMemberDocumentOutOfDateStatus
        Debug.Print "kMemberDocumentOutOfDateStatus"
    End Select
End Sub

Sub PrintMemberDocumentStatus_Active()
    Dim modelStates As modelStates
    Set modelStates = ThisDocument.ComponentDefinition.modelStates

    PrintMemberDocumentStatus modelStates.ActiveModelState.MemberDocumentStatus
End Sub

Sub PrintGenerateOnSaveStatus_Active()
    Dim modelStates As modelStates
    Set modelStates = ThisDocument.ComponentDefinition.modelStates

    PrintGenerateOnSaveStatus modelStates.ActiveModelState.GenerateOnSaveStatus
End Sub

Sub PrintGenerateOnSaveStatus_All()
    Dim modelStates As modelStates
    Set modelStates = ThisDocument.ComponentDefinition.modelStates

    PrintGenerateOnSaveStatus modelStates.ActiveModelState.GenerateOnSaveStatus
End Sub

Sub ToggleGenerateOnSaveStatus_Active()
    Dim modelStates As modelStates
    Set modelStates = ThisDocument.ComponentDefinition.modelStates

    Dim ms As ModelState
    Set ms = modelStates.ActiveModelState

    Select Case ms.GenerateOnSaveStatus
    Case kAlwaysGenerateOnSaveStatus
        ms.GenerateOnSaveStatus = kLegacyGenerateOnSaveStatus
    Case kLegacyGenerateOnSaveStatus
        ms.GenerateOnSaveStatus = kAlwaysGenerateOnSaveStatus
    End Select
End Sub

Sub ToggleGenerateOnSaveStatus_All()
    Dim modelStates As modelStates
    Set modelStates = ThisDocument.ComponentDefinition.modelStates

    Select Case modelStates.GenerateOnSaveStatus
    Case kAlwaysGenerateOnSaveStatus
        modelStates.GenerateOnSaveStatus = kLegacyGenerateOnSaveStatus
    Case kLegacyGenerateOnSaveStatus
        modelStates.GenerateOnSaveStatus = kAlwaysGenerateOnSaveStatus
    Case kMixedGenerateOnSaveStatus
        modelStates.GenerateOnSaveStatus = kLegacyGenerateOnSaveStatus
    End Select
End Sub

Summary

These routines provide a practical foundation for managing Model State behavior in Autodesk Inventor automation workflows. By combining status inspection and toggle operations, developers can build more predictable and controllable automation logic around Model State generation.

This approach is especially useful in large assembly environments where Model State generation behavior needs to be monitored and adjusted dynamically during batch processing or save operations.

Best Practices

  • ✔ Use kAlwaysGenerateOnSaveStatus for automation workflows
  • ✔ Validate member document status before access
  • ✔ Prefer global vs granular control based on scenario
  • ✔ Handle document state transitions carefully

Final Thoughts

The GenerateOnSaveStatus API in Inventor 2027 significantly improves Model State automation by enabling automatic generation of member documents during save operations.

This enhancement leads to:

  • Faster automation workflows
  • Improved scalability
  • More reliable Model State management

For developers building Inventor automation solutions, this is a key feature that enables more modern, efficient, and maintainable workflows.


Comments

Leave a Reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading