Secant and Contiguous Piled Walls – A Revit Tutorial

Piled wall systems can be challenging to model in Revit, especially when the project stage goes beyond a concept into detailed design. This tutorial will focus on the use of Revit to manually model and add the sequencing data to the piled walls.

Of course, much of this process can be automated with Dynamo which may be a topic for a future tutorial but, for now, lets focus on the process of creating families and piled walls. The below image shows a typical output in a plan with pile construction sequencing and the hidden detail with a capping beam as well as the 3D model.

This tutorial will focus on two primary parts:

  • Revit family creation
    • The actual development of the Revit family and types to support the modelling and detailing.
  • Creation of the Secant Piled wall model
    • The modelling of the piled wall system and the attribution of relevant data.

Revit Family Creation

Although the UK content library includes a series of pile caps and single piles, these are all based on a steel tube. For this reason, we will create our own pile family and add two types, one for the primary and another for the secondary pile.

Just for a little background, the primary pile is often cast from plain concrete and unreinforced. These are constructed first. The secondary piles are then ‘cut’ into the primary piles in an overlapping pattern with a higher grade of concrete and reinforcement. The primary piles are shown in the above image in white and the secondary piles are shaded in grey.

We will start by creating a new Structural Foundation family from the Metric Structural Foundation.rft template.

On the File Tab, select New – Family. In the New Family Select Template file pick the Metric Structural Foundation Template file.

On the Create tab, select the Extrusion tool, and sketch a circle as shown below. Add a diameter dimension as shown below.

Label the diameter dimension with a parameter, remember that if you want to tag the diameter you will create a shared parameter. In this example we will rely on scheduling and tagging the Type name.

Complete the extrusion and then open a front elevation view. To control the length of the pile, create a reference plane and add a label to the dimension as shown below. This is created as an instance parameter.

We will now create two family types, one for the primary (soft) pile and one for the secondary (hard) pile. Each of these family types will have a different grade of concrete which allows one pile to ‘cut’ another.

To begin, we will first add a material parameter to the extrusion. Select the extrusion and in the Properties Palette, associate the Material to the Structural Material as shown below.

In the Family Types dialog, create two new types as shown below. You can configure your concrete materials to display the primary and secondary piles as required.

When the families are used in Revit, the piles will automatically join to one another and, as they are different materials, the piles will be cut. If the cutting order is wrong you can switch the join order.

Anyway, I may create another tutorial to automate this process using Dynamo for those that are interested.

Hope that helps,



Share Autodesk Civil 3D surfaces with Revit via Autodesk Docs

In previous blog posts I have looked at a couple of ways of using Civil 3D surfaces in Revit projects, most of these processes do not use a dynamic link between the Civil 3D TIN surface and Revit. A couple of years ago a new workflow was made available by Autodesk to use BIM360 to host a Civil 3D surface. The main issue with this workflow was that most did not have access to BIM360.

With the inclusion of Autodesk Docs within the AEC Collection, many of you will now find that this workflow is a realistic proposition, especially when you need to ensure coordination between groundworks and structural elements such as foundations.

Let’s first take a look at the software requirements to use this workflow. You will need the following installed on both the Revit and Civil 3D PCs:

  • Autodesk Desktop Connector.

You will also need access to Autodesk Docs, of course, if you are collaborating within your own companies then you can create a new Autodesk Docs project just for this purpose. The desktop connector simply connects integrates Autodesk Docs into your standard windows explorer which makes it very simple to navigate and use. In the below image you can see my Autodesk Docs folder below. The folders will appear as the image shown on the right. These are the folders within Autodesk Docs.

Autodesk Civil 3D Process

In your Civil 3D model, mark the location of the Revit project base point with a circle. It is also useful to place a label at the origin, so you have a physical readout of the coordinates. On the Annotate Ribbon click the Add Labels tool.

In the Add Labels dialog, configure the feature as Surface, the label type as spot elevation and ensure that you are displaying the elevation and coordinates as shown below.

Your label should look similar to the image shown below.

When you have a civil 3D model with one or more surfaces, you can then publish this to your Autodesk Docs project. On the Collaborate ribbon, select the Publish Surfaces command.

You will then see the Publish Surfaces dialog. The easiest thing to do here is use the Pick from drawing button on the bottom left of the dialog.

You then need to specify the output file. This will allow you to select the relevant project and folder within Autodesk Docs.

You will then see the following dialog box. This is just ensuring that the correct surface style is in use. Click the ‘Publish the surface with the updated style’ option.

Your surfaces are now being published to Autodesk Docs.

Autodesk Docs

You can view the progress of your upload in Autodesk Docs. The file will take a few minutes to upload and process depending on the number of surfaces published and the size. The image below shows that the Civil 3D shared surface is still processing. You will need to wait until the processing is complete before using this surface in Revit.

Autodesk Revit

While the file is uploading to Autodesk Docs you can begin to prepare the Revit model. The first thing to get setup is the coordinate system. Remember that the coordinates and units in Civil 3D are likely to be in meters, your Revit model is probably in mm (assuming you are from the UK). The units are automatically resolved when you link a Civil 3D surface. However, you need to ensure that your project base point has the coordinates set in mm.

Also ensure that the topography is visible and  the view range is set to enable you to view the topography.

You are then ready to link the topography from Civil 3D. On the Insert ribbon, click the Link Topography tool as shown below.

In the Link Topography dialog, browse to the relevant folder, you will then see the published Civil 3D surfaces if the upload has finished processing.

Once the surface is linked you will have a Revit topography element. You can control the materials and other aspects in the usual way. The manage links dialog will allow the reloading or removing of the surface.

In summary, the inclusion of Autodesk Docs in the AEC Collection brings this functionality to most users of Revit and really helps when you are required to have surfaces within the Revit model.

Hope this helps,

Revit/Dynamo/Python Tutorial – Auto join concrete elements

As many of you will appreciate, the joining of in-situ concrete elements is critical when modelling structures. This ensures that the volume of concrete is correct and makes the construction drawings legible. It is worth understanding how Revit reacts in a default situation when working with in-situ concrete members.

When working with in-situ concrete elements, Revit will automatically join the following elements as shown in the table below. This can be very useful and greatly increases efficiency when modelling.

The order in which elements join is also predetermined by the software. You will find that walls and floors are the primary elements, and these will take priority when joined to other structural elements.

The auto joining property is useful in some situations but can cause issues. For example, you may want the columns to take priority and have floors ‘cut’ around the column’s perimeter. Another situation may be that walls should be continuous and not broken by floors. In these situations, you can use switch join order.

Automating Joins with Dynamo

In the last few releases of Revit, Dynamo has some additional nodes which can help us when working with in-situ concrete. The nodes shown below are all found within Revit – Elements – Element menu.

As you can see, these are simple to use and just requires a selection list of the two element sets. Of course, the selection can be made automatically by collecting all elements of a certain category with a specific material type. In the example below, all structural foundations are selected, the structural material instance parameter is collected and filtered if it contains the string ‘In-Situ’.

However, there is no provision in Dynamo to switch the join order of elements. This is where we can use the power of the Revit API and Python to plug this gap.

The first step is to perform a search on Everything you can automate within Revit is listed on this webpage if it’s not here you cannot achieve the automation! You can then search for the method ‘switch join order’, the method is the code that performs this operation.

Before the Python node can interact with Revit you will need to copy and paste some boilerplate code. This can be located here:

These lines of code setup the various resources you will need to interact with Revit.

The below image shows the Python node. The lines of code shown with the blue border is the specific code that executes the switch join order method.

If the operation is changing elements within Revit, then you must perform a transaction. This is the first and last line within the blue box. The next two lines of code are getting lists of elements at IN[0] and IN[1]. Notice that the list is also unwrapped. Basically, this makes the actual Revit elements useable within Python.

The code then iterates through the nested list and finally executes the switch join order operation for each item in the list. You will notice that this line of code is from RevitAPIDocs.

Notice that as you start typing ‘Autodesk.Revit.DB.JoinGeometryUtils’, the relevant classes and methods are listed.

If you would like to see a step-by-step example of this, then feel free to watch my YouTube Tutorial. Be aware that you will need 25mins to watch this tutorial.

Revit 2022 rebar – Staggered laps

A very effective quick tip for creating staggered laps in rebar sets with Revit 2022. You can first create a standard rebar range using the new two-point placement method.

Next, select the rebar set and then use another new tool, Edit Bars. Most use cases show that you can move a bar to clear an obstruction, but you can also use this to create a staggered lap!

Select every other bar in the range and then use the move tool to set your stagger. If you require multiple values for the stagger, no problem. You can move each individual rebar wherever you like.

Here is the resulting rebar set.

You can then select two rebars from the set and then detail with a multi rebar annotation. If you add a comment or shared parameter, you can then recover this on the tag.

Hope that helps,