I’m finding myself stuck on what I hope is just a simple logic problem for some of you.
To give a quick background I am working on creating a Revit to Dynamo to Robot workflow to allow for streamlined analysis that suits my needs.
One portion of my graph that I’m running in to trouble with involves managing the positional data gathered from concrete geometry. My current workflow is as follows:
Gather concrete surface data from Revit Dynamo and export coordinates to excel:
With the set of nodes I have in dynamo for robot I can successfully extract the coordinate data for element one by using the take every nth item node but I’m struggling to see how I can scale this process to handle an arbitrary number of elements.
I imagine I can use a python script to help things along but I am not much of a coder and got stuck when I attempted to do so.
Why not simplify things and move the geometry directly to Robot from Dynamo for Revit?
If you really need to push to an intermediate file, why not use a Data.Remember node and just open the graph in Dynamo for Robot after using Dynamo for Revit to push the data into the dyn?
if you want an in-between file so you can keep your Dynamo instances clean or use multiple systems, then ToSolidDef (or StringifyJSON if you’re in a newer build) and write to a text file in Dynamo for Revit and then in Dynamo for Robot read the text file and deserialize the solid def or JSON to get the full geometry?
Any of these will allow moving solids, surfaces, points, vectors, parameter values, and pretty much anything you can think of from the Dynamo for Revit instance to the Dynamo instance sending to Robot directly.
Thanks for the consistent responses Jacob, you’re the man.
I will definitely look into points 2 and 3 as they sound promising if I do need to go that path
As for point 1, thus far I have not been able to customize the link between revit and robot to suit my needs. My ultimate goal is to create analytical models of concrete shoring systems that are currently drafted in revit with generic models.
I’ve been able to successfully pull information from the generic models to build the analytical model in Revit but have two issues that are holding me up:
-I have been unable to automatically map custom analytical bar section types from revit to map to robot using the method described here, i am prompted to do it manually every time.
My thought was if I built the model from the ground up in the robot dynamo I could avoid these issues but you’re right that may very well be overcomplicating things. I’ll just have to pick my poison
This is still what I am advocating for. My thought for #1 was to connect Dynamo for Revit directly to Robot. Some direction (I haven’t tested this directly yet):
Open Robot and launch Dynamo, and go to your manage packages dialog.
Copy the path to the directory which has the Robot nodes in them. Should be something like this: C:\Program Files\Autodesk\Robot Structural Analysis Professional 2024\Dynamo\2.17\Rsa\package
Close Dynamo but leave Robot open.
Launch Revit open your project and start Dynamo.
Open your manage packages dialog in Dynamo for Revit.
Add the copied path to your packages directory.
Close Dynamo and then Revit (so the preference save).
Restart Revit, open your project and start Dynamo for Revit.
If this works then the RSA nodes should be in the library. This means taht if you launch RSA and open your project you should be able to interact with RSA from Dynamo for Revit just like you would from Dynamo for Robot.
For the time being I am going to start trying to access the Revit API through a dynamo python node to assign boundary conditions to specific nodes. If I were able to do this I would not need to build the model in robot at all.
This task has been discussed with limited success in these threads but I hope it will give me a decent starting point.
Additionally I’ve been gathering all of the relevant Revit API through Dynamo information I can find to set myself up for success. I found the Office Hours you held to be very helpful and I will definitely watch that one through a time or two more.
I greatly appreciate the time you’ve given me thus far and hopefully I’ll be able to develop my workflow without too many more questions
If you’re working on anything analytical in Revit you should severely discount any code or threads which predate Revit 2023 (so anything older than April of 2022) as the API change DRASTICALY for analytical content with that release.
Basically every class had complete changes in that release.
Great point, that makes a lot of sense since the analytical model is now independent of the physical model with those updates. I’ll try my hand with a fresh start then, wish me luck…
Hi! What about Data.Remember node? You can try to copy GenerativeDesign or GenerativeDesign.Extension folders (don’t remember which one, maybe both) to Robot’s Dynamo’s packages folder.
Use Data.Remember in Revit. Than open same dyn file in Robot’s Dynamo.
So you can restore geometry by opening the same script.
Also Geometry.SerializeAsSAB could be handy:
This seems like it would work too. Clearly there are many options for me to achieve my desired result that are much more simple than what I was trying to do.