I would argue (ha!) that staying kind and understanding in the face of idiocy and aggression is counterproductive.
If someone gets aggressive in a calm discussion, just stop. Refuse to engage with that. Call it out.
Idiocy - as opposed to ignorance - also does not need to be engaged. If you are describing someone you WANT to discuss something with as an "idiot" to start with, the problem might be you. If the person is actually an idiot and you are not, why are you arguing with them?
There are times when you must debate with someone who is an idiot and/or aggressive for work. In my private life? I gave that up a long time ago and am happier since.