/// <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); }
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); } } }