For example, if you want to model a Cuboid with a width, depth, and height, you'd need to create a custom depth either by "repurposing " ISQ length using subsetting or just using ISQ LengthValue as depth:LengthValue anyway, since the ISQ model libraries don't have an «attribute» 'depth'.
Sooner or later, you are going to need to use the feature tying approach, so you might as well use that consistently from the start. Unless you wish to do something like this:
attribute elapseTime :> ISQ::duration;
It's not clear that that's any easier or better than just using the elapseTime:DurationValue. Maybe there's some other rationale for preferring the subsetting approach, but it's not used in all the SysML2.0 Annex or GitHub samples anyway.
And although slightly more verbose, using feature typing by a ISQ «attribute def» helps avoid possible issues with multiplicities and subsetting:
