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
                                                               





Thursday, June 27, 2013

LUMPY DIAGRID

Almost 2 years ago now I attempted to make a big lumpy diagrad roof surface.  Very large scale structure, shades of Bucky Fuller.  Shades is right because it was essentially an enormous shade structure.



I got stuck at some point and since this was an inquiry "after the fact" it's been sitting neglected ever since.  It related to a quick competition entry & the inquiry was basically, could we have done this more easily using Revit ?  One of the interesting things here is the realisation that 2 years ago I was floundering about as far as conceptual massing was concerned.  The big breakthrough for me came with the first pumkin competition a few months after this initial failed attempt.  So I decided to take another shot.



My first instinct was to make a rippled rectangular surface and cut off the edges with voids.  That didn't work.  Or rather it seemed to be working until I divided the surface.  Then it just ignored the voids & reverted to dividing the full rectangle.  (SEE ALFREDO'S COMMENT below, pointing out that it IS possible to select the inner surface, you just have to KEEP ON TABBING)



I found that I could bring the surface into a project and use curtain system by face.  But that only allows me to use rectangular panels.  I wanted a rhomboid. So I decided to drop the void idea and try to make the surface directly.  ie a lumpy-bumpy surface with a smooth irregular outline.



This turned out to be fairly easy, in principle at least.  Just a series of splines like before, but instead of lining the ends up, let them move in and out with the boundary curve.  Make the first and last curve shorter and push the mid-points out so that the curve in plan.  With a bit of pushing and pulling you can create something with flowing curves in both plan & elevation.



Now for the next problem.  The divided surface distorts to in response to the irregular border.  Not to worry, divide by intersects to the rescue.



This takes a little while to set up.  Lots of reference planes.  But it works.  So let's try to build something closer to the original shape.



I quite enjoyed using this method for defining a surface on the second time around.  The curves are simpler and I'm getting better at bending the shape to my will.  I didn't get around to setting all the intersect planes up though.  Time ran out on me.



Maybe that's just as well, because when I started on this little write-up it struck me that my surface cut by voids might be solved by having a solid cut by voids.  In other words, take the open ended splines and box them out so they each form a closed loop.  Now when I select these and create form I get a solid block with a wavy top surface.  Cut this with the voids I made before.  Now I can select the top surface and divide it.  Works fine.



This is preferable to the intersects method.  I can play around with the density and angles of the rhomboid grid just by varying the U & V values.  Also, changing the boundary shape in plan is going to be simpler.  What is more, I suddenly realise that I can use loaded profiles threaded on a spline for the solid.  Pumpkin take 2 comes into play.  Organic form and all that.

So I make a profile by my usual points method, building in a bit of parametrics.



Set up a spline for the backbone of the whale, or maybe it's some kind of a manta-ray type beastie.



Thread the profiles along.  And make a form.  Tweak it a bit.  Looking good.



Go into plan view and set up the reference line loops for my 2 voids.  Make them as solids first, then switch to void and cut geometry.  Nice.

Now tab-select to get the surface.  Divide it.  Interesting how the grid lines follow the curvature of the backbone.  Switch to romboid & tweak the U V values.  Load up a panel and we're in business.



So what did I learn ?


  • You can trim a surface to shape, but when you try to divide it ... it reverts to the original.
  • You can model a surface directly with smooth flowing edges, but when you divide it the grid will follow the  edges.
  • To place an even grid over an amoeba-like form, make solid geometry & tab select a surface to divide.  The more rectangular the original shape (before edge cutting) the more regular the divided grid.


and finally :  Keep trying because there is a way to get the effect you are looking for.




Monday, June 24, 2013

SPIRAL RIGGING

I have written many times about the "scalable rectangular rig" (SRR) This is a device for use within the conceptual massing enviroment which I find to be extremely useful.  With it, you can apply 2 parameters to control the scale & proportion of an element, thereby achieving a great deal of variation very simply.



This can be compared to the age-old artists trick used to guide the eye and hand when scaling up (or down) an image.  Alberti used a rectangular grid on a pane of glass to guide his transcription of nature on to a canvas marked out with a similar grid.  I have no doubt that Michealangelo used the same method in reverse to scale up his sketches onto the surfaces of the Sistine Chapel ceiling.



I first used this method to when threading profiles onto a spline.  The spline itself is hosted on a "ladder" within the rectangle.  The width factor allows you to vary the curvature of the spline.  Subtle variations in size and proportions are characteristic of the natural world.  We used to call this organic form.  Today it is fashionable to speak of biomimicry.



D'Arcy Thomson was a biologist/mathematician who looms large in any discussion of organic form.  His book "On Growth & Form" influenced may architects & in it he used grids to illustrate the effects of proportional changes on biological form.



A variation on the SRR replaces the scale factor with 2 adaptive points.  The result is a 2-pick component which will adapt itself to the points of attachment.  Used with divide & repeat this opens up a wide range of possibilities.  I typically use a scenario where we imagine ourselves as Oscar Niemeyer exploring variations on an idea for a cathedral at Brasilia.



The spline within an SRR can also be used to create a revolve.  I first used this for an avocado pear, but more recently I devised a "form-finding" demonstration based on the gherkin to show how a wide variety of curves can be generated based on 3 or 4 variables.



All this is by way of background.  Since I returned from RTC Auckland I have begun to experiment with circular rigs.  These lack the "width factor" element, but have other interesting properties.  Today I want to look at spirals.



Start with a "Generic Model Adaptive" template.  Go to a plan view.  Make a circle (reference line)  Give it a radius parameter "R".  Now draw a series of spokes from the centre point to the circumference, check "3d snapping" so that the ends are defined by nice black dots (reference points)  Make sure you always draw from the centre outwards.  Select all the points on the circumference and change the measurement type from NCP (normalised curve parameter) to Angle.  Use these angle settings to space the points equally around the circle.



It's quite easy to thread a spiral around the spokes, just working "freehand" to guess the curve.  I used spline through points which automatically operates as if 3d snapping and chain were checked.  Change the radius to reassure yourself that the whole thing will scale up & down proportionately.



Now we just have to add precision & control ... plus some solid geometry that will show up in a project.  It gets a bit tedious now (as in repetitive)   Give each point a number (under name) this will reduce the potential for confusion.   Then next to the NCP value, click on the little parameter button & give each point an instance parameter.  Set point 1 to NCP_01, point 2 to NCP_02 etc.   It does help to use the zero before the first 9 and to be systematic.  It can be quite confusing if the parameter list is out of sequence.  Try to get a rhythm going: name the point, add parameter, name it (you can use copy-paste and change the last digit), change to instance.



Next, create a number parameter called F (factor)  you could also call it X if you like, doesn't matter.  Set the value of F to one more than the number of points in your spiral.  Now feed in formulae for the position of each point.   F/(point no)  All this does is to divide the length of each spoke into small equal lengths and step each point outwards by one of these divisions.  I create more divisions than points so that the last point will fall short of the circle.  Just in case I want to select it won't be confused with the point at the very end of the spoke.



You have created a geometric spiral.  It's the kind of spiral you get when you coil a rope around on the deck of a ship.  All the coils are spaced the same distance apart.  You really need quite a lot of points to make a good geometric spiral because you want to go around the circle at least 4 times.  I've been using 12 spokes.  You could try using 8, but I think you will find that the spiral distorts, especially at the ends.



Most organic spirals are logarithmic.  The distance between the coils expands as you go around.  Think of a snail shell.  You can think of it in terms of a graph.  When the distances out from the centre increase by equal steps, that will be a straight line graph.  Clearly the logarithmic spiral will give a curved graph.  But we want to have the same start & end points (zero to one)  Because that's the range we have available using NCP.  Basic maths suggest we need to square something to get a logarithmic curve.  Square of zero is zero, square of one is one.  So we can square the whole thing & the formula for point 3 will look like this   (F/3)^2



Make a second copy of your family and go methodically down the formulae, converting them to squared versions.  Now you have two spiral families, one geometric & one logarithmic.



To create geometry we need two points hosted on the spiral, one close to each end.  There are 2 reasons for keeping them away from the ends.  Firstly so they are easier to select, secondly the spline distorts a little at its open end.  The last part tends to straighten out just because there isn't another point pulling it back in towards the centre.



Place your points, make the workplane visible, place a profile on it.  I have a few ready-made mass profiles sitting in a folder just waiting to be used.  There are a bunch of them in my entry for last year's pumpkin competition.  You can find them under downloads.

Link their radii to instance parameters.  You need to make the inner one quite small.  Select both profiles plus the spiral and create form.  If it refuses, try a smaller radius.

I want to have the two profiles scale up with the radius of the whole spiral.  So I use a little formula.  I called my two profile sizes P1 & P2.  Create number parameters X1 & X2

P1 = R / X1,  P2 = R / X2



If you made everything with instance parameters, you can place a few of these families in a project and play with the variations.  Scaling is easy.  Just type in a radius and the whole thing scales proportionately.  Vary the values of X1 & X2 to make the geometry thinner or fatter, more or less tapered.

One nice bonus is the ability to adjust the value of F.  If you try to make is smaller the family will break, but if you make it bigger, the spiral will tighten up.  Think of it this way.  The outer end of the spiral is sitting at 25/26 of the spoke length.  Almost at the end.  If you increase F to say 50, it will move to 25/50.  That's half way.  The effect will be even more dramatic for the logarithmic spiral.  Make small adjustments.  The geometry will fail if it becomes self-intersecting.  So if you want a really tight spiral you will have to creep up on it slowly.

It's quite easy to add an extra turn to your spiral.  Just add 2 points on the next 2 spokes, select the spiral, control-select the points, hit spline through points.  Repeat until you reach the length you want.  Number the points.  Add NCP parameters.  Fill out the formulae.



I went on to play around with rectangular profiles a little.  But by now I'm starting to wonder what the applications are.  Sort of looks like wrought iron scroll-work but do you really want to get into heavy conceptual massing studies for a garden gate ?  I guess you could imagine designing a water feature or similar landscape element this way.

Whatever.  I had fun & kept my brain busy.  If you want to play around with it you can download a couple of the families I made.  Don't look too closely at the parameter names etc, they are just as they came out during my explorations.

spiral families