Example #1
0
        /// <summary>
        /// Return True or False depending if the UnfoldedBeam is Closed or not.
        /// </summary>
        /// <param name="unFoldedBeam">Input beam</param>
        /// <returns name="isClosed">True or False depending if the UnfoldedBeam is Closed or not</returns>
        public static bool IsClosed(UnFoldedBeam unFoldedBeam)
        {
            bool ret;

            using (var ctx = new SteelServices.DocContext())
            {
                if (unFoldedBeam != null)
                {
                    FilerObject filerObj = Utils.GetObject(unFoldedBeam.Handle);
                    if (filerObj != null)
                    {
                        if (filerObj.IsKindOf(FilerObject.eObjectType.kUnfoldedStraightBeam))
                        {
                            Autodesk.AdvanceSteel.Modelling.UnfoldedStraightBeam selectedObj = filerObj as Autodesk.AdvanceSteel.Modelling.UnfoldedStraightBeam;
                            ret = (bool)selectedObj.IsClosed();
                        }
                        else
                        {
                            throw new System.Exception("Not an Unfolded Beam Object");
                        }
                    }
                    else
                    {
                        throw new System.Exception("AS Object is null");
                    }
                }
                else
                {
                    throw new System.Exception("Steel Object or Point is null");
                }
            }
            return(ret);
        }
Example #2
0
        internal UnFoldedBeam(Polyline3d poly,
                              Autodesk.DesignScript.Geometry.Point ptStart,
                              Autodesk.DesignScript.Geometry.Point ptEnd,
                              Autodesk.DesignScript.Geometry.Vector vOrientation,
                              List <Property> beamProperties)
        {
            lock (access_obj)
            {
                using (var ctx = new SteelServices.DocContext())
                {
                    List <Property> defaultData     = beamProperties.Where(x => x.Level == ".").ToList <Property>();
                    List <Property> postWriteDBData = beamProperties.Where(x => x.Level == "Z_PostWriteDB").ToList <Property>();
                    Property        foundThickness  = beamProperties.FirstOrDefault <Property>(x => x.Name == "Thickness");
                    double          thickness       = (double)foundThickness.InternalValue;

                    string handle = SteelServices.ElementBinder.GetHandleFromTrace();

                    Point3d  beamStart = Utils.ToAstPoint(ptStart, true);
                    Point3d  beamEnd   = Utils.ToAstPoint(ptEnd, true);
                    Vector3d refVect   = Utils.ToAstVector3d(vOrientation, true);

                    Autodesk.AdvanceSteel.Modelling.UnfoldedStraightBeam beam = null;
                    if (string.IsNullOrEmpty(handle) || Utils.GetObject(handle) == null)
                    {
                        beam = new Autodesk.AdvanceSteel.Modelling.UnfoldedStraightBeam(poly, beamStart, beamEnd, refVect, thickness);

                        if (defaultData != null)
                        {
                            Utils.SetParameters(beam, defaultData);
                        }

                        beam.WriteToDb();

                        if (postWriteDBData != null)
                        {
                            Utils.SetParameters(beam, postWriteDBData);
                        }
                    }
                    else
                    {
                        beam = Utils.GetObject(handle) as Autodesk.AdvanceSteel.Modelling.UnfoldedStraightBeam;

                        if (beam != null && beam.IsKindOf(FilerObject.eObjectType.kUnfoldedStraightBeam))
                        {
                            Utils.AdjustBeamEnd(beam, beamStart);
                            beam.SetSysStart(beamStart);
                            beam.SetSysEnd(beamEnd);

                            if (defaultData != null)
                            {
                                Utils.SetParameters(beam, defaultData);
                            }

                            Utils.SetOrientation(beam, refVect);

                            if (postWriteDBData != null)
                            {
                                Utils.SetParameters(beam, postWriteDBData);
                            }
                        }
                        else
                        {
                            throw new System.Exception("Not an UnFolded Straight Beam");
                        }
                    }
                    Handle = beam.Handle;
                    SteelServices.ElementBinder.CleanupAndSetElementForTrace(beam);
                }
            }
        }