top of page

Workflow for exchanging data between Revit & Grasshopper using Speckle

Objective 


In this tutorial, we will be discussing a workflow for exchanging data between an architectural model in Revit and a structural model in Grasshopper. The objective of this tutorial is giving an example of a collaborative workflow within multiple disciplines with a complex 3d model. The tutorial is based on the work that was delivered from Team 3 in MEGA 2022.


Index / Table of Contents 


A. Project Overview

B. Tutorial Steps

B1. Receive Data from Revit 

B2. Create Structural Model  

B3. Change Rhino Geometry into Revit Geometry  

B4. Send Model to Speckle Server 


A. Project Overview  


We start with an overview of the final render model. In this model the façade and structure are combined in Rhino3D, the plinth is also a separate model.



The architectural models are made in Revit and are separated per tower to prevent the files being too heavy. Notice that each of the levels has been created in Revit already, this data will later be used in making the structural model.  



The levels data from Revit is then used in Grasshopper to set up the structural model. Whenever the architect adjusts the slab size or floor heights the data can be updated through Speckle and used to update the structural model. 



The 3D model can then be sent back to the speckle server as lines with data attached such as family type and Revit level. The downside of using Speckle with grasshopper is that all elements need to be well organized so they can be made into Revit objects. Since the structural designers Karamba3D model was not completely parametric, it took a lot of time to organize the data in the correct way. 



B. Tutorial Steps  


Step 1: Receive Data from Revit 


The first step in this workflow is to receive data from Revit. This data should include all of the levels in the architectural model along with their specified level heights and we can also receive the families and types to the Speckle server. (The data could also be shared in an excel file with the team, however the speckle module for excel is not fully developed yet).  



This information will be used to create the structural model and place the slab heights on the appropriate levels. One of the benefits of using this data directly from Revit is that if the architects make changes to the floor heights, the structural model will be updated automatically. (Note: the structural model in grasshopper has to be parametric.) 



Step 2: Create Structural Model 


Next, we will use a Galapagos genepool (this is just an easy way to display multiple variables of the same min and max values) to decide the height of the outriggers within the structural model. Having the outrigger height as a variable could leave some potential room for optimization of the structure. There are several parameters that need to be considered, some of which have already been decided, such as the base floor of the building, which is a rectangular curve, and the locations of the columns and core. 



The parameters that can be adjusted in the model are the column size, the core thickness, and the outrigger system. The outrigger system can be adjusted in a way that allows us to decide the number of trusses, as well as their orientation. The parameter 0 indicates a truss going to the left, the number 1 indicates a truss going to the right, and the number 2 indicates a cross, which is two thrusses combined. 



The reason for optimizing the outrigger system is to prevent using too many crosses and instead, use less material to make a stronger system with less material usage. The direction of the trusses could also be depended on the wind situation of the building. 



Step 3: Change Rhino Geometry into Revit Geometry 


After generating the structural model, the geometry needs to be changed into Revit geometry by using Speckle. The floor slabs in Grasshopper need to be organized and linked to their respective Revit levels. The same goes for the columns and thrusses.  



They can also be assigned a Revit family, which can be received from the architectural Revit model as well. Examples of this are the column or slab type. 



Step 4: Send Model to Speckle Server 


The final step in this workflow is to send the structural model, which includes the slabs, walls, columns, and beams, to the Speckle server with the Speckle send module.  



This model can then be viewed in Speckle by the whole team.  



The architect can then load the geometry into Revit and use it for their model.  



By using this workflow, data can be exchanged between the architect and structural engineer, making sure that both disciplines are up-to-date with the latest changes to the model. This process will save time and increase the accuracy of the project, resulting in a more integrated design.

bottom of page