isolating revit warnings by category with dynamo

Here’s a quick video on how I was able to create a simple definition in Dynamo that parses through an exported HTML file with all warnings from Revit. It filters for a specific warning type like: “Walls and Room Separation Lines overlap.” and list all elements IDs so that later I can use them to automatically isolate those elements in a view. Please watch a preview on YouTube:

Revit Warnings Parsing and Elements Isolating w/ Dynamo

Here’s what the Dynamo Definition looks like:



And here is a final result:


UPDATE (2016 02 08):

It was recently brought to my attention that these nodes simply disappeared from my package, which is not OK, but I guess it will be better to just post the source code here:

I am using a Python module called Beautiful Soup to parse the HTML file and isolate the warnings. Please download it from this link: BeautifulSoup3.2.1 Make sure that it’s installed in the following location:  C:\Program Files (x86)\IronPython 2.7\Lib\BeautifulSoup-3.2.1 

This should do the trick!

Here’s source code for the Warning Parser:

The rest of the nodes that you see on canvas are from pacakge. Please download version from 2016.02.08.


Good luck!


  1. Julien benoit says:

    Looks great Konrad. I have a question about the node that read the text file of warnings: could this be use to get data from files coming from clash detection engine of revit? I have had this in mind for a long time and this example makes it come to the surface. I need to learn the isolate in view thing too! Good work!

    • ksobon says:

      Hi Julien,

      I am using BeautifulSoup module to parse through the HTML code. I don’t think there is a specific module that would do the same with the Navisworks (I guess that’s what you mean by the clash detection engine). Obviously you could use Python’s Regular Expression module, but I am going to guess it will be a little bit more difficult to keep everything organized the way BeautifulSoup does.
      Isolating in view node I will make public soon. It’s a one liner: view.HideElementsTemporary(ICollection of ElementIds), the bulk of work for this one was in converting ID Strings to ElementSet then creating ICollection of Ids that excluded ones that we feed in.

      Thanks for watching!

      • Julien benoit says:

        Thanks for detailed explanation. I meant the result of Revit clash engine, that could be used at some design stage to identify clashes. Not so many people deal with Navis. I just discovered your download page, do you feed package manager too? I will search aroid Beautiful soup, funny name!

        • ksobon says:

          Ah that magical button on the Collaborate tab. Since I use Navisworks I never actually used it, but it looks like it produces an HTML report so, yes you can parse it exactly the same way. One difference that I noticed between report from Warnings and Interference is an extra column with Interference number. That would require a small change in code and you could use it with both.
          I do feed the package manager. The latest node I posted yesterday is called Isolate in View. I keep a Download page because I wish there was a way to post a short example of how you can use a particular node along with a detailed explanation. However, at the moment Package Manager doesn’t have that functionality.

  2. Michael Hall says:

    have you shared the node for the warnings python script? I have downloaded the archi-labs package, and found the one for interference checking but not the other. I would really like to look at this further.

Leave a Comment