RE: Attribute propagation
In theory, you could write a journal to propagate an attribute to all components of an assembly
The problem would be if some components (e.g. std parts) do NOT need that attribute set.
Another option is use expressions & inter-part expressions (IPEs).
Again, a journal with logic could work.
You used to be able to drive IPEs _to_ another part: i.e. if you have assembly "A" and component "C", in "A" you have expression "Project", and in A you could write an expression "C:roject = Project" and the expression "Project" in part C would have the same value as the expression "Project" in part A.
But that is now (I believe) deprecated behavior (with the support for MFKs)