void Init() { _nodes = new StbNodes(); _storys = new StbStorys(); _slabs = new StbSlabs(); _secColumnRC = new StbSecColRC(); _secBeamRC = new StbSecBeamRC(); _secColumnS = new StbSecColumnS(); _secBeamS = new StbSecBeamS(); _secBraceS = new StbSecBraceS(); _stbSecSteel = new StbSecSteel(); }
private void Init() { Nodes = new StbNodes(); Columns = new StbColumns(); Posts = new StbPosts(); Girders = new StbGirders(); Beams = new StbBeams(); Braces = new StbBraces(); Slabs = new StbSlabs(); Walls = new StbWalls(); SecColumnRc = new StbSecColumnRc(); SecBeamRc = new StbSecBeamRc(); SecColumnS = new StbSecColumnS(); SecBeamS = new StbSecBeamS(); SecBraceS = new StbSecBraceS(); SecSteel = new StbSecSteel(); }
public static Curve GetCurve(StbSecSteel secSteel, string shape, Point3d point, Utils.SectionType type, Vector3d[] localAxis) { // TODO: foreach なのに最初にマッチしたもので return しているのでが変なので直す。 if (secSteel.StbSecBuildBOX != null) { foreach (var box in secSteel.StbSecBuildBOX.Where(box => box.name == shape)) { return(CurveFromStbSecBox(localAxis, point, type, box.A, box.B)); } } if (secSteel.StbSecRollBOX != null) { foreach (StbSecRollBOX box in secSteel.StbSecRollBOX.Where(box => box.name == shape)) { return(CurveFromStbSecBox(localAxis, point, type, box.A, box.B)); } } if (secSteel.StbSecFlatBar != null) { foreach (StbSecFlatBar flatBar in secSteel.StbSecFlatBar.Where(bar => bar.name == shape)) { return(CurveFromStbSecBox(localAxis, point, type, flatBar.B, flatBar.t)); } } if (secSteel.StbSecBuildH != null) { foreach (StbSecBuildH buildH in secSteel.StbSecBuildH.Where(buildH => buildH.name == shape)) { return(CurveFromStbSecH(localAxis, point, type, buildH.A, buildH.B, buildH.t1, buildH.t2)); } } if (secSteel.StbSecRollH != null) { foreach (StbSecRollH rollH in secSteel.StbSecRollH.Where(rollH => rollH.name == shape)) { return(CurveFromStbSecH(localAxis, point, type, rollH.A, rollH.B, rollH.t1, rollH.t2)); } } if (secSteel.StbSecRollL != null) { foreach (StbSecRollL rollL in secSteel.StbSecRollL.Where(rollL => rollL.name == shape)) { return(CurveFromStbSecL(localAxis, point, type, rollL)); } } if (secSteel.StbSecPipe != null) { foreach (StbSecPipe pipe in secSteel.StbSecPipe.Where(pipe => pipe.name == shape)) { return(CurveFromStbSecPipe(localAxis, point, type, pipe.D)); } } if (secSteel.StbSecRoundBar != null) { foreach (StbSecRoundBar bar in secSteel.StbSecRoundBar.Where(pipe => pipe.name == shape)) { return(CurveFromStbSecPipe(localAxis, point, type, bar.R)); } } // TODO: C 断面を実装する if (secSteel.StbSecRollC != null || secSteel.StbSecLipC != null) { throw new ArgumentException("StbSecRollC & StbSecLipC is not supported"); } throw new ArgumentException("There are no matching steel section"); }