The general approach is to replace models with broken versions of those. There are two ways to go from here: manually building the broken versions or generating them. If you work with an artist, the first way is much easier than the second. Some of the modelling apps may even have tools that generate broken versions of meshes.
Generation is usually done by adding an extra material, slicing the mesh using planes, triangulating the created hole edge loops and applying the new material on those triangles. However, this sounds much easier than it actually is. For the right effect, the input mesh must have no visible holes (which means that, for example, bottoms of buildings must be closed). The difficulties in designing the algorithms and data layouts may arise in multimaterial setups where each part of mesh isn't closed while everything put together is.
Since generation is such an insane thing to attempt, it should only be done on procedurally generated meshes. For everything else, you will need an artist and there's no sane way around that.
Physics for everything is done as usual: generate convex hulls (libraries usually have something that will help with this) for each mesh and create the bodies.