예제 #1
0
        public static List <IReinforcingBar> ReinforcingBars(this Bar bar)
        {
            if (bar.IsNull())
            {
                return(null);
            }

            List <IReinforcingBar> rebars  = new List <IReinforcingBar>();
            ConcreteSection        section = bar.SectionProperty as ConcreteSection;

            List <ICurve> outerProfileEdges;
            List <ICurve> innerProfileEdges;
            List <LongitudinalReinforcement> longReif;
            List <TransverseReinforcement>   tranReif;
            double longCover, tranCover;

            if (section.CheckSectionAndExtractParameters(out outerProfileEdges, out innerProfileEdges, out longReif, out tranReif, out longCover, out tranCover))
            {
                TransformMatrix transformation = bar.BarSectionTranformation();
                double          length         = bar.Length();

                List <IBarReinforcement> barReinf = new List <IBarReinforcement>();
                barReinf.AddRange(longReif);
                barReinf.AddRange(tranReif);

                foreach (IBarReinforcement reif in barReinf)
                {
                    Material material;
                    if (reif.Material != null)
                    {
                        material = Physical.Create.Material(reif.Material);
                    }
                    else
                    {
                        material = new Material();
                    }

                    if (reif is LongitudinalReinforcement)
                    {
                        foreach (ICurve centreLine in reif.IReinforcementLayout(longCover, outerProfileEdges, innerProfileEdges, length, transformation))
                        {
                            PrimaryReinforcingBar rebar = Physical.Create.PrimaryReinforcingBar(centreLine, reif.Diameter, material);
                            rebars.Add(rebar);
                        }
                    }
                    else if (reif is TransverseReinforcement)
                    {
                        foreach (ICurve centreLine in reif.IReinforcementLayout(tranCover, outerProfileEdges, innerProfileEdges, length, transformation))
                        {
                            Stirrup rebar = Physical.Create.Stirrup(centreLine, reif.Diameter, material);
                            rebars.Add(rebar);
                        }
                    }
                }
            }

            return(rebars);
        }
예제 #2
0
        public void StirrupPopulate()
        {
            LinearPath stirrupLp = (LinearPath)RectColumn.ColPath.Offset(-RectColumn.Cover * 1.2);

            for (int i = 0; i < stirrupLp.Vertices.Length; i++)
            {
                stirrupLp.Vertices[i].Z += CADConfig.Units == linearUnitsType.Meters?1:1000;
            }

            Stirrup = new Stirrup(stirrupLp);
        }
예제 #3
0
 public ViewModel()
 {
     this.Beam    = Beam.Create();
     this.Stirrup = Stirrup.Create();
     this.Spans   = new ObservableCollection <Span> {
         new Span()
     };
     this.SelectedSpan      = this.Spans[0];
     this.AddSpanCommand    = new RelayCommand(AddSpan);
     this.DeleteSpanCommand = new RelayCommand(DeleteSpan);
     this.DrawCommand       = new RelayCommand(Draw);
 }
예제 #4
0
        public void StirrupPopulate()
        {
            LinearPath stirrupLp = (LinearPath)ShearWall.ProfilePath.Offset(-DefaultValues.ShearWallCover * 1.2);

            double dowelLength = (CADConfig.Units == linearUnitsType.Meters ? 1 : 1000);

            for (int i = 0; i < stirrupLp.Vertices.Length; i++)
            {
                stirrupLp.Vertices[i].Z += dowelLength;
            }

            Stirrup = new Stirrup(stirrupLp);
        }
예제 #5
0
        public void StirrupPopulate()
        {
            LinearPath stirrupLp = (LinearPath)CadColumn.ColPath.Offset(-CadColumn.Cover);

            double dowelLength = (CADConfig.Units == linearUnitsType.Meters ? 1 : 1000);

            for (int i = 0; i < stirrupLp.Vertices.Length; i++)
            {
                stirrupLp.Vertices[i].Z += dowelLength;
            }

            Stirrup = new Stirrup(stirrupLp);
        }
예제 #6
0
        public void StirrupPopulate()
        {
            LinearPath stirrupLp = (LinearPath)CadWall.LinPathWall.Offset(-DefaultValues.WallCover * 1.2);

            Stirrup = new Stirrup(stirrupLp);
        }
예제 #7
0
 public void StirrupPopulate()
 {
     Stirrup = new Stirrup(VlLinPath);
 }
예제 #8
0
        /***************************************************/

        public static Rebar ToRevitRebar(this Stirrup stirrup, Document document, RevitSettings settings = null, Dictionary <Guid, List <int> > refObjects = null)
        {
            return(ToRevitRebar((IReinforcingBar)stirrup, document, settings, refObjects));
        }