To be honest, I find that it's enough to use a tool for generally changing the case, and then tweaking it manually afterwards. Why? Because there are so many "special cases" where I don't want something changed to lower case. For example:
"20 MPa concrete"
"as per OBC 3.2.2.2.(4)(b)"
... and so on. Even if I spent time trying to program (Dynamo, PyRevit, or a macro) all these exceptions, I could never be sure there wasn't something I hadn't accounted for, and would have to read it over anyway. So it would be a lot of effort for little gained -- at least for my situation. Therefore, using a quick-and-dirty method for converting uppercase to sentence case is good enough. So whether it's PyRevit or an online case-changing tool I keep open in my browser, those are sufficient for me.