/// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            SpiralPart       prt1        = new SpiralPart();   //第一段
            PlatFormPart     prt2        = new PlatFormPart(); //第二段
            SpiralPart       prt3        = new SpiralPart();   //第三段
            PlatFormPart     prt4        = new PlatFormPart(); //第四段
            SpiralPart       prt5        = new SpiralPart();   //第五段
            List <StairBase> StairGroups = new List <StairBase> {
                prt1, prt2, prt3, prt4, prt5
            };

            List <Curve> crvs  = new List <Curve>();
            List <Line>  steps = new List <Line>();

            for (int i = 0; i < StairGroups.Count; i++)
            {
                if (i > 0)
                {
                    StairGroups[i].StartPst = StairGroups[i - 1].EndPst;
                }
                StairGroups[i].SetEndPst();
                StairGroups[i].GenerateGeom();
                StairMember mi = StairGroups[i].StairMembers;
                crvs.Add(mi.InnerCurve);
                crvs.Add(mi.OutCurve);
                if (StairGroups[i].GetType() == typeof(SpiralPart))
                {
                    steps.AddRange(mi.StepAxis);
                }
            }
            DA.SetDataList(0, crvs);
            DA.SetDataList(1, steps);
        }
예제 #2
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            SpiralPart    part1 = new SpiralPart();
            Position      pos;
            PlatformSpecs spcs  = new PlatformSpecs();
            double        angle = 0;

            DA.GetData(0, ref part1);
            DA.GetData(1, ref angle);
            //获得前一个部件的属性,然后分配给这个部件
            pos = part1.EndPst;
            var partDim = part1.SpiralDimension;

            spcs.InnerR      = partDim.InnerR;
            spcs.Width       = partDim.Width;
            spcs.RotateAngle = angle;
            spcs.Direction   = partDim.Direction;
            PlatFormPart platform = new PlatFormPart(pos, spcs);

            DA.SetData(0, platform);
            DA.SetData(1, platform.EndPst);
        }