Generating Lightweight Shrinkwrap part and STEP Files Using the Inventor ShrinkwrapComponents API

Overview

When automating the creation of simplified assembly representations in Autodesk Inventor, many developers use the DerivedAssemblyComponent API because it is featured in the official Shrinkwrap Substitute in Assembly sample.

While investigating a customer case, I observed that this approach may not always produce the expected level of simplification. In particular, the generated shrinkwrap IPT and the exported STEP file were significantly larger than the original assembly.

The customer’s objective was to generate a lightweight STEP representation of an assembly for downstream workflows. However, the API-generated shrinkwrap did not reduce the model size as expected.

During the investigation, Autodesk Engineering recommended using the ShrinkwrapComponents API, which uses the same simplification engine as the Inventor Simplify command. After validating this recommendation in both Inventor 2024 and Inventor 2026, I observed significantly smaller shrinkwrap IPT and STEP files.

This article explains the observed behavior, compares the two API approaches, and demonstrates why ShrinkwrapComponents is the preferred API for generating lightweight shrinkwrap and STEP files.


Note

The validation presented in this article was performed using a real-world customer assembly.

Since the dataset contains proprietary and confidential design information, the original assembly, generated shrinkwrap IPT, and exported STEP files cannot be shared publicly.

To respect customer confidentiality, this article illustrates the comparison using only the resulting file sizes. Although the sample dataset is not included, the VBA samples provided can be executed against your own Inventor assemblies to reproduce and evaluate the behavior.


The Problem

The initial implementation was based on the official Autodesk sample that uses the DerivedAssemblyComponent API to generate a shrinkwrap substitute.

The expected workflow was straightforward:

  • Generate a simplified shrinkwrap IPT.
  • Export the shrinkwrap to a STEP file.
  • Obtain files that are comparable to, or smaller than, the original assembly.

Instead, the generated IPT and STEP files were significantly larger than expected.


Reproducing the Issue

The behavior was reproduced in both:

  • Autodesk Inventor 2024
  • Autodesk Inventor 2026

using the official workflow based on the DerivedAssemblyComponent API.

VBA Sample Using DerivedAssemblyComponent


Sub CreateShrinkwrapSubstitute()

    ' Set a reference to the active assembly document
    Dim oDoc As AssemblyDocument
    Set oDoc = ThisApplication.ActiveDocument

    Dim oDef As AssemblyComponentDefinition
    Set oDef = oDoc.ComponentDefinition

    ' Create a new part document that will be the shrinkwrap substitute
    Dim oPartDoc As PartDocument
    Set oPartDoc = ThisApplication.Documents.Add(kPartDocumentObject)

    Dim oPartDef As PartComponentDefinition
    Set oPartDef = oPartDoc.ComponentDefinition

    Dim oDerivedAssemblyDef As DerivedAssemblyDefinition
    Set oDerivedAssemblyDef = _
        oPartDef.ReferenceComponents.DerivedAssemblyComponents.CreateDefinition( _
            oDoc.FullDocumentName)

    ' Configure shrinkwrap options
    oDerivedAssemblyDef.DeriveStyle = kDeriveAsSingleBodyNoSeams
    oDerivedAssemblyDef.IncludeAllTopLevelWorkFeatures = kDerivedIncludeAll
    oDerivedAssemblyDef.IncludeAllTopLevelSketches = kDerivedIncludeAll
    oDerivedAssemblyDef.IncludeAllTopLeveliMateDefinitions = kDerivedExcludeAll
    oDerivedAssemblyDef.IncludeAllTopLevelParameters = kDerivedExcludeAll
    oDerivedAssemblyDef.ReducedMemoryMode = True

    Call oDerivedAssemblyDef.SetHolePatchingOptions(kDerivedPatchAll)
    Call oDerivedAssemblyDef.SetRemoveByVisibilityOptions( _
        kDerivedRemovePartsAndFaces, 25)

    ' Create the shrinkwrap component
    Dim oDerivedAssembly As DerivedAssemblyComponent
    Set oDerivedAssembly = _
        oPartDef.ReferenceComponents.DerivedAssemblyComponents.Add( _
            oDerivedAssemblyDef)

    ' Save the generated shrinkwrap part
    Dim strSubstituteFileName As String

    strSubstituteFileName = Left$(oDoc.FullFileName, _
        Len(oDoc.FullFileName) - 4)
    strSubstituteFileName = strSubstituteFileName & _
        "_ShrinkwrapSubstitute.ipt"

    ThisApplication.SilentOperation = True
    Call oPartDoc.SaveAs(strSubstituteFileName, False)
    ThisApplication.SilentOperation = False

     

End Sub

Results Using DerivedAssemblyComponent API

The above code was executed in both Inventor 2024 and Inventor 2026.

Test Dataset

The file size comparisons shown below were obtained using a confidential customer assembly that is subject to non-disclosure restrictions. Therefore, only the measured file sizes are presented in this article.

Although the actual file sizes will vary depending on assembly complexity, the comparison clearly demonstrates the relative behavior of the two API workflows.

Inventor 2024

FileSize
Original Assembly (.iam)3,016 KB
Generated Shrinkwrap (.ipt)6,864 KB
Exported STEP (.stp)10,009 KB

Inventor 2026

FileSize
Original Assembly (.iam)2,688 KB
Generated Shrinkwrap (.ipt)4,608 KB
Exported STEP (.stp)10,009 KB

Observation

Although Inventor 2026 reduced the shrinkwrap IPT size compared to Inventor 2024, the generated IPT remained considerably larger than the original assembly. Likewise, the exported STEP file was substantially larger than the source assembly in both versions.


Additional Investigation

Several configuration changes were evaluated to determine whether the output file size could be reduced.

The following options were tested:

  • ReducedMemoryMode = True
  • kDeriveAsSingleBodyWithSeams
  • kDeriveAsMultipleBodies
  • Excluding top-level parameters
  • RemoveInternalVoids = False
  • Different STEP Application Protocols (AP203, AP214, and AP242)
  • Different STEP export tolerances
  • Including and excluding sketches

Despite evaluating these configurations, none produced a meaningful reduction in the generated IPT or STEP file size.


Recommended Alternative: ShrinkwrapComponents

During the investigation, Autodesk Engineering recommended using the ShrinkwrapComponents API instead of the DerivedAssemblyComponent API.

Unlike DerivedAssemblyComponent, the ShrinkwrapComponents API uses the same simplification engine as the Inventor Simplify command, producing results that closely match the interactive workflow.

VBA Sample Using ShrinkwrapComponents


Sub SimplifyActiveDoc()

    ' Open the active assembly document
    Dim asmdoc As AssemblyDocument
    Set asmdoc = ThisApplication.ActiveDocument

    ' Create a new part document
    Dim oDoc As PartDocument
    Set oDoc = ThisApplication.Documents.Add(kPartDocumentObject)

    Dim oDef As PartComponentDefinition
    Set oDef = oDoc.ComponentDefinition

    ' Create the ShrinkwrapComponents object
    Dim oShrinkComps As ShrinkwrapComponents
    Set oShrinkComps = oDef.ReferenceComponents.ShrinkwrapComponents

    ' Create the shrinkwrap definition
    Dim oShrinkDef As ShrinkwrapDefinition
    Set oShrinkDef = _
        oShrinkComps.CreateDefinition(asmdoc.FullFileName)

    ' Configure simplification options
    oShrinkDef.RemovePartsBySize = True
    oShrinkDef.RemovePartsSize = 30#
    oShrinkDef.RemoveInternalParts = True

    ' Optional simplification settings
    'oShrinkDef.RemoveHolesStyle = kShrinkwrapRemoveAll
    'oShrinkDef.RemoveFilletsStyle = kShrinkwrapRemoveAll
    'oShrinkDef.RemoveChamfersStyle = kShrinkwrapRemoveAll
    'oShrinkDef.RemovePocketsStyle = kShrinkwrapRemoveAll
    'oShrinkDef.RemoveEmbossesStyle = kShrinkwrapRemoveAll
    'oShrinkDef.RemoveTunnelsStyle = kShrinkwrapRemoveAll

    ' Create the shrinkwrap component
    Dim oShrink As ShrinkwrapComponent
    Set oShrink = oShrinkComps.Add(oShrinkDef)

    ' Fit the model in the graphics window
    oDoc.Views(1).GoHome
    oDoc.Views(1).Fit

    ' Save the generated shrinkwrap part
    Dim strSubstituteFileName As String

    strSubstituteFileName = Left$(asmdoc.FullFileName, _
        Len(asmdoc.FullFileName) - 4)
    strSubstituteFileName = strSubstituteFileName & _
        "_ShrinkwrapSubstitute.ipt"

    ThisApplication.SilentOperation = True
    Call oDoc.SaveAs(strSubstituteFileName, False)
    ThisApplication.SilentOperation = False

End Sub

Results Using ShrinkwrapComponent API

The above solution was validated in both Inventor 2024 and Inventor 2026 using the same confidential customer assembly.

Inventor 2024

FileSize
Original Assembly (.iam)3,016 KB
Generated Shrinkwrap (.ipt)3,296 KB
Exported STEP (.stp)3,894 KB

Inventor 2026

FileSize
Original Assembly (.iam)2,997 KB
Generated Shrinkwrap (.ipt)2,304 KB
Exported STEP (.stp)3,894 KB

Observation

The improvement is significant.

Compared to the DerivedAssemblyComponent workflow:

  • The generated shrinkwrap IPT is dramatically smaller.
  • In Inventor 2026, the shrinkwrap IPT is even smaller than the original assembly.
  • The exported STEP file size is reduced from approximately 10 MB to 3.9 MB.
  • The results closely match those obtained using the interactive Simplify command.

Furthermore, enabling the optional simplification settings (RemoveHolesStyle, RemoveFilletsStyle, RemoveChamfersStyle, RemovePocketsStyle, RemoveEmbossesStyle, and RemoveTunnelsStyle) can reduce the output even further, producing results similar to the Medium Simplification preset available in the Inventor UI.


Comparison

MetricDerivedAssemblyComponentShrinkwrapComponents
Simplification EngineDerived AssemblyInventor Simplify
Inventor 2024 IPT6,864 KB3,296 KB
Inventor 2026 IPT4,608 KB2,304 KB
Exported STEP10,009 KB3,894 KB
Matches Inventor SimplifyNoYes
Recommended for Lightweight STEP GenerationNoYes

Key Takeaways

  • The DerivedAssemblyComponent API does not necessarily produce the same level of simplification as the interactive Simplify command.
  • Larger shrinkwrap IPT and STEP files can be expected when using the DerivedAssemblyComponent workflow.
  • The ShrinkwrapComponents API uses the same simplification engine as the Inventor user interface and consistently generates significantly smaller IPT and STEP files.
  • Additional simplification options (removing holes, fillets, chamfers, pockets, embosses, and tunnels) can further reduce the resulting file size.
  • For automated workflows that require lightweight geometry for visualization, collaboration, or downstream manufacturing processes, the ShrinkwrapComponents API is the preferred solution.

Disclaimer

The file sizes presented in this article were measured using a confidential customer assembly and are provided for comparison purposes only. The original dataset cannot be shared due to customer confidentiality.

Actual file sizes and the degree of simplification will vary depending on assembly complexity, component count, feature types, and the simplification options selected. Nevertheless, the validation performed in Inventor 2024 and Inventor 2026 consistently demonstrated that the ShrinkwrapComponents API produces substantially smaller shrinkwrap IPT and STEP files than the DerivedAssemblyComponent API.


Conclusion

If your objective is to programmatically generate compact shrinkwrap parts or lightweight STEP files, the ShrinkwrapComponents API is the recommended approach over the traditional DerivedAssemblyComponent workflow.

Our validation using a real-world customer assembly in both Inventor 2024 and Inventor 2026 demonstrated that the ShrinkwrapComponents API consistently generates significantly smaller IPT and STEP files while closely matching the behavior of the Inventor Simplify command.

For developers building automated simplification workflows or lightweight data exchange solutions, adopting the ShrinkwrapComponents API can result in substantially improved output sizes and a workflow that is much closer to the Inventor user experience.


Comments

Leave a Reply

Discover more from Autodesk Developer Blog

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

Continue reading