Not entirely sure what lineworkshrinkwrap does, but you could:
- Pull the geometry of all objects onto the surface you want to work with so that you have ‘surfaces’.
- Union the surfaces into a single surface with the Surface.ByUnion node.
- Get the external loops via the Python here: Get the outer edge of a Road - #3 by jacob.small