Workflow Civil - Revit

Hello Dynamo Friends :slight_smile:

After building a few scripts for civil and revit I´m asking myself if there is a better way to do what I´m doing. As far as I know it is possible to “connect” civil and revit dynamo if you open both at the same time?!

Here´s what I´m doing now:

In Civil, calculate points on topology where I later want to place families in Revit. Write those points to an excel list.
In Revit, read the excel file and place families.

I can not use the topology in revit for my point calculations because it is only linked to revit.

I there any way to improve my workflow so i don´t need to write/read to/from excel?

Happy about any advice :slight_smile: Kind regards!

Look into CivilConnection, the Dynamo toolset to tie Civil 3D to Revit and vice versa. This does the ‘live connection’ which you refere to.

You could also write the points out to other intermediate file types (ie: txt, json, PTS, CSV, etc.) instead of Excel (at best a mediocre format for data interoperability).

Another option would be to use the ‘send command’ capability of the AutoCAD COM api to execute a Dynamo for civil graph from Revit, and consume the result in Revit when done. This is quite a big lift though as any COM api is a pain (there is a reason major applications don’t build around that anymore).

And lastly you can use a Data.Remember to serialize the content into the graph itself, and open the same graph in the other flavor of Dynamo (ie: serialize in Dynamo for Civil, save, open in Dynamo for Revit, utilize the data).

2 Likes

Speckle would also be an option :slight_smile:

(Linky)

1 Like

Thanks jacob, I´m now experimenting with CivilConnection.

I´m also interrested inj experimenting with data.remember but I have this node only in Revit 2023 but not in Civil 2023?!

1 Like
1 Like
1 Like

You need to add the path to the system wide Dynamo for Revit packges (which contains the Generative Design package) to you Dynamo for Civil instance.

3 Likes

@jacob.small thanks for this amazing idea. it work :slight_smile:


2 Likes

It’s a thing of beauty - I’ve used it to go between Revit, Civil 3D, Alias, FormIt, Robot, AdvanceSteel… basically anything with a formal Dynamo integration. :slight_smile:

2 Likes

It’s utterly astonishing! This has revolutionized my approach to transferring and transforming geometric data across various software platforms. :love_you_gesture: :love_you_gesture: :love_you_gesture:

@jacob.small Thank you, you’ve brought so much joy to my day!

Brilliant concept,splendid day

4 Likes

amazing node…a game changer :wink: :wink: thanks

2 Likes

Path to add for me was:

C:\ProgramData\Autodesk\RVT 2023\Dynamo\2.16\packages

Tested it with a large and complex solid, works pretty good with the same result as using .sat or .json files.

2 Likes

Do you open the same script in both Civil 3D and Revit or does the node remember between two different scripts? Stupid question but good to know if I need to have two different graph when managing Civil 3D objects and send them to Revit

Regards
Patrick

1 Like

@patrick.ericson it is nice questuion :love_you_gesture:,
1- First open dynamo C3d and use the data.remember node to remember dynamo geoementry (come from C3d geomentry object)
2- open the same dynamo script from dynamo revit (to have the same data.remember node did you ser in dynamo C3d plus) and add import instant geomety node.

1 Like

Hi all,

Interesting topic! I’ve used CivilConnection myself in the past but found using a .csv, .pts, .json easier to use and easier to see if the export executed as expected. I have tried Speckle in the past aswel, which worked great! I only used it for data exchange between multiple Revit users though, not between different hosts.

The Data.Remember node seems really nice. @RMohareb (and @jacob.small) you 100% sure that you can’t open another Dynamo file and read the content? If that isn’t the case Speckle might be my preference instead, maybe they have implemented some features, which I thought were essential but missing, since I last checked it out in 2021.

2 Likes

The data is stored in the .dyn file.

My test file has 7 megabyte

2 Likes

another test :cowboy_hat_face:

open the dynamo file from C3D. and at the same time open it from dynamo player in revit. when you save the file in C3d (after get new geomentry from c3d) run dynamo player in revit. You will have the new geomentry in revit. :exploding_head: :exploding_head: :exploding_head: :exploding_head: :exploding_head:

5 Likes

:heart_eyes:

1 Like

Idea/Test Request:
Could Data.Remember be used to transfer data between Civil 3D drawings?

Open DWG A and harvest data. Close DWG A. Open DWG B and execute tasks with Data.Remember data from DWG A.

Could Data.Remember be used to transfer data between two open instances of Civil 3D similar to the C3D to Revit via Dynamo Player in the example above?

I’m not a Revit user, so I don’t have the generative design package on my machine, so I’m not able to test this myself.

Civil3D

1 Like

Not directly; Civil and AutoCAD objects cannot be added to the node, but Dynamo Core components can be. So if you have a block instance, you could remember the block name and coordinate system. Then in file 2 you can use the block name to get the block from the new drawing, and the create a new instance from the coordinate system.

In the same way as above, yes I believe so. Both Revit and Civil 3D have a ‘hosted’ Dynamo instance so it would work, but tools which use the COM interop APIs (ie: Robot, FormIt, Navisworks, LinkDWG workflows) wouldn’t know which system to send the data to/from.

1 Like