from my experience with modeling in general I would recommend displaying threads as a simple texture map for rendering purposes only rather than modeling the helix unless absolutely necessary because the complexity of the model grows exponentially and can have a negative impact on performance. The underlying curves necessary to create the surfaces of segments of the helix (1/4, 1/2 or 1 full revolution) can usually be created without programming and then arrayed as necessary however for curves of decreasing diameter (non-machine threads) you will have to program that. standard geometric construction techniques will allow you to model the boundaries and build surfaces but a certain amount of curve fitting has to be done to fully enclose the space if you intend to solidify the model from the surfaces. I couldn't provide you with step-by-step instructions in this forum.
We do have various products (like turbines and others) having highly complex shapes. If the complexity of the model increases exponentially due to threads then why is it not the same for turbines? I mean we do the modeling of such shapes or rather CATIA provides features for doing so, but when it comes to threads it does not?
The fact that there are no tools to model screw threads in Catia is a good clue as to what is considered important in the software. Simplified representations of threads are typically adequate and from a productivity perspective are considered a waste of time to model. That doesn't mean that modeling threads isn't relevant in some contexts. This is a process that requires a great deal of experience with descriptive geometry and geometric construction in 3D. In order to create fully enclosed boundary geometry I start with developing the profiles of the screw thread at the appropriate radii at 90 degree intervals offset by 1/4th of the screw pitch along the Z axis. I then code the creation of two 90 degree helical fit curves (not a standard order of spline curve), one for the radius of the thread at the crest, one for the radius of the thread at the root (which I copy to create the surface on the bottom of the thread). Once those boundary geometries are created I create a surface using vertices that form the boundary of the upper surface of the thread with the root helix, crest helix and adjacent vertices. I repeat that procedure for the lower surface using the crest helix, copied root helix and adjacent vertices. I then create a circular array of 4 of the upper and lower helix surfaces and relocate them along the z axis to form 1 complete revolution of the thread. I then join these surfaces to create one contiguous surface of all 8 individual surfaces. It is extremely important that all the points of the adjoining surfaces have identical coordinates or this join will not work. Once that is completed that single thread can be solidified and arrayed along the Z axis and joined with other solid geometry to create a solid model of a screw You can also solidify and join segments of the thread after creating only 1/4th rotation to do a "sanity" check of your modeling. I'm sure it's possible to build an add-on to automate some of this but, as I said, from a productivity perspective it is considered a waste of time to model screw threads when simplified representations will work. Hope this helps