I was wondering what it takes to build some dynamo nodes able to interact with AutoCAD and Civil 3D.
We are building a workflow (similar to the bridge package) to bring information from Civil to Revit and completely “BIMize” our project.
I would like to automate it further by directly accessing the civil 3D document instead of having to export a report of points, manually set the range of a particular section on the alignment and so on.
I imagine nodes of the type “get document alignments”, “get alignment profiles”, “get elevation at station”, “get point at station, offset, elevation” (and vice versa), “get surface/profile name/description”, “get corridor”, “get corridor regions”, “get regions properties” and so on.
After some research I figured out that I cannot control AutoCAD/Civil with .net api from an outside process, so the options are:
1 - write the nodes with the Interop library/ COM API (unmanaged c# or python)
2 - use some IPC techniques (WCF? WEB api? simple Named Pipes?) and write a .NET AutoCAD/Civil Plugin that act as a server for the Nodes calls.
3- Use Teigha Civil as library (if I understood correctly what is capable of)
#1 can be really slow, and since everyone is saying I should avoid COM, then so be it. But #2 seems like a lot of work to me, especially because I never did any IPC. #3 could be the best options, but relies on closed source libraries (and it’s an investment I need to justify to my boss).
Is there a magic wand to expose all the AutoCAD .NET API via some IPC mechanism?
Did you come up with better solutions?