Example #1
0
        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);
        }
Example #2
0
        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);

            }
        }
Example #3
0
 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
     });
 }
Example #4
0
        /***************************************************/

        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());
        }
Example #5
0
 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 };
 }