The best way is to set up a folder of doors which you want to use and swap.
Simple profiles can update using the scaling method. One basically builds the originals with the same dimensions then with the change of leny,lenx, lenz they scale. thus when you replace the object with another, the replacement will scale to the one it replaces. For example Sketchup uploaded a range of steel sections with a common 2.5inch (63.5mm) length which update to the stretched or scaled size when swapped.
however it would be better if they were limited in their lenx, lenz and the scale was set to just allow change in the leny.
From my experience this scaling technique does not work with complex nested components.the parent tends to remain unscaled. However to to be able to swap complex doors (components) you can pass the scaling by wrapping the geometry component inside another where the leny,lenx, lenz are passed to custom attributes of your choosing, though I do suggest you use aLenX,aLenY,aLenZ for compatibility with other creators. Then the nested component lenx,LenY,lenZ access these.
Its very important that the door is built at a rest position, so build at a standard door size. …otherwise for components you have to rescale the definition. with groups one can reset the scale, then rebuild the geometry without scaling, or change them to a component.But editing can be tricky to get all the scaling the same.
I have just started to experiment with this on building elements.
I recommend you also consider a Outer shelling and/or explosion point where complex multi-part objects can be simplified to a solid and save file space and speed , especially if you are using the DC copies.
Currently there is no native multi swap, each one is done individually. Hopefully that will change soon.Otherwise we need some extensions.
Plus you do need to use parent instead of the particular door(component) name
ie use LenY… = parent!aleny
instead of LenY…=my_special_door!aleny
for any parent-less swaps.
and create all the doors in the same file before saving them as components, do all edits in this file so as to avoid changes effected by an independant rouge edit