private List <Curve> CreateFromEachGirderKind(string idSection, StbGirderKind_structure kind, IReadOnlyList <Point3d> sectionPoints) { List <Curve> curveList; switch (kind) { case StbGirderKind_structure.RC: StbSecBeam_RC rcSec = _sections.StbSecBeam_RC.First(sec => sec.id == idSection); object[] rcFigure = rcSec.StbSecFigureBeam_RC.Items; curveList = SecRcBeamCurves(rcFigure, sectionPoints); break; case StbGirderKind_structure.S: StbSecBeam_S sSec = _sections.StbSecBeam_S.First(sec => sec.id == idSection); object[] sFigure = sSec.StbSecSteelFigureBeam_S.Items; curveList = SecSteelBeamToCurves(sFigure, sectionPoints); break; case StbGirderKind_structure.SRC: StbSecBeam_SRC srcSec = _sections.StbSecBeam_SRC.First(sec => sec.id == idSection); object[] srcFigure = srcSec.StbSecFigureBeam_SRC.Items; curveList = SecSrcBeamCurves(srcFigure, sectionPoints); break; case StbGirderKind_structure.UNDEFINED: default: throw new ArgumentOutOfRangeException(); } return(curveList); }
private static GH_Structure <GH_String> GetTagStrings(IEnumerable <StbBeam> beams, StbSections sections) { var ghSecStrings = new GH_Structure <GH_String>(); foreach (var item in beams.Select((beam, index) => new { beam, index })) { string secId = item.beam.id_section; var ghPath = new GH_Path(0, item.index); StbGirderKind_structure kindStruct = item.beam.kind_structure; switch (kindStruct) { case StbGirderKind_structure.RC: StbSecBeam_RC secRc = sections.StbSecBeam_RC.First(i => i.id == secId); foreach (object figureObj in secRc.StbSecFigureBeam_RC.Items) { ghSecStrings.AppendRange(TagUtils.GetBeamRcSection(figureObj, secRc.strength_concrete), ghPath); } break; case StbGirderKind_structure.S: StbSecBeam_S secS = sections.StbSecBeam_S.First(i => i.id == secId); foreach (object figureObj in secS.StbSecSteelFigureBeam_S.Items) { ghSecStrings.AppendRange(TagUtils.GetBeamSSection(figureObj), ghPath); } break; case StbGirderKind_structure.SRC: StbSecBeam_SRC secSrc = sections.StbSecBeam_SRC.First(i => i.id == secId); foreach (object figureObj in secSrc.StbSecFigureBeam_SRC.Items) { ghSecStrings.AppendRange(TagUtils.GetBeamRcSection(figureObj, secSrc.strength_concrete), ghPath); } foreach (object figureObj in secSrc.StbSecSteelFigureBeam_SRC.Items) { ghSecStrings.AppendRange(TagUtils.GetBeamSSection(figureObj), ghPath); } break; case StbGirderKind_structure.UNDEFINED: break; default: throw new ArgumentOutOfRangeException(); } } return(ghSecStrings); }
private static void AppendSectionInfos(IDictionary <string, string> pDict, StbSections sections) { var sectionInfo = new List <GH_String>(); switch (pDict["stb_element_type"]) { case "StbColumn": case "StbPost": switch (pDict["kind_structure"]) { case "RC": StbSecColumn_RC columnRc = sections.StbSecColumn_RC.First(sec => sec.id == pDict["id_section"]); sectionInfo = GetColumnRcSection(columnRc.StbSecFigureColumn_RC.Item, columnRc.strength_concrete).ToList(); break; case "SRC": StbSecColumn_SRC columnSrc = sections.StbSecColumn_SRC.First(sec => sec.id == pDict["id_section"]); sectionInfo = GetColumnRcSection(columnSrc.StbSecFigureColumn_SRC.Item, columnSrc.strength_concrete).ToList(); foreach (object item in columnSrc.StbSecSteelFigureColumn_SRC.Items) { sectionInfo.AddRange(GetColumnSSection(item).ToList()); } break; case "S": StbSecSteelFigureColumn_S sFigure = sections.StbSecColumn_S.First(sec => sec.id == pDict["id_section"]).StbSecSteelFigureColumn_S; foreach (object item in sFigure.Items) { sectionInfo.AddRange(GetColumnSSection(item).ToList()); } break; } break; case "StbGirder": case "StbBeam": switch (pDict["kind_structure"]) { case "RC": StbSecBeam_RC beamRc = sections.StbSecBeam_RC.First(sec => sec.id == pDict["id_section"]); foreach (object item in beamRc.StbSecFigureBeam_RC.Items) { sectionInfo.AddRange(GetBeamRcSection(item, beamRc.strength_concrete)); } break; case "SRC": StbSecBeam_SRC beamSrc = sections.StbSecBeam_SRC.First(sec => sec.id == pDict["id_section"]); foreach (object item in beamSrc.StbSecFigureBeam_SRC.Items) { sectionInfo.AddRange(GetBeamRcSection(item, beamSrc.strength_concrete)); } foreach (object item in beamSrc.StbSecSteelFigureBeam_SRC.Items) { sectionInfo.AddRange(GetBeamSSection(item).ToList()); } break; case "S": StbSecSteelFigureBeam_S sFigure = sections.StbSecBeam_S.First(sec => sec.id == pDict["id_section"]).StbSecSteelFigureBeam_S; foreach (object item in sFigure.Items) { sectionInfo.AddRange(GetBeamSSection(item).ToList()); } break; } break; case "StbBrace": switch (pDict["kind_structure"]) { case "S": StbSecSteelFigureBrace_S sFigure = sections.StbSecBrace_S.First(sec => sec.id == pDict["id_section"]).StbSecSteelFigureBrace_S; foreach (object item in sFigure.Items) { sectionInfo.AddRange(GetBraceSSection(item).ToList()); } break; } break; case "StbSlab": switch (pDict["kind_structure"]) { case "RC": StbSecSlab_RC slabRc = sections.StbSecSlab_RC.First(sec => sec.id == pDict["id_section"]); foreach (object item in slabRc.StbSecFigureSlab_RC.Items) { sectionInfo.AddRange(GetSlabRcSection(item, slabRc.strength_concrete).ToList()); } break; case "DECK": StbSecSlabDeck slabDeck = sections.StbSecSlabDeck.First(sec => sec.id == pDict["id_section"]); var deckFigure = slabDeck.StbSecFigureSlabDeck.StbSecSlabDeckStraight; sectionInfo.AddRange(GetSlabDeckSection(deckFigure, slabDeck.strength_concrete).ToList()); break; case "PRECAST": StbSecSlabPrecast slabPrecast = sections.StbSecSlabPrecast.First(sec => sec.id == pDict["id_section"]); sectionInfo.AddRange(GetSlabPrecastSection(slabPrecast.precast_type, slabPrecast.StbSecProductSlabPrecast, slabPrecast.strength_concrete).ToList()); break; } break; case "StbWall": // RC しかない StbSecWall_RC wallRc = sections.StbSecWall_RC.First(sec => sec.id == pDict["id_section"]); sectionInfo = GetWallRcSection(wallRc.StbSecFigureWall_RC.StbSecWall_RC_Straight, wallRc.strength_concrete).ToList(); break; } foreach ((string str, int i) in sectionInfo.Select((str, i) => (str.ToString(), i))) { pDict.Add($"Figure{i}", str); } }