-
Notifications
You must be signed in to change notification settings - Fork 1
/
BP_UeberbaubareGrundstuecksFlaeche_Flaeche.qml
214 lines (214 loc) · 46.5 KB
/
BP_UeberbaubareGrundstuecksFlaeche_Flaeche.qml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="3.32.3-Lima" styleCategories="Symbology|Labeling|MapTips" labelsEnabled="1">
<renderer-v2 symbollevels="0" enableorderby="0" type="RuleRenderer" forceraster="0" referencescale="-1">
<rules key="{291b0a59-2a76-4e7c-8961-d123a97fc3e5}">
<rule scalemindenom="1" scalemaxdenom="2501" symbol="0" key="{3cb5524a-23b1-424f-9002-7b144b67d622}"/>
</rules>
<symbols>
<symbol force_rhr="0" name="0" type="fill" is_animated="0" alpha="1" clip_to_extent="1" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" pass="0" id="{57f90f61-d37e-477f-820b-7328c517c6ed}" class="SimpleLine" enabled="1">
<Option type="Map">
<Option value="0" name="align_dash_pattern" type="QString"/>
<Option value="square" name="capstyle" type="QString"/>
<Option value="5;2" name="customdash" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="customdash_map_unit_scale" type="QString"/>
<Option value="MM" name="customdash_unit" type="QString"/>
<Option value="0" name="dash_pattern_offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="dash_pattern_offset_map_unit_scale" type="QString"/>
<Option value="MM" name="dash_pattern_offset_unit" type="QString"/>
<Option value="0" name="draw_inside_polygon" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="200,200,200,255" name="line_color" type="QString"/>
<Option value="solid" name="line_style" type="QString"/>
<Option value="0.3" name="line_width" type="QString"/>
<Option value="RenderMetersInMapUnits" name="line_width_unit" type="QString"/>
<Option value="0.3" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="RenderMetersInMapUnits" name="offset_unit" type="QString"/>
<Option value="0" name="ring_filter" type="QString"/>
<Option value="0" name="trim_distance_end" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="trim_distance_end_map_unit_scale" type="QString"/>
<Option value="MM" name="trim_distance_end_unit" type="QString"/>
<Option value="0" name="trim_distance_start" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="trim_distance_start_map_unit_scale" type="QString"/>
<Option value="MM" name="trim_distance_start_unit" type="QString"/>
<Option value="0" name="tweak_dash_pattern_on_corners" type="QString"/>
<Option value="0" name="use_custom_dash" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="width_map_unit_scale" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</symbols>
</renderer-v2>
<labeling type="simple">
<settings calloutType="simple">
<text-style fontUnderline="0" allowHtml="0" multilineHeight="1" fontItalic="0" fontLetterSpacing="0" fontWeight="50" forcedBold="0" forcedItalic="0" fontSizeMapUnitScale="3x:0,0,0,0,0,0" textOpacity="1" fontWordSpacing="0" namedStyle="Standard" fontStrikeout="0" fontSizeUnit="Point" fieldName="CASE WHEN try(allgArtDerBaulNutzung is not NULL)then CASE 
WHEN "allgArtDerBaulNutzung"= 1000 THEN 'WO'
WHEN "allgArtDerBaulNutzung"= 2000 THEN 'MI'
WHEN "allgArtDerBaulNutzung"= 3000 THEN 'GE'
WHEN "allgArtDerBaulNutzung"= 4000 THEN 'SO' 
WHEN "allgArtDerBaulNutzung"= 9999 THEN '9999'
ELSE '' END ELSE '' END

+ CASE WHEN try(besondereArtDerBaulNutzung is not NULL)then CASE 
WHEN "besondereArtDerBaulNutzung"=1000 THEN '-WS' 
WHEN "besondereArtDerBaulNutzung"=1100 THEN '-WR'
WHEN "besondereArtDerBaulNutzung"=1200 THEN '-WA' 
WHEN "besondereArtDerBaulNutzung"=1300 THEN '-WB' 
WHEN "besondereArtDerBaulNutzung"=1400 THEN '-MD'
WHEN "besondereArtDerBaulNutzung"=1450 THEN '-MDW'
WHEN "besondereArtDerBaulNutzung"=1500 THEN '-MI' 
WHEN "besondereArtDerBaulNutzung"=1550 THEN '-MU'
WHEN "besondereArtDerBaulNutzung"=1600 THEN '-MK' 
WHEN "besondereArtDerBaulNutzung"=1700 THEN '-GE' 
WHEN "besondereArtDerBaulNutzung"=1800 THEN '-GI'
WHEN "besondereArtDerBaulNutzung"=2000 THEN '-SO Erholung' 
WHEN "besondereArtDerBaulNutzung"=2100 THEN '-sonst. SO'
WHEN "besondereArtDerBaulNutzung"=3000 THEN '-Wochenendhausgebiet' 
WHEN "besondereArtDerBaulNutzung"=4000 THEN '-SO' 
WHEN "besondereArtDerBaulNutzung"=9999 THEN '-sonst.Gebiet'
ELSE ''END ELSE ''END

+ CASE 
WHEN (try("detaillierteArtDerBaulNutzung"is not NULL)and length("detaillierteArtDerBaulNutzung")<25)THEN '\n'+ to_string("detaillierteArtDerBaulNutzung")
WHEN (try("detaillierteArtDerBaulNutzung"is not NULL)and length("detaillierteArtDerBaulNutzung")>24)THEN '\n'+left(to_string("detaillierteArtDerBaulNutzung"),25)+'....'
ELSE '' END

+ case when try("allgemein" is not null)then case
when "allgemein"=1000 then '\nWochenendhausgebiet'	
when "allgemein"=1100 then '\nFerienhausgebiet'
when "allgemein"=1200 then '\nCampingplatzgebiet'
when "allgemein"=1300 then '\nKurgebiet'
when "allgemein"=1400 then '\nsonst.SO Erholung'
when "allgemein"=1500 then '\nEinzelhandelsgebiet'
when "allgemein"=1600 then '\ngroßfläch.Einzelhandel'
when "allgemein"=16000 then '\nLadengebiet'
when "allgemein"=16001 then '\nEinkaufszentrum'
when "allgemein"=16002 then '\nsonst.großfläch.Einzelhandel'
when "allgemein"=1650 then '\nSO Großhandel'
when "allgemein"=1700 then '\nVerkehrsübungsplatz'
when "allgemein"=1800 then '\nHafengebiet'
when "allgemein"=1900 then '\nSO erneuerbare Energie'
when "allgemein"=2000 then '\nSO Militär'
when "allgemein"=2100 then '\nSO Landwirtschaft'
when "allgemein"=2200 then '\nSO Sport'
when "allgemein"=2300 then '\nSO Gesundheit/Soziales'
when "allgemein"=23000 then '\nKlinikgebiet'
when "allgemein"=2400 then '\nGolfplatz'
when "allgemein"=2500 then '\nSO Kultur'
when "allgemein"=2600 then '\nSO Tourismus'
when "allgemein"=2700 then '\nSO Büro&Verwaltung'
when "allgemein"=2720 then '\nSO Justiz'
when "allgemein"=2800 then '\nSO Hochschule/Forschung'
when "allgemein"=2900 then '\nSO Messe'
when "allgemein"=9999 then '\nsonst.SO'
Else 'nicht definiert' END ELSE ''END 
	
+ CASE WHEN try(sondernutzung is not NULL)then CASE 
WHEN "sondernutzung"=1000 THEN '\nWochenendhausgebiet'
WHEN "sondernutzung"=1100 THEN '\nFerienhausgebiet'
WHEN "sondernutzung"=1200 THEN '\nCampingplatzgebiet' 
WHEN "sondernutzung"=1300 THEN '\nKurgebiet' 
WHEN "sondernutzung"=1400 THEN '\nsonst.SO Erholung'
WHEN "sondernutzung"=1500 THEN '\nEinzelhandelsgebiet' 
WHEN "sondernutzung"=1600 THEN '\ngroßfläch.Einzelhandel '
WHEN "sondernutzung"=16001 THEN '\nEinkaufszentrum'
WHEN "sondernutzung"=16002 THEN '\nsonst. Gebiet großfläch.Einzelhandel'
WHEN "sondernutzung"=1700 THEN '\nVerkehrsübungsplatz'
WHEN "sondernutzung"=1800 THEN '\nHafengebiet'
WHEN "sondernutzung"=1900 THEN '\nSO erneuerbare Energie'
WHEN "sondernutzung"=2000 THEN '\nmilitärisches SO'
WHEN "sondernutzung"=2100 THEN '\nSO Landwirtschaft'
WHEN "sondernutzung"=2200 THEN '\nSO Sport'
WHEN "sondernutzung"=2300 THEN '\nSO Gesundheit Soziales'
WHEN "sondernutzung"=23000 THEN '\nKlinikgebiet'
WHEN "sondernutzung"=2400 THEN '\nGolfplatz'
WHEN "sondernutzung"=2500 THEN '\nSO Kultur'
WHEN "sondernutzung"=2600 THEN '\nSO Tourismus'
WHEN "sondernutzung"=2700 THEN '\nSO Büros/Verwaltung'
WHEN "sondernutzung"=2720 THEN '\nSO Einrichtung Justiz'
WHEN "sondernutzung"=2800 THEN '\nSO Hochschule Forschung'
WHEN "sondernutzung"=2900 THEN '\nSO Messe'
WHEN "sondernutzung"=9999 THEN '\nSO andere Nutzungen'
ELSE '' END ELSE '' END

+CASE 
WHEN(try("nutzungText"is not NULL)and length("nutzungText")<25)then '\n'+to_string("nutzungText")
WHEN(try("nutzungText"is not NULL)and length("nutzungText")>24)then '\n'+left(to_string("nutzungText"),50)+'....'
ELSE''END
/* +++++++++++++++ab hier für beide xxxxxxxxxxxxxxxxxxxxxxxx */
+ case 
when try(length(to_string("gliederung1"))>25) then '\n'+left(to_string("gliederung1"),25)+'...'
when try(length(to_string("gliederung1"))<26) then '\n'+to_string("gliederung1")
ELSE''End

+ case 
when try(length(to_string("gliederung2"))>25) then ' '+left(to_string("gliederung2"),25)+'...'
when try(length(to_string("gliederung2"))<26) then ' '+to_string("gliederung2")
ELSE''End

+ CASE WHEN try(GRZ is not NULL)then '\nGRZ: '+to_string("GRZ") ELSE '' END
+ CASE WHEN try(GRZ_Ausn is not NULL)then '\nGRZ_Ausn: '+to_string("GRZ_Ausn") ELSE '' END
+ CASE WHEN try(GRZmin is not NULL)then '\nGRZminmax: '+to_string("GRZmin")+'-' ELSE '' END
+ CASE WHEN try(GRZmax is not NULL)then ' - '+to_string("GRZmax") ELSE '' END

+ CASE WHEN try(GFZ is not NULL)then '\nGFZ: '+to_string("GFZ") ELSE '' END
+ CASE WHEN try(GFZ_Ausn is not NULL)then '\nGFZ_Ausn: '+to_string("GFZ_Ausn") ELSE '' END
+ CASE WHEN try(GFZmin is not NULL)then '\nGFZminmax: '+to_string("GFZmin")+'-' ELSE '' END
+ CASE WHEN try(GFZmax is not NULL)then to_string("GFZmax") ELSE '' END

+ CASE WHEN try(GR is not NULL)then '\nGR: '+to_string("GR")+' m2' ELSE '' END
+ CASE WHEN try(GR_Ausn is not NULL)then '\nGR_Ausn: '+to_string("GR_Ausn")+' m2' ELSE '' END
+ CASE WHEN try(GRmin is not NULL)then '\nGRminmax: '+to_string("GRmin")+'-' ELSE '' END
+ CASE WHEN try(GRmax is not NULL)then to_string("GRmax")+' m2' ELSE '' END

+ CASE WHEN try(GF is not NULL)then '\nGF: '+to_string("GF") +' m2' ELSE '' END
+ CASE WHEN try(GF_Ausn is not NULL)then '\nGF_Ausn: '+to_string("GF_Ausn") +' m2' ELSE '' END
+ CASE WHEN try(GFmin is not NULL)then '\nGFminmax: '+to_string("GFmin")+'-' ELSE '' END
+ CASE WHEN try(GFmax is not NULL)then to_string("GFmax") +' m2' ELSE '' END

+ CASE WHEN try(BMZ is not NULL)then '\nBMZ: '+to_string("BMZ") ELSE '' END
+ CASE WHEN try(BMZ_Ausn is not NULL)then '\nBMZ Ausn: '+to_string("BMZ_Ausn") ELSE '' END
+ CASE WHEN try(BM is not NULL)then '\nBM: '+to_string("BM") +' m3' ELSE '' END
+ CASE WHEN try(BM_Ausn is not NULL)then '\nBM Ausn: ' + to_string("BM_Ausn")+' m3' ELSE '' END

+ case when try("Bmin"is not null)then '\nBmin:'+to_string("Bmin")+'m' ELSE'' END 
+ case when try("Bmax"is not null)then '\nBmax:'+to_string("Bmax")+'m' ELSE'' END 
+ case when try("Fmin"is not null)then '\nFmin:'+to_string("Fmin")+'m2' ELSE'' END 
+ case when try("Fmax"is not null)then '\nFmax:'+to_string("Fmax")+'m2' ELSE'' END 
+ case when try( "MinGRWohneinheit" is not null)then '\nMinGRWohneinheit:'+to_string("MinGRWohneinheit")+'m2' ELSE'' END 


/* Beginn Z */
+ CASE WHEN try(z is not NULL)THEN CASE 
WHEN "Z"=1 THEN '\nI' WHEN "Z"=2 THEN '\nII' WHEN "Z"=3 THEN '\nIII' WHEN "Z"=4 THEN '\nIV' 
WHEN "Z"=5 THEN '\nV' WHEN "Z"=6 THEN '\nVI' WHEN "Z"=7 THEN '\nVII' WHEN "Z"=8 THEN '\nVIII' 
WHEN "Z"=9 THEN '\nIX' WHEN "Z"=10THEN '\nX' 
ELSE '\n' + '>X' END ELSE '' END

+CASE WHEN try(Zmin is not NULL)then 
CASE 
WHEN "Zmin"=1 THEN '\nI-' WHEN "Zmin"=2 THEN '\nII-' WHEN "Zmin"=3 THEN '\nIII-' WHEN "Zmin"=4 THEN '\nIV-' 
WHEN "Zmin"=5 THEN '\nV-' WHEN "Zmin"=6 THEN '\nVI-' 	WHEN "Zmin"=7 THEN '\nVII-' WHEN "Zmin"=8 THEN '\nVIII-'
WHEN "Zmin"=9 THEN '\nIX-' WHEN "Zmin"=10THEN '\nX-' 
ELSE '\n'+to_string("Zmin")+'-' END ELSE '' END

+CASE WHEN try(Zmax is not NULL)then CASE 
WHEN "Zmax"=1 THEN 'I' WHEN "Zmax"=2 THEN 'II' 	WHEN "Zmax"=3 THEN 'III' WHEN "Zmax"=4 THEN 'IV' 
WHEN "Zmax"=5 THEN 'V' WHEN "Zmax"=6 THEN 'VI' WHEN "Zmax"=7 THEN 'VII' WHEN "Zmax"=8 THEN 'VIII' 
WHEN "Zmax"=9 THEN 'IX' WHEN "Zmax"=10THEN 'X' 
ELSE to_string("Zmax") END ELSE '' END

+CASE WHEN try(Zzwingend is not NULL)then CASE 
WHEN "Zzwingend"=1 THEN '\n(I)' WHEN "Zzwingend"=2 THEN '\n(II)' WHEN "Zzwingend"=3 THEN '\n(III)' 
WHEN "Zzwingend"=4 THEN '\n(IV)' WHEN "Zzwingend"=5 THEN '\n(V)' WHEN "Zzwingend"=6 THEN '\n(VI)' 
WHEN "Zzwingend"=7 THEN '\n(VII)' 	WHEN "Zzwingend"=8 THEN '\n(VIII)' WHEN "Zzwingend"=9 THEN '\n(IX)' 
WHEN "Zzwingend"=10THEN '\n(X)' 
ELSE '(>X)' END ELSE '' END

+CASE WHEN try(Z_Staffel is not NULL)then CASE 
WHEN "Z_Staffel"=1 THEN '\n1 StaffelG' WHEN "Z_Staffel"=2 THEN '\n2 StaffelG' WHEN "Z_Staffel"=3 THEN '\n3 StaffelG'
WHEN "Z_Staffel"=4 THEN '\n4 StaffelG' WHEN "Z_Staffel"=5 THEN '\n5 StaffelG' WHEN "Z_Staffel"=6 THEN '\n6 StaffelG'
WHEN "Z_Staffel"=7 THEN '\n7 StaffelG' WHEN "Z_Staffel"=8 THEN '\n8 StaffelG' WHEN "Z_Staffel"=9 THEN '\n9 StaffelG'
WHEN "Z_Staffel"=10THEN '\n10 StaffelG'
ELSE 'mehr als 10 StaffelG' END ELSE '' END

+CASE WHEN try("Z_Ausn"is not NULL)THEN '\nZ_Ausn: '+to_string("Z_Ausn") Else'' end 
+CASE WHEN try("Z_Dach"is not NULL)THEN '\nZ_Dach: '+to_string("Z_Dach") Else'' end 
/* ------------------------------------------ Ende Z ----Beginn ZU -----*/
+CASE WHEN try("ZU"is not NULL)THEN '\nZU: '+to_string("ZU") Else'' end 
+CASE WHEN try("ZU_Ausn"is not NULL)THEN '\nZU_Ausn: '+to_string("ZU_Ausn") Else'' end 
+CASE WHEN try("ZUzwingend"is not NULL)THEN '\nZUzwingend: '+to_string("ZUzwingend") Else'' end 
+CASE WHEN try("ZUmin"is not NULL)THEN '\nZUmin: '+to_string("ZUmin") Else'' end 
+CASE WHEN try("ZUmax"is not NULL)THEN '\nZUmax: '+to_string("ZUmax") Else'' end 
/* ------------------------------------------ Ende Zu ---------- */

+ CASE 
WHEN try(bebauungsArt is not NULL) or try(bauweise is not null)then 
CASE 
WHEN (Try("bebauungsArt"=1000) and try(bauweise=1000))then '\no(E)'
WHEN (Try("bebauungsArt"=1000) and try(bauweise=2000))then '\ng(E)'
WHEN (Try("bebauungsArt"=1000) and try(bauweise=3000))then '\na(E)'
WHEN (Try("bebauungsArt"=1000) and try(bauweise is NULL))then '\n(E)'
WHEN (Try("bebauungsArt"=2000) and try(bauweise=1000))then '\no(D)'
WHEN (Try("bebauungsArt"=2000) and try(bauweise=2000))then '\ng(D)'
WHEN (Try("bebauungsArt"=2000) and try(bauweise=3000))then '\na(D)'
WHEN (Try("bebauungsArt"=2000) and try(bauweise is NULL))then '\n(D)'
WHEN (Try("bebauungsArt"=3000) and try(bauweise=1000))then '\no(H)'
WHEN (Try("bebauungsArt"=3000) and try(bauweise=2000))then '\ng(H)'
WHEN (Try("bebauungsArt"=3000) and try(bauweise=3000))then '\na(H)'
WHEN (Try("bebauungsArt"=3000) and try(bauweise is NULL))then '\n(H)'
WHEN (Try("bebauungsArt"=4000) and try(bauweise=1000))then '\no(ED)'
WHEN (Try("bebauungsArt"=4000) and try(bauweise=2000))then '\ng(ED)'
WHEN (Try("bebauungsArt"=4000) and try(bauweise=3000))then '\na(ED)'
WHEN (Try("bebauungsArt"=4000) and try(bauweise is NULL))then '\n(ED)'
WHEN (Try("bebauungsArt"=5000) and try(bauweise=1000))then '\no(E)/(H)'
WHEN (Try("bebauungsArt"=5000) and try(bauweise=2000))then '\ng(E)/(H)'
WHEN (Try("bebauungsArt"=5000) and try(bauweise=3000))then '\na(E)/(H)'
WHEN (Try("bebauungsArt"=5000) and try(bauweise is NULL))then '\n(E)/(H)'
WHEN (Try("bebauungsArt"=6000) and try(bauweise=1000))then '\no(D)/(H)'
WHEN (Try("bebauungsArt"=6000) and try(bauweise=2000))then '\ng(D)/(H)'
WHEN (Try("bebauungsArt"=6000) and try(bauweise=3000))then '\na(D)/(H)'
WHEN (Try("bebauungsArt"=6000) and try(bauweise is NULL))then '\n(D)/(H)'
WHEN (Try("bebauungsArt"=7000) and try(bauweise=1000))then '\no(Rh)'
WHEN (Try("bebauungsArt"=7000) and try(bauweise=2000))then '\ng(Rh)'
WHEN (Try("bebauungsArt"=7000) and try(bauweise=3000))then '\na(Rh)'
WHEN (Try("bebauungsArt"=7000) and try(bauweise is NULL))then '\n(Rh)'
WHEN (Try("bebauungsArt"=8000) and try(bauweise=1000))then '\no(E)/(D)/(H)'
WHEN (Try("bebauungsArt"=8000) and try(bauweise=2000))then '\ng(E)/(D)/(H)'
WHEN (Try("bebauungsArt"=8000) and try(bauweise=3000))then '\na(E)/(D)/(H)'
WHEN (Try("bebauungsArt"=8000) and try(bauweise is NULL))then '\n(E)/(D)/(H)'
WHEN try(bauweise=1000)then '\noffen'
WHEN try(bauweise=2000)then '\ngeschl.'
WHEN try(bauweise=3000)then '\nabwei.:'
ELSE '' END
ELSE '' END

+ CASE 
when (try ("bauweise" is null) and try( "abweichendeBauweise" is not NULL)) then '\nabweich:' || ("abweichendeBauweise")
WHEN (try("abweichendeBauweise" is not NULL)and length("abweichendeBauweise")<25)THEN to_string("abweichendeBauweise")
WHEN (try("abweichendeBauweise" is not NULL)and length("abweichendeBauweise")>24)THEN left(to_string("abweichendeBauweise"),24)+'....'
ELSE '' END




/*......BP_Dachgestaltung....................................................................................*/
+case when try("dachform" is not NULL) then '\n' ELSE '' END 
+case when try("dachform" is not NULL)then array_to_string(array_foreach(case when try(array_length("dachform")>=0)then "dachform" Else array("dachform") end,case
when @element=1000 then 'Flachdach'
when @element=2100 then 'Pultdach'
when @element=2200 then ' vers.Pultdach'
when @element=3000 then 'geneigt.Dach'
when @element=3100 then 'Satteldach'
when @element=3200 then 'Walmdach'
when @element=3300 then 'Krüppelwalmdach'
when @element=3400 then 'Mansarddach'
when @element=3500 then 'Zeltdach'
when @element=3600 then 'Kegeldach'
when @element=3700 then 'Kuppeldach'
when @element=3800 then 'Sheddach'
when @element=3900 then 'Bogendach'
when @element=4000 then 'Turmdach'
when @element=4100 then 'Tonnendach'
when @element=5000 then 'Mischform Dach'
when @element=9999 then 'sonst.Dachform '
else 'was anderes' end)) ELSE '' END 

/* https://registry.gdi-de.org/codelist/de.xleitstelle.xplanung/BP_DetailDachform am 25.09.23 keine Einräge*/
+case when try("detaillierteDachform" is not NULL) then '\ndetailDach:' ELSE '' END 
+case when try("detaillierteDachform" is not NULL)then array_to_string(array_foreach(case when try(array_length("detaillierteDachform")>=0)then "detaillierteDachform" Else array("detaillierteDachform") end,@element)) ELSE '' END 

+case 
when try(array_length("DNmin")>=0) then 
	with_variable('counter', array( 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17),replace( array_to_string(array_foreach(@counter,
 case
	when try("DNmin"[@element] is not null) then '\nDachneigung:'+to_string("DNmin"[@element])+'-'+to_string("DNmax"[@element])+'°' 
	else ''end)),',','')) 
else 
	case 
	when try("DNmin" is not null) then '\nDachneigung: '+to_string("DNmin")+'-'+to_string("DNmax")+'°' 
	ELSE '' END 
END 



+case when try("DN" is not NULL) then '\nDachneigung:' ELSE '' END 
+case when try("DN" is not NULL)then array_to_string(array_foreach(case when try(array_length("DN")>=0)then "DN" Else array("DN") end,to_string(@element)+'°')) ELSE '' END 

+case when try("DNZwingend" is not NULL) then '\nDNzwingend:' ELSE '' END 
+case when try("DNZwingend" is not NULL)then array_to_string(array_foreach(case when try(array_length("DNZwingend")>=0)then "DNZwingend" Else array("DNZwingend") end,to_string(@element)+'°')) ELSE '' END 


+case 
when try(length("text")>25)then'\n'+left(to_string("text"),25)+'...'
when try(length("text")<26)then'\n'+to_string("text")
ELSE''End 
+case 
when try(length("textlicheErgaenzung")>25)then'\n'+left("textlicheErgaenzung",25)+'...'
when try(length("textlicheErgaenzung")<26)then'\n'+"textlicheErgaenzung"
ELSE''End
+case 
when try(length("aufschrift")>25)then'\n'+left("aufschrift",25)+'...'
when try(length("aufschrift")<26)then'\n'+"aufschrift"
ELSE''End

+CASE WHEN try(MaxZahlWohnungen is not NULL)then '\n'+'MaxZahlWohn:'+to_string("MaxZahlWohnungen") ELSE''END
/* ++++++ ab hier nur für BP_UeberbaubareGrundstuecksFlaeche +++++++ */
/* baugrenze/baulinie ist Referenz */
+ case when try("geschossMin" is not null)then '\ngeschossMin:'+to_string("geschossMin") ELSE'' END 
+ case when try("geschossMax" is not null)then '\ngeschossMax:'+to_string("geschossMax") ELSE'' END 

/* ------------------ Anfang Hoehe -------------------------- */
/* für XP_Hoehenangabe mit gleich großen arrays*/

+case
when try ( "bezugspunkt" is not null) then

+Case
when (try(array_length("bezugspunkt")>1) and (
try (array_length("bezugspunkt") = array_length("h"))or 
try (array_length("bezugspunkt") = array_length("hMin")) or 
try (array_length("bezugspunkt") = array_length("hMax")) or 
try (array_length("bezugspunkt") = array_length("hZwingend")))) or try(length(to_string("bezugspunkt")>0)) 
then 

with_variable('counter', array( 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17),replace( array_to_string(array_foreach(@counter,
+case when try("bezugspunkt"[@element] is not null) then 
	case
	when "bezugspunkt"[@element]=1000 then '\nTH '	when "bezugspunkt"[@element]=2000 then '\nFH '	when "bezugspunkt"[@element]=3000 then '\nOK '		
	when "bezugspunkt"[@element]=3500 then '\nLH '	when "bezugspunkt"[@element]=4000 then '\nSH '	when "bezugspunkt"[@element]=4500 then '\nEFH '
	when "bezugspunkt"[@element]=5000 then '\nHBA '	when "bezugspunkt"[@element]=5500 then '\nUK '	when "bezugspunkt"[@element]=6000 then '\nGBH '
	when "bezugspunkt"[@element]=6500 then '\nWH '	when "bezugspunkt"[@element]=6600 then '\nGOK '
	ELSE '' END else ''end
+ case when try("h"[@element] is not null) then ' '+to_string("h"[@element])+'m ' else ''end 
+ case when try("hMin"[@element] is not null) then +to_string("hMin"[@element])+'m- ' else ''end
+ case when try("hMax"[@element] is not null) then '-'+to_string("hMax"[@element])+'m ' else ''end
+ case when try("hZwingend"[@element] is not null) then 'hzwing:'+to_string("hZwingend"[@element])+'m 'else ''end
+ case when try("hoehenbezug"[@element] is not null) then
	case
	when "hoehenbezug"[@element]=1000 then ' NHN'					when "hoehenbezug"[@element]=1100 then ' NN'	when "hoehenbezug"[@element]=1200 then ' DHHN'
	when "hoehenbezug"[@element]=2000 then ' relGOK'				when "hoehenbezug"[@element]=2500 then ' relGehwegOK'	
	when "hoehenbezug"[@element]=3000 then ' relativBezugshoehe'	when "hoehenbezug"[@element]=3500 then ' relStrasse'
	ELSE '' END else ''end
+ case when try("abweichenderHoehenbezug"[@element] is not null) then to_string("abweichenderHoehenbezug"[@element]) else ''end 
)),',','')) 

/* für XP_Hoehenangabe ohne arrays */
+case when try("bezugspunkt" is not null) then 
	case
	when "bezugspunkt"=1000 then '\nTH '	when "bezugspunkt"=2000 then '\nFH '	when "bezugspunkt"=3000 then '\nOK '		
	when "bezugspunkt"=3500 then '\nLH '	when "bezugspunkt"=4000 then '\nSH '	when "bezugspunkt"=4500 then '\nEFH '
	when "bezugspunkt"=5000 then '\nHBA '	when "bezugspunkt"=5500 then '\nUK '	when "bezugspunkt"=6000 then '\nGBH '
	when "bezugspunkt"=6500 then '\nWH '	when "bezugspunkt"=6600 then '\nGOK '
	ELSE '' END else ''end
+ case when try(length(to_string("h")>0))then ' '+to_string("h")+'m ' else ''end 
+ case when try(length(to_string("hMin")>0))then +to_string("hMin")+'m- ' else ''end
+ case when try(length(to_string("hMax")>0))then '-'+to_string("hMax")+'m ' else ''end
+ case when try(length(to_string("hZwingend")>0))then 'hzwing:'+to_string("hZwingend")+'m 'else ''end
+ case when try("hoehenbezug" is not null) then
	case
	when "hoehenbezug"=1000 then ' NHN'					when "hoehenbezug"=1100 then ' NN'	when "hoehenbezug"=1200 then ' DHHN'
	when "hoehenbezug"=2000 then ' relGOK'				when "hoehenbezug"=2500 then ' relGehwegOK'	
	when "hoehenbezug"=3000 then ' relativBezugshoehe'	when "hoehenbezug"=3500 then ' relStrasse'
	ELSE '' END else ''end
+ case when try("abweichenderHoehenbezug" is not null) then to_string("abweichenderHoehenbezug") else ''end 
ELSE '\nXP_Hoehenangabe\nnicht auswertbar' End 
ELSE '' END 

/* ----------------------------- Ende Hoehe ------- */
+ case when try("ebene"<>0)then '\n'+'Ebene: '+to_string("ebene") ELSE '' END 
+ case when try("vertikaleDifferenzierung"='false')then '\nvertik.Diff:nein' when try("vertikaleDifferenzierung"='true')then '\nvertik.Diff:ja' ELSE ''END 
+ case when try("zugunstenVon"is not null) then '\nzugunstenVon:'+to_string("zugunstenVon") Else'' END 

/* -------------------- Beginn Lärm Hoehe ----------------- */ 
+Case 
when try("ekwertTag" is not null)and try("ekwertNacht" is not null)then '\nEmissionskont.Lärm Tag/Nacht: '+to_string("ekwertTag")+'/'+to_string("ekwertNacht")+'db'
when try("ekwertTag" is not null)then '\nEmissionskont.Lärm Tag: '+to_string("ekwertTag")+'db'
when try("ekwertNacht" is not null)then '\nEmissionskont.Lärm Nacht: '+to_string("ekwertNacht")+'db'
ELSE ''END 

+case
when try("refTextInhalt_href")is not null then
	case 
	when try(array_length("refTextInhalt_href")>1) then '\n'+to_string(array_length("refTextInhalt_href"))+' Textabschnitte: ' 
	ELSE '\n'+'1 Textabschnitt:\n ' 
+ to_string(
	attribute(get_feature(var('textabschnitt_' + plan_layer_id()),'gml_id', right("refTextInhalt_href", length("refTextInhalt_href")-1))
	,'schluessel') 
	)
	end
ELSE '' 
END 





+

case when try(array_length("refTextInhalt_href") >= 0)is not null then
replace(lower(
	array_to_string( 
	array_sort(
	array_foreach(
	array_foreach("refTextInhalt_href",
	attribute(get_feature(var('textabschnitt_' + plan_layer_id()),'gml_id', right(@element, length(@element)-1)),'schluessel') 
	||', ')
	,left(@element,12))
	)
	,'xyz')
),
array(' nr.','nr.',' ','xyz', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','ä','ö','ü','ß','#','_','§',',','(',')'), 
array('.' ,'' ,'' ,' ' , '','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''))
ELSE '' END 





" capitalization="0" legendString="Aa" previewBkgrdColor="255,255,255,255" fontKerning="1" fontFamily="Arial" fontSize="8" blendMode="0" useSubstitutions="0" multilineHeightUnit="Percentage" textColor="85,85,85,255" textOrientation="horizontal" isExpression="1">
<families/>
<text-buffer bufferColor="250,250,250,255" bufferSize="1" bufferDraw="0" bufferSizeMapUnitScale="3x:0,0,0,0,0,0" bufferOpacity="1" bufferJoinStyle="128" bufferNoFill="1" bufferSizeUnits="MM" bufferBlendMode="0"/>
<text-mask maskSize="0" maskedSymbolLayers="" maskSizeUnits="MM" maskEnabled="0" maskJoinStyle="128" maskSizeMapUnitScale="3x:0,0,0,0,0,0" maskOpacity="1" maskType="0"/>
<background shapeRadiiUnit="Point" shapeDraw="0" shapeSVGFile="" shapeJoinStyle="64" shapeSizeY="0" shapeSizeUnit="Point" shapeOffsetX="0" shapeOffsetY="0" shapeSizeX="0" shapeFillColor="255,255,255,255" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeSizeType="0" shapeOffsetUnit="Point" shapeRotation="0" shapeRadiiX="0" shapeBorderWidthUnit="Point" shapeBorderColor="128,128,128,255" shapeRotationType="0" shapeBlendMode="0" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeOpacity="1" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeType="0" shapeRadiiY="0" shapeBorderWidth="0">
<symbol force_rhr="0" name="markerSymbol" type="marker" is_animated="0" alpha="1" clip_to_extent="1" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" pass="0" id="" class="SimpleMarker" enabled="1">
<Option type="Map">
<Option value="0" name="angle" type="QString"/>
<Option value="square" name="cap_style" type="QString"/>
<Option value="141,90,153,255" name="color" type="QString"/>
<Option value="1" name="horizontal_anchor_point" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="circle" name="name" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="35,35,35,255" name="outline_color" type="QString"/>
<Option value="solid" name="outline_style" type="QString"/>
<Option value="0" name="outline_width" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="outline_width_map_unit_scale" type="QString"/>
<Option value="MM" name="outline_width_unit" type="QString"/>
<Option value="diameter" name="scale_method" type="QString"/>
<Option value="2" name="size" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="size_map_unit_scale" type="QString"/>
<Option value="MM" name="size_unit" type="QString"/>
<Option value="1" name="vertical_anchor_point" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
<symbol force_rhr="0" name="fillSymbol" type="fill" is_animated="0" alpha="1" clip_to_extent="1" frame_rate="10">
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
<layer locked="0" pass="0" id="" class="SimpleFill" enabled="1">
<Option type="Map">
<Option value="3x:0,0,0,0,0,0" name="border_width_map_unit_scale" type="QString"/>
<Option value="255,255,255,255" name="color" type="QString"/>
<Option value="bevel" name="joinstyle" type="QString"/>
<Option value="0,0" name="offset" type="QString"/>
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
<Option value="MM" name="offset_unit" type="QString"/>
<Option value="128,128,128,255" name="outline_color" type="QString"/>
<Option value="no" name="outline_style" type="QString"/>
<Option value="0" name="outline_width" type="QString"/>
<Option value="Point" name="outline_width_unit" type="QString"/>
<Option value="solid" name="style" type="QString"/>
</Option>
<data_defined_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</data_defined_properties>
</layer>
</symbol>
</background>
<shadow shadowRadius="1.5" shadowBlendMode="6" shadowDraw="0" shadowOffsetDist="1" shadowOffsetGlobal="1" shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowColor="0,0,0,255" shadowUnder="0" shadowOffsetUnit="MM" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowOffsetAngle="135" shadowRadiusAlphaOnly="0" shadowOpacity="0.69999999999999996" shadowScale="100" shadowRadiusUnit="MM"/>
<dd_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</dd_properties>
<substitutions/>
</text-style>
<text-format wrapChar="" plussign="0" autoWrapLength="30" addDirectionSymbol="0" leftDirectionSymbol="<" formatNumbers="0" decimals="3" rightDirectionSymbol=">" useMaxLineLengthForAutoWrap="1" multilineAlign="0" reverseDirectionSymbol="0" placeDirectionSymbol="0"/>
<placement labelOffsetMapUnitScale="3x:0,0,0,0,0,0" offsetType="0" overrunDistance="0" offsetUnits="MM" overlapHandling="PreventOverlap" placement="1" geometryGeneratorEnabled="0" geometryGeneratorType="PointGeometry" rotationUnit="AngleDegrees" lineAnchorClipping="0" priority="5" preserveRotation="1" repeatDistanceUnits="MM" yOffset="0" centroidWhole="0" allowDegraded="0" lineAnchorTextPoint="FollowPlacement" placementFlags="10" lineAnchorType="0" rotationAngle="0" centroidInside="1" overrunDistanceMapUnitScale="3x:0,0,0,0,0,0" repeatDistanceMapUnitScale="3x:0,0,0,0,0,0" overrunDistanceUnit="MM" dist="0" maxCurvedCharAngleOut="-25" layerType="PolygonGeometry" repeatDistance="0" distUnits="MM" distMapUnitScale="3x:0,0,0,0,0,0" maxCurvedCharAngleIn="25" lineAnchorPercent="0.5" fitInPolygonOnly="0" quadOffset="4" polygonPlacementFlags="2" geometryGenerator="" xOffset="0" predefinedPositionOrder="TR,TL,BR,BL,R,L,TSR,BSR"/>
<rendering obstacleFactor="1" limitNumLabels="0" minFeatureSize="0" obstacle="1" scaleMin="0" drawLabels="1" mergeLines="0" scaleMax="501" upsidedownLabels="0" obstacleType="1" fontMaxPixelSize="10000" zIndex="0" fontMinPixelSize="3" unplacedVisibility="0" maxNumLabels="2000" fontLimitPixelSize="0" labelPerPart="0" scaleVisibility="1"/>
<dd_properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
</dd_properties>
<callout type="simple">
<Option type="Map">
<Option value="pole_of_inaccessibility" name="anchorPoint" type="QString"/>
<Option value="0" name="blendMode" type="int"/>
<Option name="ddProperties" type="Map">
<Option value="" name="name" type="QString"/>
<Option name="properties"/>
<Option value="collection" name="type" type="QString"/>
</Option>
<Option value="false" name="drawToAllParts" type="bool"/>
<Option value="0" name="enabled" type="QString"/>
<Option value="point_on_exterior" name="labelAnchorPoint" type="QString"/>
<Option value="<symbol force_rhr="0" name="symbol" type="line" is_animated="0" alpha="1" clip_to_extent="1" frame_rate="10"><data_defined_properties><Option type="Map"><Option value="" name="name" type="QString"/><Option name="properties"/><Option value="collection" name="type" type="QString"/></Option></data_defined_properties><layer locked="0" pass="0" id="{49304fa0-e887-4f57-95fd-2ffbc6c9ce41}" class="SimpleLine" enabled="1"><Option type="Map"><Option value="0" name="align_dash_pattern" type="QString"/><Option value="square" name="capstyle" type="QString"/><Option value="5;2" name="customdash" type="QString"/><Option value="3x:0,0,0,0,0,0" name="customdash_map_unit_scale" type="QString"/><Option value="MM" name="customdash_unit" type="QString"/><Option value="0" name="dash_pattern_offset" type="QString"/><Option value="3x:0,0,0,0,0,0" name="dash_pattern_offset_map_unit_scale" type="QString"/><Option value="MM" name="dash_pattern_offset_unit" type="QString"/><Option value="0" name="draw_inside_polygon" type="QString"/><Option value="bevel" name="joinstyle" type="QString"/><Option value="60,60,60,255" name="line_color" type="QString"/><Option value="solid" name="line_style" type="QString"/><Option value="0.3" name="line_width" type="QString"/><Option value="MM" name="line_width_unit" type="QString"/><Option value="0" name="offset" type="QString"/><Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/><Option value="MM" name="offset_unit" type="QString"/><Option value="0" name="ring_filter" type="QString"/><Option value="0" name="trim_distance_end" type="QString"/><Option value="3x:0,0,0,0,0,0" name="trim_distance_end_map_unit_scale" type="QString"/><Option value="MM" name="trim_distance_end_unit" type="QString"/><Option value="0" name="trim_distance_start" type="QString"/><Option value="3x:0,0,0,0,0,0" name="trim_distance_start_map_unit_scale" type="QString"/><Option value="MM" name="trim_distance_start_unit" type="QString"/><Option value="0" name="tweak_dash_pattern_on_corners" type="QString"/><Option value="0" name="use_custom_dash" type="QString"/><Option value="3x:0,0,0,0,0,0" name="width_map_unit_scale" type="QString"/></Option><data_defined_properties><Option type="Map"><Option value="" name="name" type="QString"/><Option name="properties"/><Option value="collection" name="type" type="QString"/></Option></data_defined_properties></layer></symbol>" name="lineSymbol" type="QString"/>
<Option value="0" name="minLength" type="double"/>
<Option value="3x:0,0,0,0,0,0" name="minLengthMapUnitScale" type="QString"/>
<Option value="MM" name="minLengthUnit" type="QString"/>
<Option value="0" name="offsetFromAnchor" type="double"/>
<Option value="3x:0,0,0,0,0,0" name="offsetFromAnchorMapUnitScale" type="QString"/>
<Option value="MM" name="offsetFromAnchorUnit" type="QString"/>
<Option value="0" name="offsetFromLabel" type="double"/>
<Option value="3x:0,0,0,0,0,0" name="offsetFromLabelMapUnitScale" type="QString"/>
<Option value="MM" name="offsetFromLabelUnit" type="QString"/>
</Option>
</callout>
</settings>
</labeling>
<blendMode>0</blendMode>
<featureBlendMode>0</featureBlendMode>
<mapTip enabled="1"><style>
body {width: 400px;}
div {width: 400px;}
p { width: 97%; max-width: 400px; max-height: 200px; overflow-y: auto;}
td { background: #f2f4f4; }
</style>

[% '<h2>Textliche Festsetzungen für ' + @layer_name + '</h2>' %]
<p>
<table>
[% try(array_to_string( 
array_sort(
array_foreach(
array_foreach(
if(try(array_length("refTextInhalt_href") >= 0)is not null, "refTextInhalt_href", array( "refTextInhalt_href")),
'<b>' || attribute(
get_feature(var('textabschnitt_' + plan_layer_id()),'gml_id',
right(@element, length(@element)-1)
), 'schluessel') || '</b><br>' ||
attribute(
get_feature(var('textabschnitt_' + plan_layer_id()),'gml_id', 
right(@element, length(@element)-1)
), 'text')
),
'<tr><td>' || @element || '</td></tr>')
)
,''))
%]
</table>
</p></mapTip>
<layerGeometryType>2</layerGeometryType>
</qgis>