Structure by coordinates

Hi there,

we are renovating two apartment buildings, they get a prefabricated Wooden Jacket.

I guess life was easier in the '60’s if you see how straight the existing structure is.

Never mind , a surveyor will handle this next week, and he promised me he will deliver the copy by means of a spreadsheet.

I gave him the coordinates of the intersections of the gridlines by the eattext command in Autcad. He will produce me the corresponding references for each level.

So the question relates both to Revit as to Dynamo.

How do I make my model, in order to have the model “dance” according to the coordinates I get from my surveyor?

I guess You can make a script in Dynamo, to model the structural coloums & beams along a wirteframe, driven by the coordinates…If somebody has such solution, I would be happy to have a look.

But there is more to it than just the structure. I would like all the copy to get along, that’s one wall for each lateral facade, four windows in the rear facade, and two windows and two wals in the front facade.

-How do I build my model, in a “what you see is what you get” modus?

I guess aligning copy to revit gridlines is no longer usefull?

And How do I copy the copy? Now I added Structure, floors and walls to a separate Group, and pasted the copy to the 7 other floors, but I guess this is not compatible with my parametric exterior.

I cannot believe I would be the first with this assignment, so I am really looking forward to your feedback.

Kind regards,


Seen the many replies, I guess my question is a bit of-topic.

A parametric Revit grid is not going to work out, unless I can make 2D grid dedicated to each level, and be seen by Dynamo.

Alternatively, I could make a list of points, assigning lines & structural framing to it, but then I should do the same thing for the existing windows, & walls too.

Or is there a way to make one building level in an alternative Revit file, and have them transformed while linking them 16 times in the two separate buildings?

I got the Coordinates from the surveyor, I guess I just place the structural elements on a bunch of lines, created by points.

To make it conceivable, I started with just the 4 outer edges of the building

I did not introduce the iterations of the exact postions of the points yet, so I can easily recognise the positions.

Keep in mind that the structure becomes thinner on the upper levels…So I will have to access the different levels later.

I took the coordinates, you can see

Building, Level, grid, grid, resulting name of the position, X, Y, Z Angle, and Family type.

Dynamo plots the positions…

And I made the targets self-identifying…

Now I want my lines, to create the beams and the columns.

Please find the script attached, this is where I want to start the lines.

I can chop the list for the columns, and transpose the list in order to generate the beams from the same copy.

I am getting a structure, but the result is unstable.

I have to manually select the column type from the drop down menu, otherwise the elements do not get generated…

These problems started when I tried to changed a parameter of the beams…

-Any thoughts on where these problems come from?
-Are there more compact ways to do this? Especially because I need to add 5 positions for each level.
-I guess rather than to mirror elements, I have to swap start & end point.



Hilti ankers zetten + rotatie + naam+soort aangepast.dyn (236.0 KB)

Hi there,

I do realise my questions are more functional than in relation to visual programming, but I hope someone did this before.

Regarding the “more compact solution”; now my procedure relies on the way I chop the list, and retrieve items at a position.

This is manageable for very easy structures, but as I get a grid which is not symmetrical, this gives me a headache.

Is there a way tie the points first, and then in a next stage reposition them by reintroducing them, and having the points recognised by their name?

So I have to Build my structure only once, and can reshuffle the positions afterwards as many times as necessary, e.g. by defining a new origin or assessing the other building, etc.

Kind regards,


You may not be the first, but you might need to search for solutions or pointers from the many earlier posts on this forum.

It would also help if you briefly outline one problem (or a small subset of a complex issue) at a time. Some background helps, but the actual solution or suggestion you seek shouldn’t be difficult to determine at a glance.

Sorry for not providing a technical solution.

Hi Vikram,

you’re right. I will try to chop the many issues I am dealing with.

First I will do some re-wiring, to get the structure the way it was intended.

Then I ask the question, on how I can do a re-run, by identifying the points by his name, or the metadata building, level, Grid & grid.

Now I am building one big routine, but this seams unstable, and difficult to maintain.

Kind regards,



I think you’re looking for GroupByKey. With this node you can organize your data in sublists based on the name, level, …

Hi Willem,

If you change the value of the y justification to a number, that should remove the error you are getting at the end of that node. Removing the quotation marks around the 1 in the code block will change the data type from a string to a number.

As for the rest of the script, I’m not 100% clear what you are trying to do.
I can’t help but feel dynamo is the wrong tool here, and it would be easier to move the existing structure in Revit. Its existing, so moving once to match the survey and job done. No need for it to be parametric and bonded into a .dyn file.

Hope that helps

All right, Thank you Johan.

I guess this will help me to reposition the elements , after I manually adapted the modell.

Hi Jonny,

I cannot guarantee the strategy is right, I went to high school in the '90ies, in a system which emphasised mainly on “trial & error”.

I did find out about the Y justification, unfortunately this doesn’t exist for columns.

The idea is to asses the asses the work of the surveyor at once, and to be able to do a re-run on a tweaked origin.

We have two identical buildings to be surveyed, and we want to have an equalised cavity so the charges on the anchors are equally spread.

For the interpretation of the deviation I would like to make a heat-map.

Ant then there is the columns…the are rotating in all directions.

I would like to get their orientation from the spreadsheet, or otherwise from the adjacent structure


Maybe just get them to demo the building…not sure why anyone would try to fix that mess, surprised it’s still standing haha.

Dynamo side, like others have mentioned what’s the final goal of the project? Just to model existing conditions?

If you need it accurate, I would toss Dynamo away and get a proper 3d scan of exterior and interior of the building and bring that into Revit. This way you have accurate information you can trust. Points on an exterior wall doesn’t provide a lot of confidence in evaluating the structure.

Good luck.

Hi Matt,

It is ment to evaluate the geometry. I have less confidence in a 3D scan, as the software needs the to stitch together the different positions. We want a procedure in which the surveyor gives us a frame, which is properly described, and on which we can rely through the process to take extra measurements or to position the anchors on the facade, by keeping an understanding of the tolerances we have.

But I do not deny there should be a more robust way to do so. Ideally I would want the building to be modelled in Revit, in a way that if you change some coordinates, all the copy morphs into the exact as-build position.

Yea if you have the survey crew complete a 3D scan (not matterport or equal) but a true 3d scan with point cloud, tolerance can be up to 0.01mm or greater. They can build the file for you and provide a combined point cloud that you can use inside Revit or Navis etc.

Without this, columns you show as a specific shape, may not have been poured in that shape exactly. So you could be losing or misinterpreting the data. So depends on what you are doing with it, but a good 3D scan/point cloud if it’s all exposed is the most accurate method.

If accuracy doesn’t matter to much, then for speed might be faster to model it and push,pull per point offsets (use a point origin) and push/pull based on this.

If it’s something fun you want to do in dynamo that’s another topic. As you’ll need to calc rotation based on points on multiple faces of those columns etc. I would start with very small chunks (eg. 1. Place columns. 2. Get rotation values and update. 3. Push/pull with dynamo based on specifying the origin point.