- A screenshot of your model geometry

This is a screenshot of the model geometry in Dynamo with only one pebble.

This is a screenshot of the model geometry in Revit with only one pebble. The cylinder on the top right is the element I created with parameters.

This is the model geometry in Dynamo with two pebbles. The second one has a similar amplitude but more waves. Both amplitudes and numbers of waves can be adjusted.

This is the model geometry in Revit that has two pebbles.

These are the codes I wrote for all six steps.

- A few sentences describing your modeling approach

I’m doing 4 units here, so I have a total of 6 steps. However, I found it hard to distinguish between steps 3 and 5 since they are both about changing the heights of the cylinders, so I put most codes in step 5.

For the cylinders, I used curve extrusion instead of cylinders. In this way, I do not need to define endpoints. I only need to define the heights of the cylinders instead.

In the first step, I used an integer slider to define the size of the square grid. In step 2, there are two sliders to define the x and y coordinates of the first pebble. In the third step, I only left a code box for height. It is connected to both Dynamo and Revit model geometries. If I need to change the height value, I only need to connect it with other values; both model geometries will change at the same time.

In step 4, I added the Revit element as a family type. Two parameters of the cylinder are its radius and height. The radius is basically fixed. The height is changeable and will be discussed further in Step 5.

In step 5, I defined the distances of the pebble to other points, the amplitude of the waves, and the number of waves. Amplitude and number could both be changed with integer sliders. To simulate the diminishing ripples, I created a sine formula in a code box. When I adjusted all the sliders to test the models, I realized sometimes negative values of cylinder heights appeared and errors occurred in the Revit model, so I added a base value of 3 to avoid this situation.

For the last step, I created a second pebble. The workflows for this one are basically the same as the first one. The integer sliders could be used to adjust x and y coordinates and the number and amplitude of waves. I used the sine formula again. Finally, I added the height changes of the first and second pebbles together. This is the new height at which I can link to the code box in Step 3. If I want to change the Dynamo and Revit models back to the one-pebble situation, I simply link the height in Step 5 to Step 3.