protected override void SolveInstance(IGH_DataAccess DA) { ISystem sghSystem = null; double du = 0.0; double the = -1.0; if (!DA.GetData(0, ref sghSystem)) { return; } if (!DA.GetData(1, ref du)) { return; } if (!DA.GetData(2, ref the)) { return; } Mesh m = new Mesh(); string mss = ""; string modelUnit = Rhino.RhinoDoc.ActiveDoc.ModelUnitSystem.ToString(); sRhinoConverter rhcon = new sRhinoConverter("Meters", modelUnit); if (sghSystem != null) { ISystem sys = sghSystem as ISystem; sRange th = null; if (the > 0.0) { if (colMode.ToString().Contains("Stress")) { the *= 1.0E6; } th = new sRange(0.0, rhcon.EnsureUnit(the, colMode)); } List <sMesh> mms = new List <sMesh>(); sRange resultRange; sys.ConstructBeamResultMesh(colMode, ref mms, out resultRange, th, du); mss += "Color Mode\n" + colMode.ToString(); Interval reRangeRh = rhcon.EnsureUnit_DataRange(rhcon.ToRhinoInterval(resultRange), colMode, true); //true means Pa > MPa mss += "\nData Range: " + Math.Round(reRangeRh.Min, 2) + " to " + Math.Round(reRangeRh.Max, 2); foreach (sMesh sm in mms) { Mesh rm = rhcon.ToRhinoMesh(sm); m.Append(rhcon.EnsureUnit(rm) as Mesh); } } this.Message = mss; DA.SetData(0, m); }