Civil 3D’s API Is Holding Back AI-Driven Engineering

Hydraflow extensions

Looks like this is to ensuring licensing, but it isn’t something I have ever used before - thanks for educating me! Sadly it’s not something which those of us in the Dynamo forum are able to address - best to post to the official forum on the Autodesk domain instead.


I’m going to start by picking apart the reality of your statement here - not to attack but just to cast a few bits of reality into the “AI will make it all better” mindset, as it should be “LLMs might make some stuff butter in the future, but they don’t really do so today”.

I was on the phone with an engineer last week who found that Open AI and their custom MCP pushed a TON of incorrect data into a project; it certainly looked good but it was wrong when looked at in detail. They were stuck ‘undoing’ all the work ahead of the easter weekend - not a great way to spend the Thursday before a holiday. At the time of my time writing this there isn’t anything LLM powered on the market which meets the historic expectations for accuracy and consistency that the AEC industry expects. I think back to all the times someone has complained about a catchment area being off due to not having perfectly vertical lines on curbs, or when rounding of dimensions to the nearest mm and 0.000001 degrees for a foundation plan causing the polycurve to be unclosed by 0.00000037 millimeters (god i wish I was making that last one up - two weeks of my life explaining that and doing trig by hand).

Longer term there’s also the cost of repeatedly running LLM calls to an MCP instead of building a deterministic workflow. Open AI is losing $83,000,000 each day at the moment, processing 6 million tokens a minute - so they’re only going to have to raise your cost by ~67% to break even with their current expenses - never mind when they have to start paying back the investors instead of getting yet another funding round (each funding round delays the inevitable burst while growing the bubble).

Now with that out of the way, we can get back to helping you out as this tech is absolutely worth exploring. Just proceed with caution as what looks to be a good deal today might not be tomorrow (check out the horror stories on Reddit and other social media platforms and GitHub around token consumption jumps about a week ago is one such example).


As far as the Dynamo interaction goes… part of this sounds as if you’re not well informed on the advanced uses of the Python node - not entirely uncommon as this stuff pushes the limit of the supported use cases.

Dynamo falls short because its interpreter is packaged inside AutoCAD

This is the only way to access the AutoCAD .NET api; you’re limited to COM API otherwise which is both unstable and not recommended by even Microsoft (who produce both environments) from a stability standpoint.

I can’t install third-party libraries that are required for even basic workflows

You can customize your Python3 library - how will vary by your Development environment, but this is a good place to start: Customizing Dynamo's Python 3 installation · DynamoDS/Dynamo Wiki · GitHub.

It also doesn’t allow scripts to run outside of the Dynamo environment, which makes it nearly impossible to interface with external LLM APIs or build anything that operates as part of a larger system.

Entirely doable - you just have to build the external tool as a server and then have the Python node in Dynamo make the call thereto; that said this likely wants to be an extension like the agentic AI alpha project which has been provided by the Dynamo team. There is also a lot of work underway to allow such connections between tools within the various development teams at Autodesk. However the really easy use would be to have the external tool write the code to a file on disc, set a ‘read text’ node up and leave Dynamo in Automatic run mode. Each execution of the external tool would overwrite the file which will trigger Dynamo to re-execute the ‘read text’ node, and if you push that into the Python node you can trigger re-execution from outside Dynamo. The data can then be returned to the LLM by writing the output of the Python node to disc and telling the LLM to ‘go fetch the results when ready’.