' COPYRIGHT DASSAULT SYSTEMES 2000

' ***********************************************************************
'   Purpose: Creates Assembled Solution sets
'            add one V4 imported solution to one of the assembled solution
'            and one static case solution to another assembled solution
'	     Update the solutions
'   Assumptions: one solution case already exist in the document
'   Author:       bmw
'   Languages:    VBScript
'   Locales:      English 
'   CATIA Level:  V5R16
' ***********************************************************************


Sub CATMain()

' ----------------------------------------------------------- 
' Optional: allows to find the sample wherever it's installed
sDocPath=CATIA.SystemService.Environ("CATDocView")
sSep=CATIA.SystemService.Environ("ADL_ODT_SLASH")

If (Not CATIA.FileSystem.FolderExists(sDocPath)) Then
Err.Raise 9999,,"No Doc Path Defined"
End If
' ----------------------------------------------------------- 


' Open the CATAnalysis Document
Set analysisDocument1 = CATIA.Documents.Open(sDocPath & sSep & "online" & sSep & "CAAScdAniUseCases" & sSep & "samples" & sSep & "Assembled_Loads_Slutions.CATAnalysis")

'Retrieve the Analysis Manager from the analysis document
Set analysisManager1 = analysisDocument1.Analysis

'Retrieve the product document from the linked document
Set analysisLinkedDocuments1 = analysisManager1.LinkedDocuments
Set productDocument1 = analysisLinkedDocuments1.Item(1)

'From product document retrieve products
Set product1 = productDocument1.Product
Set products1 = product1.Products
Set product2 = products1.Item("Analysis1.1")

'Retrieve the analysis models and the first model
Set analysisModels1 = analysisManager1.AnalysisModels
Set analysisModel1 = analysisModels1.Item(1)


'Retrieve the analysis cases from analysis model
Set analysisCases1 = analysisModel1.AnalysisCases

'Retrieve the second object that is Solution Case.1 
'from the list of analysis cases
Set analysisCase1 = analysisCases1.Item(2)

'Retrieve the analysis case
Set analysisSets1 = analysisCase1.AnalysisSets

'Add two Assembled solution sets
Set analysisSet1 = analysisSets1.Add("ElfAssembledSet", catAnalysisSetOut)
Set analysisSet2 = analysisSets1.Add("ElfAssembledSet", catAnalysisSetOut)

'Retrieve the basic component from the analysis set
Set basicComponents1 = analysisSet1.BasicComponents
Set basicComponent1 = basicComponents1.GetItem("ElfAssemblyPtr.1")

'Retrieve the basic component from the analysis set
Set basicComponents2 = analysisSet2.BasicComponents
Set basicComponent2 = basicComponents2.GetItem("ElfAssemblyPtr.1")


'Search and select
Set selection1 = analysisDocument1.Selection
selection1.Search "Name=*DISP*,all"

'Retrieve the analysis manager object from the analysis document
Set documents1 = CATIA.Documents
Set analysisDocument2 = documents1.Item("Analysis1.CATAnalysis")
Set analysisManager2 = analysisDocument2.Analysis


'Go through the selections and find out the the analysis set
'create a reference from the analysis set and add it to the basic component
For i =1 To selection1.Count
          Set element = selection1.Item(i)
           IF (element.Type = "AnalysisSet" ) Then 'DO NOTHING
              Set Reference = analysisManager2.CreateReferenceFromObject(element.Value)
              basicComponent1.AddSupportFromProduct product2, Reference
         END IF
       
Next

'Search and select
selection1.Clear
selection1.Search "Name=*Static Case*,all"

'Remove the last static case, since this is at the same
'level in the analysis assembly
selection1.Remove2(selection1.Count)

'Go through the selections and find out the the analysis set
'create a reference from the analysis set and add it to the basic component
For i =1 To selection1.Count
          Set element = selection1.Item(i)
           IF (element.Type = "AnalysisSet" ) Then 'DO NOTHING
               Set Reference = analysisManager2.CreateReferenceFromObject(element.Value)
               basicComponent2.AddSupportFromProduct product2, Reference
         END IF
       
Next

'update the two analysis sets
analysisSet1.Update
analysisSet2.Update

End Sub