Setting cell temperatures for a 3D HexLattice with nested universes

I’m building a model of a core plus upper and lower reflectors. Currently, I have a geometry composed of three cells, one for each of the aforementioned regions. Each cell contains a 3D HexLattice with multiple levels: 2 in lower reflector, 8 in core, 2 in upper reflector. Each HexLattice has three rings (including the central compact).

My goal is to assign a T(z), i.e. one temperature per axial layer. What is the most efficient way to do this? I know that all instances of a Distribcells can be set at once, but my issue is that the HexLattice uses the same universe for each axial layer of my lattice. Each layer needs a different temperature. Additionally, my fuel cells are filled with a TRISO lattice (both for fuel and burnable B4C absorbers), though the TRISO cells can all be set by setting the the cell temp containing them, iirc.

So far I’ve been trying to use the geometry.determine_paths() to help, but there’s a very large number of paths printed. Printing core_cell.get_all_universes() is also quite large due to the long list of TRISO cells contained within the fuel universes.

Does anyone have any advice on this? I can share my model script if that would help. I think if I can get all the cells associated with each axial layer (maybe into a dictionary with the key as the height z and the value all the cells?), I can set them all to T(z).