Here is the logic behind the wall system. By using blueprint interface you could implement different types of walls and select them at runtime.
Outlines and other parameters could be shared between these wall types.