示例#1
0
        /// <summary>
        /// Возвращает Список первых из имеющейся иерархии дочерних объектов, присутствующих на диаграмме
        /// </summary>
        /// <param name="eaElement"></param>
        /// <returns></returns>
        public static List <EA.DiagramObject> GetNearestChildrenDA(EA.Element eaElement)
        {
            List <EA.DiagramObject> result = new List <EA.DiagramObject>();

            // Получаем собственно дочерних
            List <EA.Element> childrenElements = LibraryHelper.GetDeployChildren(eaElement);

            // для каждого проверяем, нет ли его на диаграмме
            foreach (EA.Element childElement in childrenElements)
            {
                // Проверяем, что элемент на диаграмме
                EA.DiagramObject childElementDA = Context.CurrentDiagram.GetDiagramObjectByID(childElement.ElementID, "");

                if (childElementDA != null) // ... и если есть - добавляем в результат
                {
                    result.Add(childElementDA);
                }
                else // а если нет - надо проверить дочерних для эьтих дочерних - вдруг они на диаграмме
                {
                    List <EA.DiagramObject> grandchildrenDA = GetNearestChildrenDA(childElement);
                    result.AddRange(grandchildrenDA);
                }
            }

            return(result);
        }