public static bool InsertWindows(double lenght, double height, double heightFloor) { var objects = new ModelObjectSelector().GetSelectedObjects(); while (objects.MoveNext()) { var obj = objects.Current; try { var midWallPoint = obj.GetCoordinateSystem().Origin; var wallLenght = obj.GetCoordinateSystem().AxisX; if (wallLenght.X == 0) { int numberOfWindows = Convert.ToInt32(Math.Floor(wallLenght.Y / (lenght + windowsDistance))); midWallPoint.Y += wallLenght.Y / numberOfWindows / 2; for (int i = 0; i < numberOfWindows; ++i) { ArrayList list = new ArrayList { new Point(midWallPoint.X, midWallPoint.Y - lenght / 2, midWallPoint.Z + heightFloor), new Point(midWallPoint.X, midWallPoint.Y + lenght / 2, midWallPoint.Z + heightFloor), new Point(midWallPoint.X, midWallPoint.Y + lenght / 2, midWallPoint.Z + heightFloor + height), new Point(midWallPoint.X, midWallPoint.Y - lenght / 2, midWallPoint.Z + heightFloor + height) }; InsertElements.InsertCutPlate(obj as ContourPlate, list, "PL100", "A36"); midWallPoint.Y += wallLenght.Y / numberOfWindows; } } else { int numberOfWindows = Convert.ToInt32(Math.Floor(wallLenght.X / (lenght + windowsDistance))); midWallPoint.X += wallLenght.X / numberOfWindows / 2; for (int i = 0; i < numberOfWindows; ++i) { ArrayList list = new ArrayList { new Point(midWallPoint.X - lenght / 2, midWallPoint.Y, midWallPoint.Z + heightFloor), new Point(midWallPoint.X + lenght / 2, midWallPoint.Y, midWallPoint.Z + heightFloor), new Point(midWallPoint.X + lenght / 2, midWallPoint.Y, midWallPoint.Z + heightFloor + height), new Point(midWallPoint.X - lenght / 2, midWallPoint.Y, midWallPoint.Z + heightFloor + height) }; InsertElements.InsertCutPlate(obj as ContourPlate, list, "PL100", "A36"); midWallPoint.X += wallLenght.X / numberOfWindows; } } } catch { return(true); } } return(false); }
public static bool InsertDoor(double doorWidth, double doorHeight) { var objects = new ModelObjectSelector().GetSelectedObjects(); while (objects.MoveNext()) { var obj = objects.Current; try { var midWallPoint = obj.GetCoordinateSystem().Origin; var wallLenght = obj.GetCoordinateSystem().AxisX; midWallPoint.X += wallLenght.X / 2; midWallPoint.Y += wallLenght.Y / 2; ArrayList list; if (wallLenght.X == 0) { list = new ArrayList { new Point(midWallPoint.X, midWallPoint.Y - doorWidth / 2, midWallPoint.Z), new Point(midWallPoint.X, midWallPoint.Y + doorWidth / 2, midWallPoint.Z), new Point(midWallPoint.X, midWallPoint.Y + doorWidth / 2, midWallPoint.Z + doorHeight), new Point(midWallPoint.X, midWallPoint.Y - doorWidth / 2, midWallPoint.Z + doorHeight) }; } else { list = new ArrayList { new Point(midWallPoint.X - doorWidth / 2, midWallPoint.Y, midWallPoint.Z), new Point(midWallPoint.X + doorWidth / 2, midWallPoint.Y, midWallPoint.Z), new Point(midWallPoint.X + doorWidth / 2, midWallPoint.Y, midWallPoint.Z + doorHeight), new Point(midWallPoint.X - doorWidth / 2, midWallPoint.Y, midWallPoint.Z + doorHeight) }; } InsertElements.InsertCutPlate(obj as ContourPlate, list, "PL100", "A36"); } catch { return(true); } } return(false); }