Hello all, I am not quite if this is the right place to ask such question , maybe i should post this in api , but anyway,
I am actually trying to get the total length for all the ducts in a revit model, but while i am looking at some of the parameters in duct fittings', in terms of lengths some object got different type of length parameters , some of them got parameters such as length01, length02, length03 , and some object got parameter such as duct length 1, duct length 2, duct length 3,
in one case there are 16 length parameters for one single object , i am think that depands on the family of the duct fitting as well , basically i just wonder what are all those lengthS parameters stand for??or what kind of length they are refering to ???
Below is one of example.
Solved! Go to Solution.
"I am actually trying to get the total length for all the ducts in a revit model, but while i am looking at some of the parameters in duct fittings', in terms of lengths some object got different type of length parameters , some of them got parameters such as length01, length02, length03 , and some object got parameter such as duct length 1, duct length 2, duct length 3."
You can get the total length of straight Duct that exists in the project through the use of a Duct Schedule. Set the schedule to be sorted by "Size", and under the Sorting/Grouping tab, uncheck the box at the bottom for 'Itemize every instance". Then go to the Formatting tab and select "Length" and check the box for 'Calculate totals'. This will give you total lengths by duct size.
"in one case there are 16 length parameters for one single object , i am think that depands on the family of the duct fitting as well , basically i just wonder what are all those lengthS parameters stand for??or what kind of length they are refering to ???"
That multitude of parameters control all of the dimensional constraints of the model element and the lines. The more complex the family is, the more of these generic "Length" parameters there will be. It will also be incosistent depending on where the family came from. If you open the family, you'll see all of the dimensions and they will be labeled with the name of the parameter they are tied to.
Welcome to the Autodesk forums, FabZico!
Feel free to post any questions you may have! There are many experienced users here who generously contribute their time and effort to supporting
their peers. This is an open, peer-supported forum, so feel free to contribute any useful information or experiences to any of the topics you see here.
We hope you'll stick around a while and help strengthen the value of this community!
Be sure to review the Ground Rules, visit the FAQ Forum, and use the Search feature prior to posting a question, as it's likely been asked before.
Thanks for your reply CADastrophe,Thats helps alot.
basically what i am trying to do is to write an API to get the total duct length in a revit mep model, which included all those straight Duct and Duct fittings, and the main issue is on Duct fittings,
while you are saying the Lengths parameter is to control "the dimensional constraints of the model element and the lines" that make so much sense as well, since some of them are adjustable and some don't, i suppose with particular duct fitting families, for each of those parameters there is a uique fomula behind it, let say when the modeller change one of the parameter they will calculate the scale\lengths parameter of the object.
I tired to look at some families in MEP, but can't quite see those parameters labelled on the family model, does it require some button to click on to, in order to display those labels???
Hmmm. I know that Conduit calculates the total length of the elbows when one creates a Conduit Run Schedule, but I see no such convenience for Ducts. I would definitely head over to the Autodesk Revit API forum.
Regarding the dimensions in the families, some of them are obvious and constrained to Reference Planes/Lines, while other are hidden within the extrusions and model elements. While creating an extrusion, you can dimension the sketch lines and when you're finished, the dimension are invisible until you edit the extrusion.
The information you are looking for is probably not readily available for most fittings... so trying to determine what parameter means what is probably not something that will help your effort... even if you could identify the desired length for some fittings, there is no guaranetee that a similar fitting will have a similar parameter.
Havining implemented in another application something similar to what you are doing, I would suggest that you approach it a bit differently.
In the tool I worked on, it was sufficient to determine the length through an elbow by determining the point at which the two connectors would intersect if they were 'projected' into the fitting (the 'ProjectionPoint'). One could then estimate the length by 'extending' each of the connecting ducts to this point. This would be the 'center line' length for a mitered duct fitting... but for a radiussed fitting, would be slightly longer than the actual length... is that a suitable estimate for your needs?
If you have an elbow-to-elbow connection, you may be able to estimate the length based on the length between connector to projection point, then from projection pont to projection point, and finally from projection point to connector. (sketch this out by hand, and my description may make more sense). If you need the actual 'centerline path' i.e., through mitered elbows, swept elbows, etc, expect to spend a lot more time trying to interpret the geometry in the families.
Similarly, you could 'simplify' tees, crosses, taps, and other fittings.
Does that help?
Thanks for your reply martin, ofcos it does help
I believe for your projection method, it is best to solve those Tees , been thinking so long of how to solve those.
I've also been thinking of 2 ways to solve the current issue,
one is to understand all the families and determine a specific formula for each of them,after understand that those families could be unconsistant, and i agree with Martin that such method is not the best option to solve duct fitting issue,
2nd one in my mind but still not started to writing it yet cos I am still choosing the best option, (ofcos wasted some time on understanding the parameters) ,it is simular to your projection method but little bit different, ( if it is possible can you send me more details on projection method in terms of api coding ) since i didn't know there is a method such as projection can be used, below are the steps and method to determine the elbows' length :
First is to determine the red intersection point then calculate the distance between the yellow mid point and intersection point (A and B), i believe for elbow, A, B should be always equal,
after calculating A and B, then we try to get the angle of the elbow ( this case 90 degree)
then by using 2 pi A * angle/360 should be equal to the length.
even such method is able to get a accerate duct fitting length, but there are still some cases which I am still stuck with such as the following Wye:
Hello FabZico... as far as projection, I was just referring to using vector math to find the intersections of the connections... there are no special methods that I am aware of, but there may be some vector math libraries that are generally available that may help.
The assumption that at an elbow the distances from the connector to the 'center point' will be equal isn't necessarily always true. A reducing elbow (1) won't have this case.. similarly, some duct fittings may have a longer length on one 'leg' than on the other. the approach is interesting... however, as you can see in (2) below, may actually come up shorter than the 'average' path... the green line is using the method you proposed.. the orange line is using the project-into method... and the red-line is probably what some may consider 'average'. In the application I had worked on, the accuracy wasn't critical, and simplicity was a necessity... so the 'orange path' is what was used.
(3) basically shows the same method applied to the tee. The red lines indicate the 'projection', the green lines indicate the 'true' duct path, and the orange line represents the 'projected' duct path. You can see there is some 'error', but depending on the application, it may or may not be critical.
Thanks Martin, you are correct, and reducing elbow is one of the issue that i missed out, thanks for pointing that out,so A is not always equal to B, A is equal to B only if the in and out length of the elbow is equal, for my method, an additon in-and-out length check will be required.
For the case 2 issue that you point out, for my application, below average is not acceptable , therefore my method cannot use it in such case direct, but still i believe my method should help to get the red path length, what required is to get length,mid point of the blue line that i drew below, but for this moment i am not quite sure how to get those yet to be honest lol, but anyway, one we get that red length, then we add those yellow length should be able to get a quite accerate length of this elbow.
for my application, since it is more like a measurement tool, therefore accuracy is important, I believe martin your projection method sugguestion should also be quite accurate as well, since the conner length different should still be very small compare to the total length and should be acceptable.
I guess what I would do is to try and use your projection appoach and see if my method can some how increase little bit of it's accuracy, and thank you so much for your help martin, i really enjoy the discussion with you and its really interesting.