There can be 2 or even 3 directions of AreaLoad: ForceVector1, ForceVector2 and ForceVector3. But Revit always draws the AreaLoad as directed to one direction. How do I find that one direction? How do I find a value of that one-directed load, at least at RefPoint (points returned by GetRefPoint method) locations?
Solved! Go to Solution.
Solved by dragos.turmac. Go to Solution.
Thank you for your patience. Have you explored all its properties and parameters with RevitLookup? I have forwarded your question to the development team. Please hang on...
Yes I did searched with Revit lookup too, but could not find any appropriate parameter or method.
As far I can not understand the AreaLoad behavior. Here is an example:
I create an AreaLoad with 2 reference points, OrientTo=Project.
If I specify Fz=0, it does not draw load value and direction at all. If I specify Fz=0.01, it draws a quite big area acting in the plane of the AreaLoad. Please see the picture:
Hi!
You are absolutely right, first of all you should check "Orient to" parameter value. If it is "Project", then Z value is XYZ.BasisZ. If it's value is "Work Plane", then, workPlaneId is refered to SketchPlane element, you can retrieve normal, x and y vectors:
Thank you for your answer, but my question is not about the work plane.
I need to know how to calculate the average of ForceVector1, ForceVector2, ForceVector3 (possibly directed differently) and values of AreaLoad at its reference points. Please see the picture:
You can try this:
Find reference points position, using AreaLoad.GetRefPoint method, create a curveloop - first triangle.
Then to all 3 point add appropriated force vectors (you need to calculate it in model space, if Orient To is work plane), you will get 3 points again, make them to be a curveloop - the second triangle.
Then create a solid using GeometryCreationUtilities.CreateLoftGeometry method, then divide solid.Volume to the first triangle area. It will be the average of area load.
The second question (the value of area load at point) seems to be incorrect, at any point it is infinitesimal value. It has value (a force) at the desired square only.
аignatovich, sorry I don't understand the purpose of your proposal. What I want is two equations. Something like "the direction of AreaLoad is computed as ForceVector1 + ForceVector2 + ForceVector3" and "the value of load at reference point 1 is computed as ForceVector1.GetLength() even if it ForceVector1 and ForceVector2 are not parallel". By the way I feel these equations are right but I want Autodesk to confirm them.
Thank you, Alexander, for all your help.
I passed on the updates to the development team and still await a response from them confirming this.
Best regards,
Jeremy
Hi @Anonymous,
Your assumptions are correct. Internally, all three forces are being stored as vectors and their length is the actual force. Also, the direction of the load is a vector that, simplified, is (F1+F2+F3).Normalize() - this is not exposed.
I will ask for a request to add an API property the force direction since, well, it is only logical to exist. Also: do you consider necessary to get the plane that approximates the force distribution? It might be useful to find an approximation of force in point Z inside working plane as the distance between Z and the force distribution plane - given the forces decrease/increase in a linear fashion.
Hope this helps!
Dragos, thank you very much for your answer, this is exactly what I expected to hear!
It is a really good idea to add into Revit API proper info about the real direction of AreaLoad and its values at reference points. Of course, the info may have a form of "GetRealDirectionVector" and "GetForceDistributionPlane" methods. But at least we must have a comment how to get them from ForceVectors in RevitAPI.chm. Thank you once again.
Thank you very much, Dragos and Alexander, for the answers.
I summarised them for posterity on The Building Coder:
http://thebuildingcoder.typepad.com/blog/2018/01/areaload-force-direction-cmake-sdk-access.html#4
Cheers,
Jeremy
Can't find what you're looking for? Ask the community or share your knowledge.