A method for determining an arrangement of parts to be printed in a build envelope of a three dimensional printer, said method comprising: identifying a plurality of parts to be printed ; generating a respective virtual bounding box for each of the plurality of parts ; determining whether a total volume occupied by the generated virtual bounding boxes falls below a predetermined threshold of the build envelope volume ; and in response to determining that the total volume is below the predetermined threshold: sorting the virtual bounding boxes based upon a property of the respective virtual bounding boxes; generating a sorted parts list corresponding to the sorted virtual bounding boxes; and determining, by a processor, an arrangement of the virtual bounding boxes inside the build envelope that results in a total height of the virtual bounding boxes being minimized , to enhance efficiency in printing of the plurality of parts by the 3D printer, wherein determining an arrangement of the virtual bounding boxes comprises determining a placement of a first virtual bounding box of a first part at the top of the sorted parts list in the build envelope; determining placement of the virtual bounding boxes of the remaining parts in the sorted parts list in the build envelope following the determined placement of the first virtual bounding box; and the predetermined threshold is between 60% to 80%. identifying a plurality of parts to be printed ; generating a respective virtual bounding box for each of the plurality of parts ; determining whether a total volume occupied by the generated virtual bounding boxes falls below a predetermined threshold of the build envelope volume ; and in response to determining that the total volume is below the predetermined threshold: sorting the virtual bounding boxes based upon a property of the respective virtual bounding boxes; generating a sorted parts list corresponding to the sorted virtual bounding boxes; and determining, by a processor, an arrangement of the virtual bounding boxes inside the build envelope that results in a total height of the virtual bounding boxes being minimized , to enhance efficiency in printing of the plurality of parts by the 3D printer, wherein determining an arrangement of the virtual bounding boxes comprises determining a placement of a first virtual bounding box of a first part at the top of the sorted parts list in the build envelope; determining placement of the virtual bounding boxes of the remaining parts in the sorted parts list in the build envelope following the determined placement of the first virtual bounding box; and the predetermined threshold is between 60% to 80%. sorting the virtual bounding boxes based upon a property of the respective virtual bounding boxes; generating a sorted parts list corresponding to the sorted virtual bounding boxes; and determining, by a processor, an arrangement of the virtual bounding boxes inside the build envelope that results in a total height of the virtual bounding boxes being minimized , to enhance efficiency in printing of the plurality of parts by the 3D printer, wherein determining an arrangement of the virtual bounding boxes comprises determining a placement of a first virtual bounding box of a first part at the top of the sorted parts list in the build envelope; determining placement of the virtual bounding boxes of the remaining parts in the sorted parts list in the build envelope following the determined placement of the first virtual bounding box; and the predetermined threshold is between 60% to 80%. <EOS>