#1 Mon 07 January 2013 17:18
- ALCAÏNA Christophe
- Participant occasionnel
- Date d'inscription: 29 Sep 2009
- Messages: 16
Contrôle de présence de calque
Bonjour à tous et meilleurs vœux.
Je ne sais pas si durant les fêtes j'ai oublié certains automatismes et autres fondamentaux, mais là je bloque sur un problème
qui semble pourtant tout simple:
Comment contrôler l'existence d'un calque dans un fichier DWG...?
J'ai bien entendu "joué" avec les "AttributeFilter", "Tester" et autre "ListBuilder" mais je n'arrive pas à faire ce contrôle
simple :"Le fichier DWG contient-il le calque 'test' (ex.)?"
Dans l'attente de vos lumières.
Par avance merci !
Hors ligne
#2 Mon 07 January 2013 17:23
- nat43
- Participant actif
- Date d'inscription: 13 Mar 2008
- Messages: 94
Re: Contrôle de présence de calque
Bonjour !!!
Un TESTER sur l'attribut autocad_layer devrait suffir, non ?!
S'il y a des entités dans le calque ... il y aura un résultat.
Attention par contre, car il me semble que FME ne déteste pas les calques vides dans les DWG.
Bonne année 2013 à Toutes et à Tous !!!
Dernière modification par nat43 (Mon 07 January 2013 17:29)
Hors ligne
#3 Mon 07 January 2013 17:26
- Charlotte BeTechSud
- Participant occasionnel
- Date d'inscription: 12 Dec 2012
- Messages: 20
Re: Contrôle de présence de calque
Bonjour,
Si tu connais le nom de ton calque, tu exposes autocad_layer, puis tu testes avec un tester :
autocad_layer = "nomducalque"
si dans passed tu as des résultats c'est qu'il existe
Si tu as plusieurs calques à tester, tu peux utiliser un testfilter.
Je ne sais pas si c'est la meilleure méthode mais je pense que je le ferai comme ça...
Hors ligne
#4 Mon 07 January 2013 17:44
- ALCAÏNA Christophe
- Participant occasionnel
- Date d'inscription: 29 Sep 2009
- Messages: 16
Re: Contrôle de présence de calque
Merci NAT43 et Charlotte pour vos réponses rapides.
Comme tu l'indiques Nat43, le "Tester" me permet de vérifier le nombre d'entités contenues dans le calque en question, ceci répond indirectement
à ma problématique, je souhaite avant même de tester si le calque contient des entités, savoir si le calque existe bel et bien.
Idem pour l'"AttributeFilter".
Petite précision, qui a son importance, je suis sous FME2009, le "TestFilter" n'existe malheureusement pas pour cette version.
Je continue mes recherches
Dernière modification par ALCAÏNA Christophe (Mon 07 January 2013 18:05)
Hors ligne
#5 Mon 07 January 2013 18:43
Re: Contrôle de présence de calque
Je pense que la solution la plus adaptée consiste à lire le jeu de données avec le format Schema (Any Format) qui permet d'accéder à la structure du jeu de données sans lire les données elles-mêmes.
Hors ligne
#6 Tue 08 January 2013 10:30
- ALCAÏNA Christophe
- Participant occasionnel
- Date d'inscription: 29 Sep 2009
- Messages: 16
Re: Contrôle de présence de calque
Bonjour à tous,
Merci Olivier pour ta réponse, mais le FME2009 que j'utilise n'a malheureusement pas la possibilité de lire le format "Schema (Any Format)".
J'ai tout de même persisté et creusé du côté du "ListBuilder" et j'ai une solution à mon problème
Pré-requis:
Exposer l'attribut "autocad_layer"
Procédure
1- Monter un "ListBuilder" avec un group by sur "autocad_layer", création de la liste "_list" (valeur par défaut)
2- Connecter en Output du "ListBuilder" un "ListSearcher" basé sur la liste créée au point 1, préciser le texte recherché (dans mon cas le nom du layer à contrôler), puis le petit nom de "l'index attribute" qui servira au "Tester" et enfin le "Search type" à "Firs exact match".
3- Connecter en Output du "ListSearcher" un "Tester" basé sur le nom de "l'index attribute".
Si l'index = 0 alors le texte recherché a été trouvé.
Répéter la chaîne de transformers "ListSearcher" + "Tester" pour l'ensemble des calques dont il faut contrôler la présence dans le DWG.
Cette solution est valable pour un FME2009, les version plus récentes doivent permettre une autre alternative.
Merci à tous et bonne journée
Hors ligne
#7 Tue 08 January 2013 12:37
- ALCAÏNA Christophe
- Participant occasionnel
- Date d'inscription: 29 Sep 2009
- Messages: 16
Re: Contrôle de présence de calque
Bon, c'était trop beau...
Le "ListBuilder" supprime les géometries, j'ai donc tenté de mettre en place une combinaison de "VariableSetter" et "VariableRetriever" pour valider le contrôle de présence de calque, mais ce n'est pas gagné...
Je suis très surpris par la difficulté que je rencontre pour quelque chose d'aussi simple (en théorie...).
Je vous tiens informés si je parviens à mes fins !!
Hors ligne
#8 Wed 09 January 2013 12:05
- MagBar
- Participant assidu
- Date d'inscription: 27 Jun 2012
- Messages: 203
Re: Contrôle de présence de calque
Tu peux créer des listes par l'intermédiaire d'autres transformer (qui concerve les géometries)
Exemple : dissolver, aggregator, featureMerger, ....
Tu peux peut être passer aggrégator ? (attention tu aura en sortie 1 unique polygone aggrégé - ou plusieurs selon ton attribut de regroupement) il faudra les désaggréger par la suite avec deagregator...
Je ne sais pas trop si cela t'aide...
Hors ligne
#9 Fri 11 January 2013 08:29
- ALCAÏNA Christophe
- Participant occasionnel
- Date d'inscription: 29 Sep 2009
- Messages: 16
Re: Contrôle de présence de calque
Merci MagBar pour cette piste.
Je m'y remets dès que possible et vous ferai part de mes tests s'ils sont concluants.
Bonne fin de semaine à tous.
Dernière modification par ALCAÏNA Christophe (Fri 11 January 2013 08:30)
Hors ligne
#10 Tue 05 February 2013 16:33
- ALCAÏNA Christophe
- Participant occasionnel
- Date d'inscription: 29 Sep 2009
- Messages: 16
Re: Contrôle de présence de calque
Bonjour à tous,
J'ai trouvé une alternative à mon problème, grâce au transformer "NoFeaturesTester".
Grâce à lui, il est possible de déclencher une action à la suite d'un transformer qui ne retourne aucun enregistrement.
Merci à tous et longue vie à FME !!
Hors ligne
#11 Wed 06 February 2013 08:09
- MagBar
- Participant assidu
- Date d'inscription: 27 Jun 2012
- Messages: 203
Re: Contrôle de présence de calque
vahou,
tu l'a trouvé où celui ci ? version 2013 ?
Hors ligne
#12 Thu 07 February 2013 07:27
- ALCAÏNA Christophe
- Participant occasionnel
- Date d'inscription: 29 Sep 2009
- Messages: 16
Re: Contrôle de présence de calque
Bonjour,
Il est vrai qu'il est dommage que ce transformer ne soit pas disponible par défaut dans FME, il y aurait pourtant toute sa place...
Tu le trouveras sur le FMESTORE, custom transformers
http://fmestore.safe.com/item_types.htm
Tu télécharges le fichier *.fmc, double clic dessus, et il
Lance l'installation du *.fmx dans "c:\users\...\documents\fme\transformer"
Une fois installé, tu lances ton workbench et le custom
Transformer est "ready to play"!!
Petite précision:
le transformer "NoFeaturesTester" est compatible avec les versions 2012 et 2013, pour la version 2011 il faudra vraisemblablement
apporter une modification car il y a une incompatibilité de version du transformer "Aggregator" contenu dans ce custom transformer.
Bonnes courses !
Dernière modification par ALCAÏNA Christophe (Thu 07 February 2013 09:02)
Hors ligne
#13 Thu 11 May 2017 11:51
- mgeomaticien
- Participant occasionnel
- Date d'inscription: 4 May 2017
- Messages: 20
Re: Contrôle de présence de calque
Bonjour,
désolé de relancer ce sujet. Mais je dois faire la même chose. J'ai installer le transformer "NoFeaturesTester" mais je ne sais pas trop comment ça marche. Car elle n'indique pas d'options pour le configurer. SVP vous pouvez m'aider la dessus ?
J'utilise FME 2016
Merci par avance
Dernière modification par mgeomaticien (Thu 11 May 2017 11:52)
Hors ligne
#14 Mon 22 May 2017 17:01
- mgeomaticien
- Participant occasionnel
- Date d'inscription: 4 May 2017
- Messages: 20
Re: Contrôle de présence de calque
Merci. j'ai résolu mon problème.
Hors ligne