public TsPart(TSD.Part drawingPart) { _drawingPart = drawingPart; TSM.Part modelPart = Extensions.GetModelObjectFromDrawingObject(_drawingPart) as TSM.Part; modelPart.GetReportProperty("WIDTH", ref width); modelPart.GetReportProperty("HEIGHT", ref height); modelPart.GetReportProperty("LENGTH", ref length); var partCLPoints = modelPart.GetCenterLine(false); Point partStartP = partCLPoints[0] as Point; Point partEndP; if (!(modelPart is TSM.ContourPlate)) { partEndP = partCLPoints[partCLPoints.Count - 1] as Point; } else { partEndP = partCLPoints[partCLPoints.Count - 2] as Point; } partStart = new double[3] { partStartP.X, partStartP.Y, partStartP.Z }; partEnd = new double[3] { partEndP.X, partEndP.Y, partEndP.Z }; partCS = modelPart.GetCoordinateSystem(); origin = new Point((partEnd[0] + partStart[0]) / 2, (partEnd[1] + partStart[1]) / 2, (partEnd[2] + partStart[2]) / 2); }