Esempio n. 1
0
        public static List <string>[] GetIndex(ST_BRIDGE stBridge)
        {
            var        k3dIds  = new[] { new List <string>(), new List <string>(), new List <string>() };
            StbMembers members = stBridge.StbModel.StbMembers;

            if (members.StbColumns != null)
            {
                k3dIds[0].AddRange(members.StbColumns.Select(column => "Id" + column.id_section));
            }
            if (members.StbGirders != null)
            {
                k3dIds[1].AddRange(members.StbGirders.Select(girder => "Id" + girder.id_section));
            }
            if (members.StbBraces != null)
            {
                k3dIds[2].AddRange(members.StbBraces.Select(brace => "Id" + brace.id_section));
            }

            return(k3dIds);
        }
Esempio n. 2
0
        protected override void SolveInstance(IGH_DataAccess dataAccess)
        {
            var path     = string.Empty;
            var isOutput = false;
            var nodes    = new List <StbNode>();
            var axes     = new StbAxes();
            var stories  = new List <StbStory>();
            var members  = new StbMembers();
            var sections = new StbSections();

            if (!dataAccess.GetDataList(0, nodes))
            {
                return;
            }
            if (!dataAccess.GetData(1, ref axes))
            {
                return;
            }
            if (!dataAccess.GetDataList(2, stories))
            {
                return;
            }
            if (!dataAccess.GetData(3, ref members))
            {
                return;
            }
            if (!dataAccess.GetData(4, ref sections))
            {
                return;
            }
            if (!dataAccess.GetData(5, ref path))
            {
                return;
            }
            if (!dataAccess.GetData(6, ref isOutput))
            {
                return;
            }

            var stbData = new ST_BRIDGE
            {
                version   = "2.0.2",
                StbCommon = new StbCommon
                {
                    project_name = ActiveCanvasFileName(),
                    app_name     = "HoaryFox",
                },
                StbModel = new StbModel
                {
                    StbAxes     = axes,
                    StbStories  = stories.ToArray(),
                    StbNodes    = nodes.ToArray(),
                    StbMembers  = members,
                    StbSections = sections,
                    StbJoints   = new StbJoints(),
                },
                StbAnaModels = Array.Empty <StbAnaModel>(),
                StbCalData   = new StbCalData(),
            };

            if (isOutput)
            {
                bool result = Serializer.Serialize(stbData, path, STBDotNet.Enums.Version.Stb202);
                if (!result)
                {
                    throw new Exception("Failed to serialize.");
                }
            }

            dataAccess.SetData(0, stbData);
        }
Esempio n. 3
0
 public CreateLineFromStb(ST_BRIDGE stBridge)
 {
     _members = stBridge.StbModel.StbMembers;
     _nodes   = stBridge.StbModel.StbNodes;
 }