I am trying to do something I thought would be rather simple in Houdini but I can't figure out what I am doing wrong.
I have a test geometry HDA that has a single float parameter 'height'. Inside the HDA it is just a box with the Y size set to 'ch("../height")'. When I move the float slider on my HDA the box height changes. Great so far.
I want to instance a bunch of boxes on points and drive the height of each instance by a height attribute on each point.
I created a grid of points, then created an attribute called height, then I randomize it's value. I can visualize the height on each point and see that there are unique values for each point.
I connect my grid of points and HDA to a copy to points node but all my HDA instances are the same height. I can't figure out how to get my height parameter on my HDA to be driven by my height attribute on points. I feel like I am missing some very basic detail. Any help would be appreciated.
I found the solution. The only default attributes like position, rotation, or scale can be copied with the copy to points node. This does not work with custom attributes like my height attribute.
It appears that this used to be handled by the Copy with Stamp node but the modern solution is to use a foreach loop:
Tanto You can randomize the y component of the scale vector attribute. You won't need an hda, custom parameter or a for each loop.
Thanks. To achieve this exact result that would work. This was more about finding a solution for driving any HDA parameter by any custom attribute. I just made a very simple example to try to figure out what step I was missing. It looks to me that the for each loop is the best way to do this for more complicated setups in the future.