protected override void SolveInstance(IGH_DataAccess DA) { // Indata WR_Structure structure = null; List<WR_LoadCombination> loadCombinations = new List<WR_LoadCombination>(); bool go = false; List<int> modes = new List<int>(); int maxIterations = 0; System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch(); if (!DA.GetData(0, ref structure)) { return; } if (!DA.GetDataList(1, loadCombinations)) { return; } if (!DA.GetData(2, ref go)) { return; } if (!DA.GetDataList(3, modes)) { return; } if (!DA.GetData(4, ref maxIterations)) { return; } if (go) { _resElems = new List<ResultElement>(); _log.Clear(); watch.Restart(); // Solve WR_CombinedSectionSizer optimizer = new WR_CombinedSectionSizer(structure); foreach (WR_LoadCombination lc in loadCombinations) { optimizer.AddLoadCombination(lc); } watch.Stop(); _log.Add(String.Format("Initialising: {0}ms", watch.ElapsedMilliseconds)); watch.Restart(); //Run _iterations = optimizer.Run(modes, maxIterations); watch.Stop(); _log.Add(String.Format("Run mode shape optimization and section sizer: {0}ms", watch.ElapsedMilliseconds)); watch.Restart(); // Extract results List<WR_IElement> elems = structure.GetAllElements(); for (int i = 0; i < elems.Count; i++) { if (elems[i] is WR_Element3d) { WR_Element3d el3d = (WR_Element3d)elems[i]; ResultElement re = new ResultElement(el3d); _resElems.Add(re); } } watch.Stop(); _log.Add(String.Format("Extract results: {0}ms", watch.ElapsedMilliseconds)); } DA.SetDataList(0, _log); DA.SetDataList(1, _resElems); DA.SetData(2, _iterations); }
protected override void SolveInstance(IGH_DataAccess DA) { // Indata WR_Structure structure = null; List <WR_LoadCombination> loadCombinations = new List <WR_LoadCombination>(); bool go = false; List <int> modes = new List <int>(); int maxIterations = 0; System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch(); if (!DA.GetData(0, ref structure)) { return; } if (!DA.GetDataList(1, loadCombinations)) { return; } if (!DA.GetData(2, ref go)) { return; } if (!DA.GetDataList(3, modes)) { return; } if (!DA.GetData(4, ref maxIterations)) { return; } if (go) { _resElems = new List <ResultElement>(); _log.Clear(); watch.Restart(); // Solve WR_CombinedSectionSizer optimizer = new WR_CombinedSectionSizer(structure); foreach (WR_LoadCombination lc in loadCombinations) { optimizer.AddLoadCombination(lc); } watch.Stop(); _log.Add(String.Format("Initialising: {0}ms", watch.ElapsedMilliseconds)); watch.Restart(); //Run _iterations = optimizer.Run(modes, maxIterations); watch.Stop(); _log.Add(String.Format("Run mode shape optimization and section sizer: {0}ms", watch.ElapsedMilliseconds)); watch.Restart(); // Extract results List <WR_IElement> elems = structure.GetAllElements(); for (int i = 0; i < elems.Count; i++) { if (elems[i] is WR_Element3d) { WR_Element3d el3d = (WR_Element3d)elems[i]; ResultElement re = new ResultElement(el3d); _resElems.Add(re); } } watch.Stop(); _log.Add(String.Format("Extract results: {0}ms", watch.ElapsedMilliseconds)); } DA.SetDataList(0, _log); DA.SetDataList(1, _resElems); DA.SetData(2, _iterations); }