@chau.npt
I have excersise for you : Can you create few groups with circles randomly positioned and with same radiuses that are scattered in DWG and rotated randomly... Then show us how your blockify routine work with this situation... And in your gif you showed picked selection converted to block... Now show us rotated insertions with groups as blocks I mentioned... I believe you are cheating, and BTW I have LISP that can do correct blockifyications with your situation - this is no big challenge... If I find some time I may show you how my routine works. For now you have to trust me on what I explained...
Marko Ribar, d.i.a. (graduated engineer of architecture)