Continuing the discussion from Changing lengths of sub Components that has 45 degree cuts on the ends:
Hi, another concept you may consider, if you add an intermediate component (level) which acts not just as a convenient container for outershell, exploding …to simplfy the DC, but it can retain attribute(s) that pass the current size
A simple DC can be swapped not only with the original but any DC, where a size attribute like “LenY”…(or a common attribute) is passed, so your I-Beam can be swapped with a C-Beam, and the current length can be passed. (though “reload” will replace the component with a DC in its saved condition, so this can be the alternative if required)
Simple single level DCs are basically a standard component with data attached, there is no problems with automatic unique numbers because there’s no sub-components to cause this, they can access higher dynamic capabilities from their original and then be returned to a lower, simpler form.
A ruby script can follow the required simplification process (reading data from the 2nd intermediate level) and change the option labels to suit as well.