How do I find a direction and a value of AreaLoad from its 3 ForceVectors?

Anonymous

How do I find a direction and a value of AreaLoad from its 3 ForceVectors?

Anonymous
Not applicable

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?

 
0 Likes
Reply
Accepted solutions (1)
957 Views
10 Replies
Replies (10)

jeremytammik
Autodesk
Autodesk

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...



Jeremy Tammik
Developer Technical Services
Autodesk Developer Network, ADN Open
The Building Coder

0 Likes

Anonymous
Not applicable

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: 


Fz=0 and Fz=0.01Fz=0 and Fz=0.01

0 Likes

aignatovich
Advisor
Advisor

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:

area loads.PNG

 

area loads lookup.PNG

0 Likes

Anonymous
Not applicable

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:

AreaLoad2.png

 

0 Likes

aignatovich
Advisor
Advisor

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.

0 Likes

Anonymous
Not applicable

а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.

 

0 Likes

jeremytammik
Autodesk
Autodesk

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



Jeremy Tammik
Developer Technical Services
Autodesk Developer Network, ADN Open
The Building Coder

0 Likes

dragos.turmac
Autodesk
Autodesk
Accepted solution

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!



Turmac Dragos
Pr. SW. Engineer
0 Likes

Anonymous
Not applicable

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.

 

0 Likes

jeremytammik
Autodesk
Autodesk

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



Jeremy Tammik
Developer Technical Services
Autodesk Developer Network, ADN Open
The Building Coder

0 Likes