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.
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
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).
• 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)
• 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)
• 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!
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 🙂
This model takes a hexagon polycurve and a diagrid as reference curves, extracts the vertices and connects them, to make a dynamic module that can change in its depth and maintain the same proportion as the original pattern.
This particular facade design idea is inspired by traditional Vietnamese architecture and Kengo Kuma’s China Academy of Art’s Folk Art Museum.
Vignettes were done with basic settings in Vray for Rhino 5.
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.
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.
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.