I need to automatically create perpendicular lines from a point to a line (curb box to water main) and also create perpendicular lines from a point to a line or polygon (curb box to building footprint) in order to create water laterals (line). I don’t need to model, etc., but some way to create this data without manually drawing in all the lines.

I have ArcGIS-Basic 10.6 (license level not compatible with free water utility network tools), X-Tools, AutoCAD Map 2016 and QGIS software.

  • 2
    If you don't want a script or model how do you intend to do this automatically? Your basic license level excludes the use of Near and Generate Near Table so the only 'easy' method I know is not available to you. Are your lines always perpendicular to the water main? Commented Jun 5, 2018 at 22:49
  • Let me clarify: "Don't need to model" meaning I don't need to create a networked utility, etc, just a way to create the linework/connections. I'm open to scripts. I have the Basic license which is limiting and that is why I asked for suggestions! Lines don't have to be perpendicular. Thank you for responding!
    – Tammy C
    Commented Jun 6, 2018 at 21:54

1 Answer 1


As @MichaelStimson pointed out in his comment, this probably isn't possible at the basic license level. However, I want to post the workflow below for anyone else with this problem who has a standard license level or above (Snap tool requires standard). The only requirement is that you have a unique ID field in the curb stops.

  1. Make a copy of your curb stops using Copy Features.
  2. Run the Snap tool from the copied points to the watermain lines. You can specify what you want to snap to as well as distance (edge, vertex, end). I usually choose edge with a distance of 50 or 100 ft. This will move the copied points to the lines within the distance threshold.
  3. Append the original points to the copy of points.
  4. Run Points to Line on the curb stops copy using the Unique ID field as the Line_Field.

This workflow can easily be scripted with Python or created with model builder. The results are not perfect and will probably require some cleanup, but should get you most of the way there and is definitely faster than doing it manually. Here are my results:

enter image description here

  • Your result looks exactly like what I need to do! Thank you for responding and sharing your tip.
    – Tammy C
    Commented Jun 6, 2018 at 21:56
  • 1
    Excellent solution getting around the need for an advanced license for tools such as Near and Generate Near Table. There is a good answer by Emil gis.stackexchange.com/questions/113446/… but the object to use is queryPointAndDistance which needs to be done on a line-by-line basis keeping the minimum distance only; this would allow you to use this logic with a basic license and some work. Commented Jun 6, 2018 at 22:43
  • @MichaelStimson yes, that is a great idea. I think you could easily build a python dictionary to figure out which line is closest to points via a spatial join, and then use queryPointAndDistance() to get the "near point" from the closest line and do the connections from there. That would certainly all be possible with only a basic license.
    – crmackey
    Commented Jun 7, 2018 at 15:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.