public override void OnNext() { base.OnNext(); try { List <LayerDesc> layerDescs = new List <LayerDesc>(); foreach (ILayer2D layer in uCtrlLayerList.Selected) { layerDescs.Add(layer.LayerDescriptor); } Solution.SetSolver(new LayerSolver()); AnalysisCylinderCase analysis = _item as AnalysisCylinderCase; if (null == analysis) { _item = _document.CreateNewAnalysisCylinderCase( ItemName, ItemDescription , SelectedCylinder, SelectedCase , new List <InterlayerProperties>() , BuildConstraintSet() , layerDescs); } else { analysis.ID.SetNameDesc(ItemName, ItemDescription); analysis.Content = SelectedCylinder; analysis.CaseProperties = SelectedCase; analysis.ConstraintSet = BuildConstraintSet(); analysis.AddSolution(layerDescs); _document.UpdateAnalysis(analysis); } Close(); } catch (Exception ex) { _log.Error(ex.ToString()); } }