For what it's worth, often I find the boundary constraints the most difficult to implement. In a 3D finite element model, 6 degrees of freedom (minimum) must be constrained: displacements (u,v,w) and rotations (theta-x,theta-y,theta-z). A symmetry constraint on a plane/face restricts the displacement perpendicular to plane, and two rotations, one each in the directions tangential to the plane. Say you are looking at a long rectangular plate with a centered hole, loaded in tension parallel to the two long edges, that is, a y-direction tension stress. That's two symmetry planes, so you can use one-quarter model to simulate. Say the plate is short in x direction, long in y-direction, thickness in the z-direction. Center of hole is (x,y,z)=(0,0,0). Symmetry plane at y=0 constrains y displacement 'v', AND two rotations, theta-x and theta-z. Symmetry plane at x=0 restrains x-displacement 'u' and two rotations, theta-y and theta-z. Now you have one left, z-displacement 'w'. Since there is no load in the z-direction, you can constrain ANY node you want from moving in the z-direction. Because there is equilibrium in the z-direction (no force, therefore sum of forces is zero!), this causes you no problems with singularities being introduced at that node as there would be if you constrained a y-displacement at a node not on the y=0 plane.
If the thing you are modeling isn't symmetric, then it is usually much more difficult to figure out the boundary constraints. Symmetric or not, you still have to restrict those 6 degrees of freedom.