When creating Piled wall systems within Revit you either have to create a structural wall and then 2D detail this in plan to look like a piled wall system or more commonly place each male and female pile and at best, use the array or copy commands. Although this is not too complex for linear piling it can get quite time consuming when curves and turns are encountered within the path.
Link to video: https://youtu.be/EWsMnTbkIWE
Dynamo does provide a very neat solution to this problem and could also be used for sheet piling as well as secant and contiguous systems. In this example I have created a chain of model lines which represents the path of the piling in plan. I then project these lines onto the surface which gives the correct Z levels. The path is then divided into segments and each coordinate pair is then extracted from this list. Finally an adaptive component is placed at each set of coordinates.
This tutorial starts with a quick look at the anatomy of an adaptive component. Adaptive components are very useful when you need to control the placement of elements along a path and have the element rotate to stay aligned. A good example of this is sheet piling.
The Adaptive Sheet Pile is basically a standard foundation family that is nested into an adaptive component template. The below image shows the nested family and the adaptive points that control the placement of the pile.
The first stage is to create a path for you piling layout, in this example I have done this with Model lines. Start Dynamo and then create a new workspace.
The first section of the dynamo graph will allow the user to create a selection of model lines. The Element Curves node will get all the curves/lines within the selections. The list is then flattened and the individual curves/lines are joined into a single poly curve. The last node reports on the total curve length.
The next stage is to get a selection of your topography and then convert this into a poly surface. The node I have used below if the Python implementation which is much faster than the original conversion tool. (This is found in the Spring Nodes package).
You can then take the surface and the joined curve from the top example and then project this onto the poly surface (Your Topograpghy). Note that the Vector.ZAxis simply projects down the Z axis.
The graph should now look similar to the below image.
We now take the new poly curve and divide this into a series of points. In my case the sheet pile in 900mm from point to point. I want to have a start and end point for each pile so I am simply going to divide this by 2.
I have now created a Code Block to divide the curve length into the half distance of my sheet pile.
This will of course create a real number (65.4950), what we need is to round this value down to the nearest integer (65). The output of this is then used to divide the curve into the required number of points. The output of the Points node now contains all the coordinates.
These coordinates need to be split into pairs. The List.Chop will then create pairs but if there is a single coordinate left then the Adaptive Component will fail to be placed. The filter looks at the length of the sub lists and then only gets the lists that have more than one set of coordinates.
This is more of a high level overview of the process and the Dynamo script but I will do a video showing and explaining each stage.