Revit – Setting out and scheduling coordinates from grids with Dynamo

I have had a few questions around detailing coordinates of grid intersections with Revit. You may already know that it is tricky to add spot coordinates to each grid intersection as Revit will not ‘snap’ to the grid intersection. You can add reference planes across the grid intersections, but this is quite time consuming and prone to error.

Revit - Grid Setting Out and Detailing

I have created a Dynamo script to place down a setting out family at each grid intersection and record the grid intersection, Easting and Northing at each location. This has the added value of being exposed in Navisworks or an IFC model for a contractor. We can also schedule the coordinates of each grid intersection and present this onto drawings or export to Microsoft Excel for input into site instruments.

Grid Setting Out Points - Dynamo


Thanks to Christoph for providing a Python script to replace the convert to number node. Below is the updated graph.

Dynamo Update

and here is christoph’s python script.

#@Christoph Raidl(2019)
Grids = IN[0]
IsString = []
for Grid in Grids:
OUT = IsString



See the video below for more!



9 thoughts on “Revit – Setting out and scheduling coordinates from grids with Dynamo

  1. Hi Lawrence,

    Thank you for the workflow 🙂

    I have read this blog post today and saw that you have a warning every time you execute the script in the node “string.toNumber” to separate the horizontal and vertical grid lines. I wrote a short python script to get rid of the warning and I can share that with you if you want.


    1. Hi Christoph,
      You are correct that the string.toNumber node shows an error as I am asking it to convert non-convertible strings. I think there is a custom package that automatically separates the horizontal and vertical grids but this wouldn’t take into account grids that are skewed.

      Glad you found the workflow useful.


      1. Hi Lawrence,

        I just replaced the node with a python script node. So there is no special package needed 🙂 The question was, if you want to have my script for that node.

        It does the same thing as your node, but without warning.


  2. Hi Christoph, sounds like a good idea. I will publish your Python script (with credits to you) and add this as an addition to the blog post in case anyone wants to use this.

Leave a Reply to lawrenceh Cancel reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s