do you have any suggestion how to select only bodies which are visible and in-root of part? For example i wish to get selected only Lens - Outer Headlamp - LH - Clear and Lens - Outer Headlamp - LH - Black from this structure:
I tried
Dim objPart As part
Dim objBodies As Bodies
Set objPart = CATIA.ActiveDocument.part
Set objBodies = objPart.Bodies
and value by objBodies.Count is 113, so i tried it by Search command directly in Catia and I'm not able to get only that two bodies. Do you have any ideas?
Finally I got the answer:
Dim objPart As part
Dim objBodies As Bodies
dim rootBodiesCount as Integer
Set objPart = CATIA.ActiveDocument.part
Set objBodies = objPart.Bodies
rootBodiesCount = getRootBodiesCount(objBodies)
Function getRootBodiesCount(allBodies as Bodies) As Integer
getRootBodiesCount = 0
For i = 1 To allBodies.Count
Dim inBool As Boolean: inBool = allBodies.Item(i).InVooleanOperation
Dim visibility As Boolean: visibility = allBodies.Item(i).Visible
If inBool = False Then
If visibility Then getRootBodiesCount = getRootBodiesCount + 1
End If
Next
End Function