Hi again from me!
Sorry for the delay but I had some things to finish before working with your example Matt. The example you posted is a very good way for doing this but it isn't what exactly I want.
Basically, it was my mistake that I didn't completely explained the purpose of creating such a cracked wall. With your example, you can create several halls using a 3D modelling program and with the use of your code you can put them into the wall randomly. This thing though, produces walls with standard halls, except if you have the time to create many different 3D models.
What I really want to do, is to create a cracked wall by using a rule, that will give the user the ability to adjust the height attribute in order to produce each time a different crack. More specific, I want the user to adjust some attributes that by someway in the code will adjust the heights of each part of the wall so it will create a different crack each time. The point of this, is that by this the user can produce buildings with different aging. If he chooses a small value for the attribute then a newer wall will be produced with a smaller crack on it (the wall will be split into several small parts and each part of the place of the wall where the crack will be created will have a larger height value). If he chooses a big value for the attribute then a more aged wall will be produced with a bigger crack on it.
So if I want to accomplish this with your example, I will have to create numerous 3D model cracks for each age of the building, which will be put in the wall according to the users will. This is not a bad way to do it but I would prefer to do it completely with the use of a CGA rule and not by creating 3D models. I believe that the result will be better by this (ok if you have time to create 20 different and good quality 3D models you may achieve the same result :)).