Dear Omar,
For building a shell from several faces you could use the following methods:
1. if your faces are topologically disconnected (i.e. do not share common edges), you first need to connect them with BRepOffsetAPI_Sewing. You can refer also to several messages already posted on the Forum - search for key word "sewing".
2. if your faces are already topologically connected (e.g. after some explode of existing shell) you can use simply BRep_Builder::Add.
Once you have built a shell, you need to make sure it is closed and then build a solid from it with BRepBuilderAPI_MakeSolid.
Best regards, Commenter-1