Your understanding of By Material is correct. Material Definitions provide a way to set component display settings - including hatches and render materials - for a given Wall component (such as Brick) in one place and apply them to multiple Wall Styles. If you later decide to change your standard, or if a specific project requires a change (eg, yellow brick instead of red brick), making the change to the Material Definition for that project will make the change to the components of all Wall Styles in that file that use that Material Definition.
How you choose to show existing vs new is up to you, based on your typical workflows. My firm does mostly commercial and institutional projects. Our floor plans are typically at 1/8" = 1'-0" and we only show the Shrink Wrap component, not the individual components, as at that scale the lineweight of the component lines is often wider than the actual component width. We do set our Wall Styles up with all of the components and have a Display Representation that will show them and any hatches if we do enlarged plan details from the "live" model. We handle new/existing/demo by the settings on the layer of the parent Wall object. (Shrink Wrap is not by material, but on Layer 0 with ByBlock properties and the parent Wall's properties are ByLayer.) We have generic existing-to-remain and demolition Wall Styles that are set up with variable-width single-component for modeling existing conditions where we do not know the composition of the Wall (but have a reasonably close understanding of the overall width of the Wall). If we are renovating an area where we were the original design architects and did the original drawings with ACA Walls, we will just change the layer to an existing layer for items to remain or a demolition layer for items to be removed. Since we are not showing components, that works. If you want to have multi-component existing and demolition Walls that parallel your new Walls but omit hatches then setting up a Material Definition that has the Plan Hatch component turned off would be a way to achieve that. If the Plan Linework component can have the same settings for all components, you could have just one Existing Material Definition that would work for all components. In other words, you would not need a whole new set of Material Definitions for existing to remain Walls, one for each new Material Definition.
ByLayer vs ByBlock: Which to use depends on where you want to control the display of things, and whether you are assigning explicit layers in the display settings. For components that are being placed on Layer 0 (so they inherit the layer of the parent Wall object), I generally prefer to use ByBlock for attributes (Color, Linetype, Lineweight, etc.) that are not being given a specific value. 99.999% of the time, the parent Wall object will have its properties set to ByLayer, in which case ByBlock or ByLayer will have the same result: changing the setting on the layer (or changing the layer to one with different settings) will be reflected in the Wall. But in the 0.001% of cases where I want to do something unique to a very small number of Walls without creating a new layer for them, the ByBlock setting allows me to change the properties of the parent Wall and have the component show that. If you want to control things at the layer level and prefer to create a new layer if you need to change the properties, then use ByLayer. This blog article has an attempt I made to illustrate the differences between assigning ByBlock and ByLayer to nested objects in a block definition. The example uses Color, but it applies to the other properties also. Display settings on components of AEC objects, like Walls, behave the same way. There are three levels to the Display System. Drawing Default settings apply to all objects that do not have an override. Style-level Overrides allow you to have settings that only apply to objects of that style or definition. These can be useful if you need to show the same component in a different way in different styles. But that also makes it difficult to make changes to similar components in multiple styles. The By Material option was eventually added as a way to be able to vary the settings of each component while having one place to make the settings (and any changes) for all similar components across all styles. Object-level overrides are the final level, in which you can have unique display settings on individual objects. These should be used sparingly, if at all, because you have to edit each object if further changes need to be made.
Unfortunately, overrides are an all-or-nothing thing. If you set an override, it applies to all settings in that Display Representation. You cannot just override the settings on one component and have the rest follow the Drawing Default settings, picking up any future changes made there.
As for the dashed line issue when moving the Existing Wall to the demolition layer, in your four "Invisible" Material Definitions, I changed the Linetype of the Plan Linework component from ByLayer to ByBlock, so that it now inherits the linetype of the Parent Wall. That remains a continuous line when on the existing Wall layer, but changes to a dashed line when on the demolition Wall layer.

David Koch
AutoCAD Architecture and Revit User
Blog | LinkedIn
