In a recent discussion with @matthijskooijman, the point came out again, so I did ask myself if this still can be something to address the development (also to take into account the various paths that Arch_Wall is being developed, and wondering if we could by the way reunite them all in a single powerful yet simple object).
For example the current Arch_Wall is already a big beast, allowing a lot of flexibility, but hiding a great complexity of the code (at least to me). It can generate the wall from many different Base objects: sketches, faces, lines, solids, peculiar archSketches, single line sketches (WallTrace); and it also have an algorithm to create layers, and another to create blocks and subdivisions... that's a lot of food! also if you think that all that can be exported to IFC.
So I was thinking: could we think about a wall just as a container, and compose it with different geometry generation objects added to it depending on user needs? Something like
Code: Select all
Arch_Wall
-> inherited semantical part (IFC Wall)
Arch_Wall.Geometry_object = - Simple_wall_geometry
- Wall_from_sketch_geometry
- Wall_from_arch_sketch_geometry
- Wall_from_face_geometry
- or better Profile_extrusion, Vertical Extrusion, Thin_element_extrusion, Sweep, From_solid...
Each geometry object could have standard methods to generate peculiar IFC code, to calculate the wall surface, to fill IFC properties...
could this be something feasible or worth exploring? what do you think?