Surface Labels

Is it possible to bring add Surface labels to an object using Dynamo?

I’m guessing I would need to use the surface node to bring in the surface, then assign the locations of the label via making points that would read the elevation from the surface.

Side note - Still new to Dynamo. Is there a list of all the nodes and what they do that I can download?

Thanks in advance,

Chris

If you mean actual Civil 3D surface labels, then the answer is not yet. You would need to build a custom Python node and dig into the Civil 3D API.

But you could do this using the steps you outlined and then just outputting Text into model space using the Text.Create node.

Not for AutoCAD/Civil 3D, at least not that I’ve found. Some of the core Dynamo nodes are here:

https://dictionary.dynamobim.com/#/

I tried to solve the same task. and found a way out by copying an already created label.
it would be great to know how to get the coordinates of the label

Explanation video with russian sound

CopyLabelToVertexAllObjectsOnLayer.dwg (539.5 KB) CopyLabelToVertexAllObjectsOnLayer.dyn (74.3 KB)

1 Like

I am trying to do the process above however, the I can;t seem to bring in a surface to apply the points to. I brought in a surface using the Civil3d tool but it is not the correct type of surface?

Correct. That node is for a Dynamo surface, not a Civil 3D TIN surface. To get the elevation of a TIN surface at a point, use one of these nodes.

Adding the points by X/Y worked. However, when I added them back into the Text.Create; it is looking for a “point:double”… At least that is my assumption with this latest error

.

The error message is telling you that the inputs provided do not match the inputs that it is looking for. So it first goes through and lists the input types that it expects (i.e. string, point, double, etc.) and then lists the inputs that it was provided. In this case, the text height of 20 that you are supplying is a string because it is in quotation marks in the code block. Remove the quotation marks so that it is passed as a number (i.e. double) instead of a text string.