internal static void AdjustBeamEnd(Autodesk.AdvanceSteel.Modelling.Beam beam, Autodesk.AdvanceSteel.Geometry.Point3d newPtStart) { Autodesk.AdvanceSteel.Geometry.Point3d beamPtStart = beam.GetPointAtStart(); Autodesk.AdvanceSteel.Geometry.Point3d beamPtEnd = beam.GetPointAtEnd(); if (beamPtEnd.IsEqualTo(newPtStart)) { Autodesk.AdvanceSteel.Geometry.Point3d newBeamEnd = beamPtEnd + (beamPtEnd - beamPtStart) * 0.5; beam.SetSysEnd(newBeamEnd); } }
internal static void SetOrientation(Autodesk.AdvanceSteel.Modelling.Beam beam, Autodesk.AdvanceSteel.Geometry.Vector3d vOrientation) { beam.PhysCSStart.GetCoordSystem(out _, out Vector3d vXAxis, out Vector3d vYAxis, out Vector3d vZAxis); if (!vXAxis.IsParallelTo(vOrientation)) { Vector3d vProj = vOrientation.OrthoProject(vXAxis); double dAngle = vZAxis.GetAngleTo(vProj, vXAxis); beam.SetXRotation(dAngle * 180 / Math.PI); } }