Can i add a cube to the top of every selected face of an object using Python?
You can use particle systems for that. You can even put multiple models of trees in a collection and then distribute them randomly while picking them randomly from that collection: