Hi, just some thoughts:
for people like me who thinks better around a picture:
- left; concrete slab with sewer, hot n'cold water, electrics.
- middle; concrete wall with bricks/tiles (got lacy and didn't model the mortar).
- right; wooden wall with plank cladding and nails (wasn't able to get linear pattern to work in PartDesign [0.17.10236] OpenSUSE)

- Many_objects.png (123.73 KiB) Viewed 3161 times
Managing large number of objects perhaps can be handled by the following principles;

- Many_objects_handling_principle.png (15.31 KiB) Viewed 3161 times
My thoughts revolve around the principle of Assembly(ies) AND secondary 3D-viewing ultra optimized files (didn't Jürgen start something in that area?) AND an additional twist of file header usage (see sound/image file headers for inspiration).
In order to load as little as possible into the memory I believe as much as possible should be saved to ZIP-files header (how much can it contain?) for simple access without opening/unzipping the file.
For viewing purposes an ultra lightweight file format must be used and saved as a separate file. To save even more precious GPU clock cycles the principle of rendering farther objects coarser should be used. I think the gaming industry uses this method?
When saving the file one is currently working on, FreeCAD also automagically creates a simplified representation and saves it in a separate folder.
When opening the humongous Assembly representation of a whole block/area one really want to see something but not stalling the computer and this is where the stored information in the headers come handy. From that sparse information one should be able to calculate really simple representations of the houses (a house is usually a block, i.e. coordinates for six points are needed). When zooming in the user can choose to switch on/read more information from the ultra light weight file. When user wants even more details he/she opens up/reads the full file. All while the "game engine" does its job with not loading more than absolutely necessary into memory. (This is possible to set in catia, both static levels and dynamic levels).
One thing catia does not have is memory handling, it doesn't unload everything from memory causing it to crash in the afternoon... And that is why I stress the need of it specifically taken account of in FreeCAD.
I.E. there will be three levels of details for different purposes. All three will be usable for viewing.
- 1:st level (file header) additionally gives the number of bricks, planks, nails and so on, without loading the file into memory!
This also gives the weight/volume/length of concrete, mortar and planks, still without loading the file into memory!
The project management can get all info they want without having a super computer at hand!!
- 2:nd level (ultra light weight) shall give possibilities to measure and do section cuts, but that's about it.
- 3:rd level (full format) gives, at least, what we have today.
When sharing the file(s) one need an extra container for that. An extra ZIP-file maybe? This container shall not be created by default, only when one explicitly wants to send them (the files) to someone outside the company server.
Are any of these ideas worth considering?