Hi @NachoShaw,
I attached to this question a piece of code to print out the ModelBrowserPane tree considering occurrences and user's folders.
You should do your stuff instead of printing the name of the node and add something like these code's lines in the PrintModelNodeNameRec function:
If browserNode.NativeObject.Type = ObjectTypeEnum.kBrowserFolderObject AndAlso
browserNode.NativeObject.Name <> "MyFolderName" Then
Return
End If
CattabianiI wrote:
Here the iLogic code to print the ModelBrowserPane tree as in the image on the right:
SyntaxEditor Code Snippet
Class TraverseBrowserPaneRule
Const printedTreeFfn As String = "c:\temp\modelBrowser.txt"
Sub Main()
Dim modelBrowserPane As BrowserPane = ThisApplication.ActiveEditDocument.BrowserPanes.Item("AmBrowserArrangement")
Dim topNode As BrowserNode = modelBrowserPane.TopNode
Using sw As IO.StreamWriter = IO.File.CreateText(printedTreeFfn)
sw.WriteLine(ThisApplication.ActiveEditDocument.DisplayName )
End Using
PrintModelNodeNameRec(topNode, 0)
End Sub
Sub PrintModelNodeNameRec(browserNode As BrowserNode, level As Integer)
Dim name As String
If browserNode.NativeObject IsNot Nothing AndAlso browserNode.NativeObject.Type <> ObjectTypeEnum.kBrowserFolderObject _
AndAlso browserNode.NativeObject.Type <> ObjectTypeEnum.kComponentOccurrenceObject _
AndAlso browserNode.NativeObject.Type <> ObjectTypeEnum.kComponentOccurrenceProxyObject _
AndAlso browserNode.NativeObject.Type <> ObjectTypeEnum.kAssemblyComponentDefinitionObject Then
Return
End If
Try
name = browserNode.NativeObject.Name
Catch ex As Exception
'name = browserNode.FullPath
End Try
If Not String.IsNullOrEmpty(name) Then
Using sw As IO.StreamWriter = IO.File.AppendText(printedTreeFfn)
sw.WriteLine(Space(level*2) + name)
End Using
End If
For Each node As BrowserNode In browserNode.BrowserNodes
PrintModelNodeNameRec(node, level + 1)
Next
Return
End Sub
End Class