private void IdentifyGroupNodes() { groupNodes = new List <PSMElement>(); foreach (PSMElement element in Diagram.DiagramElements.Keys.OfType <PSMElement>()) { PSMClass psmClass = element as PSMClass; if (psmClass == null) { continue; } if (!psmClass.EncompassesContentForParentSignificantNode() && !psmClass.EncompassesAttributesForParentSignificantNodeOrSelf()) { continue; } if (!psmClass.HasElementLabel) { groupNodes.Add(element); continue; } if (changesByTarget.ContainsKey(psmClass)) { ClassElementNameChange elc = (ClassElementNameChange) changesByTarget[psmClass].FirstOrDefault( change => change is ClassElementNameChange && change.Element == psmClass); if (elc != null && elc.ElementLabelAdded) { groupNodes.Add(element); continue; } } } }