7 Replies Latest reply on Jul 29, 2015 8:46 AM by rebecca_tejada

    Automatically assign downstream Node IDs to upstream pipes

      I was wondering if there was a tool in which you can assign the ID of a manhole to all manholes (or pipes) that connect upstream.  To illustrate, I have have a backbone representation of a sewer network for hydraulic modeling purposes.  I would like to automatically assign the IDs of modeled manholes along the backbone network to non-modeled manholes that connect downstream to a modeled manhole.   Hopefully the attached image illustrates my question. 

      Thanks in advance!

        • Re: Automatically assign downstream Node IDs to upstream pipes
          Did you ever get this figured out?  I'd like to do the same with our Stormwater dataset (assign upstream and downstream id's to pipes).
          • Re: Automatically assign downstream Node IDs to upstream pipes
            Attribute assitant can do this if they participate in a geometric network.. Atrribute Asistant takes a while to set up but it does provide some great data-model support.

            the FROM_JUNCTION_FIELD and TO_JUNCTION_FIELD functions are the ones you are looking for
            • Re: Automatically assign downstream Node IDs to upstream pipes
              I found a great tool in ArcHydro 2.0 for ArcGIS 10 called "Accumulate Attributes".  Basically you select the downstream nodes that you want to assign the cumulative upstream information to, select the source field / target fields and run the tool.  It doesn't populate the downstream ID to upstream nodes, but the function that it performs is exactly what I needed in the end.
              • Re: Automatically assign downstream Node IDs to upstream pipes
                Its also possible to do this by dissolving the lines in your sewer network, executing two separate Features Vertices to Point functions (one for upstream points and one for downstream nodes), at this point if your nodes represent features that are matched in another layer (such as Manholes) you can use a spatial join to import those structure IDs into your new upstream and downstream nodes layers. Once your upstream and downstream features have IDs you can use another series of joins to add the ID's to your original (un-dissolved) sewers layer.

                It could look something like this
                Note that this model is not a working version of what we came up as a solution, the final version was much more complicated and had to be completed with python to be flexible with incomplete data sets and poorly interconnected sewer features.
                • Re: Automatically assign downstream Node IDs to upstream pipes
                  I know that this is an older thread, but here is a recent post that may help with this discussion: http://forums.arcgis.com/threads/87837-Automatic-manhole-numbering-according-to-flow-direction
                  • Re: Automatically assign downstream Node IDs to upstream pipes
                    Here is my solution for those who don't have a geometric network and need to attribute upstream and downstream manholes in your sanitary sewer mains layer. You'll need to follow the steps in sequence. But you won't need to download any software, or use additional extensions or resources other than a basic ArcGIS license. I developed this technique to attribute my layer for use in Pipelogix software (for televising sewer mains).


                    1) Use Python code to attribute manholes and mains with unique IDs. I used this one. Next, add -4- DOUBLE precision items to your mains attribute table. Call them:


                    2) For each of the above items, select the column and calculate the corresponding Geometry:

                    FromNodeX - X Coordinate Line Start
                    FromNodeY - Y Coordinate Line Start
                    ToNodeX - X Coordinate Line End
                    ToNodeY - Y Coordinate Line End

                    3) Export the MAINS attribute table to a dbf file and add this table to your table of contents.

                    4) Right click on the new table and use ADD XY to create two new point layers, one for FromNodeX & FromNodeY coordinates and one for the ToNodeX & ToNodeY coordinates. Name the FromNode (Start) layer "Upstream MH" and the ToNode (End) layer "DownstreamMH".

                    5) Use Spatial Join to join the manholes layer to the new Upstream and Downstream MH point layers. Use the match option "Intersect" and add a search radius of around 5 feet (could be more or less, depending on your features). You are now adding the Manhole IDs to both the Upstream and Downstream manhole layers. You will create two new point layers, one for the upstream MH and one for the downstream MH. Call your two new point layers: UpstreamMH1 & DownstreamMH1. Your new layers will contain both the Main ID and corresponding Manhole ID.

                    6) With the attribute table open, add two new TEXT items to your Mains layer: UpstreamMH and DownstreamMH. You will perform two table JOINS, one at a time. First, JOIN the UpstreamMH1 attribute table to the MAINS attribute table. Use the Mains-ID as your join item. Open the attribute table. Calculate the UpstreamMH column in the Mains table to the MH-ID from the joined table. Then, remove the join. Next, Join the DownstreamMH1 layer and calculate the Downstream MH column with the joined item value. Finally, remove the Join.

                    7) Check your work by labeling each main with its MainID, UpstreamMH and DownstreamMH in one color. Then, label the Manholes with the MH-ID in a contrasting color. As long as your mains were oriented correctly, and a manhole existed at every start and ending point, your work should be mostly done.

                    8) Clean up any null values. Edit the mains layer and sort the upstreamMH and downstreamMH columns, one at a time. Zoom to each main with a null manhole ID and fix the problem.


                    1) Start with a good street centerline layer. Buffer the centerlines with a minimum distance of 30 feet for local roads. Even better, vary the buffer distance by the street class, giving a larger distance for highways and major roads.

                    2) Use Spatial Join on your mains layer to the buffered street layer. Choose the match option: Have their Center In.

                    3) Join the attribute table from your new spatial joined layer to the original mains layer, using the MainsID.

                    4) Calculate the Street name column to the joined street name and voila, your mains are now attributed with the street name.

                    ** Feel free to leave a comment or question on this method. I admit, there might be more simple way, but this method worked on a large mains layer with over 1500 manholes.
                    1 of 1 people found this helpful