Matwowowowo
Hello everyone!
I'm Mathis, a French 3D student with a strong interest in Houdini.
For a personal project, I'm trying to create a procedural house-generation system in Houdini. To get started, I followed Simon Houdini's tutorial on recreating house from Overwatch 2 (link to the video: https://youtu.be/uIe97023sDk?si=kcOB4o1TUgZ7P-jD).
But I want to go further by making each generated house unique, with differents arrangements for its components (windows, doors, etc.).
However, i'm stuck at this part and don't really know how i can handle it (for this system).
If you have any hints or tips it will be a pleasure.
Thanks for reading this post 
#1 Create a seed parameter on the asset.
#2 In scatter_assets/ chain / seed:
set the parameter value to:
detail(-1,"iteration",0)+ch("../../seed")
seed being a parameter on the Top Level Asset
# 2
Then scatter the assets in a for loop, driving 'seed' like this (see screen capture)
point(-1,0,seed,0)
That seed being, this time, the randomized attribute on the grid on which you scatter the assets.
That way, you can pass down data that are on the grid to individual nodes in the asset, at which point there shouldn't be any limit to what you can do.
Say you want to randomize the sizes of the buildings:
The first floor X dimension is driven by:
ch(strcat("../x_",detail(-1, "iteration",0)+1))
Then you can adjust this to pick up for example, an attribute on the grid:
You could also drop the MultiParms for the Floors, and generate all the data from just a few attributes, because as of now, this is really not parametric at all:
floorCount
FirstFloorDims
Height
Decay Style (how to compute the other floor dimensions from the First Floor dimensions)
Decay style example: polyexpand(inside) + jitter in XZ plane; this gives a slightly chaotic growth effect
and so on, and compute what you need in the asset.
It's better to have few parameters at the top level, and complex procedures inside between which you can switch independently.
This way, it stays procedural, even if you only need 3 floors of the same size.