If you want the highest accuracy you will probably be using targets and a points-based project. If you have an unknown photo (no knowledge of the camera that took the photo) and the photo has distinct geometric shapes (such as box shaped buildings, not necessarily cube shaped) then a Shapes-based project may be the easiest way to start.
Shapes-based projects are easy to set up, easier to use with unknown photos but require some good regular geometric shapes with clear edges (such as a box or a rectangle) visible in the photos. Points can be marked and referenced in Shapes-based projects but solve by light-ray intersection only (which may not be as accurate as a points-based bundle adjustment solution). You can add curves, surfaces, etc. to the points in a Shapes-based project.
Points-based projects are described extensively in other sections of this document. When a Shape is added to a Points-based project it must have three or more of its vertices tied to existing 3D points (by marking shape vertices on top of Marked Points in a photo). Subsequent shapes in the project can be tied to points or be tied to existing Shapes though the use of Relations. See the Shapes in Points-based Projects section for additional details on how Shapes can be used in a Points-based project.
Note that in a Points-based project when processing is run (manually or automatically in the background) the bundle adjustment algorithm runs first and then the Shapes algorithm runs (to ensure shapes that are tied to points are recomputed). In a Shapes-based project the shapes algorithm runs after each new shape is added and after an adjustment to a vertex or edge is made on a photo (if automatic processing is on). Then any points in the project that are referenced (or are on one photo in the case of surface draw) are recomputed.