示例#1
0
        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);
        }
示例#2
0
        /// <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);
        }