Sub main() Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.modeldoc2 Dim swAssy As SldWorks.AssemblyDoc Dim swConf As SldWorks.Configuration Dim swRootComp As SldWorks.Component2 Dim bRet As Boolean Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swConf = swModel.GetActiveConfiguration Set swRootComp = swConf.GetRootComponent Debug.Print "File = " & swModel.GetPathName TraverseComponent swRootComp, 1 Call swModel.EditRebuild3 End Sub Sub TraverseComponent(swComp As SldWorks.Component2, nLevel As Long) Dim vChildCompArr As Variant Dim vChildComp As Variant Dim swChildComp As SldWorks.Component2 Dim ConfigNames As Variant Dim vConfigName As Variant Dim swConfig As Object Dim i As Long Dim tmpModelDoc2 As SldWorks.modeldoc2 vChildCompArr = swComp.GetChildren On Error Resume Next 'überspringt Fehler, der entsteht, wenn eine Komponente reduziert geladen ist For Each vChildComp In vChildCompArr Set swChildComp = vChildComp Set tmpModelDoc2 = swChildComp.GetModelDoc2 ConfigNames = tmpModelDoc2.GetConfigurationNames Set OldConfig = tmpModelDoc2.GetActiveConfiguration OldConfigName = OldConfig.Name 'alle Konfigurationen durchlaufen For Each vConfigName In ConfigNames Call tmpModelDoc2.ShowConfiguration2(vConfigName) boolstatus = tmpModelDoc2.ForceRebuild3(True) ' Rebuild Debug.Print swChildComp.Name2 & " ; Konf: " & vConfigName Debug.Print "Updated: " & boolstatus Next 'und original Konfig wieder aktivieren Call ModelDoc.ShowConfiguration2(OldConfigName) TraverseComponent swChildComp, nLevel + 1 Next On Error GoTo 0 End Sub