#http://www.salome-platform.org/forum/forum_10/505137568

import geompy

box = geompy.MakeBoxDXDYDZ(100,100,100)
boxes = geompy.MakeMultiTranslation1D( box, geompy.MakeVectorDXDYDZ(1,1,1), 33., 10 )
mergedBoxes = geompy.Partition( [boxes] )
geompy.addToStudy( mergedBoxes, "boxes")

# Remove internal faces from mergedBoxes

externalFaceIDs = []

for solid in geompy.SubShapeAll( mergedBoxes, geompy.ShapeType["SOLID"]):
    for face in geompy.SubShapeAll( solid, geompy.ShapeType["FACE"]):
        faceID = geompy.GetSubShapeID( mergedBoxes, face )
        if faceID in externalFaceIDs:
            # internal faces oncounter twice
            externalFaceIDs.remove( faceID )
        else:
            externalFaceIDs.append( faceID )

externalFaces = [ geompy.GetSubShape( mergedBoxes, [fId] ) for fId in externalFaceIDs ]
shell = geompy.MakeShell( externalFaces )
solid = geompy.MakeSolid( [ shell ] )
geompy.addToStudy( solid, "boxes w/o internal faces")

salome.sg.updateObjBrowser(0)
