Faits :
A.
Par décision du 1 er octobre 2008, l'Office cantonal de l'assurance-invalidité du canton de Genève (l'office AI) a alloué à A._ une rente d'invalidité fondée sur un degré d'invalidité de 49 % à compter du 1 er septembre 1999.
Dans le cadre d'une révision du droit à cette prestation, ouverte en juillet 2010, l'office AI a recueilli l'avis du docteur B._, spécialiste en rhumatologie et en médecine interne. Ce médecin a attesté que l'activité de maçon n'était théoriquement plus exigible. Il a précisé qu'une capacité totale de travail demeurait exigible dans une activité adaptée, soit un travail évitant le port de charges de plus de 15kg notamment en position de porte-à-faux, la nécessité d'alterner les positions assise et debout toutes les 30 minutes, l'absence d'activité au-dessus de l'horizontale avec les membres supérieurs, l'absence d'activité lors des mouvements de flexion-extension de la nuque (rapport d'expertise rhumatologique du 12 janvier 2012). L'office AI a fixé le revenu sans invalidité à 78'325 francs; quant au gain d'invalide, il l'a arrêté à 53'011 fr. sur la base des statistiques de l'Enquête suisse sur la structure des salaires, après application d'une réduction de 15 % sur le salaire statistique. Le taux d'invalidité s'étant ainsi élevé à 32 % (cf. feuille de calcul du 8 octobre 2013), l'office AI a supprimé la rente par décision du 28 février 2014.
B.
A._ a déféré cette décision à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, en concluant à son annulation et au paiement d'une demi-rente d'invalidité. A la demande du tribunal, le docteur B._ a complété son rapport (cf. écriture du 18 septembre 2014).
Par jugement du 3 novembre 2014, la juridiction cantonale a porté l'abattement sur le salaire statistique de 15 % à 25 %, réduisant ainsi le revenu d'invalide à 46'775 fr. Compte tenu du taux d'invalidité de 40 % qui découlait de la comparaison des revenus (46'775 / 78'325), elle a reconnu à l'assuré le droit à un quart de rente, admis le recours et annulé la décision du 28 février 2014.
C.
L'office AI interjette un recours en matière de droit public contre ce jugement dont il demande l'annulation en concluant à la confirmation de sa décision du 28 février 2014.
L'intimé n'a pas répondu, tandis que l'Office fédéral des assurances sociales a renoncé à se déterminer.

Considérant en droit :
1.
Le litige porte sur la fixation du taux d'invalidité de l'intimé dans le cadre d'une procédure de révision du droit à la rente (art. 17 LPGA).
Dans ce contexte, parmi tous les éléments pertinents pour le calcul du degré de l'invalidité, seul est contesté le facteur d'abattement qui entre en ligne de compte dans le calcul du revenu d'invalide, lequel a été fixé selon les données statistiques de l'Enquête sur la structure des salaires (cf. <ref-ruling> consid. 4.2.3 p. 481).
2.
Pour évaluer la mesure de l'abattement, les premiers juges ont admis que trois facteurs demeuraient pertinents, soit celui de la nationalité, de l'âge, ainsi que celui d'une activité légère seule exigible dès lors que les limitations fonctionnelles de l'intimé n'étaient pas prises en compte dans le taux de capacité de travail de 100 %. Compte tenu de ces trois critères et en particulier celui de l'âge avancé de l'intimé (61 ans et 8 mois au jour où la décision de suppression de la rente a été rendue), les juges cantonaux ont considéré que l'abattement de 15 % retenu par l'office recourant était insuffisant et que la réduction maximale de 25 % devait être appliquée.
3.
Le recourant rappelle que la déduction maximale de 25 % sur le salaire statistique n'intervient pas de manière générale et dans chaque cas, mais qu'il faut examiner sur la base de l'ensemble des circonstances du cas concret particulier si et dans quelle mesure le revenu hypothétique doit être réduit. Il relève aussi qu'il n'y a pas lieu de procéder à des déductions distinctes pour chacun des facteurs entrant en considération comme les limitations liées au handicap, l'âge, les années de service, la nationalité ou la catégorie de permis de séjour ou encore le taux d'occupation.
Dans le cas d'espèce, le recourant indique qu'il a procédé à un abattement de 15 % en raison des limitations fonctionnelles (pas de port de charge de plus de 15kg notamment en position de porte-à-faux, alternance des positions assise et debout toutes les 30 minutes, pas d'activité au-dessus de l'horizontale avec les membres supérieurs et pas d'activité de flexion-extension de la nuque), de l'âge de l'intimé (61 ans), et du fait que seule une activité légère était possible. Selon le recourant, les premiers juges ont appliqué un taux d'abattement de 25 % de manière arbitraire, par une appréciation arbitraire des preuves et par un abus de leur pouvoir d'appréciation.
Singulièrement, le recourant fait grief aux premiers juges d'avoir méconnu le fait qu'il s'était prononcé de manière circonstanciée sur la question, et d'avoir substitué leur appréciation à la sienne sans motif pertinent. En ce qui concerne le critère de la nationalité, le recourant estime qu'il a été pris en compte à tort, car l'intimé ne subit aucune péjoration salariale en raison de son statut d'étranger, dès lors qu'il est entré en Suisse en 1985 et qu'il a commencé à y travailler en 1986. A propos de l'activité légère seule exigible, il estime que les limitations fonctionnelles ne présentent pas de spécificités telles qu'il y aurait lieu d'en tenir compte, d'une part car la juridiction cantonale n'indique pas les raisons pour lesquelles elles pourraient jouer concrètement sur les perspectives salariales dans le cadre d'une activité simple, légère et ne nécessitant pas de formation particulière, d'autre part car les données statistiques s'appliquent en principe à tous les assurés qui ne peuvent plus accomplir leur ancienne activité devenue trop astreignante mais qui conservent néanmoins une capacité de travail dans des travaux légers. Pour ces assurés, le salaire statistique est suffisamment représentatif de ce qu'ils seraient en mesure de gagner.
4.
4.1. Divers éléments peuvent influencer le revenu d'une activité lucrative. Il s'agit de circonstances personnelles et professionnelles, exhaustivement énumérées par la jurisprudence (les limitations fonctionnelles liées au handicap, l'âge, les années de service, la nationalité/catégorie d'autorisation de séjour et le taux d'occupation), dont il y a lieu de tenir compte au moment de la détermination du revenu hypothétique d'invalide au moyen de salaires statistiques par une déduction globale maximale de 25 % (cf. <ref-ruling> consid. 5b/aa-cc p. 79 sv.).
4.2. Alors que le point de savoir s'il y a lieu de procéder à un abattement sur le salaire statistique en raison de circonstances particulières (liées au handicap de la personne ou d'autres facteurs) est une question de droit qui peut être examinée librement par le Tribunal fédéral, l'étendue de l'abattement du salaire statistique dans un cas concret constitue une question relevant du pouvoir d'appréciation, qui est soumise à l'examen du juge de dernière instance uniquement si la juridiction cantonale a exercé son pouvoir d'appréciation de manière contraire au droit, soit a commis un excès positif ("Ermessensüberschreitung") ou négatif ("Ermessensunterschreitung") de son pouvoir d'appréciation ou a abusé ("Ermessensmissbrauch") de celui-ci.
Il y a abus du pouvoir d'appréciation lorsque l'autorité, tout en restant dans les limites du pouvoir d'appréciation qui est le sien, se fonde sur des considérations qui manquent de pertinence et sont étrangères au but visé par les dispositions légales applicables, ou viole des principes généraux du droit tels que l'interdiction de l'arbitraire et de l'inégalité de traitement, le principe de la bonne foi et le principe de la proportionnalité. Commet un excès positif de son pouvoir d'appréciation, l'autorité qui exerce son appréciation alors que la loi l'exclut, ou qui, au lieu de choisir entre les deux solutions possibles, en adopte une troisième. Il y a également excès du pouvoir d'appréciation dans le cas où l'excès de pouvoir est négatif, soit lorsque l'autorité considère qu'elle est liée, alors que la loi l'autorise à statuer selon son appréciation, ou qu'elle renonce d'emblée en tout ou partie à exercer son pouvoir d'appréciation (<ref-ruling> consid. 5.1 p. 72 et les références).
4.3. Contrairement au pouvoir d'examen du Tribunal fédéral, celui de l'autorité judiciaire de première instance n'est en revanche pas limité dans ce contexte à la violation du droit (y compris l'excès ou l'abus du pouvoir d'appréciation), mais s'étend également à l'opportunité de la décision administrative ("Angemessenheitskontrolle"). En ce qui concerne l'opportunité de la décision en cause, l'examen porte sur le point de savoir si une autre solution que celle que l'autorité, dans un cas concret, a adoptée dans le cadre de son pouvoir d'appréciation et en respectant les principes généraux du droit, n'aurait pas été plus judicieuse quant à son résultat. A cet égard, le juge des assurances sociales ne peut, sans motif pertinent, substituer sa propre appréciation à celle de l'administration; il doit s'appuyer sur des circonstances de nature à faire apparaître sa propre appréciation comme la mieux appropriée.
Lorsque la juridiction cantonale examine l'usage qu'a fait l'administration de son pouvoir d'appréciation pour fixer l'étendue de l'abattement sur le revenu d'invalide, elle doit porter son attention sur les différentes solutions qui s'offraient à l'organe de l'exécution de l'assurance-invalidité et voir si un abattement plus ou moins élevé (mais limité à 25 % [<ref-ruling>]) serait mieux approprié et s'imposerait pour un motif pertinent, sans toutefois substituer sa propre appréciation à celle de l'administration (<ref-ruling> consid. 5.2 p. 73).
5.
En l'espèce, le critère de la nationalité de l'intimé n'a plus de rôle prépondérant, si bien qu'il ne justifie pas d'abattement sur le salaire statistique. L'intimé dispose en effet d'une autorisation d'établissement en Suisse (permis C), où il travaille depuis 1986.
En revanche, un abattement en raison des limitations fonctionnelles (pas de port de charge de plus de 15kg notamment en position de porte-à-faux, alternance des positions assise et debout toutes les 30 minutes, pas d'activité au-dessus de l'horizontale avec les membres supérieurs et pas d'activité de flexion-extension de la nuque), ainsi que de l'âge de l'intimé (61 ans), apparaît justifié. Pris ensemble, ces deux critères ne justifient pas un facteur de réduction supérieur à 15 %. Une diminution globale de 25 %, qui correspond au maximum autorisé par la jurisprudence en présence de circonstances personnelles et professionnelles défavorables, ne tient pas raisonnablement compte de la réalité de la situation.
Dès lors, à défaut d'un motif pertinent exigé par la jurisprudence (cf. consid. 4.3 supra), le résultat obtenu (un taux d'invalidité de 40 %, au lieu du taux de 32 % retenu par le recourant) ne saurait être protégé. Le recours est bien fondé.
6.
L'intimé, qui succombe, supportera les frais de la procédure, cantonale et fédérale (art. 69 al. 1bis LAI, 66 al. 1 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis. Le jugement de la Cour de justice de la République et canton de Genève, Chambre des assurances, du 3 novembre 2014, est annulé et la décision de l'Office de l'assurance-invalidité du canton de Genève, du 28 février 2014, est confirmée.
2.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge de l'intimé.
3.
Le dossier est renvoyé à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, pour nouvelle décision sur les frais et dépens de la procédure cantonale.
4.
Le présent arrêt est communiqué aux parties, à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 7 août 2015
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
Le Juge présidant : Meyer
Le Greffier : Berthoud