Saturday, October 20, 2007

Trigonometry, Revit Parameters, and Scheduling...

I do regret that there hasnt been much going on in the last month or two that has been worth mentioning in a Revit blog... Thats a byproduct of a few jobs being at the wrap up stage, and a couple others being pretty early on. I havent had to craft up many things... Until yesterday. :)

Someone in the office was tasked with finding a linear distance around an arc, where the arc was not a full semi-circle. Furthermore, scheduling said distance, around several windows. Now, recently, i know there have been several posts on AUGI asking for "list parameters," or parameters that are driven by the geometry, but dont inflict the gemometry. I suppose any parameter works, in that sense... As long as its formulated by other parameters, which is what we did here.

We started out here: Some basic formulas regarding chords, arcs, circles, etc. As we wanted to create a formula for a parameter that would derive the arc length, we realized we would need parameters and formulas to provide the necessary values to calculate the arc length. Distance "t" (length from the arc's springpoint to the arcs center point) would be necessary. Likewise, so would the Chord distance. We would need the central angle (Theta) of the arc itself. Obviously, we would need the Radius.

A few things worth mentioning:

As with all Revit families and formulas, we quickly realized that we didnt need all these for the calc. We needed them to constrain things. T, for instance. If you work your way backwards from our end result, the parameter for Length T is never used... But we had to constrain the Reference Lines endpoints to get angle Theta. To constrain them, we needed value T to adjust correctly with the radius and chord changes.

Parameter "360": We still may not need this one. But in a formula, i couldnt figure out how to type in "degrees" as a unit, so i made a static angle parameter, lol. Chime in if theres a way to type in a value like "35 degrees" directly in a formula, haha.

Parameter "CIRC": Well, this was stupid. Im looking at the notes now, and the purpose of CIRC was to establish the circumference, for use in "ARC LENGTH" but it looks like in haste, i simply typed in the formula for CIRC anyway. So CIRC was irrelevant at that point, but the point is, we needed the circumference, one way or another. (Also, yes, i know i GROSSLY estimated Pi, and i couldve used an actual formula to derive it to more accuracy, but cest la vie.)

In any event, we started deriving the formulas... Heres where i had to call in help: Mind you, i was a big math geek back in the day, and like to THINK i still am. You can see in the circle formulas (which i got from thanks for the page, its great!) that they derive arch Length as a fucntion of Theta (in degrees) times the Radius. Anyone else have an issue with this? I couldnt wrap my head around how i multiplied degrees and Length, to come up with a mathemtatical unit (besides degree-inch, lol). So i called in a favor:

My good friend Brian (last name with held)is a Math Specialist at a local school district. He happened to be out at happy hour with some other math teachers. So i got him to hand the phone around the Chili's bar, which his teacher friend (Secondary Education math teacher) reminded me that i would have to convert Theta in to a length, using Pi. More accurately, i could take Theta's proportion to the overall circle (360 degrees), and ise that proportion times the circumference of the circle (CIRC), and i could then get the "length" of the arc length.
In finished form, it looks so simple, as the formulas (obviously) make all the reference planes end up in such a fashion that it looks easy to obtain. Maybe it is for you, i dont know... This took a few minutes for me to figure out, i might be slow, haha.
This brings up a host of other Revit questions that we could discuss based on this issue though:
When deriving parameters for scheduling such things, you have to wonder how exactly such things get scheduled. I asked the individual who asked for help: "You want a linear length, but its an arc that has thickness. So obviously the length is different on the inner radius and the outer. This was particularly a question of interest to me, as my first attempt was based on a material takeoff: If i know the cross sectional area of the profile used (the casing profile), then i could simply get the material takeoff in Volume, and divide it by its area in the Project as a Calculated value. I did this, but the number seemed off. Of course, i dont know where such a calculation would place the length. The inside, the outside, or somewhere in between?
So how do we (as an industry) decide HOW we quantify, WHAT we quantify, and who and what will guide such arbitrary decisions? Obviously some of these decisions are based on the manufacturing principles, and how the manufacturers will want take offs... But even from a simple Revit perspective, how will you reign in everyone making such families, so that all calculations are consistant, if nothing else? Id LOVE your thoughts on the matter!
Pardon the typos and spellcheck. I biked here, and the sun is going down... Ill spellcheck this tonight. :)