/// <summary> /// 对每个线段赋予材料、截面、beta角等属性,然后创建线单元对象 /// </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) { Line linei = new Line(); int material = 0; int section = 0; double beta = 0; string gnames = null; List <string> gnames2 = null; DA.GetData(0, ref linei); DA.GetData(1, ref material); DA.GetData(2, ref section); DA.GetData(3, ref beta); bool bool_gname = DA.GetData(4, ref gnames); if (bool_gname) { string[] namesArray = gnames.Split(','); gnames2 = new List <string>(namesArray);//获得组名 } BeamElementCls Beami = new BeamElementCls(linei, material, section); //创建梁单元对象 Beami.Groupname = gnames2; //给梁单元对象赋予组名 DA.SetData(0, new GH_BeamElement(Beami)); }
/// <summary> /// 输出节点和梁单元命令流 /// </summary> void ExptNodesBeams() { //输出节点信息 Sw.WriteLine("*UNIT"); Sw.WriteLine("N,MM,J,C"); Sw.WriteLine("*NODE"); for (int i = 0; i < Model.Nodes.Count; i++) { Sw.WriteLine(" {0},{1},{2},{3}", i + 1, Model.Nodes[i].X, Model.Nodes[i].Y, Model.Nodes[i].Z); } //输出梁单元信息 Sw.WriteLine("*ELEMENT"); for (int j = 0; j < Model.BeamElements.Count; j++) { BeamElementCls beami = Model.BeamElements[j]; List <int> beamiNodesInd = beami.Nodes_no; if (beamiNodesInd.Count == 2) { Sw.WriteLine(" {0},BEAM,{1},{2},{3},{4},{5},{6}", beami.Ele_no, beami.Mat, beami.Prop, beamiNodesInd[0] + 1, beamiNodesInd[1] + 1, beami.Beta, 0); } } }