static private OpenModel CreateConnectionGeometry(OpenModel openModel) { //Add connection point IdeaRS.OpenModel.Connection.ConnectionPoint connection = new IdeaRS.OpenModel.Connection.ConnectionPoint(); IdeaRS.OpenModel.Geometry3D.Point3D point = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2, Y = 3, Z = 3 }; point.Id = openModel.GetMaxId(point) + 1; point.Name = point.Id.ToString(); openModel.Point3D.Add(point); connection.Node = new ReferenceElement(point); connection.Name = point.Name; connection.Id = openModel.GetMaxId(connection) + 1; //add connection openModel.Connections.Add(new IdeaRS.OpenModel.Connection.ConnectionData()); //add Beams openModel.Connections[0].Beams = new List <IdeaRS.OpenModel.Connection.BeamData>(); //member1D 1 IdeaRS.OpenModel.Connection.BeamData beam1Data = new IdeaRS.OpenModel.Connection.BeamData { Name = "M1", Id = 1, OriginalModelId = "1", IsAdded = false, MirrorY = false, RefLineInCenterOfGravity = false, }; openModel.Connections[0].Beams.Add(beam1Data); var member1 = openModel.Member1D.Find(x => x.Id == 1); IdeaRS.OpenModel.Connection.ConnectedMember conMb = new IdeaRS.OpenModel.Connection.ConnectedMember { Id = member1.Id, MemberId = new ReferenceElement(member1), IsContinuous = false, }; connection.ConnectedMembers.Add(conMb); //member1D 3 var member3 = openModel.Member1D.Find(x => x.Id == 3); IdeaRS.OpenModel.Connection.ConnectedMember conMb3 = new IdeaRS.OpenModel.Connection.ConnectedMember { Id = member3.Id, MemberId = new ReferenceElement(member3), IsContinuous = true, }; connection.ConnectedMembers.Add(conMb3); IdeaRS.OpenModel.Connection.BeamData beam2Data = new IdeaRS.OpenModel.Connection.BeamData { Name = "M3", Id = 3, OriginalModelId = member3.Id.ToString(), IsAdded = false, MirrorY = false, RefLineInCenterOfGravity = false, }; openModel.Connections[0].Beams.Add(beam2Data); openModel.AddObject(connection); //add plate IdeaRS.OpenModel.Connection.PlateData plateData = new IdeaRS.OpenModel.Connection.PlateData { Name = "P1", Thickness = 0.02, Id = 11, Material = "S355", OriginalModelId = "11", Origin = new IdeaRS.OpenModel.Geometry3D.Point3D { X = -1.87, Y = 2.88, Z = 2.7 }, AxisX = new IdeaRS.OpenModel.Geometry3D.Vector3D { X = 0, Y = 1, Z = 0 }, AxisY = new IdeaRS.OpenModel.Geometry3D.Vector3D { X = 0, Y = 0, Z = 1 }, AxisZ = new IdeaRS.OpenModel.Geometry3D.Vector3D { X = 1, Y = 0, Z = 0 }, Region = "M 0 0 L 0.24 0 L 0.24 0.5 L 0 0.5 L 0 0", }; (openModel.Connections[0].Plates ?? (openModel.Connections[0].Plates = new List <IdeaRS.OpenModel.Connection.PlateData>())).Add(plateData); // add cut openModel.Connections[0].CutBeamByBeams = new List <IdeaRS.OpenModel.Connection.CutBeamByBeamData> { new IdeaRS.OpenModel.Connection.CutBeamByBeamData { CuttingObject = new ReferenceElement(plateData), ModifiedObject = new ReferenceElement(beam1Data), Orientation = CutOrientation.Parallel, WeldType = WeldType.DoubleFillet, IsWeld = true, } }; IdeaRS.OpenModel.Connection.BoltGrid boltGrid = new IdeaRS.OpenModel.Connection.BoltGrid() { Id = 41, ConnectedPartIds = new List <string>(), Diameter = 0.016, HeadDiameter = 0.024, DiagonalHeadDiameter = 0.026, HeadHeight = 0.01, BoreHole = 0.018, TensileStressArea = 157, NutThickness = 0.013, AnchorLen = 0.05, Material = "8.8", Standard = "M 16", }; boltGrid.Origin = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = plateData.Origin.X, Y = plateData.Origin.Y, Z = plateData.Origin.Z }; boltGrid.AxisX = new IdeaRS.OpenModel.Geometry3D.Vector3D() { X = plateData.AxisX.X, Y = plateData.AxisX.Y, Z = plateData.AxisX.Z }; boltGrid.AxisY = new IdeaRS.OpenModel.Geometry3D.Vector3D() { X = plateData.AxisY.X, Y = plateData.AxisY.Y, Z = plateData.AxisY.Z }; boltGrid.AxisZ = new IdeaRS.OpenModel.Geometry3D.Vector3D() { X = plateData.AxisZ.X, Y = plateData.AxisZ.Y, Z = plateData.AxisZ.Z }; boltGrid.Positions = new List <IdeaRS.OpenModel.Geometry3D.Point3D> { new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -1.87, Y = 2.92, Z = 2.8 }, new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -1.87, Y = 3.08, Z = 2.8 }, new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -1.87, Y = 2.92, Z = 3.15 }, new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -1.87, Y = 3.08, Z = 3.15 } }; boltGrid.ConnectedPartIds = new List <string>() { beam2Data.OriginalModelId, plateData.OriginalModelId }; (openModel.Connections[0].BoltGrids ?? (openModel.Connections[0].BoltGrids = new List <IdeaRS.OpenModel.Connection.BoltGrid>())).Add(boltGrid); //add plate 2 IdeaRS.OpenModel.Connection.PlateData plateData2 = new IdeaRS.OpenModel.Connection.PlateData { Name = "P2", Thickness = 0.02, Id = 12, Material = "S355", OriginalModelId = "12", Origin = new IdeaRS.OpenModel.Geometry3D.Point3D { X = -2.103, Y = 2.88, Z = 2.75 }, AxisX = new IdeaRS.OpenModel.Geometry3D.Vector3D { X = 1, Y = 0, Z = 0 }, AxisY = new IdeaRS.OpenModel.Geometry3D.Vector3D { X = 0, Y = 1, Z = 0 }, AxisZ = new IdeaRS.OpenModel.Geometry3D.Vector3D { X = 0, Y = 0, Z = 1 }, Region = "M 0 0 L 0.206 0 L 0.206 0.105 L 0.195 0.115 L 0.011 0.115 L 0.0 0.105 L 0 0", }; (openModel.Connections[0].Plates ?? (openModel.Connections[0].Plates = new List <IdeaRS.OpenModel.Connection.PlateData>())).Add(plateData2); //add weld between memeber 2 and plate 2 - stiffener IdeaRS.OpenModel.Connection.WeldData weldData = new IdeaRS.OpenModel.Connection.WeldData() { Id = 31, ConnectedPartIds = new List <string>() { plateData2.OriginalModelId, beam2Data.OriginalModelId }, Start = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2, Y = 2.995, Z = 2.76 }, End = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2, Y = 2.995, Z = 2.76 }, Thickness = 0.004, WeldType = IdeaRS.OpenModel.Connection.WeldType.DoubleFillet, }; (openModel.Connections[0].Welds ?? (openModel.Connections[0].Welds = new List <IdeaRS.OpenModel.Connection.WeldData>())).Add(weldData); //add weld3 between memeber 2 and plate 2 - stiffener IdeaRS.OpenModel.Connection.WeldData weldData3 = new IdeaRS.OpenModel.Connection.WeldData() { Id = 33, ConnectedPartIds = new List <string>() { plateData2.OriginalModelId, beam2Data.OriginalModelId }, Start = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2.103, Y = 2.90, Z = 2.76 }, End = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2.103, Y = 2.90, Z = 2.76 }, Thickness = 0.004, WeldType = IdeaRS.OpenModel.Connection.WeldType.DoubleFillet, }; openModel.Connections[0].Welds.Add(weldData3); //add weld4 between memeber 2 and plate 2 - stiffener IdeaRS.OpenModel.Connection.WeldData weldData4 = new IdeaRS.OpenModel.Connection.WeldData() { Id = 34, ConnectedPartIds = new List <string>() { plateData2.OriginalModelId, beam2Data.OriginalModelId }, Start = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -1.897, Y = 2.90, Z = 2.76 }, End = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -1.897, Y = 2.90, Z = 2.76 }, Thickness = 0.004, WeldType = IdeaRS.OpenModel.Connection.WeldType.DoubleFillet, }; openModel.Connections[0].Welds.Add(weldData4); //add plate 3 IdeaRS.OpenModel.Connection.PlateData plateData3 = new IdeaRS.OpenModel.Connection.PlateData { Name = "P3", Thickness = 0.02, Id = 13, Material = "S355", OriginalModelId = "13", Origin = new IdeaRS.OpenModel.Geometry3D.Point3D { X = -2.103, Y = 2.88, Z = 3.1 }, AxisX = new IdeaRS.OpenModel.Geometry3D.Vector3D { X = 1, Y = 0, Z = 0 }, AxisY = new IdeaRS.OpenModel.Geometry3D.Vector3D { X = 0, Y = 1, Z = 0 }, AxisZ = new IdeaRS.OpenModel.Geometry3D.Vector3D { X = 0, Y = 0, Z = 1 }, Region = "M 0 0 L 0.206 0 L 0.206 0.105 L 0.195 0.115 L 0.011 0.115 L 0.0 0.105 L 0 0", }; openModel.Connections[0].Plates.Add(plateData3); //add weld between memeber 2 and plate 3 - stiffener IdeaRS.OpenModel.Connection.WeldData weldData2 = new IdeaRS.OpenModel.Connection.WeldData() { Id = 32, ConnectedPartIds = new List <string>() { plateData3.OriginalModelId, beam2Data.OriginalModelId }, Start = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2, Y = 2.995, Z = 3.11 }, End = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2, Y = 2.995, Z = 3.11 }, Thickness = 0.004, WeldType = IdeaRS.OpenModel.Connection.WeldType.DoubleFillet, }; openModel.Connections[0].Welds.Add(weldData2); //add weld5 between memeber 2 and plate 3 - stiffener IdeaRS.OpenModel.Connection.WeldData weldData5 = new IdeaRS.OpenModel.Connection.WeldData() { Id = 35, ConnectedPartIds = new List <string>() { plateData3.OriginalModelId, beam2Data.OriginalModelId }, Start = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2.103, Y = 2.90, Z = 3.11 }, End = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2.103, Y = 2.90, Z = 3.11 }, Thickness = 0.004, WeldType = IdeaRS.OpenModel.Connection.WeldType.DoubleFillet, }; openModel.Connections[0].Welds.Add(weldData5); //add weld6 between memeber 2 and plate 3 - stiffener IdeaRS.OpenModel.Connection.WeldData weldData6 = new IdeaRS.OpenModel.Connection.WeldData() { Id = 36, ConnectedPartIds = new List <string>() { plateData3.OriginalModelId, beam2Data.OriginalModelId }, Start = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -1.897, Y = 2.90, Z = 3.11 }, End = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -1.897, Y = 2.90, Z = 3.11 }, Thickness = 0.004, WeldType = IdeaRS.OpenModel.Connection.WeldType.DoubleFillet, }; openModel.Connections[0].Welds.Add(weldData6); //add plate 4 IdeaRS.OpenModel.Connection.PlateData plateData4 = new IdeaRS.OpenModel.Connection.PlateData { Name = "P4", Thickness = 0.02, Id = 14, Material = "S355", OriginalModelId = "14", Origin = new IdeaRS.OpenModel.Geometry3D.Point3D { X = -2.103, Y = 3.12, Z = 2.75 }, AxisX = new IdeaRS.OpenModel.Geometry3D.Vector3D { X = 1, Y = 0, Z = 0 }, AxisY = new IdeaRS.OpenModel.Geometry3D.Vector3D { X = 0, Y = -1, Z = 0 }, AxisZ = new IdeaRS.OpenModel.Geometry3D.Vector3D { X = 0, Y = 0, Z = 1 }, Region = "M 0 0 L 0.206 0 L 0.206 0.105 L 0.195 0.115 L 0.011 0.115 L 0.0 0.105 L 0 0", }; openModel.Connections[0].Plates.Add(plateData4); //add weld7 between memeber 2 and plate 4 - stiffener IdeaRS.OpenModel.Connection.WeldData weldData7 = new IdeaRS.OpenModel.Connection.WeldData() { Id = 37, ConnectedPartIds = new List <string>() { plateData4.OriginalModelId, beam2Data.OriginalModelId }, Start = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2, Y = 3.005, Z = 2.76 }, End = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2, Y = 3.005, Z = 2.76 }, Thickness = 0.004, WeldType = IdeaRS.OpenModel.Connection.WeldType.DoubleFillet, }; openModel.Connections[0].Welds.Add(weldData7); //add weld8 between memeber 2 and plate 4 - stiffener IdeaRS.OpenModel.Connection.WeldData weldData8 = new IdeaRS.OpenModel.Connection.WeldData() { Id = 38, ConnectedPartIds = new List <string>() { plateData4.OriginalModelId, beam2Data.OriginalModelId }, Start = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2.103, Y = 3.1, Z = 2.76 }, End = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2.103, Y = 3.1, Z = 2.76 }, Thickness = 0.004, WeldType = IdeaRS.OpenModel.Connection.WeldType.DoubleFillet, }; openModel.Connections[0].Welds.Add(weldData8); //add weld9 between memeber 2 and plate 4 - stiffener IdeaRS.OpenModel.Connection.WeldData weldData9 = new IdeaRS.OpenModel.Connection.WeldData() { Id = 39, ConnectedPartIds = new List <string>() { plateData4.OriginalModelId, beam2Data.OriginalModelId }, Start = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -1.897, Y = 3.1, Z = 2.76 }, End = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -1.897, Y = 3.1, Z = 2.76 }, Thickness = 0.004, WeldType = IdeaRS.OpenModel.Connection.WeldType.DoubleFillet, }; openModel.Connections[0].Welds.Add(weldData9); //add plate 5 IdeaRS.OpenModel.Connection.PlateData plateData5 = new IdeaRS.OpenModel.Connection.PlateData { Name = "P5", Thickness = 0.02, Id = 15, Material = "S355", OriginalModelId = "15", Origin = new IdeaRS.OpenModel.Geometry3D.Point3D { X = -2.103, Y = 3.12, Z = 3.1 }, AxisX = new IdeaRS.OpenModel.Geometry3D.Vector3D { X = 1, Y = 0, Z = 0 }, AxisY = new IdeaRS.OpenModel.Geometry3D.Vector3D { X = 0, Y = -1, Z = 0 }, AxisZ = new IdeaRS.OpenModel.Geometry3D.Vector3D { X = 0, Y = 0, Z = 1 }, Region = "M 0 0 L 0.206 0 L 0.206 0.105 L 0.195 0.115 L 0.011 0.115 L 0.0 0.105 L 0 0", }; openModel.Connections[0].Plates.Add(plateData5); //add weld10 between memeber 2 and plate 5 - stiffener IdeaRS.OpenModel.Connection.WeldData weldData10 = new IdeaRS.OpenModel.Connection.WeldData() { Id = 40, ConnectedPartIds = new List <string>() { plateData5.OriginalModelId, beam2Data.OriginalModelId }, Start = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2, Y = 3.005, Z = 3.11 }, End = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2, Y = 3.005, Z = 3.11 }, Thickness = 0.004, WeldType = IdeaRS.OpenModel.Connection.WeldType.DoubleFillet, }; openModel.Connections[0].Welds.Add(weldData10); //add weld11 between memeber 2 and plate 5 - stiffener IdeaRS.OpenModel.Connection.WeldData weldData11 = new IdeaRS.OpenModel.Connection.WeldData() { Id = 41, ConnectedPartIds = new List <string>() { plateData5.OriginalModelId, beam2Data.OriginalModelId }, Start = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2.103, Y = 3.10, Z = 3.11 }, End = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -2.103, Y = 3.10, Z = 3.11 }, Thickness = 0.004, WeldType = IdeaRS.OpenModel.Connection.WeldType.DoubleFillet, }; openModel.Connections[0].Welds.Add(weldData11); //add weld12 between memeber 2 and plate 5 - stiffener IdeaRS.OpenModel.Connection.WeldData weldData12 = new IdeaRS.OpenModel.Connection.WeldData() { Id = 46, ConnectedPartIds = new List <string>() { plateData5.OriginalModelId, beam2Data.OriginalModelId }, Start = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -1.897, Y = 3.10, Z = 3.11 }, End = new IdeaRS.OpenModel.Geometry3D.Point3D() { X = -1.897, Y = 3.10, Z = 3.11 }, Thickness = 0.004, WeldType = IdeaRS.OpenModel.Connection.WeldType.DoubleFillet, }; openModel.Connections[0].Welds.Add(weldData12); return(openModel); }
static private OpenModel CreateConnectionGeometry(OpenModel openModel) { //Get geometrical point IdeaRS.OpenModel.Geometry3D.Point3D point = openModel.Point3D.Find(p => p.Name.Equals("N2", StringComparison.InvariantCultureIgnoreCase)); //Create a new connection point IdeaRS.OpenModel.Connection.ConnectionPoint connectionPoint = new IdeaRS.OpenModel.Connection.ConnectionPoint(); connectionPoint.Node = new ReferenceElement(point); connectionPoint.Name = point.Name; connectionPoint.Id = openModel.GetMaxId(connectionPoint) + 1; //create the new connection data var newConnectionData = new IdeaRS.OpenModel.Connection.ConnectionData(); //create list for beams newConnectionData.Beams = new List <IdeaRS.OpenModel.Connection.BeamData>(); { //member1D - column var columnMember = openModel.Member1D.Find(x => x.Id == 1); IdeaRS.OpenModel.Connection.ConnectedMember connectedColumn = new IdeaRS.OpenModel.Connection.ConnectedMember { Id = columnMember.Id, MemberId = new ReferenceElement(columnMember), IsContinuous = true, }; connectionPoint.ConnectedMembers.Add(connectedColumn); IdeaRS.OpenModel.Connection.BeamData columnData = new IdeaRS.OpenModel.Connection.BeamData { Name = "Column", Id = 1, OriginalModelId = columnMember.Id.ToString(), IsAdded = false, MirrorY = false, RefLineInCenterOfGravity = false, }; newConnectionData.Beams.Add(columnData); } { //member1D - beam IdeaRS.OpenModel.Connection.BeamData beamData = new IdeaRS.OpenModel.Connection.BeamData { Name = "Beam", Id = 2, OriginalModelId = "2", IsAdded = false, MirrorY = false, RefLineInCenterOfGravity = false, }; newConnectionData.Beams.Add(beamData); var column = openModel.Member1D.Find(x => x.Id == 2); IdeaRS.OpenModel.Connection.ConnectedMember connectedBeam = new IdeaRS.OpenModel.Connection.ConnectedMember { Id = column.Id, MemberId = new ReferenceElement(column), IsContinuous = false, }; connectionPoint.ConnectedMembers.Add(connectedBeam); } openModel.Connections.Add(newConnectionData); openModel.AddObject(connectionPoint); return(openModel); }