Scale Box Morph Components Based on an attractor Curve

I am populating a site with buildings which have a surface texture made of box morph boxes. I’d like to be able to scale the size of the boxes from the box morph command so that they are smaller or larger depending on their distance from the site boundary. Or, I’d like to be able to scale the box morph units based on the size of the building footprint: for example, if the building footprint is smaller, the box morph units will be smaller and if the footprint is bigger, the box morph units are bigger.

Scale them like you would with an attractor

I have tried, even using that code, but nothing happened :frowning:

that is because Twisted Boxes can’t transform (scale included) as they are not a considered geometry type. You can use my Pufferfish plug-in which has a bunch of components for twisted boxes including a transform for twisted boxes which uses the X output of all transform components as its input.


tBoxScale.gh (6.6 KB)

The boxes aren’t twisted, they are just a simple box component. Here’s a screen shot of the code I am working with.

Screenshot wont help, upload file.

You are using twisted boxes. The output of Surface Box (SBox) is twisted boxes. Are those what you wish to scale?

Sample Upload to Forum.gh (76.2 KB)
All you need to input from Rhino is one curve for the site boundary

Oh! Ok, I guess yah those are why I am trying to scale. Seems silly that I have to download a new plugin… There should be an easy way to do this within grasshopper because it seems like a very basic function. But of course if that’s the only way I guess I will need to download Pufferfish! I have no familiarity with the Pufferfish components so I would appreciate any help

I’ve made Pufferfish very straight forward. If you are familiar with Gh it will be easy plus I have a ton of example files there.

You can do it without Pufferfish by pluging the twisted boxes into a brep parameter component and then scaling the breps. The issue is that will make the definition much slower and also you will need to remake them as twisted boxes after to morph into them. Pufferfish just makes it easier / lighter.

I’ve downloaded Pufferfish and am able to scale the box morph objects, but not in relation to the curve which I would like to be the attractor. Do I need to use more pufferfish components to be able to do that? Thanks!

No, attractor scaling is one of the most basic grasshopper task (and most common, you will find tons of examples just searching “attractor” on the forum). I’ve sent you a link of one example how to do so via curve, here is that same example again as a file. The green group is all you need for a simple curve attractor.

tBoxCrvAttract.gh (11.1 KB)

Thank you so much! I was going about it a much more complicated way. Thanks thanks thanks!