Original approach was to control everything with few sliders and semi-automate this rig as much as possible. To do that, I used sliders, that are controlling hexagon radius, gap between each shape and sliders that calculate Apothem of each hexagon.
Because we will be dealing with 100+ layers, I want to apply all the necessary expressions to a few layers first. Then duplicate them and offset them in layer stack (drag them up or down). Each shape, should automatically “fall into position” with help of expressions. By using a lot of index+1 expressions, this will help us automate this step easily.
By linking all the necessary controllers to hexagon properties first, such as radius, opacity, colour, before duplication, we can ensure that every hexagon will refer to those controllers, when we duplicate it later on.
You can think of it in this way:
Create Shape > Link All Properties To Null Sliders > Duplicate x100 (everything still points to same sliders) > Control it all from one place