Model
![image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F006e7b6f-07aa-459c-839a-a086cc921ff1%2FScreen_Shot_2023-04-13_at_21.09.03.png?id=de374599-87da-4892-b3d9-3700f185db23&table=block)
![image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F4324c51a-d6bb-456e-8930-2a50bc0b813d%2FScreen_Shot_2023-04-13_at_21.09.28.png?id=13ceea78-b364-48ba-8bb0-b2ee7c92d3c6&table=block)
Design Approach
I divided my design into different steps, so it was easier to follow the procedure and change parameters. I started by creating a grid of target points where the cylinders should be located. I used sliders to easily change a number of grid points.
![image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F66c74bb6-75c5-446d-8b64-b243a45fc793%2FScreen_Shot_2023-04-13_at_21.13.56.png?id=52e8efd5-38c2-4d4a-9766-94523215b34f&table=block)
My next step was creating an attractor point that can be controlled by number sliders representing X,Y and Z directions of the point.
![image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F191e7a7e-3262-4497-8f2f-d760e2d27c1e%2FScreen_Shot_2023-04-13_at_21.17.43.png?id=bb17611f-440b-4b20-bd1f-b2faba15d8bc&table=block)
Then I calculated the distance between an attractor point and grid points, multiplied it by the number of waves that can be controlled by the number slider, and used it as an input for the sin function. The height of the cylinders was then calculated as base offset+(sin*amplification factor). The result was giving me a sin shape, where the amplification factor and base offset can be controlled by number sliders.
![image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F9bdca4df-0c3f-4b90-9d90-1b3f72d53f24%2FScreen_Shot_2023-04-13_at_21.29.06.png?id=9be62501-7e17-47b8-bf26-c2336da1a043&table=block)
![image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Ffa869d4b-6001-4b56-84f0-b2ede62c1e1c%2FScreen_Shot_2023-04-13_at_21.29.40.png?id=d4a94cfa-64aa-412f-ba0a-c48de75a2158&table=block)
My next step was achieving a diminishing effect. I found a formula for a diminishing sin wave as y = A sin(ωt + Φ)e^(-at). Using a code block, I wrote e^(-0.2*distance) and multiplied this result by the sin values I got in the previous step. I forgot to take a screenshot of this block, but here’s a picture of one of the attempts of playing with a shape using this new diminishing sin wave function.
![image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Ff6b3f491-dd99-4243-804a-0de7d13ffdeb%2FScreen_Shot_2023-04-13_at_21.36.10.png?id=ffd7590f-4207-4b47-b295-71729d610243&table=block)
Finally, I created a block responsible for creating Revit cylinders. I downloaded a cylinder family from the Revit library and used a “Family instance by point” function to match the Dynamo environment in Revit. Cylinders’ radius can be controlled by the code block, while the height is controlled by the diminishing wave function explained above. After some time of playing with a number of grid points, number of waves, and amplification factor (and crushing Revit a couple of times) I got the shape I liked the most.
![image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fbd2fe502-9cb2-4d67-8a02-b99e51728f51%2FScreen_Shot_2023-04-13_at_21.45.02.png?id=5b4420ef-881a-42fd-a25f-44d2d50c4d71&table=block)