Maybe you need just a region_create?
What have regions to do with collision detection?
"Blocks" are just primitives in WED that are used to build a static mesh that is saved in the wmb and reloaded later on. So, if you would create a dynamic mesh with enabled polygonal collision this is no difference to what you do with pre-designing it in WED and loading as WMB later. Though, creating several entities just to "emulate" blocks is not so nice, because you can predict fps drops.
What I suggest is to write a functions, that takes in a list of box descriptors (simply a struct with the origin, width, length, depth and orientation) and generates a mesh from it, for which you enable polygon collision. You can do this either during runtime directly with a DirectX mesh or with the MDL7 SDK (so you write all your boxes into one MDL file, load it, and enable polygon collision).
In the case that your game collision is entirely PhysX-driven, you can always add boxed shapes to the level entity. This is way more faster and convenient than building your mesh.