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%.