When you can catch registeel?
you can catch registeel even before battling the elite four. i would suggest before because he can become a great Pokemon in your team same goes for regice and regirock.
hope i helped
In order to catch Registeel in Pokemon diamond, you need to have gotten a level 100 Regigias from a mystery event. This mystery event has passed, so you can no longer get Registeel in Pokemon diamond, unless a friend trades you the mystery event Registeel. The only other way to get Registeel is to trade him from Pokemon emerald, ruby, or sapphire.