Example #1
0
        private IPKSimCommand extractIndividualFrom(Population population, int individualId, IEnumerable <IParameter> allParametersOrderedByFormulaType, IndividualExtractionOptions individualExtractionOptions)
        {
            if (population.NumberOfItems <= individualId)
            {
                return(new PKSimEmptyCommand());
            }

            var individual = _executionContext.Clone(population.FirstIndividual)
                             .WithName(createIndividualName(population, individualId, individualExtractionOptions));

            var extractedIndividualParameterCache = new PathCache <IParameter>(_entityPathResolver).For(individual.GetAllChildren <IParameter>());

            foreach (var parameter in allParametersOrderedByFormulaType)
            {
                updateParameterValue(population, individualId, parameter, extractedIndividualParameterCache);
            }

            var originData = individual.OriginData;

            updateOriginDataFromIndividual(individual, originData);

            // TODO
//         originData.Gender = population.AllGenders[individualId];
//         originData.SpeciesPopulation = population.AllRaces[individualId];

            return(_individualTask.AddToProject(individual, editBuildingBlock: false, addToHistory: false));
        }
Example #2
0
        public ISimulationSubject AddToProject()
        {
            using (var presenter = _applicationController.Start <ISimulationSubjectSelectionPresenter>())
            {
                if (!presenter.ChooseSimulationSubject())
                {
                    return(null);
                }

                if (presenter.SimulationSubjetType.IsAnImplementationOf <Population>())
                {
                    return(_populationTask.AddToProject());
                }

                return(_individualTask.AddToProject());
            }
        }