Ekins is refering to code similiar to the following (excerpt from http://modthemachine.typepad.com/files/mathgeometry.pdf )
'---------Start Code in Module -------------
Public Sub AssemblyTraversal()
' Get the active document, assuming it's an assembly.
Dim oAsmDoc As AssemblyDocument
Set oAsmDoc = ThisApplication.ActiveDocument
' Begin the assembly traversal.
Call TraverseAsm(oAsmDoc.ComponentDefinition.Occurrences, 1)
End Sub
' The Level argument is used to control the amount of indent for the output.
Private Sub TraverseAsm(oOccurrences As ComponentOccurrences, Level As Integer)
' Iterate through the current list of occurrences.
Dim oOcc As ComponentOccurrence
For Each oOcc In oOccurrences
' Print the name of the current occurence.
Debug.Print Space(Level * 3) & oOcc.Name
' If the current occurrence is a subassembly then call this sub
' again passing
in the collection for the current occurrence.
If oOcc.DefinitionDocumentType = kAssemblyDocumentObject Then
Call TraverseAsm(oOcc.SubOccurrences, Level + 1)
End If
Next
End Sub
'---------End Code in Module -------------
"One thing to notice is that this example is not a single sub. Traversing an assembly of any depth requires recursion. Recursion is when a sub or function calls itself. The TraverseAsm sub does most of the work in this program by traversing the occurrences within each level of the current assembly and when it encounters a subassembly it calls itself to traverse that subassembly. This continues until it has gone through every level of the assembly. The AssemblyTraversal sub just kicks off the traversal process."