/// <summary>
        /// Get IEnumNetEID from List of IEIDInfo
        /// </summary>
        /// <param name="eidInfos">list of IEIDInfo</param>
        /// <param name="elementType">element type of eid</param>
        /// <returns>object IEnumNetEID</returns>
        internal static IEnumNetEID GetEnumNetEID(List <IEIDInfo> eidInfos, esriElementType elementType)
        {
            IEnumNetEIDBuilderGEN enumNetEIDBuilder = new EnumNetEIDArrayClass();

            enumNetEIDBuilder.ElementType = elementType;
            foreach (IEIDInfo eidInfo in eidInfos)
            {
                enumNetEIDBuilder.Add(eidInfo.EID);
            }

            return(enumNetEIDBuilder as IEnumNetEID);
        }
Exemplo n.º 2
0
 private IEnumNetEID GetEnumNetEID(int eidToStartFrom, Dictionary<int, int> pathDictionary, INetwork network, IGeometricNetwork geomNet, esriElementType elemType)
 {
     IEnumNetEIDBuilder enumEIDBuilder = new EnumNetEIDArrayClass();
     enumEIDBuilder.Network = network;
     enumEIDBuilder.ElementType = elemType;
     if (eidToStartFrom == -1)//Add all elements to the return dictionary
     {
         foreach (KeyValuePair<int, int> kvp in pathDictionary)
         {
             int eid = kvp.Key;
             //Only add to the builder if the element type (junction or edge) is of the type we are looking for
             if (((eid < 0) && elemType == esriElementType.esriETEdge) || ((eid > 0) && elemType == esriElementType.esriETJunction))
             {
                 enumEIDBuilder.Add(Math.Abs( eid));
             }
         }
     }
     else
     {
         int eid = eidToStartFrom;
         while (eid != -99999999) // -99999999 means that there is no parent
         {
             if (((eid < 0) && elemType == esriElementType.esriETEdge) || ((eid > 0) && elemType == esriElementType.esriETJunction))
             {
                 enumEIDBuilder.Add(Math.Abs( eid));
             }
             //Get the junction or edge that feeds this junction or edge
             eid = pathDictionary[eid];
         }
     }
     return   enumEIDBuilder as IEnumNetEID;
 }
Exemplo n.º 3
0
        public IEnumNetEID ConvertTracedElementsCollectionToEnumNetEid(IMMTracedElements tracedElements, INetwork network)
        {
            IEnumNetEID resultEnum = null;

            try
            {
                // we have a feedpath, now we want to extract all the elements of one type and
                // put them in an esri enumneteid so we can display it on the map or other fun stuff

                IEnumNetEIDBuilder enumNetEIDBuilder = new EnumNetEIDArrayClass();
                enumNetEIDBuilder.Network = network;
                enumNetEIDBuilder.ElementType = (esriElementType)tracedElements.ElementType;

                INetElements netElements = network as INetElements;

                if ((netElements != null) && (esriElementType.esriETEdge == (esriElementType)tracedElements.ElementType))
                {
                    tracedElements.Reset();
                    IMMTracedElement tracedElement = tracedElements.Next();
                    while (tracedElement != null)
                    {
                        IEnumNetEID tempEnumNetEID = netElements.GetEIDs(tracedElement.FCID, tracedElement.OID, esriElementType.esriETEdge);
                        tempEnumNetEID.Reset();
                        for (int eid = tempEnumNetEID.Next(); eid > 0; eid = tempEnumNetEID.Next())
                        {
                            enumNetEIDBuilder.Add(eid);
                        }
                        tracedElement = tracedElements.Next();
                    }
                }
                else
                {
                    tracedElements.Reset();
                    IMMTracedElement tracedElement = tracedElements.Next();
                    while (tracedElement != null)
                    {
                        enumNetEIDBuilder.Add(tracedElement.EID);
                        tracedElement = tracedElements.Next();
                    }
                }
                if (enumNetEIDBuilder == null)
                {
                    this.Logger.WriteLine("Builder is null");
                }
                resultEnum = enumNetEIDBuilder as IEnumNetEID;
            }
            catch (Exception EX)
            {
                this.Logger.WriteLine(" ConvertTracedElements:" + EX.Message + " " + EX.StackTrace);
            }
            return resultEnum;
        }