Robot SA: Uniform Load on Contour, from Dynamo

Refer to the following series of Nodes wherein I’ve extracted analytical area loads (geometry and loading values, but clearly I can get any parameter associated with the analytical area loads) from a Revit model. You can see the outline of those areas, in the 3D preview background.

The next step is to get the geometry and load information into Robot Structural Analysis, as a series of new Uniform Loads on Contours. I don’t believe the existing Robot Dynamo package has such a function, so I suspect I will need to dive into developing this on my own? Correct me if I’m wrong.

Can anyone provide any comments on this topic?

image

I’m not quite sure what you’re asking…

The current package for Dynamo/RSA contain the possibility of making area-loads?

I do not believe “contour” loads are possible in the package available (only "Panel-loads)…

You should know however, by developing the nodes yourself you will not be able to use much of the package available as this uses custom objects and the calculation node will only work with these, therefore at a minimum you’ll have to create your own calculation node if you are otherwise coding directly to the RSA API.

Thanks Jonathan,

In other words: looking for input on this topic – if it is already done, and I can get some helpful nodes somewhere, or if there are going to be any particular challenges. I think you’ve identified the challenge I will face in using the Robot calculation package if I start developing my own nodes.

But to re-explain what I’ve done here:
In Revit, I’ve applied analytical loads to my building model, and assigned them some useful information that I’d like to take over to Robot.
In Dynamo, I’ve successfully extracted those analytical area loads (as seen above).
In Robot, these types of shaped loads can be applied to panels that aren’t the same shape by the Uniform Load on Contour load type.
Therefore, I need to figure out how to get the info I have now pulled into Dynamo, into Robot, as Uniform Loads on Contours (where the loading information goes to define the load, and the Element.Geometry defines the contour.
I recognise that Uniform Loads on Contours need a host panel in Robot, and I am not looking to extract the Revit geometry in this project. Therefore, I will likely need to input a base point from which to locate the area load Element.Geometry, to correspond with the panel geometry I already have in Robot.

Yea that would require you to code your own nodes in RSA :slight_smile:

But if you do not require this to be a fully automatic process you use the built in nodes to the extend they are useful and then code the rest up directly in the Robot API. If you have experience in C# I’d recommend using that over Python as the python integration to RSA is not documented in the SDK…

You should however be aware that there might be a unit difference in between your Revit and Robot (in my case a facor 1000 as my Revit is in mm and my Robot is in m).

But I can verify that it should be possible to perform this, and that adding to an existing model is also possible, but not with the packages currently available.

1 Like

Super, that’s the insight I was hoping for :slight_smile:

Marked as solved, because I think anyone else looking for this topic will find that a good answer. Leaving it open for anyone with further insight too.

Sharing some of the thought development / planning diagram. I am personally new to the step after Dynamo – i.e. generating a c# script to run from within Dynamo, which calls the active Robot application.

Referencing the Robot API manual:

The first program
The “robotom” library should be added to our project in order to allow the use of data types defined by Robot API (the name of “robotom” is an abbreviation for “Robot Object Model”).
To add robotom.tlb the following procedure should be carried out, depending on the selected programing environment:

  • in the Visual Basic environment: select an option from the menu “Project/References” and check the position:“Robot Open Standard (Object Model)” on the list of available libraries
  • in the VBA environment (for Excel, Word…): in the Bisual Basic edit window select the option “Tools/References” and check the position “Robot Open Standard (Object Model)” on the list of available libraries
  • in the Visual C++ environment: in the program code #import command should be used in the following way:
    #import “robotom.tlb” rename_namespace(“Robot API”)
    using namespace Robot API
    Note: instead of the name “robotom.tlb” it may be necessary to give the whole access path to the robotom.tlb.

I genuinely don’t mind just “diving in” and experimenting with some snippets of API code from the SDK manual, but I don’t know how to get to the point where I type code into a block in Dynamo, and it affects the open instance of Robot.

Have a look at this sample:

This is not mine but is available online as well… :slight_smile:

It includes a number of projects (I use Visual Studio Community for exploration) and the RSA Interop.

I can also link this in regards to effectively test and code in C# from Dynamo without having to relaunch revit+dynamo all the time…

https://forum.dynamobim.com/t/python-and-csharp-scripting-used-as-an-oop-environment/19867?u=jonathan.olesen

2 Likes