Saed Osman

  • Using the given assignment instructions, the model was constructed in Dynamo. Initially, a rectangular grid was formed by specifying the number of points and step size and configuring the cross-product lacing. Next, a point was generated to denote the pebble's location in the pond. The "Geometry.DistanceTo" method was utilized to determine the distance between the pebble and every point on the grid. This distance was then fed into a sine wave function, but since the output was relatively small, an amplification factor was defined to increase it. To factor in the effect of diminishing height as one moves away from the pebble location, the amplified sine value was divided by a non-zero distance. To ensure all cylinders have positive heights, a base offset was included to shift the entire baseline up. The top point of each cylinder was determined, and then the "Cylinder.ByPointsRadius" method was used to create the cylinder object. A "cylinder" mass family was imported into the Revit model, and its corresponding family type was chosen in Dynamo. Finally, "FamilyInstance.ByPoint" was applied to position an instance at each grid point, and "Element.SetParameterByName" was employed to define the radius and height for each cylinder element. Upon executing the script in Dynamo, the cylinder elements were generated in the Revit Model. With the introduction of a second pebble, the wave values from each attractor point were added together, resulting in a larger wave at certain points (where two positive values were added) and nullifying each other at other points (where positive and negative values were combined). The above image is a visual representation of this phenomenon.