Sachverhalt: A. Die IV-Stelle des Kantons Aargau sprach dem 1960 geborenen A._, Inhaber des Einzelunternehmens B._, mit Verfügung vom 31. Oktober 2011 eine ganze Rente der Invalidenversicherung ab 1. Dezember 2009 zu (Invaliditätsgrad 77 %). Im September 2014 leitete sie von Amtes wegen ein Revisionsverfahren ein. Nach Abklärungen und Durchführung des Vorbescheidverfahrens hob sie die Rente mit Verfügung vom 2. Februar 2016 auf das Ende des der Zustellung folgenden Monats auf mit der Begründung, der Gesundheitsschaden bewirke keine Erwerbseinbusse mehr. B. Die dagegen erhobene Beschwerde wies das Versicherungsgericht des Kantons Aargau mit Entscheid vom 24. August 2016 ab. C. A._ lässt mit Beschwerde in öffentlich-rechtlichen Angelegenheiten beantragen, unter Aufhebung des Entscheids vom 24. August 2016 und der Verfügung vom 2. Februar 2016 sei ihm weiterhin eine ganze Invalidenrente auszuzahlen. A._ hat Gelegenheit erhalten, sich zur Zulässigkeit einer Rentenaufhebung mit substituierter Begründung zu äussern, und lässt eine weitere Eingaben einreichen.