PDA

View Full Version : RAC 2009 - Scheduling & Calculating Linear Length of Curb



designviz
2009-09-03, 08:23 PM
I created a curb using a Swept Extrusion, and now I would like to Schedule this and get the Linear Length of curb? However, all I seem to be able to get is SF and CF, but not linear length. The curb has a filleted top and so I would think creating a formula to somehow derive it from the SF and/or CF would be fairly involved.

Is there a better way to create the curb itself, such that the Linear Length could be scheduled? I need the curb to be able to have straight as well as arc'ed segments and ideally be able to respond to actual grade conditions as well.

Any suggestions?

twiceroadsfool
2009-09-03, 08:38 PM
There isnt a good answer for doing all of that in Revit.

But, if you have a Sweep (Im assuming you meant a sweep when you said swept extrusion) and have the volume, just create a calculated value in a schedule of the appropriate family catagory, that is the Volume divide by the Area of the profile. That would be the Linear Length.

Line based Generic Model families CAN schedule Length (Shared Parameter LENGTH=length), and do so very well. They TECHNICALLY only go in straight lines, but thats a misnomer, as long as you spend ten minutes to write out the geometry formulas. (your straight line becomes the chord, and it makes the arc.) Its all doable, and its not realy that difficult. If you search through the old posts in my blog, youll find all the formulas already done, too.

Following terrain is ugly. There are a few nasty workarounds to it, but by and large you cant do it. At least, there isnt a solution that im enamored with.

cliff collins
2009-09-03, 08:46 PM
It's called ( unfortunately ) Civil 3D..............

I agree, Revit's Site Tools are really just not designed to handle curbs that conform to topography. I have made this a Wishlist item several releases ago--and the Site Tools
have been neglected in liue of other stuff--Conceptual Massing, Mental Ray,Ribbon, etc.
all good additions, IMHO.

I even started a controversial thread about "Revit Site"--a theoretical separate software
package which could be purchased separately from RAC. The response was astonishingly
not in favor--I still think it would be a great option--REAL Site Tools, unencumbered by the
Architetural code, in an independent "plug-in" or standalone product.

But that's what I get for thinkin'.....................

cheers...

designviz
2009-09-03, 09:09 PM
... just create a calculated value in a schedule of the appropriate family catagory, that is the Volume divide by the Area of the profile. That would be the Linear Length.
...

Yes I did mean a sweep. The only issue I can see with the calculated method noted above, would be if I had different curb types, and thus the profile areas would differ. However, in my case I do not so I will put that aside for now, and give your method a try.

I had considered the line based idea, but was initially put off by the straight line "limitation." I will re-explore after reviewing some of your old posts and see if it could work for me.

designviz
2009-09-03, 09:17 PM
I personally would like to see a Revit Site app as you describe. It seems there is always a sub-set of civil tools that architects and land-planners need access to without the full-blown app. This seems to be regardless of platform since I often encountered this in the Bentley world as well.

So I would encourage you to keep thinkin', perhaps there would be a third-party developer or perhaps a Adesk reseller that would be interested in developing such a utility.

My personal motto: If you don't think and you don't ask questions, you don't learn, but you'll probably often act like you know everything :)

t1.shep
2009-09-03, 09:59 PM
Line based Generic Model families CAN schedule Length (Shared Parameter LENGTH=length), and do so very well.

When you do this...does your shared parameter also need to be instance, and not a type parameter?

twiceroadsfool
2009-09-03, 11:57 PM
Yes, it has to be an instance, since its driven by an Instance. Youre really only doing it because they made the system parameter "Length" unschedulable, for whatever reason.

But i use these for tons of things, straight and curved alike. Obviously in a curved one, Length /= length, but it ='s a derivation of Length.

Things i use them for: All kinds of casework families, Shelving, repetitive elements that equally space (brackets, sun shade supports), repetitive elements that truncate (dentil moldings, Rows of Lockers), things like Floor thresholds, floor transition covers, Fascias and Cornices that dont work with Wall Sweeps, and on and on.

twiceroadsfool
2009-09-03, 11:58 PM
Sorry, that isnt correct. I may be wrong, and a type may be driveable by an instance (and just not vice versa, or it may BE vice versa), but regardless... It has to be an instance. Since all of your objects vary in length, lol.

Scott Womack
2009-09-04, 10:13 AM
Sorry, that isnt correct. I may be wrong, and a type may be driveable by an instance (and just not vice versa, or it may BE vice versa), but regardless... It has to be an instance. Since all of your objects vary in length, lol.

An Instance parameter can be driven in whole, or in part by a type parameter.

A Type parameter cannot have any instance based parameters anywhere in any formula driving it.

twiceroadsfool
2009-09-04, 11:59 AM
An Instance parameter can be driven in whole, or in part by a type parameter.

A Type parameter cannot have any instance based parameters anywhere in any formula driving it.

Right, that makes sense. i shouldve thought about nested door panels. Panel width is an instance, drive by Door Width (type). It was late, i was cranky. :)

designviz
2009-09-04, 02:03 PM
While we are the subject of what can drive what and hopefully no one is cranky :) can you clarify if my understanding is correct...

Parameters can not drive or be used directly in a dimension within a project file, correct?

Why would I want to do this you ask... See attached image for reference. We do a fair number of preliminary warehouse design projects and therefore would like to create a few Shared and/or Project Parametrs: bldgWidth, bldgDepth, bayWidth, bayDepth. I would then like to use these within a Project, not Family, file, to establish the overall building and typical column grid spacing in relation to a few ref planes, and then align other geometry accordingly to these. Ideally, I would then further like these to show up in a schedule somewhere. This way in the early stages by adjusting these parameters we can get the overall building to respond as well as assuring that the tabular data is in sync and does not require user entry. I am not saying we would not need to verify this data.

I did try to create an in-place family, but that got a bit to weird too quick, that I did not feel it was really an appropriate or efficient method.

Is this just ridiculous crazy talk or is it partially or wholly possible?

designviz
2009-09-04, 02:11 PM
PS also attached is a reduced Revit model you could possibly use and repost with any of your recommendations, thanks.

twiceroadsfool
2009-09-04, 02:25 PM
Its been asked about and discussed with the Factory on several occasions. Right now you cannot do it in the native Project environment.

You can in Conceptual Massing, and in (obviously) the Family editor. If you make Masses or Generic Model Families, you can then use the Wall-by-Face tools to make these drive the model, and then the parameters are schedulable (If theyre Shared Parameters) and driving the geometry, but its not as seamless as switching a dimension to a parameter, in the project environment.

Digital Project does it, and it IS really interesting. When you can parameterize native dimensions INSTEAD of families, it lets you do a lot of really interesting things... Most of which are still possible without it, but you certainly have to work hard for it.

+1 for wanting parameters in the Project Environment...

designviz
2009-09-04, 02:31 PM
How would I get some traction with a request like this. Can I send this to the Factory for consideration, and if so, how?

Scott Womack
2009-09-04, 02:43 PM
How would I get some traction with a request like this. Can I send this to the Factory for consideration, and if so, how?

You can post it in the Wishlist forum, you can file it as a support request.

I don't see this happening soon. Although we feel it is a "simple" request, it probably requires a huge rewrite of the Revit database to achieve. That said, there are a series of ways this could be approached, and possibly in effect achieves. Too many ways to think about this instant. Maybe I'll let it percolate a while, and then let you know.

Some sort of model based family, with shared parameters is the first thing that comes to mind.

Good Luck!

designviz
2009-09-04, 03:46 PM
Percolate away :)

My only hesitation with the whole family idea, and why I ended up abandoning it, is I do need to punch doors, etc in the walls. This is why having parameterized native dimensions parameters directly in the Project Environement, INSTEAD of just families would be so beneficial, and as Aaron eludes to, so powerful in its potential when then put in the hands of creative users.

Many claim Revit has revolutionized the industry, I personally take some exception to that, but if it is to continue to be seen in such a light then Revit needs to continue to push the envelope and that may require some redesign or it will stall. We as users can and should only have to put up with so much "well that is just the way it works" responses for so long. As great as the conceptual design tools are in 2010, there are still some basic productivity enhnacements that have not been addressed in many relaease cycles.

For instance here is another one, that I am sure has been requested before... how can I get a simple area measurment? The measure tool seems to only want to measure lengths. Case in point, my curb profile. How can I get the application to tell me the area of the profile? From what I can tell, I can't. Somewhere the application has had to figure it out thought in order to determine the total SF and CF, however, I as a user do not seem to have any access to that Building "I"nformation. At least provide a Measure tool that will allow me to Sketch/Trace around to get the area of something, or just space if I so choose. Furthermore, allow me access to that tool, whether I am in a Project, Family or defining a roof or sweep. Most CAD apps have had such a tool forever. Why? Because it was neat so they just threw it in. No, because users need such a tool.

twiceroadsfool
2009-09-04, 05:59 PM
You missed an important part of how i told you to do it. Make a family that is a Generic Model or a Mass catagory Family. It can have a parametric Length, Width, Height. Then apply WALLS BY FACE to it.

What that does, is it means when you flex the size of the Mass, you can then use the "remake" tool, to auto-update the walls/roof, etc. And you can host doors in the walls, as they are actually Revit Basic Walls.

Its not ideal, and the constraints dont work as perfectly as they would in Native Project environment, but for Complex geometric and parametric shapes, its workable. :)

designviz
2009-09-08, 09:22 PM
Line based Generic Model families CAN schedule Length (Shared Parameter LENGTH=length), and do so very well.


I went ahead and created a line-based generic family in which I created a profile and extrusion by it's parametric length, I then changed the Family Category to Site (see question below*), created a shared parameter for the curb length, and then within the family itself set this shared parameter, shr_Length, to be equal to the Family Length parameter.

I then added the shr_Length parameter to my Site schedule. Does that all sound correct?

With regard to dealing with arcs, I presume the blog post you are referring to are three posts from Oct. 20 - 24, 2007 regarding Trig, Revit Parameters and scheduling, correct?

* Am I correct , that when creating a new schedule there isn't a category for Generic Models? Why is this? Can't I schedule such items and get counts, etc., and if so, how if there is no category?

twiceroadsfool
2009-09-09, 12:27 AM
I went ahead and created a line-based generic family in which I created a profile and extrusion by it's parametric length, I then changed the Family Category to Site (see question below*), created a shared parameter for the curb length, and then within the family itself set this shared parameter, shr_Length, to be equal to the Family Length parameter.

I then added the shr_Length parameter to my Site schedule. Does that all sound correct?

With regard to dealing with arcs, I presume the blog post you are referring to are three posts from Oct. 20 - 24, 2007 regarding Trig, Revit Parameters and scheduling, correct?

* Am I correct , that when creating a new schedule there isn't a category for Generic Models? Why is this? Can't I schedule such items and get counts, etc., and if so, how if there is no category?

Yeah, its all there in the trig posts. Its a little sloppy since we were in the midst of doing it all, but all you really need to take away from them, is that image with the formulas of the circles. Your "Line Based Families 'Line'" is going to be the chord. Then with a set of formulas, its going to make a sweep that is the Arc. pretty standard stuff, really.

You are correct in that you cannot make a new schedule for Generic Models, but they dhow up under Multi Catagory schedules. Really, its the same thing. Generic Model is (unfortunately) a catch-all for things that Revit doesnt have a catagory for, and it SUCKS that we cant make catagories.

Heres the silver lining: Even if you could schedule GM's, it would schedule all the other c_ap that gets built as Generic model families. Soooooo, you have to Filter the schedule (whether Multi Cat or GM (if it existed, which it doesnt)).

Fortunately, you gave yourself an easy Filter (which you just learned how to use). Set up a Multi Catagory Family, and include your Shared Parameter shr_Length. Then, in the Filter, set it to that parameter and filter by "parameter exists." then, everything else will go away,

Word to the wise on that front, name the parameter something else. And avoid dashes. The reason i say name it something else, is make it something unique ONLY to that family, so you dont end up with more than one LB family using shr_Length. Cuz if you have that, the filter wont work...

designviz
2009-09-09, 02:51 PM
I had considered shr_curbLength, but then thought, shr_Length would be more universal, but I think I understand your cautious logic, and will reconsider this.

Some additional clarifications before I get down and just try doing this... if I understand you correctly I will not actually be modeling an arc with my line-based curb family, but rather just drawing a straight chord, and then virtually calculating the arc, and putting this into a parameter I can schedule. Is that correct? If not, then how do I "bend" the ref line used as the defining line in my line-based family, and actually get it to graphically show as an arced curb?

In creating my line-based family if I apply your parameters as you have outlined would I be able to use the same family for both my straight and arced pieces, or would I be better off using this family just for my arced segments?

twiceroadsfool
2009-09-09, 04:38 PM
Negatory... You WILL be MODELING the arc'd curve, yes. But youll be doing so by Drawing the straight Chord segment, as LB Families cannot draw curved segments. You will draw a straight line, it will Model an Arc springing from those endpoints. It WILL make putting them in cumbersome, but its workable if you are heck bent on using Revit for Site stuff and scheduling it all.

Can you use the Same Family? If you *really* want to you can, but youll have to build in a bunch of other parameters to go back and forth. Reason as follows:

An arc isnt straight. It can never be straight, so it cant be the straight segment. Now you can make this family with a straight segment AND an arc segment, and then have a yes/no parameter to toggle back and forth between the two, but IMHO its not worth it. For several reasons.

1. The straight segments will still be churning to calculate the arc length, even though the arc isnt there.
2. You will now need another parameter for "Length to total" which will need an If statement telling it whether it should use LengthChord or LengthArc, based on the yes/no parameter.
3. Its of such little benefit that you might as well make them seperate.

BTW, bear in mind this solution really isnt addressing how you deal with topography. As i stated earlier, there isnt a grand solution for Revit and sitework. You can define a slanted workplane to put these families on, but its still not going to bend in two directions. Its bottom is always going to be *flat*, even if its flat on a plane. It can get you close, but its not a site solution.

EDIT: The cautious logic is this: It wont matter when you only have the curbs. Then a week later, when you make another family to schedule, and go to use shr_length, the Filters in the schedules checking for that parameter to exist will pick up BOTH families. Then youll need to rethink the filters.

Keeping the SP's seperate (i even keep them in seperate groups in the SP text file) eliminates that problem. After all, all Lengths are not created equal.

designviz
2009-09-09, 06:29 PM
I am happy to hear that, but you may not be :) I apologize to keep bugging you, but you seem to know what your talking about, though it may take me several rounds to get it to sink in.

I am still fuzzy on some of this, but I will see if I can knock some screws loose and get my head around all this.

Right now the topography is not a major concern for me and I certainly understand that it were an issue, a true civil type package may be the better route to go.

One simple question I do have, is it necessary when exchanging .rvt files to provide my shared paramters file, or are they essentially embedded in the file once used, like many other items in Revit?

twiceroadsfool
2009-09-09, 06:47 PM
Once theyre in the project theyre in the project, but you have to put them in the project, not just in the Family. Does that make sense? :)

designviz
2009-09-09, 08:59 PM
Yes that does make sense. Hey, I may actually have gotten somewhere with all this...

Attached herein are the two families I created for this endeavor as well as a project file with some of these placed and a schedule showing the calculated length.

None of this would have been possible, or at least it probably would have taken considerably longer without your coaching and mentoring, and I am grateful for both.

Based on some other recent family development I decided to put in a conditional if statement to deal with the case where the radius becomes <= 1/2 the chord length and in turn results in half_theta becoming 90° which the program does not care for and avoids it just throwing up the wonderful "remove constraints" dialog :)

Some additional questions I could use some insight/recommendations on:

1) Now it would be nice if I actually could at least do a full 180° semi-circle arc, so any thoughts...

2) If you look at the 3D view it sure would be nice if there were some way to cleanup the intersections of these elements, but the Join Geometry tool does not seem to apply :(

3) I made the curbWidth, curbHeight, and curbRadius parameters instance parameters in the hopes of being able to change these on the fly, but perhaps that was to much to ask. Right now any adjustments to these within the project file has now effect. Perhaps I just need to do them in a slightly different way, or by creating a separate profile family and using it within the curb family...

4) I created the calcLength parameter in the schedule because it would not let me calculate a Length value by a currency value :( I also was not sure how best to handle rounding, since for these calcs the nearest inch or even foot would be sufficient. You can see two different ways I tried to deal with this in the schedules. Obviously if I were to actually use the the integer values as shown in the instance schedule I would not show the foot-inch field at all to avoid confusion, but included it here for illustration.

twiceroadsfool
2009-09-09, 10:12 PM
I apologize, i wont have time to look at them tonight. Im swamped at work, and my old home machine isnt in 2010 yet, while im waiting on the new one. Here are a few comments though:


Yes that does make sense. Hey, I may actually have gotten somewhere with all this...

Attached herein are the two families I created for this endeavor as well as a project file with some of these placed and a schedule showing the calculated length.

None of this would have been possible, or at least it probably would have taken considerably longer without your coaching and mentoring, and I am grateful for both.

Based on some other recent family development I decided to put in a conditional if statement to deal with the case where the radius becomes <= 1/2 the chord length and in turn results in half_theta becoming 90° which the program does not care for and avoids it just throwing up the wonderful "remove constraints" dialog :)


This is a current issue that comes up with building Revit Content. Using some crafty IF statements, you CAN make it unbreakable... In that it can throw up a warning and replace the impossible value with the lowest possible value, but it turns out to have very little ROI. (For instance, if im making a shelf that i know cant be purchased in pieces less than 2 feet, i can tell if the LengthActual "if (Length<2'-0", 2'-0", Length)" and no matter what the user puts in, it wont drop below two feet. Joking around i even made one that flagged another yes/no parameter that made a piece of model text visible that said "impossible, dummy!" but i digress. The remove constraints thing happens when a family "breaks." I am still begging for a system like Digital Project, where everything turns red and stays in its current form, but nothing breaks or gets deleted. Itll probably never happen.


Some additional questions I could use some insight/recommendations on:

1) Now it would be nice if I actually could at least do a full 180° semi-circle arc, so any thoughts...


Ill have to look at your actual families when i get a chance, unless someone else here has time. But you CAN do a full 180 degree half circle. I think thats what mine was in the blog post.



2) If you look at the 3D view it sure would be nice if there were some way to cleanup the intersections of these elements, but the Join Geometry tool does not seem to apply :(


Yeah, it would be nice if they cleaned up, particularly for rendering. But i like that it calculates lengths, and in the interest of the I in BIM, id rather have the lengths than the pretty picture. I suppose they shouldnt have to be mutually exclusive, but i digress, you have a few options.

1. Deal with the messy joins.
2. Build in mitering yes/no visibility parameters and/or constraints to chop off the ends. But before you venture down this road, ask if its REALLY worth the time.
3. hack together some system of using these families for the calculation with an inplace sweep in the model environment that uses the reference lines as picked-path. Sounds ****** to me, i wouldnt do it. LOL.

twiceroadsfool
2009-09-09, 10:12 PM
3) I made the curbWidth, curbHeight, and curbRadius parameters instance parameters in the hopes of being able to change these on the fly, but perhaps that was to much to ask. Right now any adjustments to these within the project file has now effect. Perhaps I just need to do them in a slightly different way, or by creating a separate profile family and using it within the curb family...


Make it easier on yourself... Load a Profile Family in to those Families... Then you wont have to keep changing all those values. :)


4) I created the calcLength parameter in the schedule because it would not let me calculate a Length value by a currency value :( I also was not sure how best to handle rounding, since for these calcs the nearest inch or even foot would be sufficient. You can see two different ways I tried to deal with this in the schedules. Obviously if I were to actually use the the integer values as shown in the instance schedule I would not show the foot-inch field at all to avoid confusion, but included it here for illustration.


Im not sure what youre saying here, cuz i havent had a chance to open them. But im ASSuming youre trying to calculate cost based on cost per linear foot. So heres what you do:

You have "shr_Length" or whatever.
Then you also include Cost. Cost is your dollar per Square Foot.

Then you make a Calculated Value in the schedule called "Total Cost."

In the Formula for Total Cost, you put: shr_Length*Cost/1'

Youll notice i divided the equation by 1 foot. That cancels out the units for Length. Its stupid, but necessary. Think about it. Youre multipling Feet*dollars, which gives you the unit of Feet-dollars. You need to divide by Feet to get back to dollars.

It all works.

Rounding.... Whatever you like. :) Rays rule for precision: Measure with a micrometer, mark with chalk, strike with axe.

Call it even inches and be on your way. :)

designviz
2009-09-11, 02:18 PM
I apologize, i wont have time to look at them tonight. Im swamped at work, and my old home machine isnt in 2010 yet


That's fine, billable work should come first :) Actually, I am only on 2009 myself.



I am still begging for a system like Digital Project, where everything turns red and stays in its current form, but nothing breaks or gets deleted.


That sounds like a very reasonable way of handling such conditions. I like it. Rather than begging, perhaps submit it to the Wish List.

You know as wonderful as all this trig stuff has been to apply and see my geometry actually respond to it, it is personally not what I feel we as users should really be spending our time with. I feel the brainiacs at Adesk should do some of this thinking and allowed placing line-based families using the full complement of lines, arcs, and circles like other tools, ie walls which have similar behaviors and constraints to line-based families. FWIW, I went ahead and submitted this to the Wish List, has not be posted yet, but I did get confirmation that it was flagged as Wish ID: 1743.



1) Ill have to look at your actual families when i get a chance, unless someone else here has time. But you CAN do a full 180 degree half circle. I think thats what mine was in the blog post.


As far as I could tell you did not ever deal with a full 180° half circle, and whenever I do I get the error...



2) you have a few options.

1. Deal with the messy joins.
2. Build in mitering yes/no visibility parameters and/or constraints to chop off the ends. But before you venture down this road, ask if its REALLY worth the time.
3. hack together some system of using these families for the calculation with an inplace sweep in the model environment that uses the reference lines as picked-path. Sounds ****** to me, i wouldnt do it. LOL.


:( Well, I personally don't think these should be mutually exclusive. BIM should not require ignoring and not properly visualizing the design. However, I understand in the current state why this is and I will have to present these options to some others and see what they want to do.



3) Make it easier on yourself... Load a Profile Family in to those Families... Then you wont have to keep changing all those values.


I determined my problem was not actually having the profile sketch lines properly aligned and locked to my ref planes. It all works now with my instance values in the project able to drive the shape of the curb.

However, I did try the Profile Family route, but got into a bit of a snag. In my LB family I created a variable curbProfile as a Family Type: Profiles, Parameter type. Although it allows me select my various profiles all day long, it never actually swaps out the profile itself and regenerate the extrusion.

If I edit the sweep directly in the family and go to its properties I can change the Profile selection there, and then it responds correctly and regenerates the proper extrusion. Unfortunately, though many of the parametrs in the sweep properties can be associated with other parameters, the Profile selection is not one of these.

Perhaps I am missing some connection here, but not sure what it is. I could repost these files if you think that might help.



4) In the Formula for Total Cost, you put: shr_Length*Cost/1'

Youll notice i divided the equation by 1 foot. That cancels out the units for Length. Its stupid, but necessary. Think about it. Youre multipling Feet*dollars, which gives you the unit of Feet-dollars. You need to divide by Feet to get back to dollars.


Yeah, I eventually figured that out, I just took the Beltway rather than driving straight through the city to get there :)

twiceroadsfool
2009-09-11, 03:07 PM
You know as wonderful as all this trig stuff has been to apply and see my geometry actually respond to it, it is personally not what I feel we as users should really be spending our time with. I feel the brainiacs at Adesk should do some of this thinking and allowed placing line-based families using the full complement of lines, arcs, and circles like other tools, ie walls which have similar behaviors and constraints to line-based families. FWIW, I went ahead and submitted this to the Wish List, has not be posted yet, but I did get confirmation that it was flagged as Wish ID: 1743.


Long post, and id love to reply to it all, but im buried.

But wanna get really annoyed? Go download the RST trial. They can draw a K series bar joist Framing Member (basically a Line Based Family), and they can use arcs. :(

But furthering that discussion, its not really a new BIM topic, so much as a topic for the state of the industry. Im sure when CAD first came around people were thinking we shouldnt be spending our time fussing around with Layers and Dimstyles and Text sizes and on and on... Its a byproduct of us wanting to excel with the tools weve been given, until manufacturers and software developers alike get a QUALITY set of content together for us to use.

Tables are a great example. Our interior designers use Boat Conference tables a lot. With chairs up and down each side. Which means an array of chairs in an Arc. They also change the number of chairs based on the project needs and size of the table... Which also changes.

So theres a few choices:

1. Have them draw it (and not see it when clients ask.)
2. Have them in place model the table and place chairs manually. (And replace, and replace when the design changes).
3. Have them constantly hit Edit Family to make different sizes and variations. (and keep replacing the chairs in the family).
4. Have the table and chairs be parametric, and bust out your geometry hat for a few hours while you make it work.

Did it take a little while to build? Sure. But now the designers have the options they need, and THEY dont need to get constricted by the software.

I am sympathetic to Autodesk Factory though. Wouldnt we all love to have every item under the sun perfectly flexible? Of course. But realistically, how much could we expect them to have built, and to whos standards? Im not saying i disagree with you at ALL, just wondering who makes those calls.

designviz
2009-09-11, 03:24 PM
1) Ill have to look at your actual families when i get a chance, unless someone else here has time. But you CAN do a full 180 degree half circle. I think thats what mine was in the blog post.




As far as I could tell you did not ever deal with a full 180° half circle, and whenever I do I get the error...


Sorry, hit post too soon. Anyway, here is an example trying to place a 180° half circle arc:

Length: 6' 0"
Chord = Length: 6' 0"
Radius: 3' 0"
T = sqrt((calcRadius * calcRadius) - ((Chord * Chord) / 4)): 0' 0"

Half_Theta = asin((0.5 * Chord) / (calcRadius)): 90.0°
Theta = Half_Theta * 2: 180.0°
Proportion = Theta / 360°: 0.50
Arc_Length = (2 * 3.1417 * calcRadius) * Proportion: 9' 5 13/128"

Given the above conditions I get a "Constraints are not satisfied" which expanded looks like this:

2 Errors (must be addressed in order to continue)

- Constraints are not satisfied
- Error 1
- Dimensions : Radial Dimension Style : Default radial style : id 3484

- Constraints defined by highlighted Lines and Dimensions can't be satisfied.
- Error 2
- Lines : Model Lines : id 3466
- Dimensions : Radial Dimension Style : Default radial style : id 3484

Error 2 can be effectively ignored, it turned out to be caused by an extra model line I still had in the file that was not actually needed. However, I am still not sure how to resolve Error 1. When I click Show it displays the attached image, "Constraints not satisfied - Error 1 - Show.jpg," which really tells me nothing. However, I am now wondering if my Ref Line (as best I could determine based on your images in your blog this would have been what you used) which I placed to dimension the various angles from, was either the wrong way to go about it, or perhaps it has become overly constrained. Please see attached image, "possibleoverconstrainedRefLine.jpg." Also, note angle circled in red, it is taken from the horizontal rather than the vertical as is Half_Theta, and therefore could be part of the issue.

twiceroadsfool
2009-09-11, 03:30 PM
If i remember ill try to DL the attachments and look over the weekend. Or ill find one of mine that works at 180 degrees and post it...

designviz
2009-09-11, 03:36 PM
I understand, appreciate and want to respect your time. if you could give a look to my most recent post which just crossed with yours, this is my most critical and current pain. If you have a look, I am sure I just missed something in the original layout and framwork for the family.

To your other point I agree some development has to fall into the hands of the user, but the fact that walls can be placed along arcs and as you say, so can bar joist, all of which are similar to line-based families, then in essence there really isn't anything new to be developed, just plug in the proper modules of the existing code, and reap huge rewards from happy users who can move on to bigger and better things. It could be almost equivalent to the WOW effect of the Conceptual Design tools in 2010, but applicable to even more folks in the trenches of production work.

designviz
2009-09-11, 03:37 PM
Great, thanks. I will stay tuned.

designviz
2009-09-11, 06:35 PM
Aaron, actually don't worry about the angle thing, and instead enjoy more worthwhile pursuits this weekend :)

I got it worked out. After stripping out extra linework that was in the family as well as removing unnecessary parameters and a bit of other reworking of dimensions, etc, I now have a nicely flexing line-based arc curb family, see attached.

That leaves the only other nice-to-have being to out how to parametrically control the selecting of a particular external profile shape from within the project file. For now, I can make do with just changing the Profile dimensions, but ideally it would be nice to accommodate different curb type profile conditions. So if you or anyone else wants to take a stab at this in the next week or so that would be great.

Thanks, and have a great weekend.

twiceroadsfool
2009-09-11, 07:41 PM
AWESOME that you got tha angle worked out. Ill look at the Profile thing later if i can... Its doable, not sure why its not working...

designviz
2009-09-14, 06:12 PM
OK, I enountered a slight snag to all this and my previously posted family. Though workable, I am curious if there might be better solutions...

Given the attached Project file, TestCurb2.rvt, with the attached family, curb-line_based-arc-redo-workingRoudedEdge-profilePartiallyAligned.rfa, everything works well, and I can place any length arcs and then go in after placing and adjust the Radius up to and including 180° arcs, which is great.

However, you will notice when you adjust the width of the curb profile, nothing happens. I can adjust it's height and the radius of the profile. You will also notice though that by adjusting the profile radius it inadvertentally adjusts the total width of actual extrusion, however the width parameter does not change.

Now the only difference between the two families is that in the latter case I aligned the back side of the curb profile with my back Ref Plane, see attached image, Aligning Verticals Breaks Up Family.jpg (headline pun intended) for Reference. This Ref Plane itself moves just fine with all my adjustments, as does all the lines and geometry when flexing within the family itself.

What I have determined is that although my Length is being set as I "sketch" the line during placement, the Radius remains at the original value as defined in the family. The problem is as my line/curb gets longer I eventually create a case where the Radius becomes less than 1/2 of the Length which is an issue. In the partially aligned family above this did not seem to cause any apparent issues, presumably because the widths were essentially static. It was not until I tried aligning the back edge and making the width parametric that things started going amiss, presumably because after 180°, positive numbers become negative and the create all kinds of issues for my formulas.

Therefore, at this point I see the following options for dealing with this:

1) Go back to an earlier case and rather than actually directly using the Radius, use a calculated value that will guarentee the Radius is at least 1/2 the Length. Refer to the attached family, curb-line_based-arc-redo-RoudedEdge-tryingToAlignCurbProfileVerticals-calculatedRadius.rfa.

2) If I happen to know how long the line/curb is going to be ahead of time, then before actually start drawing the line, adjust the Radius accordingly. The problem is once I have started placing the line/curb I can not adjust the Element Paramters.

3) Deal with the odd graphics during placement, and then adjust after placement.

4) Set the Radius in the family to a very high value so in most cases it would rarely occur that line/curb is more than twice that length. Although this works, it means for curbs under 50' or so they will appear almost flat during placement.

5) Create an Options Bar set of parameters that could be displayed and accesable to the user during placement, with a Length field as well as a Recommened Radius field that is read only and calculated and a Desired Radius field that the user could key in different values.

6) Not sure if I can and did use an embedded profile family if that would help matters any.

Any and all of these with proper education and understanding are probably equally sound, however, I am personally starting to favor Option 1 the most and 4 the least, but am curious what others might think. Option 5 unfortunately I think is a long shot without actual API development.

twiceroadsfool
2009-09-14, 06:19 PM
Have the user put in "Radius," have the geometry use "RadiusActual," where RadiusActual is equal to "if(Radius<(Length/2), Length/2, Radius)".

It will basically say "Default to half the Radius unless the input value is greater than that." Of course, it wont warn the user, itll just do it...

I apologize, i still havent had time to open any of the attachments, lol...

designviz
2009-09-14, 09:03 PM
OK, thanks. Using an embedded profile family remains my last hurdle.

You can effectively ignore all previous attachments, and instead simply use the attached families as a starting point.

The three profile families, Curb-RoundedEdge.rfa, Curb-ChamferedEdge.rfa, and Curb-SquareEdge.rfa, have already been added to curb-line_based-arc-ExternalProfiles.rfa. Since the geometry itself differs I felt creating separate families would be better and more straight forward than getting fancy with visibility parameters and such.

Refer to the attached annotated image, ProfileSwappingIssue.jpg. Although I can change the Profile within the Element Properties, when placed as a family I do not have access to these parameters. I somehow need an Instance or Type parameter within my Family that will change this, but am at a loss as to how to accomplish.

twiceroadsfool
2009-09-14, 09:17 PM
LOL im not gonna lie, i cant get it to work either. Id have sworn i did it before with a Nested set of Profiles, but now im thinking im delerious.

It makes total sense that your parameter isnt working, since you cant Link the Profile Family of the sweep to the Parameter you made (theres no gray box to hit Equals on).

I really thought i had done it before, but alarms are going off in my head now. Particularly in that Profiles dont even HAVE a Shared option, indicating that Aaron wasnt paying very close attention. Cuz no Shared family = no update everywhere....

Thats what i get for reccomending the Profile Family, LOL.

designviz
2009-09-14, 09:26 PM
OK, too bad. Maybe in a future release...

designviz
2009-09-15, 08:27 PM
PS Aaron, in an effort to hopefully give you something back for all your assistance... I am not sure if you did ever figure this out, but one way to get a degree symbol in your formulas is by using Alt+0176. This works in most Windows applications.

You can see this and other key combinations by going to Start > Accesories > System Tools > Character Map.

Enjoy!

designviz
2009-09-26, 05:46 PM
Just a follow-up FYI regarding this item, if anyone is interested. I did eventually create a line-based curb for both straight and arced conditions, and pretty much left it as case closed. This gives me the linear lengths I need pretty well and is fairly easy to explain.

However, in the meantime I have been working dilengently on other matters, but interestingly enough, after taking a break from this and looking at it fresh with what I have learned recently even though not directly related I was able to repurpose some of that learning and stumbled on another method in just a few short hours.

Within my in-place family in the project which creates a multiple of lines and arcs, I sketched a masked region and kept it close to where the Sweep profile is, and I locked it to the sweep lines, so if they change so does my area. Now unfortunatly, I can just pass the masked area, area to my family parameters, but instead just had to create another parameter and added keyed in the value. Not as automated and free of human error as I would like, but workable.