Showing posts with label Soft Objects. Show all posts
Showing posts with label Soft Objects. Show all posts

Sunday, August 10, 2014

CURTAINS THAT FLEX

In my second presentation in Chicago last month I proposed a heirarchy of 3 major types of rig for use in point world: straight line, rectangle & box. 



The series of planters by Frank Lloyd Wright that featured in recent posts were all based on the Straight Line Rig, hosting a series of profiles.  In this post I will use the Box Rig to make families that represent curtains.  The aim is to achieve something approaching the softness and irregularity of real-life drapes.



We start with a rectangle, drawn in plan, using reference lines.  Add equalisation plus parameters for Width and Depth.  Select the rectangle and creat form.  Convert the offset into a Height parameter.  Sometimes it is useful to add formulae that make Height and Depth dependant on the Width, as in the image above.  For the curtains we will keep things simple and type the 3 dimensions in directly.



Make your box 3m high, 1200 wide, and 200 deep.  That will be a reasonable starting point for a curtain that is partly open.  For my RTC presentation, I simply drew 2 splines using Spline through Points with 3d snapping on: one spline along the top face, another along the bottom face.  The points will snap to the edges and acquire NCP parameters (values between 0 & 1 which control their position as the family flexes)  Select both splines and create form.  Add a material parameter.   The result is an undulating surface: moderately successful, but a bit too stiff.



So I decided to add a reference line along the top face, and another along the bottom.  This allows me to vary the depth of the troughs and valleys in a somewhat random manner and create curtains that look more natural, with irregular folds.



Flushed with success, I explored the possibility of even more dramatic ripples with 2 points for each fold in the cloth.  This seemed to work OK but for some reason when you go to a camera view, random lines show up, criss-crossing the scene.  They look worse on screen than in an exported image, but still rather disconcerting.



No worries, I can live with my second version.  Copy this and change the width and depth (wider and more shallow)  Create a new type and apply a new material.  Mine is based on the Bamboo that comes with Revit, but enlarging the scale and fading the image so that it simulates a sun filter material.  Now we have 2 layers of drapes. 


Check out a plan view.  You get some very interesting shapes, but not what you would want in a set of drawings. 


Building plans are stylised.  Sometimes we forget that, but it's the main reason for the "symbolic" capabilities of Family Editor.  Hide the solid geometry of your door panel, and add symbolic representation of a "door swing".  Sadly this feature is missing from Point World.


We had some very interesting discussions in one of Paul Aubin's sessions at RTC, effectively a dialogue with Autodesk at a fairly senior level.  One of the ideas that came up was to have a new family template, possibly called "Generic Model CME", which behaves like a standard Generic Model family, but uses Point World techniques for making geometry.  It would have the visibility controls shown above, plus Symbolic Lines, Masking Regions & Detail Items. 


You would be able to go to family categories and swap to just about any category you wanted, including plumbing fixtures.  It would not be based on adpative points, so the family would respond to the "Level" and "Offset" instance parameters just like a normal Generic Model and you could schedule the components by level.  Even better, you would be able to nest this type of family within a hosted template.  So you could have a wall mounted light fitting based on Point World geometry.  We don't know yet whether this is a realistic request.  Perhaps the coding would just get too messy.  But it would be a wonderful thing if the factory discovered that it was able to grant us this wish.


In the meantime we will resort to work arounds.  Here is one.  New family, Generic Model.  In the plan view, set up reference planes, parameters and symbolic lines as shown below.  Nest this family into another Generic Model.  Create an array, link parameters and "hey presto" we have symbolic representation of a curtain inside a Generic Model family (not a detail item) 


This is good news because we can nest a GM into Point World.  So load it into your curtain, place it ina plan view, lock the bottom left corner to the same corner of the box.  Now you can link up the parameters.  You'll need to set up a formula in the curtain family to generate an "X" value based on Width and No of folds.  If you do this correctly, you will have a symbolic representation of a curtain that flexes correctly and only shows up in plan views.


How do we hide the 3d geometry in plan ?  I made a new sub-category called "adaptive 3d"  (my curtain family was made from the Generic Model Adaptive template.  In many ways it would have been better to start from "Conceptual Mass")  So assign the curtain geometry to that new sub-category, and in the project you can turn the sub-category off in plan views.  If you use a view template, it's not too painful.


Why do I say that the "Mass" template would be better than "Adaptive" for this kind of family ?  Well Adaptive Components don't respond to Levels & Offsets the way that other families do.  They're not meant to.  Adaptives are supposed to attach themselves to points within the project and adapt their size and shape accordingly.  They don't have an origin in the same way as normal families.  They are Shape Shifters.  They don't belong to any particular level.  They define themselves in relation to other objects, not to some absolute datum.  So if you want to control the position of your family by selecting a level and typing in an offset, Adpative Components will disappoint you. They also have a disconcerting tendency to flip upside down when mirrored.

So my freebie is slightly different from the above story.  It's a mass family, the symbolic "worm" is centred about the origin (which usually is a more stable way to make families) and the subcategory for turning things off is called "_Hide in Plan"

Check it out for yourself at this link.

Mass Curtains.rfa

Monday, September 5, 2011

FLEX THAT CUSHION

I've said it before. Revit does not excel at making soft floppy things. It's number one job is to build rigid structural elements.  The conceptual massing tools are great for creating organic forms that panellise into grid-shell assemblies.  But they are not really intended for making cushions & pillows, despite my previous efforts. here

All this is fine, but we do like to populate our interiors with furniture that looks moderately convincing.  Some of us have interior design projects that demand photo-realistic renders of interior schemes complete with all the soft furnishings we have so carefully selected. 


So here's another small contribution.  It's a fully parametric cushion family. All instance parameters so it's very easy to make new versions on the fly. Very simple to make and lots of potential to nest this in furniture families and significantly reduce the effort needed to make these.


Set up reference planes for Width & Length, create a rectangular extrusion, lock it to the planes & fillet radius the corners.  Select each arc in turn and convert the temporary radius dimensions to permanent ones.  Select these and label them "R1"




Make a new profile family. Add 2 reference planes with labelled dimensions. Draw to lines and an arc. The arc will automatically lock to a perfect quadrant as you get close to this shape. Load into your cushion family.


In a 3d view go to Home/Void/Sweep. Pick path, Pick 3D edges and pick your way around the top edge of the extrusion.  Finish the path and select the profile.  Choose the family you have just made. Zoom in to check it.  You may have to flip the sweep.


Finish the sweep and you should have a nice rounded edge.  Repeat this for the bottom of the cushion.  The result is a family that flexes nicely to various shapes, from a box with slightly rounded edges, to a slighly flattened balloon.  You can even take the top and bottom radii beyond half way to create a sharp crease around the middle.



The best pillows I've made so far are based on a rectangle without radius corners.  Instead I put a slight kink in the sides.  The result is still an abstraction, lacking the subtle irregularities of real life.  But it is a native revit family, fully parametric, and recognisable as a pillow.
Renders quite nicely too



Final shot is from my furniture collection where all the GAJ reviteers can go shopping for what they need.  Shows these cushion families nested into sofas and scattered about loose.  I like the accidental effects on the round cushion (because you have to leave a short straight section for the family not to break)



Actually not the final shot, because I just discovered another happy accident. Because the cushions are work-plane based & not "always vertical" (go to family settings & parameters in family editor) they will host on each other.  Even better because of the curved surfaces you can nudge the cushions around to fine tune the angles they rest at.  Here's a shot from my bedroom furniture collection.

Sunday, March 27, 2011

PILLOW TALK

If only ...

How often does Revit get me saying that ?  Its such a brilliant way of working, you can't help wanting to do more, to do everything the Revit way.  So if only.  If only we could use the conceptual massing tools to make furniture, or sanitary fittings, or pillows for example.

So how would I set about it ?  Could start with a profile, model lines drawn in a generic model family. Something like this.


Bring this into a massing family and place several instance of different sizes on reference places.  Use these to make a form.  Not a bad approximation to a pillow.

Using linked instance parameters, we can vary the shape, scale it up and down, even swap in different profiles.  An elipse for example. Some simple formulas will allow us to keep user parameters down to a minimum






Small versions could be pillows, cushions, various household items.





Larger versions can be panellised to make buildings, perhaps an arena ...




or maybe a flying saucer or two.   All variations on the same basic family.  Just tweaking the instance parameters will scale it up or down by a factor of 10 or 100, convert a rectangle into an ellipse, squeeze out a flange in the middle ...



Not too hard to imagine making better sanitary fittings this way.  In fact it turns out that you can do the same kind of form making with generic model profiles in an adaptive family.  Now adaptive families can be plumbing fixtures, and they can be shared, so by hosting them in a mass you can get them into a project and schedule them.  I made a version of Duravit's Puravida WC this way using a D shaped profile with 3 instance parameters to create 4 different forms, 2 for the bowl and 1 each for the seat & the cistern.  Loaded in a standard family that I use for flush buttons and the result is a better WC than I have been able to make before using native Revit modelling tools.




With Revit 2012 offering direct placement of adaptive components it will be no longer necessary to host my WC in a mass.  Now this is probably not what the factory had in mind for adaptive components, but it's about time we had some decent sanitary ware, so why not ?