// complement and update ViewModel from PkModel and couple ViewModel and PkModel protected override void UpdateDiagramModel(IMoBiSimulation simulation, IDiagramModel diagramModel, bool coupleAll) { // create neighborhoodsContainerNode, because entities are only added // for available parentContainerNodes IContainerNode neighborhoodsContainerNode = AddAndCoupleNode <IContainer, MultiPortContainerNode>(diagramModel, simulation.Model.Neighborhoods, coupleAll); foreach (var baseNode in neighborhoodsContainerNode.GetAllChildren <IBaseNode>()) { baseNode.IsVisible = false; } neighborhoodsContainerNode.IsVisible = false; foreach (var topContainer in simulation.Model.Root.GetAllContainersAndSelf <IContainer>()) { if (topContainer.ContainerType == ContainerType.Organism || topContainer.ContainerType == ContainerType.Organ || topContainer.ContainerType == ContainerType.Compartment) { AddObjectBase(diagramModel, topContainer, true, coupleAll); } } foreach (var neighborhood in simulation.Model.Neighborhoods.GetAllChildren <INeighborhood>()) { AddNeighborhood(neighborhood); } DiagramModel.ClearUndoStack(); }