public override void SolveInstance(IGH_DataAccess DA, out string msg, out GH_RuntimeMessageLevel level) { msg = ""; level = GH_RuntimeMessageLevel.Blank; //var line = new LineCurve(); Plane inPlane = Plane.WorldXY; var noIndex = 0; var comment = ""; var rfSup = new RFSupportP(); var inRFEM = new GH_RFEM(); var mod = false; var del = false; var tx = 0.0; var ty = 0.0; var tz = 0.0; var rx = 0.0; var ry = 0.0; var rz = 0.0; var nodeList = ""; var rotseq = 0; var eulerAng = new Vector3d(); //int newNo = 0; if (DA.GetData(12, ref inRFEM)) { rfSup = new RFSupportP((RFSupportP)inRFEM.Value); if (DA.GetData(0, ref inPlane)) { var inPlanes = new List <Plane>(); inPlanes.Add(inPlane); rfSup = new RFSupportP(rfSup, inPlanes); } } else if (DA.GetData(0, ref inPlane)) { var inPlanes = new List <Plane>(); inPlanes.Add(inPlane); rfSup = new RFSupportP(new NodalSupport(), inPlanes); } else if (DA.GetData(9, ref nodeList)) { rfSup = new RFSupportP(); rfSup.NodeList = nodeList; } else { msg = "Insufficient input parameters. Provide either Input Plane/Point or Node List or existing RFSuportP Object. "; level = GH_RuntimeMessageLevel.Warning; return; } if (DA.GetData(13, ref mod)) { rfSup.ToModify = mod; } if (DA.GetData(14, ref del)) { rfSup.ToDelete = del; } if (DA.GetData(1, ref noIndex)) { rfSup.No = noIndex; } if (DA.GetData(8, ref comment)) { rfSup.Comment = comment; } if (DA.GetData(2, ref tx)) { rfSup.Tx = tx; } if (DA.GetData(3, ref ty)) { rfSup.Ty = ty; } if (DA.GetData(4, ref tz)) { rfSup.Tz = tz; } if (DA.GetData(5, ref rx)) { rfSup.Rx = rx; } if (DA.GetData(6, ref ry)) { rfSup.Ry = ry; } if (DA.GetData(7, ref rz)) { rfSup.Rz = rz; } if (DA.GetData(9, ref nodeList)) { rfSup.NodeList = nodeList; } if (DA.GetData(10, ref rotseq) || (DA.GetData(11, ref rotseq))) { rfSup.RSType = ReferenceSystemType.UserDefinedSystemType; rfSup.UDSType = UserDefinedAxisSystemType.RotatedSystemType; if (DA.GetData(10, ref rotseq)) { rfSup.RSeq = (RotationSequence)rotseq; } if (DA.GetData(11, ref eulerAng)) { rfSup.RotX = eulerAng.X; rfSup.RotY = eulerAng.Y; rfSup.RotZ = eulerAng.Z; } rfSup.GetOrientation(); } DA.SetData(0, rfSup); }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object can be used to retrieve data from input parameters and /// to store data in output parameters.</param> protected override void SolveInstance(IGH_DataAccess DA, EvaluationUnit unit) { //var line = new LineCurve(); Plane inPlane = Plane.WorldXY; var noIndex = 0; var comment = ""; var rfSup = new RFSupportP(); var inRFEM = new GH_RFEM(); var mod = false; var del = false; var tx = 0.0; var ty = 0.0; var tz = 0.0; var rx = 0.0; var ry = 0.0; var rz = 0.0; var nodeList = ""; var rotseq = ""; var eulerAng = new Point3d(); //int newNo = 0; if (DA.GetData(12, ref inRFEM)) { rfSup = new RFSupportP((RFSupportP)inRFEM.Value); } else if (DA.GetData(0, ref inPlane)) { var inPlanes = new List <Plane>(); inPlanes.Add(inPlane); rfSup = new RFSupportP(new NodalSupport(), inPlanes); } else { return; } if (DA.GetData(13, ref mod)) { rfSup.ToModify = mod; } if (DA.GetData(14, ref del)) { rfSup.ToDelete = del; } if (DA.GetData(1, ref noIndex)) { rfSup.No = noIndex; } if (DA.GetData(8, ref comment)) { rfSup.Comment = comment; } if (DA.GetData(2, ref tx)) { rfSup.Tx = tx; } if (DA.GetData(3, ref ty)) { rfSup.Ty = ty; } if (DA.GetData(4, ref tz)) { rfSup.Tz = tz; } if (DA.GetData(5, ref rx)) { rfSup.Rx = rx; } if (DA.GetData(6, ref ry)) { rfSup.Ry = ry; } if (DA.GetData(7, ref rz)) { rfSup.Rz = rz; } if (DA.GetData(9, ref nodeList)) { rfSup.NodeList = nodeList; } if (DA.GetData(10, ref rotseq) || (DA.GetData(11, ref rotseq))) { rfSup.RSType = ReferenceSystemType.UserDefinedSystemType; rfSup.UDSType = UserDefinedAxisSystemType.RotatedSystemType; if (DA.GetData(10, ref rotseq)) { Enum.TryParse(rotseq, out RotationSequence myRotSeq); rfSup.RSeq = myRotSeq; } if (DA.GetData(11, ref eulerAng)) { rfSup.RotX = eulerAng.X; rfSup.RotY = eulerAng.Y; rfSup.RotZ = eulerAng.Z; } rfSup.GetOrientation(); } DA.SetData(0, rfSup); }