A two-layer data tree lost the data structure after been replicated through a grid

I want to create a solar panel array in the following data tree structure. There is only one item/element in the bottom level branch.

I can create a two branch layer data tree to represent a bifacial PV panel, i.e. branch level C in the diagram above has two items, representing both faces, and the branch level D has 72 items, representing the solar cells on one side of a panel:

I want to replicate this bifacial PV panel to the points in a grid by moving it according to 8 vectors:

However, the data tree structure of the replicated pv array becomes 144 branches, each with 8 elements, rather than with 8 branches, each with two layer of branches. In other words, what I want to get is a data tree like {B; C; D}, in which level B has 8 branches, representing the 8 panels; level C has 2 branches, representing two sides of a panel; and level C has 72 items, representing the 72 cells on each side of a panel.


May I ask how shall I manipulate the data tree to achieve this?


pv_array_v001.gh (28.5 KB)

what’s your ultimate goal here? Are you looking to have a completely parametric system to adjust? or are these modules coming from a real world part, aren’t going to change much?

The reason i ask is i would probably do this with blocks & can put something together if you thinks its worthwhile.

Thanks, Rickson. I’ll try to use block to do this later.

Yes, I’d like to be able to adjust the pv array parametrically, such as number clusters, number of panel per cluster, number of cells in a pv panel (usually 60 or 72), and be able to adjust the titling angle of a cluster of panels, etc.

The reason that to keep a hierarchical data structure of the model is to be able to aggregate some simulation results, such as surface irradiance, by cell, panel, side of panel, cluster and array, etc.

You can do this with blocks as well, using attributes. I’ll put something together over the next day or so.