Civil3d Solids- dynamo-Revit

Hello, recently it’s possible dynamo connection to Civil3d. One question I’d like to introduce is , if it’s possible to select solids from civil3d in dynamo and then export this solids elements to Revit and assign them some family tipe. Maybe solids can be smoothed or not with nurbssurfaces. The purpose is to create solids elements in Revit and be able to assign properties as Revit elements.( Pavements=floors/ roofs )
Thank you.

@javiermend What kind of solids are they? if they are derived from a corridor I’d recommend you use CivilConnection as it does exactly what you are asking and it’s much easier to update in case of a change.

Otherwise if the solids are obtained from TinSurfaces one way could be extracting the solids with D4C3D and create a JSON file using Geometry.ToSolidDef(), in Revit read the geometry data back in using FromSolidDef() (Dynamo 2.0+).

They can be converted into a Revit Family using CivilConnection via Mass.BySolid() and it also allows you to transform the coordinates between Civil 3D and Revit with RevitUtils.DocumentTotalTransform()

1 Like

Thank you Paolo! I’ all try it as you recommended.

It’s also possible to use the Data.Remember node in Refinery to port stuff from Dynamo for X into Dynamo for Y and back again.

  1. Open in Dynamo for X, collect the geometry and data which you want, and wire them into Remember nodes (group and label so you know what you are after).

  2. Open in Dynamo for Y, run the graph and then start to push the data into new or existing objects in your target file.

Hi, Paolo!
Can you explain me how exactly we get corridor solid geometry from Civil project with CivilConnection please?
When I tried to get “Rail” solid from my corridor with CivilConnection special features, my Dynamo project failed. But Dynamo for Civil sucsessfully get this solid with “Corridor.GetSolids”

How about opposite connection? Export Revit family or object into the Civil 3D at certain points (e.g. along the corridor using Dynamo)?

Same Remember nodes method works to some extent. The civil connector also works.

1 Like

Thank you, i will try CivilConnection. Can you say something more about “Remember nodes method”?

That was in reference to my post above: Civil3d Solids- dynamo-Revit

@BaranovK CivilConnection will extract the shapes from your corridor and then create Revit Families in the RVT document. There is an example in the dataset of CivilConnection that explains how to use the nodes LINK

The file called [01]Model_Create loft with sample lines_Shapes_2.0_DP.dyn
There is also the possibility to create a custom closed profile in Dynamo/Revit and “loft” it following an alignment or other linear references from Civil 3D and obtain pretty much the same result.

If you have critical sections where the cross section is changing you can simply provide a list of stations or picked them up form the Civil 3D alignment sample lines, as you prefer.

Thanks for you reply!
In my case I can’t use Baseline or Alignment for extrude lofting and creating Solids because my Rail have “cant” and in my mind I should be use Rail Features line for lofting trajectory. But when I tried to extract feature lines from my corridor my Dynamo project was broken.

My project files below

If you have some tips for me, I would really appreciate it.

@BaranovK in CivilConnection you need to define portions along the alignments/baselines for which it is safe to create a loft using the subassembly shapes. In case of the tracks you can just pass the start and end values for the baseline region as the tracks are not changing width abruptly for example.
If you modeled the rail correctly in Civil 3D, the cant will affect the rotation of the rail tracks subassembly shapes and they will be picked up by CivilConnection. The shapes profile will be used to create a Revit family that will be loaded in the project. This is the less effort way to create linear solids from a Civil 3D corridor shape in your Revit project.
Even if you don’t have the subassembly shapes but the rail feature lines you could read the cant connecting points on the feature lines at the same stations and use it to rotate the track profiles in Dynamo or in Revit and use them to create the same families or DirectShape if you are happy without been able to modify them.

Here is a video that explains one way of doing it with the subassembly shapes

1 Like

Thanks Paolo It is very useful information!
But now I belive that my corridor assembly has defects. Because when I use “BaselineRegions.Shapes” node my Dynamo project was broken again.It is strange thing for me that I able to extract solids from my Corridor using Dynamo Civil tools.
Maybe you had a similar case in your practice with a problem like this

My Subassembly composer file below

@BaranovK, just to confirm, did you install CivilPython as well?

Good question)
I did not even know that CivilPython might need a special installation separately from CivilDynamo.
And now I can’t find any information about CivilPython installation

I’m talking about CivilConnection (Dynamo for Revit) and CivilPython (set of commands for Civil 3D) they work together.
There is plenty of information in the guide that comes with CivilConnection LINK
CivilConnection does not work in Dynamo for Civil 3D.

I did unpacked “” into the C:\ProgramData\Autodesk\ApplicationPlugins folder and after that all my CivilConnection Nodes started perfectly working. And finally I have my Rails in my Revit workflow like as adaptive family element.
Dynamo builds my Rails only in medium and small geometry scaling, but I’m sure I will overcome it)

1 Like

In the CivilConnection documentation you will find a known issues section you might want to check. The Geometry scaling is one of them.

Hi Paolo,

The CivilConnection is working fine for me, except 2 nodes.

With the nodes : “BaselineRegion.Shapes” and “BaselineRegion.Links” Dynamo always stops working. Even if i let it load for about 1-2 hours, nothing happens.
Any idea?