Short version, do this:
NodalLoad 2 loadTimeFunction 1 Components 1 10. DOFs 1 3 set 1
(the problem is unrelated to whatever elements you might use)
Long version:
When using boundary conditions on sets, the idea I had was to not rely on the implied dofs that might be created in nodes.
For example, one might have beam supports inside a solid, which means that some nodes will have rotational DOFs as well. Or there might be a contact anslysis (sometime in the future) where new DOFs are dynamically added to the node.
In those cases, we cannot rely on specifying a nodal load as just
NodalLoad 2 loadTimeFunction 1 Components 6 0 0 10 0 0 0 set 1
since we cannot know in advance what DOFs those actually refer to (you just happen to know that in this case, it's {D_u, D_v, D_w, R_u, R_v, R_w}).
Instead, even though it requires more typing, I believe that the (general) Neumann type boundary conditions should specify what DOFs the load applies to:
NodalLoad 2 loadTimeFunction 1 Components 6 0 0 10 0 0 0 set 1 DOFs 6 1 2 3 4 5 6
and you can even skip out on the components you know what you do not care about
NodalLoad 2 loadTimeFunction 1 Components 1 10. DOFs 1 3 set 1
or, if one wants
# Apply the force = [5, 3, 5]
NodalLoad 2 loadTimeFunction 1 Components 3 5. 3. 5. DOFs 3 1 2 3 set 1
This is the same as what's done for dirichler boundary conditions (if you use sets).
There is no warning that you are missing the DOFs input for the nodal load, because it needs to remain backwards compatible (for now).