Fonctions d'entités
Ces fonctions retournent une valeur et peuvent être utilisées dans des expressions.
Interrompre
Interrompt le traitement et génère un message.
Cette fonction est équivalente au Transformer Terminator .
Syntaxe
@Abort(<message>)
Argument
<message>
Message à générer quand le traitement échoue.
Area
Calcule la surface d'une entité polygonale. La fonction traite correctement les entités polygonales et les entités polygonales avec des trous. Pour les entités ponctuelles et linéaires, la fonction renvoie 0.
Syntaxe
@Area([[(SLOPED_AREAS|VOLUME),]<multiplier>])
Argument
<multiplier>
Par défaut, la surface retournée est en unités de coordonnées au carré. Le multiplicateur, s'il est spécifié, peut être utilisé pour convertir en d'autres unités. Par exemple, (@Area()*10.764)
peut être utilisé pour calculer la superficie d'une entité dans un système de coordonnées dont les unités sont les mètres, pour obtenir un résultat en pieds carrés. La valeur par défaut est 1.
Valeur : nombre réel
SLOPED_AREAS
Calcule la surface d'un polygone planaire ou d'une face.
VOLUME
Calcule le volume d'un solide (pas d'une surface).
CoordSys
Retourne le système de coordonnées de l'entité.
Syntaxe
@CoordSys()
Count
Génère des numéros uniques et les attribue aux attributs des entités pendant un traitement. Puisqu'elle envoie les nombres finaux dans chacun des domaines du fichier de log, cette fonction peut également être utilisée pour compter les entités qui correspondent aux lignes de corrélation. Dans ce cas, le fichier de log enregistre le nombre total de fois où la fonction a été invoquée, même si son résultat n'a pas été enregistré dans un attribut.
Syntaxe
@Count([<domain>[,<startVal>[,<modulo>]]][,NO_LOG])
Argument
<domain>
Un nom de compteur. Chaque fois que @Count est invoqué, il renvoie et incrémente le compteur associé au nom de domaine. Cela permet d'utiliser de nombreux compteurs différents au cours d'une seule traduction. Par exemple, des numéros de ligne uniques commençant à 0 peuvent être attribués à toutes les lignes en invoquant @Count(lineCounter)
. Au cours de la même exécution, des numéros de polygone uniques commençant à 0 peuvent être attribués à tous les polygones en utilisant @Count(polygonCounter)
. Si ce paramètre n'est pas spécifié, le domaine par défaut est pris en charge.
Plage : n'importe quelle chaîne de caractères
<startVal>
La valeur de départ du compteur. Le compteur est incrémenté à partir de la valeur de départ. Ceci est utile pour les applications où les plages de valeurs ont des significations dans le domaine du problème.
Plage : N'importe quel nombre entier
<modulo>
La valeur modulo du compteur. Le compteur renvoie une valeur comprise entre zéro et <modulo> - 1. Ceci est utile lorsque vous utilisez des compteurs comme valeurs de consultation avec la fonction @Lookup
.
Plage : N'importe quel nombre entier
NO_LOG
Evite à FME de loguer le domaine.
Configuration
La fonction @Count accepte les lignes de configuration suivantes :
Count MAX_TO_LOG <number>
Si la ligne de configuration n'est pas présente, un maximum de 50 domaines sont logués par défaut.
<number>
Integer >= -1
Définit le nombre maximum de domaines de comptage qui sont enregistrés. Si -1 est spécifié, tous les domaines de comptage sont enregistrés.
CurrentAttribute
Renvoie la valeur de l'attribut actuel. Cette fonction n'est valable que lorsque le résultat d'une expression peut être affecté à un attribut, comme dans les Transformers AttributeCreator, StringConcatenator et ExpressionEvaluator.
Syntaxe
@CurrentAttribute()
Dimension
Renvoie la dimension de l'entité sous la forme 2 ou 3. Si aucun paramètre n'est spécifié, les dimensions de l'entité sont renvoyées. Si 2 ou 3 est spécifié comme paramètre, la fonction force l'entité à cette dimension et renvoie la nouvelle dimension de l'entité.
Syntaxe
@Dimension([(<dimension>)])
Argument
<dimension>
Dimension dans laquelle l'entité sera générée.
Range: (2|3)
Evaluate
Utilise Tcl pour évaluer l'expression mathématique en entrée et retourne le résultat.
Syntaxe
@Evaluate(<expression>)
GeometryPartCount
Renvoie le nombre de parties d'une géométrie. Pour les multis et les agrégats, c'est le nombre de parties ; pour les chemins, le nombre de segments, pour les polygones troués, le nombre d'enveloppes (extérieures et intérieures) ; sinon, c'est un.
Syntaxe
@GeometryPartCount([<count_aggregates_parts>])
Argument
<count_aggregates_parts>
Si TRUE, les parties des agrégats ont également leurs parties comptées. Si FALSE, seules les parties des agrégats sont comptées. Si rien n'est spécifié, FALSE est supposé.
Type de géométrie
Retourne le type de géométrie de l'entité comme une chaîne de caractères.
Syntaxe
@GeometryType()
Length
Calcule la longueur des entités. Pour les entités polygonales, la longueur est égale à la somme de leur périmètre et du périmètre des trous qu'elles contiennent.
Syntaxe
@Length([<dimension>[, <multiplier>]])
@Length(TO_POINT, <dimension>, <point x>, <point y> [, <point z>])
@Length(ALL_LENGTHS[, <dimension>[, <multiplier>]])
@Length(ALL_LENGTHS_AS_MEASURES, <dimension>, <multiplier>
[, <measure name>])
Argument
<dimension>
Spécifie si la 3e dimension est utilisée dans le calcul de la longueur. La valeur par défaut est 2, ce qui signifie que seules les coordonnées x et y sont utilisées dans le calcul. Si 3 est spécifié et que l'entité n'a que 2 dimensions, aucune erreur n'est signalée et la longueur sera calculée sur les 2 dimensions disponibles.
Si le premier argument est TO_POINT, cet argument est nécessaire.
Valeur : 2|3
<multiplier>
Par défaut, la longueur renvoyée est en unité terrain. Le multiplicateur, s'il est spécifié, peut être utilisé pour convertir en d'autres unités. La valeur par défaut est 1.
Valeur : nombre réel
TO_POINT
Si le premier argument est TO_POINT, la fonction calcule la longueur d'une entité jusqu'au sommet spécifié par <point x>, <point y> [, <point z>]. La valeur renvoyée est la longueur de la ligne jusqu'au point le plus proche sur l'entité du point qui a été transmis. Par exemple, si une ligne va de (0,0) à (0,100) et passe par un point (50,50), le point le plus proche de la ligne sera (0,50), et la valeur renvoyée sera la longueur de (0,0) à (0,50), soit 50. En fonction de l'argument <dimension>, une longueur 2D ou 3D est calculée.
<point z>
La coordonnée x du sommet jusqu'auquel la longueur doit être calculée. Utilisé si le premier argument est TO_POINT.
Valeur : nombre réel
<point y>
La coordonnée y du sommet jusqu'auquel la longueur doit être calculée. Utilisé si le premier argument est TO_POINT.
Valeur : nombre réel
<point z>
La coordonnée z du sommet jusqu'auquel la longueur doit être calculée. Utilisé si le premier argument est TO_POINT.
Valeur : nombre réel
ALL_LENGTHS
Si le premier argument est ALL_LENGTHS, la fonction retourne une liste de valeurs séparées par des virgules, dans laquelle chaque valeur est la distance entre le premier point de l'entité et chaque vertex.
Par exemple, une entité a 4 points : A, B, C et D.
AB, BC et CD sont les distances entre deux vertex consécutifs :
Si AB = 1, BC = 2, et CD = 3, la valeur retournée par la fonction est 0,1,3,6.
ALL_LENGTHS_AS_MEASURES
Si le premier argument est ALL_LENGTHS_AS_MEASURES, la fonction calcule les valeurs comme avec l'option ALL_LENGTHS, mais ne les sort pas. Au lieu de cela, elles sont appliquées comme des mesures sur les entités d'entrée. Le nom de la nouvelle mesure peut être donné par le paramètre <nom de la mesure>.
<measure name>
Spécifie le nom de la mesure à définir. Si elle est laissée vide ou omise, la mesure par défaut est définie.
Valeur : chaîne de caractères.
Exemples
Cet exemple calcule la longueur des deux dimensions d'une entité. L'entité se trouve dans un système de coordonnées dont les unités sont les mètres. Pour obtenir un résultat en pieds, un multiplicateur (3,2808) est appliqué :
@Length(2,3.2808)
Cet exemple calcule la longueur d'une entité jusqu'à la vertex (0,5) (qui est un vertex bidimensionnel) :
@Length(TO_POINT,2,0,5)
Cet exemple retourne une liste de longueurs pour tous les vertex d'une entité bidimensionnelle :
@Length(ALL_LENGTHS,2)
Se basant sur une entité linéaire bidimensionnelle en entrée, cet exemple ajoute la valeur des mesures à chaque segment de la ligne avec un nom de mesure "measure_name".
@Length(ALL_LENGTHS_AS_MEASURES,2,0,measure_name)
NumCoords
Cette fonction retourne le nombre de coordonnées d'une géométrie.
Syntaxe
@NumCoords([FLATTEN_AGGREGATE])
Argument
FLATTEN_AGGREGATE
Dans le cas d'entités multipartites ou agrégées, cet indicateur garantit que le nombre réel de coordonnées est renvoyé pour l'entité agrégée, au lieu de l'espace de stockage réel utilisé pour l'entité. (Une entité agrégée peut utiliser plus d'espace de stockage que les coordonnées réelles de l'entité).
Le nombre de coordonnées retournées avec FLATTEN_AGGREGATE exclut les informations propres à FME.
UUID
Crée et retourne un nouvel identifiant UUID (Universally Unique Identifier) pour l'entité.
Syntaxe
@UUID(SIMPLE,UUID_FORMAT,[GLOBAL_ID|UUID_ONLY])
Arguments
GLOBAL_ID
Renvoie un GlobalID formaté par Esri, qui est un UUID entouré de {} (crochets).
UUID_ONLY
Renvoie un UUID qui n'est pas au format Esri GlobalID.
Valeur
Retourne la valeur de l'attribut en entrée spécifié attr
.
Syntaxe
@Value(STRING attr)
XValue
Cette fonction peut être utilisée comme une fonction d'entité ou une fonction de valeur d'attribut. Lorsqu'elle est utilisée comme fonction d'entité, @XValue stocke la valeur spécifiée comme coordonnée x de l'entité.
Lorsqu'elle est utilisée comme fonction de valeur d'attribut, @XValue renvoie la valeur de la première coordonnée x de l'entité. Cette valeur est ensuite stockée dans l'attribut.
@XValue()
doit généralement être utilisé en conjonction avec @YValue()
. Si @XValue()
est utilisé seul, il est possible de créer une entité avec un nombre différent de valeurs X et Y.
Syntaxe
@XValue([(<x-value>|<list attribute>)][, Reset])
Argument
<x-value>
La valeur de la coordonnée x enregistrée dans l'entité. Lorsqu'il est utilisé comme une fonction d'entité, ce paramètre doit être spécifié. Lorsqu'il est utilisé comme une fonction de valeur d'attribut, ce paramètre n'est pas spécifié.
Valeur : nombre réel
<list attribute>
Le nom d'un attribut de liste qui contient les coordonnées à stocker dans l'entité. Toutes les valeurs de la liste sont fournies comme coordonnées à l'entité ; chaque coordonnée est fournie de la même manière qu'une valeur unique.
Valeur : nom d'attribut contenant une fois {}.
, Reset
Spécifie que les coordonnées de l'entité sont effacées avant que la valeur x ne soit ajoutée. Si elle n'est pas spécifiée, la valeur x est ajoutée à la géométrie de l'entité actuelle, soit en prolongeant une ligne si l'entité était linéaire, soit en créant une entité Point-In-Polygon à partir d'une entité polygonale.
YValue
Cette fonction peut être utilisée comme une fonction d'entité ou une fonction de valeur d'attribut. Lorsqu'elle est utilisée comme fonction d'entité, @YValue stocke la valeur spécifiée comme coordonnée x de l'entité.
Lorsqu'elle est utilisée comme fonction de valeur d'attribut, @YValue renvoie la valeur de la première coordonnée y de l'entité. Cette valeur est ensuite stockée dans l'attribut.
@YValue()
doit généralement être utilisé en conjonction avec @XValue()
. Si @YValue()
est utilisé seul, il est possible de créer une entité avec un nombre différent de valeurs X et Y.
Syntaxe
@YValue([(<y-value>|<list attribute>)])
Argument
<y-value>
La valeur de la coordonnée y enregistrée dans l'entité. Lorsqu'il est utilisé comme une fonction d'entité, ce paramètre doit être spécifié. Lorsqu'il est utilisé comme une fonction de valeur d'attribut, ce paramètre n'est pas spécifié.
Valeur : nombre réel
<list attribute>
Le nom d'un attribut de liste qui contient les coordonnées à stocker dans l'entité. Toutes les valeurs de la liste sont fournies comme coordonnées à l'entité ; chaque coordonnée est fournie de la même manière qu'une valeur unique.
Valeur : nom d'attribut contenant une fois {}.
ZValue
Cette fonction peut être utilisée comme une fonction d'entité ou une fonction de valeur d'attribut. Lorsqu'elle est utilisée comme une fonction d'entité, @ZValue stocke la valeur spécifiée comme la coordonnée z de l'entité. Si l'entité contient plusieurs coordonnées, toutes les coordonnées sont définies sur la valeur z spécifiée.
Lorsqu'elle est utilisée comme fonction de valeur d'attribut, @XValue renvoie la valeur de la première coordonnée x de l'entité. Cette valeur est ensuite stockée dans l'attribut.
@ZValue()
doit généralement être utilisé en conjonction avec @XValue
et @YValue()
. Si @ZValue()
est utilisé seul, il est possible de créer une entité avec un nombre différent de valeurs X, Y et Z.
Syntaxe
@ZValue([(<z-value>|<list attribute>)])
Argument
<z-value>
La valeur de la coordonnée z enregistrée dans l'entité. Lorsqu'il est utilisé comme une fonction d'entité, ce paramètre doit être spécifié. Lorsqu'il est utilisé comme une fonction de valeur d'attribut, ce paramètre n'est pas spécifié.
Valeur : nombre réel
<list attribute>
Le nom d'un attribut de liste qui contient les coordonnées à stocker dans l'entité. Toutes les valeurs de la liste sont fournies comme coordonnées successives à l'entité.
Valeur : nom d'attribut contenant une fois {}.