Any ideas on how to Read Assemblies from a separate .dwg?

I am trying to create a script that will read a file, and give the end user the ability import in an assembly using the Assembly.Import node. The problem I am running into is that I am unable to find a way to retrieve the available assemblies in the external document for the end-user to select from. I am ideally wanting something like the Choose Assembly Name node, but for an external document.

What version of Civil 3D are you using?
In 2026, there is an Assembly.Import node that lets you import from another drawing, although it does require knowing the name of the assembly.

You can also use the Camber package to access an External Document. There aren’t any nodes for Assembly objects in Camber, but you could possibly use that package to get access to the external file, use a python node to find the assemblies and then populate your own list to select.
There are some examples of creating a code block node that uses .xaml formatting to populate a list box to display in the node.

Yeah I found a temporary workaround yesterday using the Assembly.Import, but what I wish it would do is be able to retrieve the names in the external document that a user could select from. Right now, I just have a static list of options to select from what currently exists, but I know I will be adding more assemblies to this document over time, so something that will update the available assemblies as I develop that document would be awesome!

If you have standard names in your source file you could hard code the names into a Custom Selection node which works as a dropdown in Dynamo and in Player.

1 Like