It can be tricky using RevolutionPlot3D to make 3D-printable models. The STL file created by Mariusz has backward-oriented faces on the bottom portion, for instance.
Q = RevolutionPlot3D[{{2 + Sqrt[x]}, {4}}, {x, 0, 4},
RevolutionAxis -> {0, 0, 1}]
dQ = DiscretizeGraphics[Q];
HighlightMesh[dQ, Style[2, FaceForm[Yellow, Black]]]
The discretization also has two connected components.
ConnectedMeshComponents[dQ]
For this example, one might think a simple fix would be to use RevolutionPlot3D to plot just the bottom portion, and then discretize the result and use RepairMesh to seal the "hole" along the large circular top edge, essentially placing a disk over it. This is what a call to Printout3D would be expected to do, but we find additional problems:
bottom = RevolutionPlot3D[2 + Sqrt[x], {x, 0, 4},
RevolutionAxis -> {0, 0, 1}, PlotPoints -> 60]
We see that RevolutionPlot3D leaves a "seam" where the bottom surface intersects the plane formed by the x and z axes---where the revolution begins and ends.
Printout3D[bottom, "revTest.stl"];
Import["revTest.stl"]
It seems to me that RevolutionPlot3D should be modified to "sew up" that seam. It works fine for on-screen display, but it does not produce the region that it should when discretized.
There are several other approaches that generate the surface of revolution "manually" rather than with RevolutionPlot3D. The bottom portion of the surface of revolution is given by the equation (z - 2)^4 == x^2 + y^2. One obtains this by taking the original function z == 2+Sqrt[x] and replacing x with "distance from the z-axis", i.e., Sqrt[x^2 + y^2]. So a few means for producing the bottom portion are:
db1 = DiscretizeRegion[
ImplicitRegion[((-2 + z)^4 == x^2 + y^2) && 2 <= z <= 4, {x, y, z}],
MaxCellMeasure -> .005]
Or:
db2=DiscretizeGraphics[
ContourPlot3D[(-2 + z)^4 == x^2 + y^2, {x, -4, 4}, {y, -4, 4}, {z, 2,
4}, BoxRatios -> Automatic, PlotPoints -> 60]]
We then use RepairMesh to seal the hole, and find that both approaches work nicely:
HighlightMesh[RepairMesh[#, "HoleEdges"],
Style[2, FaceForm[Yellow, Black]]] & /@ {db1, db2}