I wanted to use AppleScript instead of BootChamp since I had a problems with an always-running webapp when it resumed state when returning to OS X instead of launching regularly. Trying to bless the volume from an AppleScript did not work on my iMac with a 3TB fusion drive so rebooting after the bless would lead to an error screen "NO BOOTABLE DEVICE - INSERT BOOT DISC AND PRESS ANY KEY".
What I had to do was bless the HDD's EFI disk id with the -device switch, mount the BootCamp volume with the -mount switch and skip the -legacy switch. For me the HDD's EFI partition disk id was disk1s1 but you can verify yours by running diskutil list in terminal and look for the EFI device from the HDD (not the SSD).
I also wanted to do a "clean" restart so my applications would not resume when returning to OS X so I created an AppleScript that quits specific apps before continuing to the bless and reboot:
try
set apps to {"Safari", "Google Chrome", "Mail", "Twitter"}
repeat with thisApp in apps
tell application thisApp to quit
end repeat
end try
delay 2
do shell script "bless -device /dev/disk1s1 -mount /Volumes/BOOTCAMP -setBoot -nextonly" password "YourPassWordHere" with administrator privileges
tell application "Finder" to restart
You could skip the part about the password if you don't want to store your admin password in the script in plaintext.
If you put the script or an alias of it to ~/Library/Scripts and enable the Script Menu from Script Editor's preference you get an easy way to run it like with BootChamp.