Community
Inventor Programming - iLogic, Macros, AddIns & Apprentice
Inventor iLogic, Macros, AddIns & Apprentice Forum. Share your knowledge, ask questions, and explore popular Inventor topics related to programming, creating add-ins, macros, working with the API or creating iLogic tools.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

cannot add browser node to empty browser folder!

2 REPLIES 2
Reply
Message 1 of 3
truscher
1397 Views, 2 Replies

cannot add browser node to empty browser folder!

I am trying to use the Browsernode.addchild method to add an occurence to an empty browser folder. The code fails at this point and I gett an error pointing to the line "Call oTargetNode.AddChild(oSourceNodeDef)". I can add the occurence with the browserpanes.Reorder method without issue if the folder is not empty. The code is pasted Below. Any help on this would be appreciated, as I am stumped. The code is both pasted below and attached Thanks in advance!

 

Code:

 

 

Format:HTML Format Version:1.0 StartHTML:     165 EndHTML:   29338 StartFragment:     314 EndFragment:   29306 StartSelection:     314 EndSelection:     314
SyntaxEditor Code Snippet

DimPrcsTpAsStringPrcsTp=InputListBox("Process Type?", MultiValue.List("ProcessType"), Parameter("ProcessType"), Title :="Select Process Type", ListName :="Process Type")DimRtgNameAsStringRtgName=PrcsTp&"-"&Parameter("NoRtgsInc")+1MessageBox.Show(RtgName, "Title",MessageBoxButtons.OKCancel)DimoAsmAsAssemblyDocument=ThisDoc.DocumentDimoMatrixAsMatrix=ThisApplication.TransientGeometry.CreateMatrixDimoOccAsComponentOccurrenceoOcc=oAsm.ComponentDefinition.Occurrences.AddVirtual(RtgName, oMatrix)DimoCompDefVirtualAsVirtualComponentDefinition=oOcc.Definition'CREATE AND SET THE IPROPDimoPropertySetAsPropertySet=oCompDefVirtual.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}")oProperty=oPropertySet.Add(PrcsTp, "ProcessType")oProperty=oPropertySet.Add("", "SortOrder")oProperty=oPropertySet.Add("1", "BaanOrder")oProperty=oPropertySet.Add("", "Text1")oProperty=oPropertySet.Add("", "Text2")oProperty=oPropertySet.Add("", "Text3")oProperty=oPropertySet.Add("", "Text4")oProperty=oPropertySet.Add("", "Date1")oProperty=oPropertySet.Add("", "Date2")oProperty=oPropertySet.Add("", "Date4")oProperty=oPropertySet.Add("", "Notes")Parameter("NoRtgsInc")=Parameter("NoRtgsInc")+1DimoPaneAsBrowserPaneoPane=oAsm.BrowserPanes.Item("Model")DimoSourceNodeAsBrowserNodeoSourceNode=oPane.GetBrowserNodeFromObject(oOcc)DimoSourceNodeDefAsBrowserNodeDefinitionoSourceNodeDef=oSourceNode.BrowserNodeDefinition()DimoTopNodeAsBrowserNodeoTopNode=oPane.TopNode()DimoTopNodeOccAsBrowserFoldersEnumeratoroTopNodeOcc=oTopNode.BrowserFoldersDimoRTGNodeAsBrowserNodesEnumeratorDimoTargetNodeAsBrowserNodeDimoChildNodeAsBrowserNodeDimiAsLongDimiiAsLongFori=oTopNodeOcc.CountTo1Step-1IfoTopNodeOcc.Item(i).Name()="Routings"ThenoTargetNode=oTopNodeOcc.Item(i).BrowserNodeoRTGNode=oTargetNode.BrowserNodesii=oRTGNode.countIfii=0ThenCalloTargetNode.AddChild(oSourceNodeDef)'Call oPane.Reorder (oChildNode, False, oSourceNode)EndIfoChildNode=oRTGNode.Item(ii)CalloPane.Reorder(oChildNode, False, oSourceNode)EndIfNext

2 REPLIES 2
Message 2 of 3
adam.nagy
in reply to: truscher

Hi,

 

It seems to me that you would need to use BrowserFolder.Add instead of BrowserFolder.BrowserNode.AddChild

That worked fine for me from VBA:

Sub TestBrowserPane()

' Make sure you have a folder in the browser under the root node
' and then select one of the component occurrences in the model

Dim oAsm As AssemblyDocument
Set oAsm = ThisApplication.ActiveDocument

Dim oPane As BrowserPane
Set oPane = oAsm.BrowserPanes.Item("Model")

Dim oOcc As ComponentOccurrence
Set oOcc = oAsm.SelectSet(1)

Dim oSourceNode As BrowserNode
Set oSourceNode = oPane.GetBrowserNodeFromObject(oOcc)
Dim oSourceNodeDef As BrowserNodeDefinition
Set oSourceNodeDef = oSourceNode.BrowserNodeDefinition()

Dim oTopNode As BrowserNode
Set oTopNode = oPane.TopNode()
Dim oTopNodeOcc As BrowserFoldersEnumerator
Set oTopNodeOcc = oTopNode.BrowserFolders

Call oTopNodeOcc(1).Add(oSourceNode)

End Sub

I hope this helps.

 

Cheers,



Adam Nagy
Autodesk Platform Services
Message 3 of 3
freudeind
in reply to: adam.nagy

 

Hi, I need a little assitance with adding a broswer node to an existing folder. The programming help content does not address this.

 

The error I'm receiving:

Error on Line 24 : Reference to a non-shared member requires an object reference.

 

Sub Main()

Dim oAsm As AssemblyDocument
oAsm = ThisApplication.ActiveDocument

Dim oPane As BrowserPane
oPane = oAsm.BrowserPanes.Item("Model")

Dim oOcc As ComponentOccurrence
oOcc = Component.InventorComponent("Source Occurence")
Dim oOcc1 As ComponentOccurrence
oOcc1 = Component.InventorComponent("Destination Occurence")

Dim oSourceNode As BrowserNode
oSourceNode = oPane.GetBrowserNodeFromObject(oOcc)
Dim oSourceNodeDef As BrowserNodeDefinition
oSourceNodeDef = oSourceNode.BrowserNodeDefinition()

Dim oDestNode As BrowserNode
oDestNode = oPane.GetBrowserNodeFromObject(oOcc1)
Dim oDestNodeDef As BrowserNodeDefinition
oDestNodeDef = oDestNode.BrowserNodeDefinition()

Call BrowserFolder.Add(oSourceNode,oDestNode)

End Sub

 

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report