Is it possible to reuse TreeGridView engine to display custom data as Tree?

Hi Community,

I have a custom SQL query that gets assembly information from another data source. In this data source, all relationships and related items are available in one table. Additional columns help to indicate, on which level / hierarchy position the affected Parts are used. 
Example:

Level       Hierarchy          Name                           Part ID in Aras
0              1                       Toppart                                 12345678901234567790
1              1.1                       Sub-Assy1                           12345678901234567791
2              1.1.1                             Component 1                 12345678901234567792
2              1.1.2                             Component 2                 12345678901234567793
1              1.2                       Sub-Assy2                              12345678901234567794
2              1.2.1                             Component 3                 12345678901234567795
2              1.2.2                             Component 4                 12345678901234567796
1              1.3                       Cable                                      12345678901234567797
....


The table itself already contains all information to render the data as tree. I want to display the data as similar Tree as seen in TreeGridViews or the Structure browser. Due to the amount of data, I would be helpful to have expand and collapse buttons. The amount of levels can vary from 1 to 20. I also want to be able to add additional custom content to the shown tree structure, e.g. custom buttons or checkboxes.
Of course it´s possible to build these kind of tree with a lot of custom js function and css. But I would love if it would be possible to reuse existing Innovator features for this use case.

Does anyone now, if it is possible to call the TreeGridView engine with full custom data? Due to the data structure, I don´t think it is not possible to use a regular QueryDefinition. Or do you have another tips, to build expanding/collapsing trees?

I already have seen, that I can reuse the TreeGridView styles to render my data. But I haven´t found the functions yet, that are used to collapse/expand the tree itself.

I am happy for any input and ideas!
Angela