There are a few ways to do this, I prefer the “*desired/current” method. It’s basically the same as what you described but it takes advantage of inkscape’s native support of functions as dimensions.
I wrote it up once, where’d I put that? Hmm…
Here we go:
Of course the best way to do it is with a parametric program like fusion 360, but you can do some of that sort of thing in inkscape (and others) using clones.
(Warning this one is long)