Sunday, July 21, 2013

AMERICAN HISTORY & PRACTICAL MATHS - gherkin

Studying hard & hoping to pass.  Story of my life, kudos to Chuck.  I was lucky enough to see him twice during the 70s. Three times if you count sitting through  the whole show twice in Sheffield.



Back to the "Scalable Rectangular Rig" which I still regard as one of my best ideas ever.  A couple of months ago I realised that I could use it to generate curves based on a formula.  In short: graphing with X & Y axes.



It's just another feature of the "normalised curve parameters" that report the position of points along the line that hosts them.  The horizontal rungs slide up and down driven by the values Y1, Y2. Y3.  Previously I have always placed the points that define the curved spline by eye: nudging them around until I get the curve I want.  But it is very easy to label them as X1, X2, X3 and link them to their Y equivalents by way of a formula.



Of course you still have the ability to scale the rectangle up and down, plus vary its proportions with a "width factor" variable.  And by adjusting the formula you can also vary the shape of the curve.



One obvious application would be to revolve the curve around an axis.  Then you have a nice form-finding rig capable of generating a wide variety of forms.  In a way it's similar to the glass onion I posted about recently, but this time it's more controlled.



Not quite up to Zach's current Dynamo "hobby" but a small nod in the "computational" direction none the less.  And easier to set up, ... for me at least.



The original motivation for this was my recent paper on 3 buildings, prepared for RTC Auckland.  I was trying to simulate form-finding explorations for the Gherkin.  A series of systematic variations on the basic concept



As usual it all boils down to isolating a few key variables which control different aspects of a shape.  It helps to vary them one at a time.  It's a mass family of course with instance parameters, so you can make lots of copies, insert mass floors and explore different ways of achieving the same GFA.



For the  RTC session I also explored the spiral floorplates of the Gherkin in a bit more detail.  I;ve said it before & I'll say it again.  If (like me) you are interested in History of Architecture, Theory of Design or just How things Work ... then a BIM authoring tool like Revit is an amazing aid to research


Thursday, July 18, 2013

SNAKE OIL RIG

More circular rigs, or at least " use of circles in rigs".  Most of my rigs to date have featured planar paths (splines in a flat plane) used to host profiles.  I have favoured this approach because of it's simplicity (as in the old adage "keep it simple stupid")  Parametric form finding is only going to be useful if it's user friendly.  Too much complexity and people will revert to direct free-form modelling.

One approach is to hide some of the complexity under the hood.  Display three or four main controls up at the top & bury the rest deeper down.

So how do we escape from the flat plane ?  How to make a spline that twists around in 3d space ?  One approach would be to make a box and divide it up with a 3 dimensional grid.  I may well try that later, but it struck me that circles might reduce the clutter.  Let's say we want 5 points arrayed in 3d space to define the path of our spline.  The length of our object can be considered as a straight line & each point defined by an angle and a distance from this line.  Hence the circles.



So:  New Mass family, 2 ref planes equalised & with a Length parameter.  Place points where these new planes cross the existing axis (centre front/back)  Spline through points, & flex to check that the points move when the length is changed.  Change the line to a ref line & place 5 points along it.  Make their planes "always visible" & draw a circle on each.  Give the 5 circles Radius parameters.



Place a point on each circle. select these 5 new points and "spline through points"  Hey presto a twisty 3d spline.  For "total control" we need 3 parameters for each point.  These will define the following:

Position   (of the circle along the original staight line)    P1, P2, P3 etc
Angle   (of the point on the circumference of the circle)   A1, A2, A3 etc
Radius   (of the circle, already done)  R1, R2. R3 etc



The positions are values between 0 & 1 (Normalised Curve Parameter)  Select each point that hosts a circle & associate its NCP with an instance parameter.  For the Angles, select the points on the circumference of each circle, change the "Measurement Type" from NCP to Angle & associate parameters.



The rest is a matter of rigging up "Master Parameters" in order to "Keep it Simple".  Length is fine as it is but I would like the circles to scale up automatically when I increase the length.  Then I would also like to have a "Straightness" control.

How can I make "Length" automatically generate a scale factor ?  First of all add a number parameter called "Scale", then make it equal to "Length / 500mm".  I chose 500mm because this gives me a scale factor of 100 for the family as originally drawn.  Remember this scale factor will vary depending on the length I type in for each instance in the project.  I won't be setting the Radii directly.  They will be set by input values * scale.  I'm going to use F1, F2 etc for the input values & I want these to be easy read, let's say values in the range of 1 to 150.  With a scale factor of 100 that will generate circles of 100mm to 15m  which is about right.



Now I can add a "Straightness" parameter.  (originally called slenderness, but I changed it later on)  This will reduce all the circles at the same time.  Bigger numbers mean "more straight" so I want to add "divide by Straightness" to my formulae.  Just set the initial value of "Straightness" to 1 so that your initial spline is the default.  Radius formula now reads:

R1 = F1 * Scale / Straightness



Flex a few parameters to make sure it's all working properly.  Then it's time to load a profile and thread a few onto the spline.  I chose the one from my Brasilia Cathedral form-finding experiment.  It's just a triangle with 2 flattened edges.  Add 5 points. hosted on the curve "backbone" spline.  Make the workplanes "Visible : Always"  Place a profile on each.  I had to rotate my points 90 deg.  and adjust the profile sizes.  Then select the 5 profiles plus the backbone & create form.



Now you can play around with the Angles & Radii to see how this affects the form.  Later on I decided to add a "Slenderness" parameter.  This works just like Straightness, but this time it controls the width of the profiles.  Set up 5 parameters (W1 to W5) linked to the width of each profile.  Then control these by formulae.  For example, if a profile 5 has an existing width of 9m the formula will be:

W5 = 90mm * Scale / Slenderness

I visualised this form as a sinuous roof to an open air exhibition space / cafe.  Loaded into a project it was easy to make a roof-by-face & choose "Sloped Glazing" in the Type Selector.  Adjust the settings for mullions etc.  Along one edge I made a wall-by-face to represent an edge beam.  On the other side a made some walls using the Tangent-End-Arc tool which makes it easy to a draw sequence of smooth curves.  Placed a few round columns to support the beam, some topo & paving, a few flat people & off we go.



Now I could have made this roof using an in-place mass and "3 freehand" splines.  But the whole point of this is to explore "Form Finding"  This implies a controlled exploration of variations on a theme.  So I made a few copies and played around with the parameters.  The first row of 4 demonstrate the 3 main controls (Length, Straightness, Slenderness)



It's child's play to scale the whole roof up by say 5% without distorting the shape, just type in a new length.  Using the freehand method, it can be frustrating.  You have a form that you like, but when you lay out the cafe tables it's not big enough.  Not so easy to scale it up without distorting the shape.  Similary if you decide half-way through that the curves are too sharp (maybe there's too much twist on the glazing) it's a chore to adjust the freehand version.  You have to adjust the 3 splines separately and try to maintain the smooth flow of the shape.



I'm not saying my method is "always better".  Sometimes "quick & dirty" is the right approach.  But it's worthwhile learning how to make parametric forms & thinking hard about how to set up master controls.  The "Inner Logic" that you define may well show up in the resultant form.  And if you want to make 3 or 4 elements that read as variations on a single idea, the advantages are obvious.



Thursday, July 11, 2013

FURNITURE FRITZ

Fritz Hansen is a Danish Furniture company that has been making high quality, designer chairs & tables for well over a century.  They have an excellent web site with  lots of downloadable files, both 2d & 3d ... BUT ... no Revit files.



Late last year I was working with our ID department on a schools project.  It involved making some furniture families, including the FH series 7 chair.  Now the ID guys are still clinging to their 2d drafting blanket & it's clear to me that we will need a good furniture library to lure them into the Revit fold.  So I downloaded a whole bunch of DWG files & started to embed them into families.  I know ... shock horror ... but sometimes it's least painful option when you need an ID friendly BIM object.




About 3 weeks ago Steve Stafford posted about BlueBryk.  This looks to be a terrific initiative by Bruce Madsen and apart from the amazing database has a lot of very sensible things to say about Revit content.


Anyway this post is directed partly at Fritz Hansen themselves.  Please give us your wonderful furniture in RFA format so that we can persuade more clients to buy it.  Wherever possible they should contain native Revit geometry.  There are some examples below.  For the more freeform shapes, this will be difficult.  Second best is solid geometry from another application brought into Revit in SAT format.  (with Revit 2014 it is possible to explode this into a native solid).  Third best is a CAD mesh (such as the ones I downloaded from your site)  There are several examples below, along with suggestions on how best to do this.


Surface mesh geometry is far from ideal, but if that is all you have, put it into a family to keep us going while you develop a version based on solids.


It is important to have different materials on different layers.  These will translate to sub-categories within Revit which can then be assigned to materials using object styles.  It is helpful to give end users the ability to adjust the materials within your families to suit their presentation needs.


 We don't want to see the triangulation of the mesh in plan views, so it is also important to use symbolic lines & masking regions so that your families look crisp and clean in construction documents.  This can also be extended to front & side views.  You alread have CAD files for these views in most cases, so it is not a big effort to generate the required drafting.  Having said that, some of your elevation views carry too much fine detail in my opinion.  I prefer to keep things relatively simple and lightweight, for clarity at a variety of scales.


Moving on to native Revit geometry.  I tackled the Series 7 stacking chair.  This is a little challenging because it features curvature in 2 directions.  But it is possible to achieve something which is quite acceptable and will look good in shaded or rendered 3d views.  I started by sweeping a curved profile along a curved path.  This will create a "bent rectangle".



What remains is to cut away the edges.  I tried out 2 different methods.  Both use void extrusions to cut away the unwanted material.  The first method uses a single void and gives clean edges, but the edges formed are not at right angles to the top surface.  The second method uses two extrusions, giving a squarer cut, but with some interference in the middle where the two extrusions overlap.



Actually, if you look carefully you will see that I added a third void (along the front edge)  The difference between the two methods is more clearly seen in a side elevation view.  The results are not 100% accurate, but they are perfectly fine for our Interior Design department to use for both visualisation & documentation.  And in this case there is no need to use drafting in orthographic views.  The Revit geometry itself gives a sharp enough edge and a clean enough graphic representation.



My second example is a modular sofa set.  Again I used the downloaded CAD as a guide to accuracy. The seat and back cushions are made as sideways extrusions.  For softer edges and a gentle curve in the 3rd dimension, I used void sweeps with a path created by picking the edge of the extrusion.



The seat/back then becomes a nested component in the final families, duplicated appropriately for the 2 & 3 seater versions.  The side cushions and legs are fairly straightforward to make and once more there are modular components for use in all 3 versions.


I went on to make some office tables.  These are very nicely detailed in my view, and the modular approach that has been taken for manufacturing reasons is also very helpful when making Revit families.


I also made a parametric family for a series of desks that are quite similar to the ones we have in our office.  Basically, the spacing of the legs and the overall length of worktop respond to separate parameters in order to generate the full series of types from a single family.


So I haven't modelled the complete Fritz Hansen range, but I have demonstrated that one person can make significant inroads into that task in just a couple of days.   In the spirit of open collaboration espoused by Bluebryk, I am making the best of these families available for download.  If Fritz Hansen would like to a copy of the whole file, I would be happy to provide this, on the understanding that they will offer Revit families for free download from their web site in due course.


You can find the downloads at the link below

Fritz Hansen Furniture Families