Separate a list of loaded door families into curtain wall doors and normal doors

Hi I used a bit of python script from Konrad Sobon to collect all the loaded doors in the project.

But this collects curtain wall doors and normal doors in one list. I would like to know if there is a way to split this list so I can have a list of curtain wall doors and normal doors.

1 - Doors Windows - CW Doors Windows.dyn (18.5 KB)

Hi @simon_murphy1,

Do you mean something like this?

GetCurtainPanelDoors.dyn (18.3 KB)

1 Like

Personally for instances I ask if the door has a location and filter based on that boolean, but that certainly works well too. I would recommend putting a “FamilyType.FamilyName” node instead of the String From Object node as this will get more consistent results.

This might be a bit faster for grouping the two, but it won’t tell you right away which group is curtain and which is basic, so you have to do some additional testing on the first item in the first list to confirm if it has a location. If so then that is the basic list and the other is the curtain wall list, otherwise they’re reversed.


I made a quick adjustment. Previously I filtered only on Instances. But what if there is a Door Type Loaded which can be used in Curtain panels, but isn’t used. The previous script would skip those. So I checked the Door Family and the Door - Curtain Wall Families and it seems the Curtain Wall Door don’t have the Parameter “Wall Closure”, so I used that to filter the types into Normal and Curtain.

GetCurtainPanelDoors.dyn (32.2 KB)

Reading the first post it appears the user is after door types, not the door instances so the initial collection isn’t correct. I didn’t realize this at first, so the prior examples might not work (they appear to be trying to build a library of doors in the file).

This graph will find the desired data and will likely be a good bit quicker than the other options so far.


Aah yes this is a quicker solution! But why is it that the the Curtain Door Family Don’t have a Host and the Normal Doors have “Wall” as host?

As I understand it, the curtain panels don’t ‘live’ on the wall, they are defined but are defined by the limits of the grids, and are technically a ‘part’ of the curtain wall element. You cannot create a curtain panel without a curtain wall (even if it’s classified as a door).

Do you know how I’d regroup the family type as the grouped families? Actually quite confusing because some of the family types are the same family :crazy_face: must be a different way to separate curtain door wall from normal doors with family type… or maybe not. Dictionary’s???

I’ve just done this… Hopefully its a robust solution.

Subsequent List.GroupBy nodes should do the trick, but I don’t quite get the question. Can you post a fleshed out example in a new thread (this is 2+ years old and already solved)?

1 Like