Delete a brush and stretch another to fill the gap, where possible. However avoid large brushes spanning multiple separated rooms. If it's not concave, make it out of a single brush. Group func_details together into visible clusters. IE a stack of boxes should be a single func_detail, not individual func_details. Never use carve, only careful clipping and vertex editing.
If you are making your own props out of brushes, consider turning them into a model. Models can be many many brushes big, but do not count towards the limit. See Propper.
To really provide help i'd need to see it. But chances are it'll need a lot of editing or a remake.
Curved railings inside the building are like 7 brushes each, and there's a lot of them. Make them into a 128-length model which you can duplicate (like normal railings are).
Your curved sections are nicely vertex edited to fill the square shapes. Good job there! However the big monorail section is a LOT of brushes (due tot he stairs and bits). It may need to reduce the curvature (eg a 32 sided arch rather than a 64, for example) to reduce the brush count. Also again some are duplicated where one would do. See above.
Diagonal buildings will be EVIL to compile, especially when they have very complicated sides due to balconies. These must be made into Func_Details. If you use the VisGroup window, hide all entites and Func_Details. You should be left with a single, flat sided block-shaped building with no detail at all, since all the bits that stick out on the front are func_Details. This will greatly optimise your compile times and fps in game. See the uber FAQ in any forum about optimisation to learn about func_Details. Notably, section 2) A Detailed Wall, here: optimization.interlopers.net/index.php?chapter=func_detail
Thanks for the suggestions, but I have a few statements and questions for you.
First is about the windows. I don't like using overlays, because I want to look like the window is in a realistic position, not just a copied and pasted picture. (I think that's what you meant, if not, I have no idea what you meant)
Second is that if the side of a brush has nodraw, does that nodraw side count as a poly?
Third is about the railings. You meant the ones inside the large building with the words on top?
Also, the "monorail part" you mentioned is supposed to look like this:
It's based in Pripyat, in the main square.
And last, what did you mean in the last paragraph?
"Aim towards enemy"-printed on the side of a U.S. Rocket Launcher.
Overlays generally look good especially on buildings. They aren't "inset" though, which is what you'd like. Making them a bit deeper than the main wall is doable, but will create a lot more visleafs.
NoDraw does not count towards the FACE limit, but still counts towards the BRUSH limit. It also means less is rendered, which i always good. Every face you cannot see should be NoDraw.
Yes, about the railings.
The last paragraph is about Visleafs. Generally, diagonal stuff creates bad VisLeafs, especially when they are as complex as your buildings. Once your buildings are simplified with Func_details so that to the VisLeaf maker it's just a flat side, it'll be safer to have them diagonal.