Creating a perforated wall from a pattern in dynamo

Hi all!! ,

I am trying to use dynamo to make a wall with holes in it in the pattern of an image however i got a bit stuck, I think i have the script right but Im having trouble getting the holes to be a smaller size where they fit on a 24’ x 21’ wall. they are currently overlapping because they are too big see the snip below. I also want the size to vary. I have the number that adjust the size set to 1 and the max set to 15 but they are still just too big. it wont let me upload the script here however if you go to this link ive uploaded it there Creating a perforated wall from a pattern in dynamo - Autodesk Community

If you want to ensure there’s never any overlap then your maximum diameter would have to be equal to the (smallest) spacing of points. If you want to ensure that you maintain a small gap between perforations, then you’ll need to subtract that from the maximum as well.

You could still allow diameters larger than the spacing as long as adjacent radii don’t add up to the maximum allowable distance (minimum spacing). That can be done, but requires more consideration and individual evaluation of consecutive circles.

I’m not sure how to do that, I have the smallest circle size set at the lowest number 1 and the largest set at 1.75, I played around with the spacing and I still couldn’t get the diameters any smaller. would you mind explaining further

You’ll need to post a new screenshot. Make sure you’re zoomed in enough to read all the node information (you don’t have to fit everything on the screen), pin all node preview bubbles, and then use Export as Image to get the full context of your graph.

You can set your sizes to any value you want. I’m not sure what you’re doing at the moment, but there’s no scenario where 1 is the smallest value you can use. Assuming your spacing is larger than that value, you just need to use the same value for the maximum.

let me know if these work

You need to follow the instructions I suggested for us to be able to help. If you look at your screenshots above, the node titles aren’t visible. This is because you’re zoomed out too far. Without pinning the node preview bubbles we also can’t see what information you’re working with our how it’s being handled by the nodes. We’re essentially blind to what’s happening.

sorry I am still new to dynamo i think i see what you are talking about I didnt realize the names werent showing

1 Like

I see you’re using pixel brightness to generate the diameter. That’s going to give you a brightness range of 0-1 (black to white) so you’ll need to map those values to the minimum and maximum opening size. Like I stated before, that is going to be your minimum allowable diameter (0 or a predetermined size) and the minimum (vertical) spacing of your points to ensure no overlap. Start there and then decide whether you need to account for larger openings based on adjacent sizing.

Your spacing is currently defined by UV values. You’ll need to convert those to actual spacing distances by adjusting those values based on the surface width and height.

1 Like

okay thank you! i will give that a try! is there a better way then using the pixel brightness that you would suggest

if I’m understanding you right i changed the min to 0 but when i make them 0 it still gives me fairly large openings maybe around a foot wide but i would like for them to be more around maybe an inch wide.

You need to show us what changes you’ve made and what’s happening. If you set the minimum to 0 then it should be 0 for the smallest opening. The largest opening will still be based on the maximum value.

You also probably don’t want to use RemapRange. It’s going to map the min and max to the smallest and largest values in the sublist. Which means your values are going to be relative to each grouping of openings and not the entire wall. You’ll want to just mathematically remap those values to the known min and max. Since your brightness is already scaled to 0-1 (and your smallest opening will be 0), you just have to multiply the brightness by a single factor (your maximum allowable diameter).

I think i was able to get it thank you! i just cant figure out how to “bake” the item into the Revit model it shows in there but when i exit out of dynamo it disappears. Im used to grasshopper where you can just bake the object

Rhino is dealing with geometry, so you can just “bake” the Grasshopper geometry to Rhino geometry. In Revit, you’re dealing with elements of varying categories and creation methods. You can create “dummy” geometry in Revit as a mass or DirectShape, but typically you’d want to model the object as the correct element so that Revit can deal with it as such. It all depends on how you want to interact with the object though.

For your current attempt, you’ll have to provide a family template path for the new family to use.

1 Like

i also tried the direct shape by geometry but that didn’t import either, is one better than the other?

Not necessarily. It just depends on what you need. Your first question needs to be “Does this wall need to be represented and interacted with as a Revit Wall Element or can it just be a dummy representation of a wall?” If you need an actual Wall Element in Revit then neither option is going to get you there.

oh, I would like it to be an actual wall element if possible, What would be the best option for this?

I Tried wall by face but that didn’t work either I feel like im so close yet so far lol

A common way to achieve this is a conceptual mass with a divided surface and curtain panel family.
Check out this tutorial for an example Revit Snippet: Create Adaptive Curtain Wall with Multiple Attractors
Then drive the radius on each panel instance with Dynamo and import into your project. I’ve added a panel family to get you started. Be very careful about the number of panels - Revit can be slowed down very quickly once the number goes over a few hundred. You could do it with a circle instead of a void form if you don’t require real perforations.


Holey_panel.rfa (392 KB)

4 Likes