Currently I'm designing a house with hinged and sliding windows and doors with FreeCAD. At first I mounted windows according to Using_a_preset in Arch_Window. Later I constructed them myself according to Creating_from_scratch in Arch_Window. But when changing the building the windows didn't fit anymore. One window should be larger and have more wings. Another window should be smaller and have less wings. Or I wanted to add or remove fanlights. This meant using another Preset, adopting properties and mounting again. I wished to have a simple parametric window, which can also be a door, can have a fanlight, being sliding or hinged on one or the other side. I also wanted to place it relative to the left side, right side or middle of the wall and of the window. All with parameters for easy changing the placement.
The parametric window is constructed using Part_Box and Draft_LinkArray and the boolean operations Part_Cut and Part_Fuse. With arrays it's easy to make the number of wings and fanlight panels variable. The opening arc is a Part_Cylinder. The arrow is a Part_Wedge. Changing the windows works already. In the spreadsheet the parameters and explanations can be found (Spreadsheet_Workbench).
The placement in the wall is still done manually by copying the Expressions of the wall placement to the window and to the Draft_Clone of the outer box. Adding the Clone to Arch_Wall Subtractions creates the hole.
Later the Spreadsheets are kept in the Group Construction and the windows are kept in a separate Group. Thus the windows are in the tree only onetime and get exported to STEP.
Edit 18/5/2021: Image replaced: Fusion now expanded in the tree view. Cylinder and Wedge described.
OS: Windows 10 Version 2009
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.24276 (Git)
Build type: Release
Python version: 3.8.6+
Qt version: 5.15.1
Coin version: 4.0.1
OCC version: 7.5.0
Locale: German/Germany (de_DE)