//---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Создание и добавление созданного элемента в список дочерних элементов
            /// </summary>
            /// <remarks>
            /// Происходит создание элемента указанного типа и добавление его в список дочерних элементов
            /// </remarks>
            /// <returns>Структурный элемент документа</returns>
            //---------------------------------------------------------------------------------------------------------
            public override CUrbanPlanningItem AddChildNewElement()
            {
                CRoadElement road_element = new CRoadElement("Дорога", mPlace);

                road_element.RoadInfra = this;
                mRoadElements.Add(road_element);
                return(road_element);
            }
            //---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Удаление элемента из списка дочерних элементов
            /// </summary>
            /// <param name="element">Элемент</param>
            /// <returns>Статус успешности удаления</returns>
            //---------------------------------------------------------------------------------------------------------
            public override Boolean RemoveChildElement(CUrbanPlanningItem element)
            {
                CRoadElement road_element = element as CRoadElement;

                if (road_element != null)
                {
                    mRoadElements.Remove(road_element);
                    return(true);
                }
                return(false);
            }
            //---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Добавление существующего элемента
            /// </summary>
            /// <remarks>
            /// Происходит только добавление существующего элемента. Если элемент принадлежит другому элементу,
            /// то элемент будет сначала удален из его списка
            /// </remarks>
            /// <param name="element">Элемент</param>
            /// <returns>Статус успешности добавления</returns>
            //---------------------------------------------------------------------------------------------------------
            public override Boolean AddChildExistingElement(CUrbanPlanningItem element)
            {
                CRoadElement road_element = element as CRoadElement;

                if (road_element != null)
                {
                    road_element.RoadInfra = this;
                    mRoadElements.Add(road_element);
                    return(true);
                }
                return(false);
            }