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

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

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

                if (social_element != null)
                {
                    social_element.SocialInfra = this;
                    mSocialElements.Add(social_element);
                    return(true);
                }
                return(false);
            }