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.