[new_builder] Core mechanics feedback

I’m going to post here some feedback on issues that, while not being bugs, are problematic for effective usage of the new builder.

  1. Separation on primitives (walls/roofs etc) retained.

Why is this a problem? When I was tracking development of the new builder, I was under impression that Team Radiant strives to get all blocks of the building to be processed in uniform matter. Some tools hint at that (“Punch hole”, for example). But we still operate in primitives, artificial constructs, certain subsets of blocks - walls, floors, rooms. It is easier to perform deforming manipulations (drag, extrude etc) on primitives.
The problem begins when we exclude a block from the primitive or want to include a block in it. I don’t know the exact mechanics of it behind the scenes, but seeing how “Punch hole” works, I assume that primitives work as united “groups” of blocks, thus enabling actions on the whole subset (move wall, raise wall etc).

Test case scenario:
a. Create a house
b. Punch a hole in the wall
c. Save as template
d. Raise from template
e. Try to cover the hole in the wall

For now the only way to do it is to cover the wall by using “Free block” tool. There is, to my knowledge, no way to restore the wall and get in to behave as a wall (raise/move etc). Free blocks will still be processed separately. And since we don’t keep changelog when we save a template (quite understandable), we can’t use “Undo” to undo the hole.

How can one solve such a scenario (without redrawing the whole building from scratch)? I see two options:
a) Separate button to “regenerate walls” (roofs, rooms, etc), i.e. to remove any holes previously made in them.
Sounds problematic since the wall can be extremely deformed at that moment.
b) Allow to include blocks in the wall/floor/roof etc, i.e. cover the hole with “Free block” tool, then order to include these freely placed blocks in the “wall” structural primitive.
Depends on do I understand the mechanics correctly. Also leads to possibly complex safeguards, since the system has to be sure the “covering blocks” are placed correctly by the user and can be included into this wall.

Some info about core logic and memory structure behind the new builder would be helpful. And educational.

  1. Selection of blocks (freely placed blocks) for now is lacking - it starts glitching and doesn’t know what to do when I try to select a complex surface. Example: manually remade roof in Rayya style (wood + clay bricks). Logically speaking, these blocks are uniform - they are placed with the same free block tool. Speaking in terms of deformation, I don’t know how exactly should they look like after, say, extrusion. Which material goes where? Seems like the system currently doesn’t know either, as it does not allow selecting a repeated pattern of clay and wooden stripes (currently only two consequent stripes can be selected, and selection tool becomes unstable when doing so).

Would be interesting to hear some Radiant comments on these issues. Maybe even make a DT about that.

PS. I will continue to dump questions of this scale into the tread, as I can’t classify this as a bug report, more a question of programming and design.