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