Anyone else do it like this?
I usually change 4 G. at a time with this method.
For small tanks I put new water in a measured/marked bucket and heat it. To get it into the tanks I pump it from floor level to the tank using a length of vinyl tubing and a couple of insert 'ells' to make it hook over tank. A MaxiJet 1200 takes care of it and I don't have to lift the bucket.
For the big tank I pump the old water out using a tee off the return. I use a 'Python' hose to an outdoor sink. To get new water in I pump from the mix container (32 G. Brute) to the tank using the same Python. Takes me about 20 minutes to change 12 G. (10%) including clean up. All I have to move/carry is the Python.