This is one of my favorite tools, because it is so simple and effective.
Demote allow users to select components within a parent assembly, to be replaced with a sub-assembly comprised of the selected items.
In the example below, I need to clean up this assembly by taking a hand full of purchased items pertaining to this damper, and shoot them off to a sub-assembly of their own. I still need the components in the correct location, and Demote takes care of that with no additional user interaction.
Demote uses the Create In Place Component tool, which uses the origin of the main assembly as the origin for the new sub-assembly. It also does a pretty good job of keeping thing constrained together as well.
Promote acts in a similar and opposing manner, with a slight twist. Promote allows users to select a component from within a sub-assembly to be promoted up to the current parent assembly. This is accomplished without losing their constraints and without losing the sub-assembly.
In the image above the bolts from the previous ‘Demote’ are selected from within the sub-assembly and be ‘Promoted’ to the parent assembly. When completed, notice how the bolts no longer highlight as part of the sub-assembly, and are once again organized in the assembly browser. The insert constraints are re-applied as well.