public static BHPE.IFramingElement FramingElement(Bar bar, StructuralUsage1D structuralUsage = StructuralUsage1D.Beam) { if (bar.IsNull()) { return(null); } ISectionProperty prop = bar.SectionProperty; BHPP.ConstantFramingProperty framingProp = null; if (prop == null) { Reflection.Compute.RecordWarning("The bar does not contain a sectionProperty. Can not extract profile or material"); } else { framingProp = Create.ConstantFramingProperty(bar.SectionProperty, bar.OrientationAngle); } Line location = bar.Centreline(); string name = bar.Name ?? ""; BHPE.IFramingElement framingElement; switch (structuralUsage) { case StructuralUsage1D.Column: framingElement = Physical.Create.Column(location, framingProp, name); break; case StructuralUsage1D.Brace: framingElement = Physical.Create.Bracing(location, framingProp, name); break; case StructuralUsage1D.Cable: framingElement = Physical.Create.Cable(location, framingProp, name); break; case StructuralUsage1D.Pile: framingElement = Physical.Create.Pile(location, framingProp, name); break; default: case StructuralUsage1D.Undefined: case StructuralUsage1D.Beam: framingElement = Physical.Create.Beam(location, framingProp, name); break; } List <IReinforcingBar> reinforcement = bar.ReinforcingBars(); if (reinforcement.Count != 0) { framingElement.Fragments.Add(new ReinforcementFragment { ReinforcingBars = reinforcement }); } return(framingElement); }
public static BHPE.IFramingElement FramingElement(Bar bar, StructuralUsage1D structuralUsage = StructuralUsage1D.Beam) { ISectionProperty prop = bar.SectionProperty; BHPP.ConstantFramingProperty framingProp = null; if (prop == null) Reflection.Compute.RecordWarning("The bar does not contain a sectionProperty. Can not extract profile or material"); else framingProp = Create.ConstantFramingProperty(bar.SectionProperty, bar.OrientationAngle); Line location = bar.Centreline(); string name = bar.Name ?? ""; switch (structuralUsage) { case StructuralUsage1D.Column: return Physical.Create.Column(location, framingProp, name); case StructuralUsage1D.Brace: return Physical.Create.Bracing(location, framingProp, name); case StructuralUsage1D.Cable: return Physical.Create.Cable(location, framingProp, name); case StructuralUsage1D.Pile: return Physical.Create.Pile(location, framingProp, name); default: case StructuralUsage1D.Undefined: case StructuralUsage1D.Beam: return Physical.Create.Beam(location, framingProp, name); } }
public static FramingElement ToFramingElement(this Bar bar, StructuralUsage1D usage = StructuralUsage1D.Beam) { return(new FramingElement { LocationCurve = bar.Centreline(), Name = bar.Name, Property = Create.ConstantFramingElementProperty(bar.SectionProperty, bar.OrientationAngle, bar.SectionProperty.Name), StructuralUsage = usage }); }
/***************************************************/ public static IStory GetStory(this Bar bar, StructuralUsage1D usage1D, IStories ramStories) { double elev; switch (usage1D) { case StructuralUsage1D.Beam: //Use lowest end elevation elev = Math.Min(bar.StartNode.Position.Z, bar.EndNode.Position.Z).ToInch(); break; case StructuralUsage1D.Column: // Get RAM column data bool isHanging = false; RAMFrameData ramFrameData = bar.FindFragment <RAMFrameData>(typeof(RAMFrameData)); if (ramFrameData != null) { isHanging = ramFrameData.IsHangingColumn; } if (isHanging.Equals("True") || isHanging.Equals("1")) //Hanging Column to be placed on its btm level. { elev = Math.Min(bar.StartNode.Position.Z, bar.EndNode.Position.Z).ToInch(); } else //Column to be placed on the level it supports. { elev = Math.Max(bar.StartNode.Position.Z, bar.EndNode.Position.Z).ToInch(); } break; default: //Use lowest end elevation elev = Math.Min(bar.StartNode.Position.Z, bar.EndNode.Position.Z).ToInch(); break; } //There must be a better way to iterate over IStories List <IStory> storeys = new List <IStory>(); int numStories = ramStories.GetCount(); for (int i = 0; i < numStories; i++) { storeys.Add(ramStories.GetAt(i)); } return(storeys.OrderBy(x => Math.Abs(x.dElevation - elev)).First()); }
public static FramingElement FramingElement(ICurve locationCurve, IFramingElementProperty property, StructuralUsage1D structuralUsage = StructuralUsage1D.Beam, string name = "") { return new FramingElement { LocationCurve = locationCurve, Property = property, StructuralUsage = structuralUsage, Name = name }; }