Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Thu 30 August 2018 17:09

Louise44
Juste Inscrit !
Date d'inscription: 25 Jun 2018
Messages: 6

QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour,

Est-ce possible sur Qgis (2.18.20), d'automatiser l'ID, à la création d'une nouvelle entité dans un projet? Ceci éviterait des erreurs de saisi au moment de la création d'entité, ainsi que la pénible manipulation d'ouvrir la table attributaire pour voir à combien on en est des numéros pour mettre le numéro d'après.

J'ai tenté $id dans la calculatrice des champs, mais ça n'automatise que la numérotation des entités déjà existantes, non celles à créer.

Merci d'avance, Louise Roy

Hors ligne

 

#2 Thu 30 August 2018 17:23

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3799

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour,
Voir un exemple dans les options "valeur par défaut" à https://docs.qgis.org/2.18/fr/docs/user … -settings. Il y a aussi l'extension Autofields.
Et évidemment, des sujets sur le forum genre par là ou par là.

Hors ligne

 

#3 Fri 31 August 2018 14:26

Louise44
Juste Inscrit !
Date d'inscription: 25 Jun 2018
Messages: 6

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour,
Merci pour le premier lien. (les 2 autres ne fonctionnent pas pour moi.)
J'ai pu faire ce que je voulais grâce à toi.
Dans les propriétés (double clic sur la couche), onglet Champs, il faut cliquer sur ''Edition de texte''  du champs ''ID'', choisir ''Edition de texte'', cocher ''Editable'' et taper pour ''Default value'' : maximum("ID")+1. J'ai coché non nul également.
Encore merci,
Louise Roy

Dernière modification par Louise44 (Fri 31 August 2018 15:13)

Hors ligne

 

#4 Mon 05 October 2020 18:11

AHAquilex
Participant occasionnel
Date d'inscription: 10 Jul 2018
Messages: 17

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour !

Je up le sujet concernant la version 3.10 (ça pourra aider vu que je n'ai trouvé LA solution que perdu dans cette page : https://gis.stackexchange.com/questions … mn-in-qgis)

Pour incrémenter le champ id automatiquement à la création d'un nouvel objet et sans que la mise à jour d'une ligne ne change l'id : il faut renseigner cette expression comme valeur par défaut (dans l'onglet "Formulaire d'attributs") :
IF ("id" is NULL,maximum("id") + 1, "id")

Ainsi, si vous mettez à jour votre ligne, l'id n'étant pas null, il ne changera pas ! [edit :] En effet, lorsque l'on renseigne une valeur par défaut utilisant une expression avec un champ, la case "Appliquer la valeur par défaut lors de la mise à jour" doit être cochée, ce qui est embêtant...

Dernière modification par AHAquilex (Thu 08 October 2020 16:00)

Hors ligne

 

#5 Mon 05 October 2020 19:06

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3799

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour,
AHAquilex, décocher l'option Appliquer la valeur par défaut à la mise à jour ne fait pas déjà cela, càd. empêcher que le champ soit recalculé en cas d'édition de l'entité?

Hors ligne

 

#6 Tue 06 October 2020 08:54

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 995

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour,

Si ma mémoire est bonne, l'option "Appliquer la valeur par défaut à la mise à jour" est obligatoirement cochée lorsqu'on saisit une expression qui fait appel à un champ de la table.

Hors ligne

 

#7 Thu 08 October 2020 15:57

AHAquilex
Participant occasionnel
Date d'inscription: 10 Jul 2018
Messages: 17

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour,
Oui effectivement je ne l'ai pas mentionné mais GlaDal a tout à fait raison, c'est pour ça que je galérais d'ailleurs (sinon ça aurait été facile ^^)

Hors ligne

 

#8 Fri 09 October 2020 09:51

sylvain poupard
Participant assidu
Date d'inscription: 19 Mar 2009
Messages: 362

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour,

En complément le format geopackage *.gpkg le fait nativement ("FID" integer)
Pour plus d'info : https://www.sigterritoires.fr/index.php … et-qgis-3/

Bon courage

Hors ligne

 

#9 Fri 09 October 2020 10:30

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3799

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour,

Si ma mémoire est bonne, l'option "Appliquer la valeur par défaut à la mise à jour" est obligatoirement cochée lorsqu'on saisit une expression qui fait appel à un champ de la table.


Ça m'a tout l'air d'un bug alors (ou je ne comprends pas le mécanisme).

Hors ligne

 

#10 Fri 27 November 2020 14:46

insay
Participant occasionnel
Date d'inscription: 23 Mar 2018
Messages: 25

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour,
Je travaille sur la version 3.10 (LTR), je rencontre un problème avec $id, lorsque je le met en valeur par défaut il se met systématiquement a '0'.
J'ai pour objectif de faire la même chose que Louise, c'est a dire une incrémentation automatique de ma couche ID en commençant par 1 ($id +1), vous sauriez comment se fait il que la valeur est toujours égale à 0 ?
Merci d'avance smile

Hors ligne

 

#11 Mon 30 November 2020 08:43

aheurion
Participant actif
Lieu: NANTES
Date d'inscription: 8 Oct 2020
Messages: 141

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour Insay,
Je pense que dans ton cas il faudrait un échantillon de tes données pour voir ce qui ne va pas.
$id commence par 0, ça c'est normal et c'est pour ça qu'on utilise $id+1, mais si tu dis que toutes tes valeurs prennent 0...
Et si tu souhaites faire une incrémentation qui reste valable à la création d'entité, il ne faut pas utiliser $id (ça ça marche si tu mets une fois à jour tes ids avec la calculatrice de champs) mais une formule à indiquer dans la valeur par défaut du formulaire (cf. messages plus haut).

Hors ligne

 

#12 Tue 01 December 2020 12:51

insay
Participant occasionnel
Date d'inscription: 23 Mar 2018
Messages: 25

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Hello tout le monde,
J'ai compris mon erreur, a chaque créations d'entité je ne pensais pas a sauvegardé avant d'en recréer une autre .... effectivement quand je sauvegarde et que je créer une nouvelle entité avec une formule du style : 'BPE' || ' ' || '-' || ' ' || maximum($id+1)
Du coup plus besoin de passer par un attribut "ID" avec la formule juste au dessus j'obtiens bien ce que je souhaite.
Merci a tous smile

Hors ligne

 

#13 Tue 01 December 2020 13:19

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3799

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour,
Un peu HS mais... Toute la première partie de l'expression n'étant que du texte vous pouvez juste écrire 'BPE - ' || maximum($id+1)

Hors ligne

 

#14 Wed 02 December 2020 08:00

insay
Participant occasionnel
Date d'inscription: 23 Mar 2018
Messages: 25

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

ah oui effectivement :x
Merci pour la remarque Santanna smile

Hors ligne

 

#15 Thu 07 January 2021 15:53

cocro
Participant actif
Lieu: rennes
Date d'inscription: 5 Sep 2005
Messages: 62
Site web

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour,

parce que c'est encore d'actualité, TOUS mes voeux pour cette année qui démarre très très vite
des bonnes données , des traitements légers et efficaces , des outils magiques , des sources propres et exactes seraient un rêve éveillé mais ferait perdre tout son sens à la communauté Georezo :-)


Pour rebondir que la question de Louise puis Insay, comment identifier la valeur maximale d'un id quand la donnée est filtrée ?

J'ai un fichier de plus de 1000 lignes mais seules 2000 doivent être embarquées sous Qfield pour faire de la mise à jour terrain.
pour se faire, j'applique un filtre d'entité sur ma couche, je génère mon formulaire mais
appliquer la formule (IF ("id" is NULL,maximum("id") + 1, "id")) sur mon champ "id" ne s'applique qu'aux seuls points conservés par mon échantillon :-( (Max de la base = 100064 contre max de l'extrait = 8467 ... l'incrémantation repart donc à 8468)

Une fois la saisie faite, je souhaite à l'importation, récupérer les nouveaux points saisis avec un ID unique qui n'écrasera pas un point existant hors cadre d'enquête.
J'espère être claire

Merci par avance
Corinne

Hors ligne

 

#16 Tue 12 January 2021 10:33

aheurion
Participant actif
Lieu: NANTES
Date d'inscription: 8 Oct 2020
Messages: 141

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour cocro, et bonne année également ! ^^

Pourrais-tu expliquer un peu plus comment tu fais ton filtrage de tes 2000 lignes sur les 100.000 ?
Car normalement ton formulaire s'applique à toute la couche, donc doit prendre en compte les entités non sélectionnées également.
Si le filtrage implique de dupliquer la couche en ne gardant que les 2000 entités (qui seront traités puis réintégrées par fusion à la couche initiale) dans ce cas tu peux bidouiller en indiquant dans la formule l'id maximum que tu auras relevé à la main (ici 100064) :
IF ("id" is NULL, maximum(100064,maximum("id") + 1), "id")

Géolocalement votre

Hors ligne

 

#17 Tue 12 January 2021 11:15

cocro
Participant actif
Lieu: rennes
Date d'inscription: 5 Sep 2005
Messages: 62
Site web

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour,

la couche que j'utilise couvre 67 communes. Seule une est mise à jour en ce mois de janvier.

Le filtre se fait dans l'onglet "propriété de la couche" / "source" / "filtre d'entité du fournisseur de donnée / : choix de ma commune à traiter.
je bascule visuellement ainsi sous Qfield que les points à relever, n'invitant pas l'opérateur à aller voir ailleurs.
au retour terrain, plus qu'à supprimer le filtre pour revoir toutes mes données. ;-)

A la création de nouveaux points sur le terrain, le problème de l'ID unique se pose car l’incrément se fait sur la valeur maximale trouvé dans le filtre, ne tient pas compte des autres informations (logique masquée).
Je vais tester la formule, cela pourrait en effet résoudre mon souci

Je ne souhaite pas faire de copie/duplication de ma donnée source car la mise à jour globale se ferra au fil de l'eau cette année, commune par commune.


Cordialement

Hors ligne

 

#18 Wed 25 August 2021 21:29

Renaud52
Juste Inscrit !
Date d'inscription: 19 Aug 2021
Messages: 4

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Louise44 a écrit:

Bonjour,
Merci pour le premier lien. (les 2 autres ne fonctionnent pas pour moi.)
J'ai pu faire ce que je voulais grâce à toi.
Dans les propriétés (double clic sur la couche), onglet Champs, il faut cliquer sur ''Edition de texte''  du champs ''ID'', choisir ''Edition de texte'', cocher ''Editable'' et taper pour ''Default value'' : maximum("ID")+1. J'ai coché non nul également.
Encore merci,
Louise Roy


Bonjour,

Cette formule fonctionne effectivement bien pour moi mais seulement si une entité existe déjà. Pour une couche vide, il faut pouvoir initialiser l'incrémentation. J'utilise donc cette formule pour ''Default value'' : if(count("ID")=0,1,maximum("ID")+1) mais sans coché non nul.

Cordialement,

Hors ligne

 

#19 Wed 31 May 2023 15:57

NellyM
Membre
Lieu: Poitiers
Date d'inscription: 16 Sep 2005
Messages: 174
Site web

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

bonjour je reviens sur le fait de pouvoir créer des objets (polygones) dans un fichier shape avec une incrémentation de l'ID automatique. J'utilise QGIS 3.28 Firenze
J'ai créé une couche de polygone avec le champ ID
Dans les propriétés de la couche, en cliquant sur le champ ID, je décoche éditable, et dans valeur par défaut j'ai saisi IF ("id" is NULL,maximum("id") + 1, "id"). je coche "appliquer la valeur par défaut sur la mise à jour", sinon il ne prend pas la formule.
Je créé mes polygones, il ne se passe rien.
car en fait comment fait-il pour démarrer à "1" pour le premier polygone?

je ne comprends pas... j'ai du rater un truc dans la discussion. quelqu'un pour m'aider?

L'extension Autofields ne semble plus exister

bien cordialement

Hors ligne

 

#20 Wed 31 May 2023 16:49

Lsam
Participant assidu
Date d'inscription: 27 Nov 2013
Messages: 157

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour,
Je n'ai pas tout suivi mais dans le formulaire d'attributs, pour votre champ ID, indiquer "Valeurs uniques" puis dans Contraintes, cocher "Unique" et indiquer dans expression : @id
Ça marche très bien de mon côté ; pas vous ?

Hors ligne

 

#21 Wed 31 May 2023 16:58

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 995

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour,

Essayez ceci :

(coalesce(maximum("id"),0))+1

Hors ligne

 

#22 Thu 01 June 2023 08:35

Vincent Vauchey
Participant assidu
Lieu: saint jean de braye
Date d'inscription: 24 Jan 2006
Messages: 287

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Bonjour

Il faut aussi un champ 'entier' pour que cela fonction, surtout pas de texte.

Vincent

Hors ligne

 

#23 Thu 01 June 2023 14:34

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 995

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Ca peut fonctionner avec cette formule sur un champ texte :

Code:

 concat( 'S',(coalesce(maximum(to_int(replace("id",'S',''))),0))+1)

Ex. : 'S1','S2', ...

Hors ligne

 

#24 Thu 01 June 2023 16:13

NellyM
Membre
Lieu: Poitiers
Date d'inscription: 16 Sep 2005
Messages: 174
Site web

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Lsam a écrit:

Bonjour,
Je n'ai pas tout suivi mais dans le formulaire d'attributs, pour votre champ ID, indiquer "Valeurs uniques" puis dans Contraintes, cocher "Unique" et indiquer dans expression : @id
Ça marche très bien de mon côté ; pas vous ?


bonjour
désolée mais ça ne donne rien...
je vous mets une copie d'écran

Dernière modification par NellyM (Thu 01 June 2023 16:27)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#25 Thu 01 June 2023 16:13

NellyM
Membre
Lieu: Poitiers
Date d'inscription: 16 Sep 2005
Messages: 174
Site web

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

GlaDal a écrit:

Bonjour,

Essayez ceci :

(coalesce(maximum("id"),0))+1


bonjour
désolée mais pouvez-vous me dire précisément où je dois saisir cette formule?

Dernière modification par NellyM (Thu 01 June 2023 16:27)

Hors ligne

 

#26 Thu 01 June 2023 16:59

Vincent Vauchey
Participant assidu
Lieu: saint jean de braye
Date d'inscription: 24 Jan 2006
Messages: 287

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

Re

Dans ''valeur par défaut'' laisser en texte pas valeur unique et il vous faut mettre la première entrée (1)
et rien dans contrainte.

Dernière modification par Vincent Vauchey (Thu 01 June 2023 17:01)

Hors ligne

 

#27 Fri 02 June 2023 09:55

NellyM
Membre
Lieu: Poitiers
Date d'inscription: 16 Sep 2005
Messages: 174
Site web

Re: QGIS: Numerotation ID automatique a la creation de nouvelles entites

bonjour,
j'ai eu du mal à comprendre mais ça a l'air de marcher, merci.
QGIS ne fait pas ça par défaut?
bonne journée

Hors ligne

 

Pied de page des forums

Powered by FluxBB