Setup Revit / Civil 3D Connection

Hi guys,

I hope you can help me out in this.
I tried to setup the connection between my Civil 3D Project and Revit so I can use the data from Civil 3D with dynamo and exchange it that way with Revit.
For that Paolo Serra created a Dynamo package called “CivilConnection”.
But I’m having an issue to setup the coordinate system in Revit with his manual.
The steps from the first screenshot are clear for me, but from the second not.

I created a new Revit Project (Host file) and ran the dynamo script to export the IFC from the civil file.


After that I linked the IFC in Revit and replace it with the new created “ifc.rvt” file through Dynamo

and published the coordinates to the Host file.
But it seems I am missing something as the elements in Dynamo which it received from Civil 3D are on coordinates that are far from my Project Base Point and because of that are not correctly displayed.
Could someone explain me what I did wrong?

Thanks in advance!

Hi @RedRai, let me see if I can help you with this :slight_smile:
Just in case, please follow this brief video to setup the shared coordinates in Revit:

The IFC workflow is really an old one and you should be using it to get an idea of what your corridor looks like in Revit to start setting up the logic to create Revit elements around it.
This video can take you through the steps necessary to do it starting from a DWG that contains ONLY the solids and/or the surfaces and anything else.
In fact the nodes applies a transformation to solids and faces to match the Revit Project Base Point and orientation and exports the IFC from that temporary location (which will result close to the origin).
Have a look:

The resulting IFC will be tessellated and basically made of DirectShapes (not very much editable in Revit).
That’s why in CivilConnection you can create editable Revit families directly from the corridor using the Applied Subassembly Shapes.
Here is a link to how it is done (early prototype, in the next release will be much faster):

Let me know if this helps!
-p

4 Likes

Hi Paolo :slight_smile:

thank you so much for your help!
Ive setup the shared coordinates as you have done in the video. For geometry exchange between Civil 3D and Revit it works but Im encountering a problem when I want to get the alignment data in Dynamo.
For the cube with origin 0,10,0; it will be placed correctly in Civil.
But the alignment keeps the high coordinates from Civil and therefore will be placed incorrectly in Dynamo/Revit. The only thing I could do is to translate the geometry but thats not the best solution, is it?

Please see attached screenshots.

Max, the behavior is actually working by design.
The geometry of the alignment is retrieved in the World Coordinate System.
If you really want to convert those geometries into Revit Project Base coordinates you can use the RevitUtils.DocumentTotalTransform node: this creates a CoordinateSystem object that represents the necessary change in coordinates to match C3D to RVT.
You can then use the CoordinateSystem.Transform(Geometry, CoordinateSystem) node to transform the alignment curves in the Revit space.

The reason for this is that the alignment is a crucial component of the process but is never enough, you also need a vertical profile to describe a linear asset and even then you need a cross section to represent the string/linear references that may or may not follow exactly the baseline.

CivilConnection makes your life easier if you get all the “ingredients” for the process (namingly a corridor with point codes associated) and still gives you the possibility to access the underlying elements to get the full design intent to drive the creation of Revit elements starting from Civil 3D data.

3 Likes

Would you be so kind as to share the script with me, in order to study it and understand how it works?
huge thanks in advance