/// <summary> /// Update Agents from SysDyn.Variables /// </summary> /// <param name="agents"></param> /// <param name="modelNetwork"></param> public void SynchronizeSymu(List <ReactiveAgent> agents, ModelNetwork modelNetwork) { if (agents == null) { throw new ArgumentNullException(nameof(agents)); } foreach (var variableName in Variables.Outputs) { // Synchronize VariableAgent from Variables if (_variableAgents.Exists(x => x.VariableName == variableName)) //foreach (var variableAgent in _variableAgent.Where(x => Variables.Exists(x.VariableName))) { var variableAgent = _variableAgents.Find(x => x.VariableName == variableName); var agent = agents.Find(x => x.AgentId.Equals(variableAgent.AgentId)); agent.SetProperty(variableAgent.Property, Variables.GetValue(variableName)); } if (modelNetwork == null) { continue; } // Synchronize ModelNetwork from Variables foreach (var entity in modelNetwork) { if (entity.Model.Variables.Exists(variableName)) { entity.Model.Variables.SetValue(variableName, Variables.GetValue(variableName)); } } } }
public void Add(ModelNetwork modelNetwork) { if (modelNetwork == null) { throw new ArgumentNullException(nameof(modelNetwork)); } Add(modelNetwork.GlobalModel()); }
public void CopyTo(MainOrganization entity) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } entity.ArtifactNetwork = ArtifactNetwork.Clone(); entity.ModelNetwork = ModelNetwork.Clone(); entity.Models = Models.Clone(); entity.Murphies = Murphies.Clone(); entity.Communication = Communication; entity.Templates = Templates; }
/// <summary> /// Process SysDynEngine /// Synchronize VariableAgents between Symu and SysDyn if you have setted some VariableAgents /// Synchronize ModelNetwork between Symu and SysDyn if you have setted some ModelNetwork.Entities /// </summary> /// <param name="agents"></param> /// <param name="modelNetwork"></param> public void Process(List <ReactiveAgent> agents, ModelNetwork modelNetwork) { if (agents == null) { throw new ArgumentNullException(nameof(agents)); } // First update variables with the agents' properties' values SynchronizeSysDyn(agents, modelNetwork); // Then Process Process(); // Finally update agents with the variables' values SynchronizeSymu(agents, modelNetwork); }
/// <summary> /// Update SysDyn.Variables from VariablesAgents and ModelNetwork /// </summary> /// <param name="agents"></param> /// <param name="modelNetwork"></param> public void SynchronizeSysDyn(List <ReactiveAgent> agents, ModelNetwork modelNetwork) { if (agents == null) { throw new ArgumentNullException(nameof(agents)); } foreach (var variableName in Variables.Inputs) { // Synchronize Variables from VariableAgent if (_variableAgents.Exists(x => x.VariableName == variableName)) { var variableAgent = _variableAgents.Find(x => x.VariableName == variableName); var agent = agents.Find(x => x.AgentId.Equals(variableAgent.AgentId)); Variables.SetValue(variableName, agent.GetProperty(variableAgent.Property)); } if (modelNetwork == null) { continue; } // Synchronize Variables from ModelNetwork foreach (var entity in modelNetwork) { if (entity.Model.Variables.Exists(variableName)) { Variables.SetValue(variableName, entity.Model.Variables.GetValue(variableName)); } } } //// Synchronize Variables from VariableAgent //foreach (var variableAgent in _variableAgents.Where( x=> Variables.Exists(x.VariableName))) //{ // var agent = agents.Find(x => x.AgentId.Equals(variableAgent.AgentId)); // Variables.SetValue(variableAgent.VariableName, // agent.GetProperty(variableAgent.Property)); //} //// Synchronize Variables from ModelNetwork //foreach (var entity in _modelNetwork) //{ // foreach (var outputName in entity.Model.Variables.Outputs) // { // Variables.SetValue(outputName, entity.Model.Variables.GetValue(outputName)); // } //} }
private void ModelTargetDropDown_SelectionChanged(object sender, RibbonControlEventArgs e) { previousModelverifier?.UnloadShapes(); activeModelverifier?.LoadShapes(); previousModelverifier = activeModelverifier; //update ui if (activeModelverifier != null) { this.VerifyButton.Enabled = this.activeModelverifier.CanVerify; this.ImportButton.Enabled = this.activeModelverifier.CanVerify; this.ExportButton.Enabled = this.activeModelverifier.CanVerify; this.CreateNewSPESProject.Visible = false; this.GenerateSubmodelsButton.Visible = Reflection.GetAllModelreferenceTypesInModule(activeModelverifier.GetType()).Any() || activeModelverifier.GetType() == typeof(StrukturellerKontextNetwork) || activeModelverifier.GetType() == typeof(FunktionellerKontextNetwork); //special cases: if (activeModelverifier.GetType() == typeof(LogicalViewpointNetwork)) { this.CreateNewEngineeringPath.Visible = true; this.CompleteInterfaceAutomata.Visible = false; } else if (activeModelverifier.GetType() == typeof(FunktionsnetzNetwork) || activeModelverifier.GetType() == typeof(TechnicalViewpointNetwork)) { this.CreateNewEngineeringPath.Visible = false; this.CompleteInterfaceAutomata.Visible = true; } else { this.CompleteInterfaceAutomata.Visible = false; this.CreateNewEngineeringPath.Visible = false; } } else { //none selected this.VerifyButton.Enabled = false; this.ImportButton.Enabled = false; this.ExportButton.Enabled = false; this.CreateNewSPESProject.Visible = true; this.GenerateSubmodelsButton.Visible = false; this.CompleteInterfaceAutomata.Visible = false; } }
/// <summary> /// runs the checker against the target model. throws a ValidationFailedEvent if error is found /// </summary> /// <param name="pModelNetwork"></param> public abstract void Initialize(ModelNetwork pModelNetwork);