/// <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); }
/// <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); }