Dimension by element, Auto-dimension dynamo

The issue when I give it the whole index list it doesn’t work so the alternative is to make the whole process as a function and the function goes through the index list one by one until it reaches the end of the list.

Like an if statement with a counter, but I don’t know how to make it as a function here

I would rather take a look at this GetItemAtIndex node first, since it means that your are not working on the whole list of boundaries…

I used get item at index node because its the only way I can make the dimensions work as I want , when I feed it the whole list it doesn’t work because the dimension by element node only need one line as an input.

I also was able to make it smaller

Auto dimensions-v3.dyn (24.7 KB)

OK, I get it. Did you try to create a custom node out of your graph? You could then optionally set the lacing to the appropriate setting to make it work on your curves one by one. See here if needed:
You will also see here how to use a custom node as a function:

Ya that is the idea but what I know about lacing that it only have 3 options short, longest, multiplication i’m unfamiliar or don’t know how to use it to make it go through the list one by one

See in the Github link I provided how to use a custom node as a function. But I currently get an issue with custom nodes similar to the one below, so I can’t be of much help for now unfortunately:

You could also be interested in the Dimension Detail Line node (from truevis package), at least this one works correctly on my side :slightly_smiling_face:. I also used DetailCurve.ByCurve+ (from Clockwork) for this since it can handle the circles of my columns and I got no issues from that, just null values for non-created dimensions.

ok thanks I will try to check those

I tried to create a chart to feed back the list one by one as a loop based on the output but didn’t work due to cyclic independency anyway to avoid that

Auto dimension-v4.dyn (25.7 KB)

Be careful not to feed a node with a value that is calculated in following nodes and use Object.Type node to check that the input types are always correct.

I used this node but Unfounately its only generate one dimension from one detail line, so I edited the python code within it to generate mutli-dimensions and it worked



I am trying to achieve the same thing here by dimensioning every room. I have followed your script from post 11 of this thread, and It only creates 1 dimension. I am curious why an integer slider is in this. Surely that is why it is only creating one dimension. I tried using all indexes, but it duplicates every dimension and also dimensions the wall thicknesses, etc.

I also created the script from the last post of this thread, and I recreated the multi dimension code and I get a null value. How is this applied to the previous script, or is it?
Did you manage to create a script to dimension every room?

As you should do to place dimensions of a beam such as the image.


I’m just new to Dynamo and I’ve been looking for a script that allows to automatically place dimensions on all the balustrades of a railing, instead of going one by one. So far I haven’t found anything that accomplishes that.

Thank you,

Hi we might need a new topic for this…

Here’s my quick and dirty go which shows you most of the key things…

I set it to work in a section view as the most useful one… Most aspects of the graph are a bit quirky… The end and start transaction is required otherwise it tries to make the dimension before the reference planes…!


The big problem is that I couldn’t extract Faces (therefore References) from the Railing… I could extract geometry from the railing and get Face References, but I can’t convert those. This means I can’t make the dimension locked to the balustrades, all I can do is make a reference object and dim those. Which means you get a bunch of reference planes you don’t want, and if the spacing changes it’s out of date.

DimensionBalustrade-3.dyn (331.7 KB)

Hopefully someone can fix that!



Hello Mark,

Thanks a lot for your effort! Not sure if this might work; but I was thinking of adding some invisible reference detail lines to the balustrades center (inside the family editor), so Revit can read those invisible lines. That could replace the reference object and maintain dims updated when the distance of balustrades changes.


Hey Ricardo,

I know mine is not a perfect solution, it would be great if you could refine and see what works! I’m not absolutely clear in my mind what is allowed to be a reference… Detail lines would certainly be better :slight_smile:



Hey Mark,

Thanks for your answer. Oh, just to clarify, I actually don’t know how to program in Dynamo, yet. I’m relying on my imagination to put forward my ideas and see how they can be developed by experts like yourself. When I get the basic knowledge to do scripting, I will be adding my work here, so everyone can refine it.

In the meantime, I would like to post automation ideas so you can have food for thought =).


1 Like

how to give automatic dimension from pipe to wall

1 Like

the Surfaces.DeconstructSurface node belongs to any packages