Aide au codage - One-Click-LCA/plu-lang GitHub Wiki

Elements généraux

Gestion des index de hauteurs

On prend comme références d'index :

1 : Sol avant travaux (par défaut), 2 : Cote NGF, 3 : Emprise publique

Dans le cas où rien n'est mentionné, ne pas remplir ces cases.

Règles classiques

Est derrière un autre bâtiment, bâtiment de second ordre

["isBehindAnotherBuilding",["footprint","thisBuilding",null,null,null],["parcelBorderByType","thisParcel",1,0,0,null]]

On précise par rapport à quoi le bâtiment "est derrière un autre bâtiment"

Utilisation de Tel que

["and",["isEqual",["proportionOfNew","thisBuilding",1,0,1,0,0,null,null,1,null],["NO_OPERATOR",0]],["isEmpty",["listFilter",["edges",["footprint","thisBuilding",null,null,null]],["and",["intersects","element",["parcelBorderByType","thisParcel",0,1,1,null]],["isSuperior",["maxHeight","element"],["NO_OPERATOR",4]]]]]]

Le morceau de règle traduit est "les constructions ne sont pas destinées à l'habitation, à l'industrie ou aux bureaux et leur hauteur maximum ne dépasse pas 4 m en limite de propriété."

Pour l'utilisation d'un Tel que, faisant référence à l'élément au dessus on utilise "élément".

Utilisation et rédaction d'un gabarit partant de certaines bordures

["allOf",["parcelBorderByType","thisParcel",0,1,1,null],["or",["isEqualOrChild",["neighboringParcelZoning","element"],["aZoning","aZoneToBe","UC"]],["isUnderMaximalEnvelope","thisBuilding","element","[0;0][longueurParcelle;longueurParcelle]",null,null,null]]]

Le morceau de règle traduit est "Tout point du bâtiment est à une distance supérieur ou égale à sa hauteur des bordures ne séparant pas la parcelle d'une parcelle de la zone UC".

La gestion de la règle se fait bordure par bordure, ici on teste bordure par bordure si de l'autre coté il y a une zone UC derrière, et si ce n'est pas le cas on impose d'être en dessous du gabarit.

Gestion des bandes de constructibilité

["and",["isInferiorOrEqual",["maxHeight",["partOfThisBuildingInSurface",["constructibilityBands","thisParcel",20,null,null,null]]],["NO_OPERATOR",27]],["isInferiorOrEqual",["maxHeight",["partOfThisBuildingInSurface",["constructibilityBands","thisParcel",null,20,null,null]]],["NO_OPERATOR",10]]]

Les bâtiments ou parties de bâtiments situé à moins de 20 mètres de la bordure peuvent avoir une hauteur allant jusqu'à 27m. Sur le reste des parcelles,la hauteur est limitée à 10 mètres.

Attention, on note l'usage "Partie du bâtiment courant située dans la surface" pour gérer le bâtiment par partie. Il ne faut pas oublier que le bâtiment peut être situé de part et d'autre de cette bande de constructibilité.

Questions fréquentes

Comment dois je écrire les pourcentages ?

Les pourcentages sont toujours écris sous la forme de nombre entre 0 et 1 (10% = 0.1)

Comment lier différents éléments d'une même règle ?

Tout les éléments doivent être liés entre eux par des ET.

Comment gérer les zones possédant une règle spécifique pour le public ?

A moins que cela soit précisé, les bâtiments à usage de service public ne suivent que leur règle. Attention, si souvent les bâtiments publics n'ont pas à respecter les règles, quand rien n'est indiqué ils doivent bien suivre les règles des autres.

Quand dois-je utiliser les retraits linéaires et les retraits orthogonaux ?

Par défaut, on considère que les retraits sont linéaires. Cependant, si le contraire est mentionné ou que le retrait change en fonction de la présence ou non de fenêtres ou de baies principales le retrait est orthogonal car on s’intéresse aux vues depuis les bâtiments.

Que faire dans le cas où un usage est interdit ?

S'il est vrai qu'une fonction du type :

["isEqual",["proportionOfNew","thisBuilding",1,0,0,0,0,0,0,0,0],["NO_OPERATOR",0]]

est suffisante pour dire que le logement est interdit, il est préférable de rédiger la règle de cette manière :

["ifOperator",["isSuperior",["proportionOfNew","thisBuilding",1,0,0,0,0,0,0,0,0],["NO_OPERATOR",0]],["errorMesssage","aMessage","Dans cette zone les logements sont interdits."],["NO_OPERATOR","allOK"]]

Le message d'erreur reprennant en termes exacte le PLU.

Il y a deux éléments CES, lequel dois-je utiliser ?

Il y a en effet deux éléments de CES, l'un en binaire l'autre en unaire. Prenons la règle suivante : "L'empreinte des bâtiments ne doit pas couvrir plus de 50% de la parcelle" Cette règle peut être écrite des deux manières :

soit : ["lcpLessThan","thisParcel",0.5]

soit : ["maxCESBinary","thisParcel",["NO_OPERATOR",0.5]]

Le premier élément est plus simple pour les règles simples, cependant dans le cas où la règle est plus complexe : par exemple si "le CES maximal est égal à la par de logement sociaux parmi les logements (en nombre)"

La seule écriture possible devient :

["maxCESBinary","thisParcel",["divide",["nbAppartments","buildings",1],["nbAppartments","buildings",null]]]

Quelle est la différence entre "ce bâtiment est aligné ou ce bâtiment est en retrait" et "ce bâtiment est aligné ou en retrait" ?

Ecrire la première solution veut dire que le bâtiment entier est aligné ou que le bâtiment est entièrement en retrait. La seconde solution, elle, indique que l'on opère une itération sur les façades.

Le cas ci-dessous n'est ainsi autorisé que dans le cas aligné ou en retrait.

Comment marche la hauteur en étage dans les différents paramètres ?

Etage N du bâtiment : L'étage au dessus du RDC est le 2

Hauteur en étages : Un bâtiment possédant juste un RDC possède 1 étage

Définition des éléments dans les fonctions

donneeNumUn et donneeNumDeux : ces éléments permettent de récupérer les données provenant des prescriptions graphiques.

hFaçade : il s'agit de la dimension de la première verticale de la façade (voir schéma)

hEgout : c'est le max des hFacade

hMax et hFaitage : il s'agit du point le plus haut du bâtiment

hThis/hOther : This indique que l'opérateur de cette fonction est appliqué au bâtiment sur lequel on se place et Other indique que l'on se considère que l'on se place sur l'autre bâtiment

proportionDeParcelleNonConstruite : cet opérateur peut être utilisé dans les paramètres de pleine terre et de calcul de surface d'espace vert. On prend en compte l'ensemble de la parcelle qui n'est pas couverte par un bâtiment, une annexe ou n'importe quel élément construit.

dAlignementOpposé : cette valeur est la distance entre le point le plus proche de la parcelle du point concerné et le point de la parcelle de l'autre côté de la rue qui en est le plus proche.