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
kAlwaysGenerateOnSaveStatusfor 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.

Leave a Reply