Dynamo for maintenance?

Hi everyone! I’m using Revit for my master thesis project, using it to model an old church. I want to use the model for maintenance purposes too. I’m using a plugin that describes all the interventions that are supposed to be done and the calendar of the inspections. But there isn’t an actual connection between the model objects and these informations.
I’d like to take the calendar dates exported from the plugin and the instructions, associate them with the model elements and color-override them when the time of the inspection is approaching.
I have never used Dynamo, so I’d like to know if it’s possible to do so (even just for few elements as an example) and if the answer is yes if it’s too difficult for a total beginner as myself.
Thank you for your patience!!

I don’t think the general process would be hard, just taking information from Excel to Revit. The hard part would be determining which elements belong to any given calendar event.


If I have to do it with one element only would it be hard?
Let’s say I have a door and a series of operations that I have to do during a period of time. Can I easily link the information and the control dates to this door?
From what I got it, if I wanto to use Dynamo I don’t need to program but to use already-done script right?

You will need to use some visual programming for this. Not a huge learning curve and worth the time to learn as the concepts and knowledge will be a huge asset to you after graduation.


You should know the difference between textual and visual ‘‘programming’’ though, and not be scared away.

The number of elements isn’t the hard part either. It’s determining which elements you need to modify. If you already have the list of elements for each event then you’re in a good position. You just need to set up parameters (which could be done using Dynamo) and fill in the proper information.

Thank you! Ok I’m convinced I’ll try to do it in this way. I don’t have much time, do you know by chance where can I find some tutorials, or threads, regardig this topic (or similar)?

You should start by reading the Dynamo Primer (at least the first few chapters) and then start trying to query excel and Revit for the desired elements. (You can search the Forum for this, there are plenty of topics).


Once you have something you can always ask the Forum, just remember to supply pictures of what you have and what you want and how you though about getting there (and of course also the issues you’re facing). :slight_smile:

1 Like

Thank you! I’m beginning to understand how this program works. I have imported from Excel the intervention date, the description of the intervention and the days remaining (date of the intervention - date of today). When the remaining days are < of 10 I want to color override my door (the element which I use as example).
Now I have some problems:

  1. I have a lot of operations occurring at the same day, i thought of putting all these descriptions and putting them in a Multi-Lined Parameter. Is there a way to create a list of cells regrouping them by the same date?
  2. I have a series of dates, but I want to create just one parameter, so that when it passes the day of the first intervention it automatically updated to the second one. Is it possible?
  3. Is it possible to link the 3 informations: date, description and remaining days, so that when the color of the door changes the operator knows what he has to do?

Maybe these questions are very basic, but I hope that someone has the will to answer them! Thanks!

  1. String.join should get you moving. You might want to keep them separate though, per my response to number 2 below.

  2. instead of automatically assuming the maintenance was done because the date passed, I would add a yes/no value for each maintenance to allow for easier filtering - this will catch the ‘I thought you did that’ - ‘no I was working on this, I thought you did that.’

  3. perhaps? You will need to hand off a sample set of data for people to test with after you finish items 1-3.

It may be easier to do this in another way (you are adding a lot of info to the model). Perhaps pull unique ids for the elements via excel dates which have a ‘up coming’ task, and produce a clipped 3D view for each, with the description of each action and date listed as text instead of stored in the parameter.

Note that it sounds like you’re rebuilding bim360 ops.


1 Like

I know but I’m a poor student so this is the only way! ahah
I was able to select the most recent date, now I’d like to say to Dynamo, take the value in the cell at its left. Is it possible?

I’ll upload the file if anyone does want to look into it!
Thank you for your help!
Export From Excel_Prova.dyn (18.6 KB)
Gantt Dynamo.xlsx (21.4 KB)

The Revit file is too big 4Mb how can I upload it?

Never mind I found the Index of node and with that I could achieve what I wanted!
But obviously another problem rised. Before I used List.MinimumItem to get the most recent date, so I thought that Dynamo recognized the dates as numbers. Now I want to see if a date is greater than another, but Dynamo doesn’t recognize the dates anymore, or at least it doesn’t let me do operations with them. I used an iterative if and the result is always 8 because for the program the answer is always false.

Hi once again!
I overcame this problem doing the difference between 2 dates and converting TimeSpan in Number of days, so that is recnognizable as a number.
I did a part of the visual code where if the operator is gonna intervene before the deadline he can click on one box and automatically dynamo puts in there the date of that day.
But now when I click on that and I set on Automatic the execution of Dynamo it goes on and on. How can I make Dynamo uncheck the box a moment after it has been checked?
Anyone can help me?

Close Dynamo, and reopen it. When you reopen check the ‘Open In Manual’ mode which is adjacent to the open button.

It may be easier to use a =Today() function in excel. Not sure if running the dynamo graph would update that field though.

hi, can i see your dynamo and excel file?