Issue:
You want to be able to control the visibility of Solid
Bodies in a Multi Body part file using your iLogic rule.
Solution:
Here is a quick example that demonstrates several options to toggle the visibility of solid
bodies on and off.
'define the document as a
component definition
Dim oCompDef as ComponentDefinition
oCompDef = ThisDoc.Document.ComponentDefinition
'define the solidbody
Dim oBody as SurfaceBody
'add each solid body name to a
list
Dim MyArrayList As New ArrayList
i = 1
For Each SurfaceBody in oCompDef.SurfaceBodies
oBody = oCompDef.SurfaceBodies.Item(i)
MyArrayList.add(oBody.Name)
i = i +1
Next
'add Show and Hide all options
to the list
MyArrayList.add(" *Show All")
MyArrayList.add(" *Hide All")
'present the user with the
list and record the selection
sBody = InputListBox("Select a Solid Body to
Toggle Visibility.", _
MyArrayList, "", "iLogic", "List of Solid
Bodies")
'toggle all on or all off, if
those options were selected
If sBody = " *Show All" Then
i = 1
For Each SurfaceBody in oCompDef.SurfaceBodies
oBody
= oCompDef.SurfaceBodies.Item(i)
oBody.Visible = True
i = i +1
Next
ElseIf sBody = " *Hide All"
i = 1
For Each SurfaceBody in oCompDef.SurfaceBodies
oBody
= oCompDef.SurfaceBodies.Item(i)
oBody.Visible = False
i = i +1
Next
End If
'compare the user selection to
the solid body names
'and toggle the visibility for
the one the matches (if any)
i = 1
For Each SurfaceBody in oCompDef.SurfaceBodies
oBody = oCompDef.SurfaceBodies.Item(i)
If sBody = oBody.Name Then
If oBody.Visible = False Then
oBody.Visible = True
Else
oBody.Visible = False
End If
End If
MyArrayList.add(oBody.Name)
i = i +1
Next