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)

2 Likes

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.

@PankinAleksandr @ctodd check out Camber, my new package for Civil 3D. There are some nodes for creating Surface labels.

SurfaceLabels

5 Likes

@mzjensen Thank you for your work!
I tried to work with label, now it’s possible to generate new label.
But I didn’t found node to get labels previously placed in the drawing, to change them.
Is it possible?

You’re welcome!

Not yet. It’s a little more tricky to do that so I’ve left it out for now. I’ll do my best to add it in an upcoming release.

3 Likes

@PankinAleksandr this is fixed in Camber v2.0.0 with the Convert to Camber Object node.

1 Like

Hi!

I think I have looked every ware Camber, C3D-Toolkit, Dynamo … but I can not find SurfaceElevationLabel.ByPoint , SurfaceSlopeLabel.ByPoint …

Probably due to the fact that my Dynamo is to old, does Camber require Civil 3D 2022?
image

That particular warning doesn’t mean much, but the answer to your question is yes, Camber v2.0.0 requires Civil 3D 2022.1. But you can download v1.0.1 instead and you should see those nodes.

2 Likes

Thank you, now I see the nodes. They look very good and useful.

There is always a balance between being backwards compatible and getting the time to do new stuff.

@mzjensen You are doing a great job, keep up the good work

1 Like