示例#1
0
        private static void CheckSecBraceIdMatching(IEnumerable <StbSecBrace_S> braces, CroSec k3dCroSec, string steelShapeName)
        {
            if (braces == null)
            {
                return;
            }
            foreach (StbSecBrace_S brace in braces)
            {
                var      memberFigureName = string.Empty;
                object[] figures          = brace.StbSecSteelFigureBrace_S.Items;
                switch (figures[0])
                {
                case StbSecSteelBrace_S_Same same:
                    memberFigureName = same.shape;
                    break;

                case StbSecSteelBrace_S_NotSame _:
                    memberFigureName = new[] { figures[0] as StbSecSteelBrace_S_NotSame, figures[1] as StbSecSteelBrace_S_NotSame }
                    .First(figure => figure.pos == StbSecSteelBrace_S_NotSamePos.BOTTOM).shape;
                    break;

                case StbSecSteelBrace_S_ThreeTypes _:
                    memberFigureName = new[] { figures[0] as StbSecSteelBrace_S_ThreeTypes, figures[1] as StbSecSteelBrace_S_ThreeTypes, figures[2] as StbSecSteelBrace_S_ThreeTypes }
                    .First(figure => figure.pos == StbSecSteelBrace_S_ThreeTypesPos.CENTER).shape;
                    break;
                }
                if (memberFigureName == steelShapeName)
                {
                    k3dCroSec.AddElemId("Id" + brace.id);
                }
            }
        }
示例#2
0
        private static void CheckSecBeamIdMatching(IEnumerable <StbSecBeam_S> beams, CroSec k3dCroSec, string steelShapeName)
        {
            if (beams == null)
            {
                return;
            }
            foreach (StbSecBeam_S beam in beams)
            {
                var      memberFigureName = string.Empty;
                object[] figures          = beam.StbSecSteelFigureBeam_S.Items;
                switch (figures[0])
                {
                case StbSecSteelBeam_S_Straight straight:
                    memberFigureName = straight.shape;
                    break;

                case StbSecSteelBeam_S_Taper _:
                    memberFigureName = new[] { figures[0] as StbSecSteelBeam_S_Taper, figures[1] as StbSecSteelBeam_S_Taper }
                    .First(figure => figure.pos == StbSecSteelBeam_S_TaperPos.START).shape;
                    break;

                case StbSecSteelBeam_S_Joint _:
                    var joints = figures.Length == 2
                             ? new[] { figures[0] as StbSecSteelBeam_S_Joint, figures[1] as StbSecSteelBeam_S_Joint }
                             : new[] { figures[0] as StbSecSteelBeam_S_Joint, figures[1] as StbSecSteelBeam_S_Joint, figures[2] as StbSecSteelBeam_S_Joint };
                    memberFigureName = joints.First(figure => figure.pos == StbSecSteelBeam_S_JointPos.CENTER).shape;
                    break;

                case StbSecSteelBeam_S_Haunch _:
                    var haunch = figures.Length == 2
                             ? new[] { figures[0] as StbSecSteelBeam_S_Haunch, figures[1] as StbSecSteelBeam_S_Haunch }
                             : new[] { figures[0] as StbSecSteelBeam_S_Haunch, figures[1] as StbSecSteelBeam_S_Haunch, figures[2] as StbSecSteelBeam_S_Haunch };
                    memberFigureName = haunch.First(figure => figure.pos == StbSecSteelBeam_S_HaunchPos.CENTER).shape;
                    break;

                case StbSecSteelBeam_S_FiveTypes _:
                    StbSecSteelBeam_S_FiveTypes[] fiveTypes;
                    switch (figures.Length)
                    {
                    case 3:
                        fiveTypes = new[] { figures[0] as StbSecSteelBeam_S_FiveTypes, figures[1] as StbSecSteelBeam_S_FiveTypes, figures[2] as StbSecSteelBeam_S_FiveTypes };
                        break;

                    case 4:
                        fiveTypes = new[] { figures[0] as StbSecSteelBeam_S_FiveTypes, figures[1] as StbSecSteelBeam_S_FiveTypes, figures[2] as StbSecSteelBeam_S_FiveTypes, figures[3] as StbSecSteelBeam_S_FiveTypes };
                        break;

                    case 5:
                        fiveTypes = new[] { figures[0] as StbSecSteelBeam_S_FiveTypes, figures[1] as StbSecSteelBeam_S_FiveTypes, figures[2] as StbSecSteelBeam_S_FiveTypes, figures[3] as StbSecSteelBeam_S_FiveTypes, figures[4] as StbSecSteelBeam_S_FiveTypes };
                        break;

                    default:
                        throw new ArgumentException("StbSecSteelBeam_S_FiveTypes parse error");
                    }
                    memberFigureName = fiveTypes.First(figure => figure.pos == StbSecSteelBeam_S_FiveTypesPos.CENTER).shape;
                    break;
                }
                if (memberFigureName == steelShapeName)
                {
                    k3dCroSec.AddElemId("Id" + beam.id);
                }
            }
        }