Rhino + Revit Interoperability Workflow Using Live Objects

RH-RVT_Workflow_Diagram-01

Like a honeycomb structure, an interoperability workflow weaves software together to make an efficient system. In this example, we’ll create a live floor element in Revit from a surface in Rhino.

Objectives

1. Read surface by layer name and sort by elevation in Grasshopper
2. Extract parameters (curves, level names, number of floors, and elevations) and send to Flux
3. Create a level and floor element in the Flow Tool
4. Merge level and floor element in Revit

RH+RVT_Interop_GH_R01

 

Steps 1-2

 

RH-RVT_GH_01RH-RVT_GH_02RH-RVT_GH_03

We’ll start off with a rhino model that contains surfaces in a designated layer.
A single surface is read by index, its parameters extracted, then sent to Flux
(where the magic happens).

GH_06

• Dynamic Pipeline – Set to ‘read by layer name only’
• Number slider – Select surface by index
• Flux Project – Select project
• To Flux – Send data to Flux (flow control mode: constantly)

GH_07• Area centroid
• Deconstruct Point – Extract elevation (unit Z)
• Sort List – Sort surfaces by elevation
• Brep | Plane – Extract closed planar curves
• Insert Items – Construct list of text/numerical values for level names and number (individual ID)

 

Step 3

 

RH-RVT_Flux_Flow_01

• Create Level
• Create Floor – Requires closed input curves in a single list
The order of operations is levels first, floors second. That’s so the floor knows which level
it lives on!

RH-RVT_Flow_01

 

Step 4

 

Interoperability_HowTo_Page_5_Image_0001Interoperability_HowTo_Page_5_Image_0002Interoperability_HowTo_Page_5_Image_0003Interoperability_HowTo_Page_5_Image_0004

Using the handy Revit plugin, merge the level, and then, you guessed it, the floor.

 

N.B. If you’re feeling lazy, simply connect the data parameters to its respective
To Flux component and send all data at once 🙂

NB_GH

Advertisements

Pattern Studies

 

 

 

 

 

bhd_pattern_diagram_01.jpg

1.  Create base grid within boundary

 

 

 

 

bhd_pattern_diagram_02.jpg

2.  Sketch hexagon pattern by extending diagonal curves to edge

 

 

 

bhd_pattern_diagram_03.jpg

3.  Sketch secondary diagrid pattern by triangulating hexagon vertices

 

bhd_pattern_diagram_04.jpg

4.  Secondary diagrid pattern

 

BHD_Pattern_Diagram_05

5.  Adjust top edge of pattern and clean up edges

 

bhd_pattern_diagram_06.jpg

6.  Extract hexagon from initial grid

 

bhd_pattern_diagram_07.jpg

7.  Extracted hexagon grid

 

bhd_pattern_diagram_08.jpg

8.  Triangulate hexagon by connecting verticies to area centroid

 

bhd_pattern_diagram_09.jpg

9.  Tertiary pattern

 

 

 

Tiling Surfaces

 

 

 

 

In order to properly orient the tiles at each point on the surface by the normal at that point, firstly the reference surface is offsetted. Finding the vector between the centroids by connecting them with a line gives us a base vector, as the line is interpreted as the base vector.

 

 

The point intersections from the base grid are then projected onto the secondary surface, and the same process of connecting the points to find the vector in between is done to get the normals.

 

 

The tile is then moved to each point intersection and oriented with the new normals, which results in all of the tiles oriented to the curvature of the reference surface.

 

 

Some of the main components used were Offset Surface, Vector from Two Points, Project Points, and Orient Direction.

Facade Studies with Rhino + GH

I laid out a couple of basic ideas of a facade for my colleague to try out on her own. I’ll post the GH file here for anyone who’s interested in taking a look or wants to try it out as well.

Facade_Study_01.gh

 

 

The example starts out with a reference surface that represents the front facade of the building. From this, the needed inputs are extracted to create a base grid.

 

 

From the extracted elements, such as the centroid and normals, a grid is created using the contour component. To achieve a gradient effect when the lines are overlayed to create the grid, an exponential function is added to the input of distances for the contour component.

 

 

Finally, the 3D result can be anything, and in this example, the intersection points from the previously created grid are moved up to create an extrusion. The variances are refactored by using the graph mapper as a visual representation of the changing magnitudes of those points.