Helix BIM Window Level Association In Revit

2022-02-15 - 18-18-12

There was a question posted regarding the Revit host level for windows when a window is transferred from SketchUp to Revit:

…would the windows be associated to the level above in that case if it looks for closest level? Or does it look for closest below?

The app currently uses the closest general level as it shares a common coded path with many elements. This can be further opinionated for doors and widows. A simple logic would be to always look below for a level if a level exists below.

There are other nuances where some architects make many levels within a building story.

In my projects I have not had widows hosted to levels above. However, there are many typologies.

A simple solution can be:

  1. Get closest level
  2. Is closest level z value higher than my insertion point
  3. Is there any other level below this level
    – if yes then use that level instead
    – else keep this generally closest level

I’m curious to hear if the simple logic is useful and valuable as there are other conditions and standards where this would not be the expected behavior.


Typically, I’d say you’d want to host a window the the closest level below.

It’s rare that any part of a window is below the level it’s hosted to, but it could happen. I’d like to add some more nuance to this, as it’s not really a cut-and-dry thing, since Revit levels can be used in so very different ways, by different companies.

Often in larger projects, there are many levels very close to each other in elevation, but there’s only one that the window should be hosted to. The below image would be a very common situation. In this case, we’d want the window that is cut through in this section to probably be hosted to First Floor, but it might be Living Room. But probably not one of the “FF” (“Finish Floor”) levels.

Usually, an architecture firm will have either a shared parameter, or use the built-in ‘Building Story’ parameter (see below), to control which levels are ‘major’ levels. But, they will not always go about this the same way, or might not even be consistent throughout their own various models.


I think the idea situation would be to find the level that seems most ‘major’ directly below the window. Perhaps one that is marked ‘building story’, or one that already hosts a large number of windows and doors, or the ones that have an associated plan only (the ones in the first image that are BLUE.

I think it’s probably best to have a few bits of logic in the code to by default find a logical level to host to, BUT also allow the user to specify which level any particular window should be hosted to before/when synching from SketchUp to Revit.

1 Like

And to complicate this more, here’s some levels from a split-level residential project I worked on. Although in Revit, you can change the bounds of a level so it only exists around where it’s used in the model, most Reviters (Reviteers?) I’ve met don’t usually do this.

I think in general, the 3-fold approach is best (and a good general rule for other features too):

  1. Use an intelligent algorithm to try to find a logical level to host to. This way, something smart tries to happen, even without and custom user input or settings.
  2. Have custom user settings so that the user/designer can customize the window/level behavior in case their firm’s standards differ from the standard chosen in the previous algorithm.
  3. Have a logical default level that the window can fall back to (closest level below sill?)
1 Like