protected override void SolveInstance(IGH_DataAccess DA) { FemDesign.Bars.Bar bar = null; FemDesign.Bars.Buckling.BucklingLength flexuralStiff = null; FemDesign.Bars.Buckling.BucklingLength flexuralWeak = null; FemDesign.Bars.Buckling.BucklingLength pressuredTopFlange = null; FemDesign.Bars.Buckling.BucklingLength pressuredBottomFlange = null; if (!DA.GetData(0, ref bar)) { return; } if (!DA.GetData(1, ref flexuralStiff)) { return; } if (!DA.GetData(2, ref flexuralWeak)) { return; } if (!DA.GetData(3, ref pressuredTopFlange)) { return; } if (!DA.GetData(4, ref pressuredBottomFlange)) { return; } // DA.SetData(0, FemDesign.Bars.Buckling.BucklingData.SetOnSteelBar(bar, flexuralStiff, flexuralWeak, pressuredTopFlange, pressuredBottomFlange)); }
protected override void SolveInstance(IGH_DataAccess DA) { FemDesign.Bars.Bar bar = null; FemDesign.Bars.Buckling.BucklingLength flexuralStiff = null; FemDesign.Bars.Buckling.BucklingLength flexuralWeak = null; FemDesign.Bars.Buckling.BucklingLength lateralTorsional = null; if (!DA.GetData(0, ref bar)) { return; } if (!DA.GetData(1, ref flexuralStiff)) { return; } if (!DA.GetData(2, ref flexuralWeak)) { return; } if (!DA.GetData(3, ref lateralTorsional)) { return; } // DA.SetData(0, FemDesign.Bars.Buckling.BucklingData.SetOnTimberBar(bar, flexuralStiff, flexuralWeak, lateralTorsional)); }
public static Dictionary <string, object> BarDeconstruct(FemDesign.Bars.Bar bar) { Dictionary <string, object> result = new Dictionary <string, object>(); result.Add("Guid", bar.Guid); result.Add("Curve", bar.GetDynamoCurve()); result.Add("Type", bar.Type); result.Add("Material", bar.BarPart.ComplexMaterialObj); if (bar.BarPart.ComplexSectionObj != null) { result.Add("Section", bar.BarPart.ComplexSectionObj.Sections); } else if (bar.BarPart.Type == Bars.BarType.Truss) { result.Add("Section", new List <Sections.Section> { bar.BarPart.TrussUniformSectionObj }); } else if (bar.BarPart.HasComplexCompositeRef || bar.BarPart.HasDeltaBeamComplexSectionRef) { result.Add("Section", null); throw new System.Exception("Composite Section in the model. The object has not been implemented yet. Please, get in touch if needed."); } result.Add("Connectivity", bar.BarPart.Connectivity); var eccentricity = (bar.BarPart.ComplexSectionObj != null) ? bar.BarPart.ComplexSectionObj.Eccentricities : null; result.Add("Eccentricity", eccentricity); result.Add("LocalY", bar.BarPart.LocalY.ToDynamo()); result.Add("Stirrups", bar.Stirrups); result.Add("LongitudinalBars", bar.LongitudinalBars); result.Add("PTC", bar.Ptc); result.Add("Identifier", bar.Identifier); return(result); }
protected override void SolveInstance(IGH_DataAccess DA) { // get data FemDesign.Bars.Bar bar = null; if (!DA.GetData(0, ref bar)) { return; } List <FemDesign.Reinforcement.BarReinforcement> barReinforcement = new List <FemDesign.Reinforcement.BarReinforcement>(); if (!DA.GetDataList(1, barReinforcement)) { return; } bool overwrite = true; if (!DA.GetData(2, ref overwrite)) { return; } if (bar == null || barReinforcement == null) { return; } // clone bar var clone = bar.DeepClone(); // clone reinforcement var reinfClone = barReinforcement.Select(x => x.DeepClone()).ToList(); // add reinforcement FemDesign.Bars.Bar obj = FemDesign.Reinforcement.BarReinforcement.AddReinforcementToBar(clone, reinfClone, overwrite); // return DA.SetData(0, obj); }
protected override void SolveInstance(IGH_DataAccess DA) { // get input FemDesign.Bars.Bar bar = null; if (!DA.GetData(0, ref bar)) { return; } if (bar == null) { return; } // return DA.SetData(0, bar.Guid); DA.SetData(1, bar.GetRhinoCurve()); DA.SetData(2, bar.BarPart.ComplexMaterialObj); DA.SetDataList(3, bar.BarPart.ComplexSectionObj.Sections); DA.SetDataList(4, bar.BarPart.Connectivity); DA.SetDataList(5, bar.BarPart.ComplexSectionObj.Eccentricities); DA.SetData(6, bar.BarPart.LocalY.ToRhino()); DA.SetData(7, bar.Identifier); }
protected override void SolveInstance(IGH_DataAccess DA) { // get input Curve curve = null; if (!DA.GetData(0, ref curve)) { return; } FemDesign.Materials.Material material = null; if (!DA.GetData(1, ref material)) { material = FemDesign.Materials.MaterialDatabase.GetDefault().MaterialByName("C30/37"); } FemDesign.Sections.Section section = null; if (!DA.GetData(2, ref section)) { section = FemDesign.Sections.SectionDatabase.GetDefault().SectionByName("Concrete sections, Rectangle, 250x600"); } Vector3d v = Vector3d.Zero; if (!DA.GetData(3, ref v)) { // pass } bool orientLCS = true; if (!DA.GetData(4, ref orientLCS)) { // pass } string identifier = "T"; if (!DA.GetData(5, ref identifier)) { // pass } // convert geometry if (curve.GetType() != typeof(LineCurve)) { throw new System.ArgumentException("Curve must be a LineCurve"); } FemDesign.Geometry.Edge edge = Convert.FromRhinoLineCurve((LineCurve)curve); // bar var type = FemDesign.Bars.BarType.Truss; FemDesign.Bars.Bar bar = new FemDesign.Bars.Bar(edge, type, material, section, identifier); // set local y-axis if (!v.Equals(Vector3d.Zero)) { bar.BarPart.LocalY = v.FromRhino(); } // else orient coordinate system to GCS else { if (orientLCS) { bar.BarPart.OrientCoordinateSystemToGCS(); } } // return DA.SetData(0, bar); }
protected override void SolveInstance(IGH_DataAccess DA) { // get input FemDesign.Bars.Bar bar = null; if (!DA.GetData(0, ref bar)) { return; } if (bar == null) { return; } // The following code is to convert 'item' to 'list object' // It is required to construct the bar without graftening the data var guidList = new List <object>() { bar.Guid }; var curveList = new List <object>() { bar.GetRhinoCurve() }; var typeList = new List <object>() { bar.Type }; var materialList = new List <object>() { bar.BarPart.ComplexMaterialObj }; var localYList = new List <object>() { bar.BarPart.LocalY.ToRhino() }; // return DA.SetData(0, bar.Guid); DA.SetData(1, bar.GetRhinoCurve()); DA.SetData(2, bar.Type); DA.SetDataList(3, materialList); if (bar.BarPart.ComplexSectionObj != null) { DA.SetDataList(4, bar.BarPart.ComplexSectionObj.Sections); } else if (bar.BarPart.HasComplexCompositeRef || bar.BarPart.HasDeltaBeamComplexSectionRef) { AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "The bar has a Composite Section. The object has not been implemented yet. Please, get in touch if needed."); DA.SetDataList(4, null); } else if (bar.BarPart.Type == Bars.BarType.Truss) { var truss = new List <Sections.Section> { bar.BarPart.TrussUniformSectionObj }; DA.SetDataList(4, truss); } else { DA.SetDataList(4, null); } DA.SetDataList(5, bar.BarPart.Connectivity); var result = (bar.BarPart.ComplexSectionObj != null) ? bar.BarPart.ComplexSectionObj.Eccentricities : null; DA.SetDataList(6, result); DA.SetData(7, bar.BarPart.LocalY.ToRhino()); DA.SetDataList(8, bar.Stirrups); DA.SetDataList(9, bar.LongitudinalBars); DA.SetDataList(10, bar.Ptc); DA.SetData(11, bar.Identifier); }
protected override void SolveInstance(IGH_DataAccess DA) { // get input Curve curve = null; if (!DA.GetData(0, ref curve)) { return; } FemDesign.Materials.Material material = null; if (!DA.GetData(1, ref material)) { material = FemDesign.Materials.MaterialDatabase.GetDefault().MaterialByName("C30/37"); } List <FemDesign.Sections.Section> sections = new List <Sections.Section>(); if (!DA.GetDataList(2, sections)) { sections = new List <Sections.Section>(); sections.Add(FemDesign.Sections.SectionDatabase.GetDefault().SectionByName("Concrete sections, Rectangle, 250x600")); } List <FemDesign.Bars.Connectivity> connectivities = new List <Bars.Connectivity>(); if (!DA.GetDataList(3, connectivities)) { connectivities = new List <Bars.Connectivity> { FemDesign.Bars.Connectivity.GetRigid() }; } List <FemDesign.Bars.Eccentricity> eccentricities = new List <Bars.Eccentricity>(); if (!DA.GetDataList(4, eccentricities)) { eccentricities = new List <Bars.Eccentricity> { FemDesign.Bars.Eccentricity.GetDefault() }; } Vector3d v = Vector3d.Zero; if (!DA.GetData(5, ref v)) { // pass } bool orientLCS = true; if (!DA.GetData(6, ref orientLCS)) { // pass } string identifier = "B"; if (!DA.GetData(7, ref identifier)) { // pass } // convert geometry FemDesign.Geometry.Edge edge = Convert.FromRhinoLineOrArc2(curve); // create bar var type = FemDesign.Bars.BarType.Beam; FemDesign.Bars.Bar bar = new FemDesign.Bars.Bar(edge, type, material, sections.ToArray(), eccentricities.ToArray(), connectivities.ToArray(), identifier); // set local y-axis if (!v.Equals(Vector3d.Zero)) { bar.BarPart.LocalY = v.FromRhino(); } // else orient coordinate system to GCS else { if (orientLCS) { bar.BarPart.OrientCoordinateSystemToGCS(); } } // output DA.SetData(0, bar); }
protected override void SolveInstance(IGH_DataAccess DA) { // get input Curve curve = null; if (!DA.GetData(0, ref curve)) { return; } FemDesign.Materials.Material material = null; if (!DA.GetData(1, ref material)) { return; } FemDesign.Sections.Section section = null; if (!DA.GetData(2, ref section)) { return; } double maxCompression = 0; if (!DA.GetData(3, ref maxCompression)) { return; } bool compressionPlasticity = false; if (!DA.GetData(4, ref compressionPlasticity)) { return; } double maxTension = 0; if (!DA.GetData(5, ref maxTension)) { return; } bool tensionPlasticity = false; if (!DA.GetData(6, ref tensionPlasticity)) { return; } Vector3d v = Vector3d.Zero; if (!DA.GetData(7, ref v)) { // pass } bool orientLCS = true; if (!DA.GetData(8, ref orientLCS)) { // pass } string identifier = "T"; if (!DA.GetData(9, ref identifier)) { // pass } if (curve == null || material == null || section == null || identifier == null) { return; } // convert geometry if (curve.GetType() != typeof(LineCurve)) { throw new System.ArgumentException("Curve must be a LineCurve"); } FemDesign.Geometry.Edge edge = Convert.FromRhinoLineCurve((LineCurve)curve); // bar var type = FemDesign.Bars.BarType.Truss; FemDesign.Bars.Bar bar = new FemDesign.Bars.Bar(edge, type, material, section, identifier); bar.MaxCompression = maxCompression; bar.MaxTension = maxTension; bar.CompressionPlasticity = compressionPlasticity; bar.TensionPlasticity = tensionPlasticity; // set local y-axis if (!v.Equals(Vector3d.Zero)) { bar.BarPart.LocalY = v.FromRhino(); } // else orient coordinate system to GCS else { if (orientLCS) { bar.BarPart.OrientCoordinateSystemToGCS(); } } // return DA.SetData(0, bar); }
protected override void SolveInstance(IGH_DataAccess DA) { // get input Curve curve = null; if (!DA.GetData(0, ref curve)) { return; } FemDesign.Materials.Material material = null; if (!DA.GetData(1, ref material)) { return; } FemDesign.Sections.Section section = null; if (!DA.GetData(2, ref section)) { return; } FemDesign.Bars.Connectivity connectivity = FemDesign.Bars.Connectivity.GetRigid(); if (!DA.GetData(3, ref connectivity)) { // pass } FemDesign.Bars.Eccentricity eccentricity = FemDesign.Bars.Eccentricity.GetDefault(); if (!DA.GetData(4, ref eccentricity)) { // pass } Vector3d v = Vector3d.Zero; if (!DA.GetData(5, ref v)) { // pass } bool orientLCS = true; if (!DA.GetData(6, ref orientLCS)) { // pass } string identifier = "B"; if (!DA.GetData(7, ref identifier)) { // pass } if (curve == null || material == null || section == null || connectivity == null || eccentricity == null || identifier == null) { return; } // convert geometry FemDesign.Geometry.Edge edge = curve.FromRhinoLineOrArc2(); // create bar var type = FemDesign.Bars.BarType.Beam; FemDesign.Bars.Bar bar = new FemDesign.Bars.Bar(edge, type, material, section, eccentricity, connectivity, identifier); // set local y-axis if (!v.Equals(Vector3d.Zero)) { bar.BarPart.LocalY = v.FromRhino(); } // else orient coordinate system to GCS else { if (orientLCS) { bar.BarPart.OrientCoordinateSystemToGCS(); } } // output DA.SetData(0, bar); }