Wednesday, November 23, 2011

A BIM Model and a Fluffy Kitty Walk Into A Bar

<Edit 08/04/2012) The following post has been made irrellevant by the Divide & Repeat commands!!! Well, except for maybe horrible the jokes perhaps...BTW: The drink below is not good!!! Try Tequila with a splash of red food coloring at your next party though (still unmixed) <End Edit>

Bartender says "What will you have BIM Model?", The fluffy kitty (AutoCAT) suddenly dies a bloody death and BIM Model says: "I'll have some of that...again"
Hmmm...A new drink: the "Bloody Fluffy Kitty" It's a double shot size glass of "Tequila, splash Benedictine, & Hot Sauce (unmixed)" Yumm... let's try that out... "I'll have a bloody fluffy kitty please" ... why yes i think that works!!!

So... after completing this post I realized that I'd only grade this Rig family an A-
The minus is because of the two mistakes (not following my own advice by not fully writing everything out first).
Error #1) Numbering of points should have been: P00-P35 
That way P00 would be on 0° and all others would have related to their 10° spacing
Error #2) Naming of Minor points should have been: Minor P01- Minor P35 
That way the naming would be simpler due to copy/paste efficiencies, like I realized when naming the Ellipse Points.
Plus some of the steps like 1a & 1B should come after 1c & 1d but that's life... there's beauty in imperfection...
That said: on with the... BIM Modeling MEEEOOO O OWWW GURGLE GURGLE

Crap, now we have another dead kitty :-( ???

Today we will look at creating a Rig to allow some nesting. You should consider recreating this type of Rig if you answer yes to any of the following (or have any other reason not mentioned):
1) Do you need 'dimensions' to get an ellipse built by someone?
2) Do you want to get better at building Adaptive Components & the use of Points?
3) Do you want to hone your problem solving skills (even just for the sake of doing it)?
4) Do you love fluffy kittens
5) Do you like to say "BIM Model"

Well the last two questions are just a BIM joke (wow I hope it's not really killing those cute little kitties) that states: (Saying "BIM Model" = 1 Fluffy Kitten Killed) I didn't make it up but I sure continue it (insert evil laugh). I am going to start to use "Saying BIM Model Kills a Fluffy Kitten" as parameter names in the future!!!

Saying "BIM Model" can be fun and I don't feel bad for saying "BIM Model" or writing "BIM Model" because of how I define BIM and BIM Models... According to me:
BIM is a process that creates everything necessary to procure, design, build and run Architectural projects. So saying "BIM Model" is just like saying "3D Model" which are but one part of the process, BIM Models are not the process itself... Take that fluffy kittens...

The processes herein assume that you will flex at each step, so if you don't have good family creation habits in Revit you should expect to create havoc and a broken family... Now you can't say you weren't warned... It's not Revit's fault if we are lazy, thoughtless or simply don't know how to validate and QA/QC our work as we go... I cannot stress enough that Revit family creation need flexing/validation at each step... In order to keep from raising super needy (Revit) families we cannot be enablers, we must be strong and uphold our values!!!

Well, anyhow...

I find that rigs are useful and just as other Artists, Designers, Modelers, Builders, etc. have always used rigs, so do I...

With rigs we can build things one time and adapt them for many uses... The imagination is the limit to what can be hosted to these rigs. What other uses can this be fit into? That's for you to define... If you think creatively and open then you can/will find many potential uses, if you think positionally and closed and don't look for potential, etc. then you might as well stop reading right here. -I am just saying :-)

OK Onto the post
Having "some" people build ellipse shaped constructions can be a pain... I have given Contractors several methods, including the 'string method', chock full of the necessary dimensions and for one reason or another that wasn't going to work according to them... I have resorted to printing 1/4 of entire elliptical rooms for others, but that can be impractical for everyone. So when a colleague was having this very issue (needing a detail with dimensions) the other day I sent them a copy of the "Auxiliary Circles Method" from Architectural Graphic Standards with the explaination, as they needed a detail with dimensions to give to a builder... Here are the simple directions, similar to the Graphic Standard ones:

1)      Draw Circle of the Minor Axis Radii
2)      Draw Circle of the Major Axis Radii
3)      Draw ‘Rays’ that extend to the Major Axis Radii Circle (repeat) -The more 'the better
4)      At each intersection of Major Axis Radii (Step 2) & the Rays (Step 3) Draw Vertical Lines straight down (perpendicular to Major Axis Line)
5)      At each intersection of Minor Axis Radii (Step 1) & the Rays (Step 3) Draw Horizontal Lines straight across (parallel to Major Axis Line)
At each meeting of the lines from steps 4 & 5 make a point, join the points using ships curves, or a really good freehand, etc. and the result will be a true ellipse: As long as you join the points properly :-)

I was looking at the image above (credit Graphic Standards) and was mesmerized... looking at the image I thought "Hey, I bet that would be a fun Rig to build in Revit: and who knows maybe it will lead to other inspiration or even be useful"...

So I did, it was!!! And here it goes:
Preliminary note: I used shared parameters so if I use any of the angle parameters on other rigs or families they are ready and waiting. Look at the future!!!

Big 'R' New>Family>Generic Adaptive...

1) Create 2 Circles of different size & parametrize the radii to be:
             a) Major Radii (Under Constraints)
                  a1) Use formula: = Major Length / 2
             b) Minor Radii (Under Constraints)
                  b1) Use formula: = Minor Length / 2
             c) Create length parameter: Major Length (Under Dimensions)
             d) Create length parameter: Minor Length (Under Dimensions)
These length parameters will be what the user changes to get different types (yes, I made them type parameters)

2) Create a Point on the base REF PLANE
     a) Change its "Offset" value to 30' (for example)
     b) Associate "Offset" to a new length parameter called: "Height"

3) Create an elliptical Reference Line at the base level
     a) Associate the big length to: Major Length
     b) Associate the smaller length to: Minor Length

4) Similar to steps 3, 3a* & 3b* except this time set the active REF PLANE to be the one set to Height (the one above but parallel to the base level Plane).
* If you want the final ellipse to taper then you will want to create separate parameters for that.

5)  Create 36 points along each Circle (yes there will be 72 of these but don't worry there will be more!!!
Note: Set one at 0° (P01) then 8 in between that and 90° (Top or 12 o'clock), then 8 more between 90° & 180° (opposite P01), 8 more between that and 270° (bottom or 6 o'clock) and 8 more between 270° & 0°: totaling 36) -This will allow one point every 10° ...logical, yes?
      a) Host the points to the circles (they get small)
      b) Set them all to "Angle" under 'Measurement Type'
      c) Name them (tedious but it really is useful and necessary) I used the following:
           c1)  P01-P36 (for the major points)
           c2)  P01 Minor - P36 Minor (for the major points obviously)
I should have used :Minor P01", etc. as a naming convention since copying & pasting that would have made the tedium a bit less.

      d) Remember those shared parameters I mentioned earlier? Well here's the time to create them:
           d1) Create Angle shared parameter "Start Angle" (this will be set to 0° and linked to P01 through it's formula... See image of all parameters, below)...
           d2) Create Angle shared parameters called P01 through P36 (these are what points P01 through P36 are associated to, of course)
           d3) Associate each pair of corresponding points to these shared parameters (P01 to P01, etc)

Did I mention the formulas I used for each of these? Well, look at the image below for all of the parameters I used (Note that I probably should change them from "constraint' and organize them under 'Other' -which I normally don't use but in this case it would be much easier for the end user)...

 6) Create 'Splines Through Points' for all 36 pairs of corresponding points
      a) Select a pair of corresponding points
      b) Hit the 'Splines Through Points' tool (see image below)
      c) This turns them into Reference Lines: do that for all pairs...

Phew: Now that we have done all that more fun begins...

Remember: breathe...

Ellipse Reference Points
These will be the completion (???) of the rig and they will move in direct relation to their corresponding points along the Major & Minor Radii since we will constrain them so... These are similar to the points that result by intersecting the lines from the Auxiliary Circles Method found in that Graphic Standards image shown earlier.

Name these ellipse reference points properly, like: Ellipse P02, etc. -As you will see we won't need Ellipse P01, Ellipse P10, Ellipse P19 or Ellipse P28. Why? Only points along the ellipse will want to be visible and...Points 'P01', 'P10 Minor', 'P19' & 'P28 Minor' will all fall on the ellipse as a function of nature or physics or math, etc. as they will be at the 12, 3, 6 & 9 o'clock positions of the Radii...

So we will set all the points that fall on the ellipse to the visibility parameter "Ellipse Reference Points" (you know, points 'P01', 'P10 Minor', 'P19' & 'P28 Minor' and the 32 other "Ellipse Reference Points" we are about to make).

The reason for their visibility? So we can dimension them at the project main point for using such a rig (but not the only one by far!!!) How about making a dynamic... (you'll have to wait to the end of this moderately epic post for the conclusion of that sentence...) Now back to creating the Ellipse Reference Points...

Go to your 3D view & set it to "Top" and make sure that P01 is at the 3 o'clock position; then open a plan view (with view range set correctly to see all you need) and tile these 2 views to work functionally.

7) Set the active Reference Plane to be the flat plane from Points 'P02' & 'P02 Minor' (not shown in the image at left but at least the image shows a flat ref plane, along one of the Reference Lines :-) and that's the ...point... pun intended.

8) Place a point on that Reference Plane, do not place it on any objects such as the line itself, etc.
-See image below for these next steps:
      a) Name the point per your planned convention
      b) Change the 'Show Reference Planes' value to "Always"
      c) Associate 'Angle' to the corresponding Radii Point's angle parameter
      d) Check the 'Mirrored' box
      e) Check the 'Flipped' box

      f) Align & lock the ellipse point to the Minor Point, not the Minor point's ref planes but the point itself.

The ellipse reference points' ref planes will be used to align to though. Confused? See the image left.
To reiterate: The Minor "Points" are the Align "TO" object (1st Align click), the Ellipse Point's "Horizontal REF PLANE" is what we Align up to that (2nd Align click)

      g) Align & lock the same ellipse point to the Major Point, not the Major point's ref planes but the point itself.

The ellipse reference points' ref planes will be used to align to though. Confused? See the image left.

To reiterate: The Major "Points" are the Align "TO" object (1st Align click), the Ellipse Point's "Vertical REF PLANE" is what we Align up to that (2nd Align click)
Alignment for these Ellipse Points: Point to Planes...Point to Planes...

Once I have created the first of these aligned/locked Ellipse Points I flex the "Start Angle" parameter, just to see if they work properly...I do not continue unless they work...

That flexing (32 times) may seem tedious but since I will use this Rig for actual constructions (Hmmm Nesting some ___ on these points...) I need this to really work: if it was purpose built for ONLY generating points along an ellipse then it wouldn't have to flex, so most of the parameters and work would be unnecessary; but for my uses and my future uses it IS necessary for the angle parameters to work and all of these points need to move in concert with one-another.

NOTE: Ellipses are perfectly symmetrical so if you need a simple rig for dimensioning an ellipse juts do this kind of thing for 1/4 of the rig and just let the builder transpose the dimensions around the object... But I want to use this to layout designs, etc. so I am going all the way!!! 

ANOTHER NOTE: You had better use dimensions set to their best possible limit (1/256") or else these will never get built even nearly correct, if dimensions are the guide.

9) Remembering what I said previously "So we will set all the points that fall on the ellipse to the visibility parameter "Ellipse Reference Points" (you know, points 'P01', 'P10 Minor', 'P19' & 'P28 Minor' and the 32 other "Ellipse Reference Points"...)" It's now time to set them so.

      a) Select all of the Ellipse Reference Points & the other 4 mentioned previously
      b) Click the Associate Parameter button next to the field for "Visible"
If you didn't create a visibility parameter yet:
      c) Click Add Parameter and add one :-)

Once associated i set the behavior to be "on" by default... Also Instance or Type is your choice... 

Voilà an Elliptical Rig.

Hey Bartender: Yes BIM Model? I'll Have another bloody fluffy kitty now!!! So to end where we began just so much different now...

A new drink: the "Bloody Fluffy Kitty" It's a double shot size glass of "Tequila, splash Benedictine, & Hot Sauce (unmixed)" Yumm... Next time i will go over nesting some other Adaptive families into this rig for some (more) real excitement!!!

No comments:

Post a Comment