Hello
01- As it is written in @gt22's reply:
Assembling it respects the polarity * ( * explanation if the first function of a body is a removal of matter "pocket, groove, etc" the body icon takes a sign - if this function creates matter the body icon takes a + sign)
So with the assemble of a field "+" operation we add, with the assemble of a "-" field operation we subtract.
Whereas with operations:
Add (add matter whether the body is + or -)
Withdrawal (removes matter whether the body is + or -).
For my part I use: "Add" only with body +, "Removal" only with body - and "Assemble when the body itself is the result of association of Boolean operation. (I rename the "Assemble-add-shape" function......" or "Assemble-Shrink-Shape......" as the case may be.
02 - Total mass:
The mass is deduced from the (volume) x la (density).
If no material is applied to the part body at the highest default level, the value is 1g_cm3.
If the part is multi-material, we don't assemble the bodies , which allows us to have the right rendering on each body, and if we want the total mass, we keep the measurements of the 2 bodies, we create a user parameter of total mass = the sum of the two measurements.
03 - Linear VS Boolean design:
Linear, this is the normal design also used inside bodies.
As soon as the model becomes complex (many topological operations), its modification is + delicate, so we try to structure the graph (pyramidal structure, Boolean operation), this makes it easier to read, allows us to group topological operations by "mechanical functions", e.g. all the fixing clips, all the reinforcement ribs (by the way on the latter the partial relimitation with method is just great).
To allow design independently of the rest of the model (which makes changes, recalculation time and reuse in another design more flexible and faster), etc.