The current parametric window / door is based on the specifications provided by IFC (commonly known as the "Standard Case"). This standard is nice, but I sometimes wonder if it's actually been properly audited by someone who works as a door / window manufacturer or architect who does door / window schedules / details :)
I think it's now time for Bonsai / IfcOpenShell to be opinionated and offer a new door / window generator using our own rules informed by users to overcome the limitations of the standard case. Ping @yorik who has tackled this many times already in FreeCAD. See https://github.com/IfcOpenShell/IfcOpenShell/issues/3537 and https://github.com/buildingSMART/IFC4.3.x-development/issues/673 and https://github.com/IfcOpenShell/IfcOpenShell/issues/4206 for existing efforts. There are more efforts already but I can't find the link now, and please check out FreeCAD's amazing work too.
What I'm hoping for:
-
This will be a door/window generator that can be used purely in the IfcOpenShell API as something we offer. This means FreeCAD can benefit from it too, as well as people who want to generate doors but are dissatisfied (as some of us are) with the standard case. This is not mutually exclusive with other "geometry generation" methods. Just because we offer this doesn't mean we stop offering other methods too.
-
Doors and windows are similar, and sometimes are combined in real life. FreeCAD actually does treat them as one tool, and I think this is a good idea unless @yorik tells me it was all a big mistakes :) It would be nice to have a macro "cell-based" approach like suggested in 4206, where each (potentially merged) cell either holds a window or a door, etc. Similarly terminology should be shared.
-
You can either generate a profile extrusion (e.g. for framing) using text/numeric parameterics (e.g. single or double rebate, rebate depth, etc), or by specifying a profile. There must be a logic behind the axis alignment of the cross sectional profile.
Things I hope for:
-
I don't like one monster "100 parameters for every possibility". I prefer highly opinionated "Wood frame door" vs "Metal frame door" that has less parameters but tailored for that typical geometry. See for example how we currently do stairs and railings. This may mean there is a "wood generator" or a "metal generator" or a "single door" generator that behaves very differently to a "double door generator" etc. It's simpler to explain and debug.
-
I'd very much like to also see sliding doors and roller doors be added to our repetoire. Can't do non-residential without them.
-
Apart from specifying a cross sectional profile extruded along an axis, I don't think we should support other geometry as an input. This obviously places limits (no circular hobbit doors for you!) but that's cool, later on other tools and workflows can be built.
In order to implement this, I'm hoping for some consensus behind everybody who's ever brainstormed this in the past, and some very nice clear diagrams of parameters that can later be used as documentation.
Anybody interested in helping take the lead in moderating feedback and generating the diagrams to serve as a specification for this? @Andrej730 has built a super, awesome, shape builder library that means that once we agree on a diagram, the work required into turning this into a parametric IFC shape is potentially quite easy.



