ifc-lite-core 17.3.0

High-performance IFC/STEP parser for building data
Documentation
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
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.

//! Auto-generated IFC Type Enum
//!
//! Generated from EXPRESS schema: IFC4X2
//!
//! DO NOT EDIT - This file is auto-generated by @ifc-lite/codegen

#![allow(dead_code, clippy::enum_variant_names)] // Full EXPRESS names are required; registry consumers currently use only name lookup and attribute slots.

use std::fmt;

/// A normalized IFC keyword not declared by the supported schema universe.
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub(crate) struct UnknownIfcType {
    name: String,
    id: u32,
}

impl UnknownIfcType {
    fn new(name: String) -> Self {
        let id = crc32_hash(&name);
        Self { name, id }
    }

    /// Normalized uppercase STEP keyword.
    pub(crate) fn as_str(&self) -> &str {
        &self.name
    }

    /// CRC32 identifier of the normalized keyword.
    pub(crate) fn id(&self) -> u32 {
        self.id
    }
}


/// IFC Entity Types
///
/// All 816 entity types from the supported schema universe.
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub(crate) enum IfcType {
    // Spatial Structure
    IfcBoxedHalfSpace,
    IfcBridge,
    IfcBridgePart,
    IfcBuilding,
    /// Abstract entity
    IfcBuildingElement,
    IfcBuildingElementPart,
    IfcBuildingElementPartType,
    IfcBuildingElementProxy,
    IfcBuildingElementProxyType,
    /// Abstract entity
    IfcBuildingElementType,
    IfcBuildingStorey,
    IfcBuildingSystem,
    IfcFacility,
    IfcFacilityPart,
    IfcHalfSpaceSolid,
    IfcPolygonalBoundedHalfSpace,
    IfcProject,
    IfcProjectLibrary,
    IfcProjectOrder,
    IfcProjectedCRS,
    IfcProjectionElement,
    IfcRelCoversSpaces,
    IfcRelProjectsElement,
    IfcRelServicesBuildings,
    IfcRelSpaceBoundary,
    IfcRelSpaceBoundary1stLevel,
    IfcRelSpaceBoundary2ndLevel,
    IfcSite,
    IfcSpace,
    IfcSpaceHeater,
    IfcSpaceHeaterType,
    IfcSpaceType,
    /// Abstract entity
    IfcSpatialStructureElement,

    // Building Elements
    IfcBeam,
    IfcBeamStandardCase,
    IfcBeamType,
    IfcBearing,
    IfcCaissonFoundation,
    IfcChimney,
    IfcColumn,
    IfcColumnStandardCase,
    IfcColumnType,
    IfcCooledBeam,
    IfcCooledBeamType,
    IfcCovering,
    IfcCurtainWall,
    IfcCurtainWallType,
    IfcDeepFoundation,
    IfcDoor,
    IfcDoorStandardCase,
    IfcFooting,
    IfcMember,
    IfcMemberStandardCase,
    IfcPile,
    IfcPlate,
    IfcPlateStandardCase,
    IfcRailing,
    IfcRamp,
    IfcRampFlight,
    IfcRoof,
    IfcShadingDevice,
    IfcSlab,
    IfcSlabElementedCase,
    IfcSlabStandardCase,
    IfcSlabType,
    IfcStair,
    IfcStairFlight,
    IfcTableColumn,
    IfcWall,
    IfcWallElementedCase,
    IfcWallStandardCase,
    IfcWallType,
    IfcWindow,
    IfcWindowStandardCase,

    // Openings
    IfcDoorLiningProperties,
    IfcDoorPanelProperties,
    IfcDoorStyle,
    IfcDoorType,
    IfcOpeningElement,
    IfcOpeningStandardCase,
    IfcWindowLiningProperties,
    IfcWindowPanelProperties,
    IfcWindowStyle,
    IfcWindowType,

    // MEP
    IfcActuator,
    IfcAirTerminal,
    IfcAirTerminalBox,
    IfcAirToAirHeatRecovery,
    IfcAlarm,
    IfcAudioVisualAppliance,
    IfcBoiler,
    IfcBurner,
    IfcCableCarrierFitting,
    IfcCableCarrierFittingType,
    IfcCableCarrierSegment,
    IfcCableCarrierSegmentType,
    IfcCableFitting,
    IfcCableFittingType,
    IfcCableSegment,
    IfcCableSegmentType,
    IfcChiller,
    IfcCoil,
    IfcCommunicationsAppliance,
    IfcCompressor,
    IfcCondenser,
    IfcController,
    IfcCoolingTower,
    IfcDamper,
    IfcDistributionChamberElement,
    IfcDistributionControlElement,
    IfcDistributionElement,
    IfcDistributionFlowElement,
    IfcDuctFitting,
    IfcDuctFittingType,
    IfcDuctSegment,
    IfcDuctSegmentType,
    IfcDuctSilencer,
    IfcDuctSilencerType,
    IfcElectricAppliance,
    IfcElectricDistributionBoard,
    IfcElectricFlowStorageDevice,
    IfcElectricGenerator,
    IfcElectricMotor,
    IfcElectricTimeControl,
    IfcEnergyConversionDevice,
    IfcEngine,
    IfcEvaporativeCooler,
    IfcEvaporator,
    IfcFan,
    IfcFilter,
    IfcFireSuppressionTerminal,
    IfcFlowController,
    IfcFlowFitting,
    IfcFlowInstrument,
    IfcFlowMeter,
    IfcFlowMovingDevice,
    IfcFlowSegment,
    IfcFlowStorageDevice,
    IfcFlowTerminal,
    IfcFlowTreatmentDevice,
    IfcHeatExchanger,
    IfcHumidifier,
    IfcInterceptor,
    IfcJunctionBox,
    IfcLamp,
    IfcLightFixture,
    IfcMedicalDevice,
    IfcMotorConnection,
    IfcOutlet,
    IfcPipeFitting,
    IfcPipeFittingType,
    IfcPipeSegment,
    IfcPipeSegmentType,
    IfcProtectiveDevice,
    IfcProtectiveDeviceTrippingUnit,
    IfcPump,
    IfcSanitaryTerminal,
    IfcSensor,
    IfcSolarDevice,
    IfcStackTerminal,
    IfcSwitchingDevice,
    IfcTank,
    IfcTransformer,
    IfcTubeBundle,
    IfcUnitaryControlElement,
    IfcUnitaryEquipment,
    IfcValve,
    IfcWasteTerminal,

    // Geometry Representations
    IfcAsymmetricIShapeProfileDef,
    IfcCShapeProfileDef,
    IfcGeometricRepresentationContext,
    /// Abstract entity
    IfcGeometricRepresentationItem,
    IfcGeometricRepresentationSubContext,
    IfcGeometricSet,
    IfcIShapeProfileDef,
    IfcLShapeProfileDef,
    IfcMaterialDefinitionRepresentation,
    IfcProductDefinitionShape,
    /// Abstract entity
    IfcProductRepresentation,
    /// Abstract entity
    IfcRepresentation,
    /// Abstract entity
    IfcRepresentationContext,
    /// Abstract entity
    IfcRepresentationItem,
    IfcRepresentationMap,
    IfcShapeAspect,
    /// Abstract entity
    IfcShapeModel,
    IfcShapeRepresentation,
    IfcStyledRepresentation,
    IfcTShapeProfileDef,
    /// Abstract entity
    IfcTopologicalRepresentationItem,
    IfcTopologyRepresentation,
    IfcUShapeProfileDef,
    IfcZShapeProfileDef,

    // Geometry Primitives
    IfcAdvancedBrep,
    IfcAdvancedBrepWithVoids,
    IfcBooleanClippingResult,
    IfcBooleanResult,
    IfcConnectedFaceSet,
    /// Abstract entity
    IfcCsgPrimitive3D,
    IfcCsgSolid,
    IfcExtrudedAreaSolid,
    IfcExtrudedAreaSolidTapered,
    IfcFacetedBrep,
    IfcFacetedBrepWithVoids,
    IfcFixedReferenceSweptAreaSolid,
    /// Abstract entity
    IfcManifoldSolidBrep,
    IfcPolygonalFaceSet,
    IfcRevolvedAreaSolid,
    IfcRevolvedAreaSolidTapered,
    /// Abstract entity
    IfcSectionedSolid,
    IfcSectionedSolidHorizontal,
    /// Abstract entity
    IfcSolidModel,
    IfcSurfaceCurveSweptAreaSolid,
    /// Abstract entity
    IfcSweptAreaSolid,
    IfcSweptDiskSolid,
    IfcSweptDiskSolidPolygonal,
    /// Abstract entity
    IfcTessellatedFaceSet,
    IfcTriangulatedFaceSet,

    // Profiles
    IfcArbitraryClosedProfileDef,
    IfcArbitraryOpenProfileDef,
    IfcArbitraryProfileDefWithVoids,
    IfcCenterLineProfileDef,
    IfcCircleHollowProfileDef,
    IfcCircleProfileDef,
    IfcCompositeProfileDef,
    IfcDerivedProfileDef,
    IfcEllipseProfileDef,
    IfcMaterialProfile,
    IfcMaterialProfileSet,
    IfcMaterialProfileSetUsage,
    IfcMaterialProfileSetUsageTapering,
    IfcMaterialProfileWithOffsets,
    IfcMirroredProfileDef,
    /// Abstract entity
    IfcParameterizedProfileDef,
    IfcProfileDef,
    IfcProfileProperties,
    IfcRectangleHollowProfileDef,
    IfcRectangleProfileDef,
    IfcRoundedRectangleProfileDef,
    IfcTrapeziumProfileDef,

    // Curves
    IfcAlignment2DVerSegLine,
    IfcAlignmentCurve,
    /// Abstract entity
    IfcBSplineCurve,
    IfcBSplineCurveWithKnots,
    /// Abstract entity
    IfcBSplineSurface,
    IfcBSplineSurfaceWithKnots,
    IfcBoundaryCurve,
    /// Abstract entity
    IfcBoundedCurve,
    IfcCircle,
    IfcCompositeCurve,
    IfcCompositeCurveOnSurface,
    IfcCompositeCurveSegment,
    IfcConnectionCurveGeometry,
    /// Abstract entity
    IfcCurve,
    IfcCurveBoundedPlane,
    IfcCurveBoundedSurface,
    /// Abstract entity
    IfcCurveSegment2D,
    IfcCurveStyle,
    IfcCurveStyleFont,
    IfcCurveStyleFontAndScaling,
    IfcCurveStyleFontPattern,
    IfcDraughtingPreDefinedCurveFont,
    IfcEdgeCurve,
    IfcEllipse,
    IfcGeometricCurveSet,
    IfcIndexedPolyCurve,
    IfcIntersectionCurve,
    IfcLine,
    IfcLineSegment2D,
    IfcLinearPlacement,
    IfcLinearPositioningElement,
    /// Abstract entity
    IfcOffsetCurve,
    IfcOffsetCurve2D,
    IfcOffsetCurve3D,
    IfcOffsetCurveByDistances,
    IfcOuterBoundaryCurve,
    IfcPointOnCurve,
    IfcPolyline,
    /// Abstract entity
    IfcPreDefinedCurveFont,
    IfcRationalBSplineCurveWithKnots,
    IfcRationalBSplineSurfaceWithKnots,
    IfcReparametrisedCompositeCurveSegment,
    IfcSeamCurve,
    IfcStructuralCurveAction,
    IfcStructuralCurveConnection,
    IfcStructuralCurveMember,
    IfcStructuralCurveMemberVarying,
    IfcStructuralCurveReaction,
    IfcStructuralLinearAction,
    IfcStructuralLoadLinearForce,
    IfcSurfaceCurve,
    IfcSurfaceOfLinearExtrusion,
    IfcTransitionCurveSegment2D,
    IfcTrimmedCurve,

    // Surfaces
    /// Abstract entity
    IfcBoundedSurface,
    IfcConnectionSurfaceGeometry,
    IfcCylindricalSurface,
    /// Abstract entity
    IfcElementarySurface,
    IfcExternallyDefinedSurfaceStyle,
    IfcFaceBasedSurfaceModel,
    IfcFaceSurface,
    IfcPlane,
    IfcPointOnSurface,
    IfcRectangularTrimmedSurface,
    IfcShellBasedSurfaceModel,
    IfcSphericalSurface,
    IfcStructuralSurfaceAction,
    IfcStructuralSurfaceConnection,
    IfcStructuralSurfaceMember,
    IfcStructuralSurfaceMemberVarying,
    IfcStructuralSurfaceReaction,
    /// Abstract entity
    IfcSurface,
    IfcSurfaceFeature,
    IfcSurfaceOfRevolution,
    IfcSurfaceReinforcementArea,
    IfcSurfaceStyle,
    IfcSurfaceStyleLighting,
    IfcSurfaceStyleRefraction,
    IfcSurfaceStyleRendering,
    IfcSurfaceStyleShading,
    IfcSurfaceStyleWithTextures,
    /// Abstract entity
    IfcSurfaceTexture,
    /// Abstract entity
    IfcSweptSurface,
    IfcToroidalSurface,

    // Relationships
    IfcRelAggregates,
    /// Abstract entity
    IfcRelAssigns,
    IfcRelAssignsToActor,
    IfcRelAssignsToControl,
    IfcRelAssignsToGroup,
    IfcRelAssignsToGroupByFactor,
    IfcRelAssignsToProcess,
    IfcRelAssignsToProduct,
    IfcRelAssignsToResource,
    /// Abstract entity
    IfcRelAssociates,
    IfcRelAssociatesApproval,
    IfcRelAssociatesClassification,
    IfcRelAssociatesConstraint,
    IfcRelAssociatesDocument,
    IfcRelAssociatesLibrary,
    IfcRelAssociatesMaterial,
    /// Abstract entity
    IfcRelConnects,
    IfcRelConnectsElements,
    IfcRelConnectsPathElements,
    IfcRelConnectsPortToElement,
    IfcRelConnectsPorts,
    IfcRelConnectsStructuralActivity,
    IfcRelConnectsStructuralMember,
    IfcRelConnectsWithEccentricity,
    IfcRelConnectsWithRealizingElements,
    IfcRelContainedInSpatialStructure,
    IfcRelCoversBldgElements,
    IfcRelDeclares,
    /// Abstract entity
    IfcRelDecomposes,
    /// Abstract entity
    IfcRelDefines,
    IfcRelDefinesByObject,
    IfcRelDefinesByProperties,
    IfcRelDefinesByTemplate,
    IfcRelDefinesByType,
    IfcRelFillsElement,
    IfcRelFlowControlElements,
    IfcRelInterferesElements,
    IfcRelNests,
    IfcRelPositions,
    IfcRelReferencedInSpatialStructure,
    IfcRelSequence,
    IfcRelVoidsElement,
    /// Abstract entity
    IfcRelationship,

    // Properties
    IfcAppliedValue,
    IfcComplexProperty,
    IfcComplexPropertyTemplate,
    IfcCostValue,
    IfcElementQuantity,
    IfcIrregularTimeSeriesValue,
    IfcPhysicalComplexQuantity,
    /// Abstract entity
    IfcPhysicalQuantity,
    /// Abstract entity
    IfcPhysicalSimpleQuantity,
    /// Abstract entity
    IfcPreDefinedPropertySet,
    /// Abstract entity
    IfcProperty,
    /// Abstract entity
    IfcPropertyAbstraction,
    IfcPropertyBoundedValue,
    /// Abstract entity
    IfcPropertyDefinition,
    IfcPropertyDependencyRelationship,
    IfcPropertyEnumeratedValue,
    IfcPropertyEnumeration,
    IfcPropertyListValue,
    IfcPropertyReferenceValue,
    IfcPropertySet,
    /// Abstract entity
    IfcPropertySetDefinition,
    IfcPropertySetTemplate,
    IfcPropertySingleValue,
    IfcPropertyTableValue,
    /// Abstract entity
    IfcPropertyTemplate,
    /// Abstract entity
    IfcPropertyTemplateDefinition,
    IfcQuantityArea,
    IfcQuantityCount,
    IfcQuantityLength,
    /// Abstract entity
    IfcQuantitySet,
    IfcQuantityTime,
    IfcQuantityVolume,
    IfcQuantityWeight,
    /// Abstract entity
    IfcSimpleProperty,
    IfcSimplePropertyTemplate,
    IfcTimeSeriesValue,

    // Materials
    IfcConstructionMaterialResource,
    IfcConstructionMaterialResourceType,
    IfcMaterial,
    IfcMaterialClassificationRelationship,
    IfcMaterialConstituent,
    IfcMaterialConstituentSet,
    /// Abstract entity
    IfcMaterialDefinition,
    IfcMaterialLayer,
    IfcMaterialLayerSet,
    IfcMaterialLayerSetUsage,
    IfcMaterialLayerWithOffsets,
    IfcMaterialList,
    IfcMaterialProperties,
    IfcMaterialRelationship,
    /// Abstract entity
    IfcMaterialUsageDefinition,

    // Presentation & Style
    IfcColourRgb,
    IfcColourRgbList,
    /// Abstract entity
    IfcColourSpecification,
    IfcDraughtingPreDefinedColour,
    IfcExternallyDefinedHatchStyle,
    IfcFillAreaStyle,
    IfcFillAreaStyleHatching,
    IfcFillAreaStyleTiles,
    IfcIndexedColourMap,
    /// Abstract entity
    IfcPreDefinedColour,
    /// Abstract entity
    IfcPresentationItem,
    IfcPresentationLayerAssignment,
    IfcPresentationLayerWithStyle,
    /// Abstract entity
    IfcPresentationStyle,
    IfcPresentationStyleAssignment,
    /// Abstract entity
    IfcStyleModel,
    IfcStyledItem,
    IfcTextStyle,
    IfcTextStyleFontModel,
    IfcTextStyleForDefinedFont,
    IfcTextStyleTextModel,

    // Core & Common
    IfcCivilElement,
    IfcCivilElementType,
    IfcConstructionEquipmentResource,
    IfcConstructionEquipmentResourceType,
    IfcConstructionProductResource,
    IfcConstructionProductResourceType,
    /// Abstract entity
    IfcConstructionResource,
    /// Abstract entity
    IfcConstructionResourceType,
    IfcCrewResource,
    IfcCrewResourceType,
    IfcDerivedUnitElement,
    IfcDistributionChamberElementType,
    /// Abstract entity
    IfcDistributionControlElementType,
    IfcDistributionElementType,
    /// Abstract entity
    IfcDistributionFlowElementType,
    /// Abstract entity
    IfcElement,
    IfcElementAssembly,
    IfcElementAssemblyType,
    /// Abstract entity
    IfcElementComponent,
    /// Abstract entity
    IfcElementComponentType,
    /// Abstract entity
    IfcElementType,
    IfcExternalSpatialElement,
    /// Abstract entity
    IfcExternalSpatialStructureElement,
    /// Abstract entity
    IfcFeatureElement,
    /// Abstract entity
    IfcFeatureElementAddition,
    /// Abstract entity
    IfcFeatureElementSubtraction,
    IfcFurnishingElement,
    IfcFurnishingElementType,
    IfcGeographicElement,
    IfcGeographicElementType,
    IfcLaborResource,
    IfcLaborResourceType,
    /// Abstract entity
    IfcObject,
    /// Abstract entity
    IfcObjectDefinition,
    /// Abstract entity
    IfcObjectPlacement,
    IfcObjective,
    /// Abstract entity
    IfcPositioningElement,
    /// Abstract entity
    IfcProduct,
    /// Abstract entity
    IfcReinforcingElement,
    /// Abstract entity
    IfcReinforcingElementType,
    /// Abstract entity
    IfcResource,
    IfcResourceApprovalRelationship,
    IfcResourceConstraintRelationship,
    /// Abstract entity
    IfcResourceLevelRelationship,
    IfcResourceTime,
    /// Abstract entity
    IfcRoot,
    /// Abstract entity
    IfcSpatialElement,
    /// Abstract entity
    IfcSpatialElementType,
    /// Abstract entity
    IfcSpatialStructureElementType,
    IfcSubContractResource,
    IfcSubContractResourceType,
    IfcSystemFurnitureElement,
    IfcSystemFurnitureElementType,
    IfcTransportElement,
    IfcTransportElementType,
    IfcTypeObject,
    IfcTypeProduct,
    /// Abstract entity
    IfcTypeResource,
    IfcUnitaryControlElementType,
    IfcVirtualElement,

    // Other
    IfcActionRequest,
    IfcActor,
    IfcActorRole,
    IfcActuatorType,
    /// Abstract entity
    IfcAddress,
    IfcAdvancedFace,
    IfcAirTerminalBoxType,
    IfcAirTerminalType,
    IfcAirToAirHeatRecoveryType,
    IfcAlarmType,
    IfcAlignment,
    IfcAlignment2DHorizontal,
    IfcAlignment2DHorizontalSegment,
    /// Abstract entity
    IfcAlignment2DSegment,
    IfcAlignment2DVerSegCircularArc,
    IfcAlignment2DVerSegParabolicArc,
    IfcAlignment2DVertical,
    /// Abstract entity
    IfcAlignment2DVerticalSegment,
    IfcAnnotation,
    IfcAnnotationFillArea,
    IfcApplication,
    IfcApproval,
    IfcApprovalRelationship,
    IfcAsset,
    IfcAudioVisualApplianceType,
    IfcAxis1Placement,
    IfcAxis2Placement2D,
    IfcAxis2Placement3D,
    IfcBearingType,
    IfcBlobTexture,
    IfcBlock,
    IfcBoilerType,
    /// Abstract entity
    IfcBoundaryCondition,
    IfcBoundaryEdgeCondition,
    IfcBoundaryFaceCondition,
    IfcBoundaryNodeCondition,
    IfcBoundaryNodeConditionWarping,
    IfcBoundingBox,
    IfcBurnerType,
    IfcCaissonFoundationType,
    IfcCartesianPoint,
    /// Abstract entity
    IfcCartesianPointList,
    IfcCartesianPointList2D,
    IfcCartesianPointList3D,
    /// Abstract entity
    IfcCartesianTransformationOperator,
    IfcCartesianTransformationOperator2D,
    IfcCartesianTransformationOperator2DnonUniform,
    IfcCartesianTransformationOperator3D,
    IfcCartesianTransformationOperator3DnonUniform,
    IfcChillerType,
    IfcChimneyType,
    IfcCircularArcSegment2D,
    IfcClassification,
    IfcClassificationReference,
    IfcClosedShell,
    IfcCoilType,
    IfcCommunicationsApplianceType,
    IfcCompressorType,
    IfcCondenserType,
    /// Abstract entity
    IfcConic,
    /// Abstract entity
    IfcConnectionGeometry,
    IfcConnectionPointEccentricity,
    IfcConnectionPointGeometry,
    IfcConnectionVolumeGeometry,
    /// Abstract entity
    IfcConstraint,
    /// Abstract entity
    IfcContext,
    IfcContextDependentUnit,
    /// Abstract entity
    IfcControl,
    IfcControllerType,
    IfcConversionBasedUnit,
    IfcConversionBasedUnitWithOffset,
    IfcCoolingTowerType,
    /// Abstract entity
    IfcCoordinateOperation,
    /// Abstract entity
    IfcCoordinateReferenceSystem,
    IfcCostItem,
    IfcCostSchedule,
    IfcCoveringType,
    IfcCurrencyRelationship,
    IfcDamperType,
    IfcDeepFoundationType,
    IfcDerivedUnit,
    IfcDimensionalExponents,
    IfcDirection,
    IfcDiscreteAccessory,
    IfcDiscreteAccessoryType,
    IfcDistanceExpression,
    IfcDistributionCircuit,
    IfcDistributionPort,
    IfcDistributionSystem,
    IfcDocumentInformation,
    IfcDocumentInformationRelationship,
    IfcDocumentReference,
    IfcEdge,
    IfcEdgeLoop,
    IfcElectricApplianceType,
    IfcElectricDistributionBoardType,
    IfcElectricFlowStorageDeviceType,
    IfcElectricGeneratorType,
    IfcElectricMotorType,
    IfcElectricTimeControlType,
    /// Abstract entity
    IfcEnergyConversionDeviceType,
    IfcEngineType,
    IfcEvaporativeCoolerType,
    IfcEvaporatorType,
    IfcEvent,
    IfcEventTime,
    IfcEventType,
    /// Abstract entity
    IfcExtendedProperties,
    /// Abstract entity
    IfcExternalInformation,
    /// Abstract entity
    IfcExternalReference,
    IfcExternalReferenceRelationship,
    IfcExternallyDefinedTextFont,
    IfcFace,
    IfcFaceBound,
    IfcFaceOuterBound,
    IfcFailureConnectionCondition,
    IfcFanType,
    IfcFastener,
    IfcFastenerType,
    IfcFilterType,
    IfcFireSuppressionTerminalType,
    /// Abstract entity
    IfcFlowControllerType,
    /// Abstract entity
    IfcFlowFittingType,
    IfcFlowInstrumentType,
    IfcFlowMeterType,
    /// Abstract entity
    IfcFlowMovingDeviceType,
    /// Abstract entity
    IfcFlowSegmentType,
    /// Abstract entity
    IfcFlowStorageDeviceType,
    /// Abstract entity
    IfcFlowTerminalType,
    /// Abstract entity
    IfcFlowTreatmentDeviceType,
    IfcFootingType,
    IfcFurniture,
    IfcFurnitureType,
    IfcGrid,
    IfcGridAxis,
    IfcGridPlacement,
    IfcGroup,
    IfcHeatExchangerType,
    IfcHumidifierType,
    IfcImageTexture,
    IfcIndexedPolygonalFace,
    IfcIndexedPolygonalFaceWithVoids,
    /// Abstract entity
    IfcIndexedTextureMap,
    IfcIndexedTriangleTextureMap,
    IfcInterceptorType,
    IfcInventory,
    IfcIrregularTimeSeries,
    IfcJunctionBoxType,
    IfcLagTime,
    IfcLampType,
    IfcLibraryInformation,
    IfcLibraryReference,
    IfcLightDistributionData,
    IfcLightFixtureType,
    IfcLightIntensityDistribution,
    /// Abstract entity
    IfcLightSource,
    IfcLightSourceAmbient,
    IfcLightSourceDirectional,
    IfcLightSourceGoniometric,
    IfcLightSourcePositional,
    IfcLightSourceSpot,
    IfcLocalPlacement,
    IfcLoop,
    IfcMapConversion,
    IfcMappedItem,
    IfcMeasureWithUnit,
    IfcMechanicalFastener,
    IfcMechanicalFastenerType,
    IfcMedicalDeviceType,
    IfcMemberType,
    IfcMetric,
    IfcMonetaryUnit,
    IfcMotorConnectionType,
    /// Abstract entity
    IfcNamedUnit,
    IfcOccupant,
    IfcOpenShell,
    IfcOrganization,
    IfcOrganizationRelationship,
    IfcOrientationExpression,
    IfcOrientedEdge,
    IfcOutletType,
    IfcOwnerHistory,
    IfcPath,
    IfcPcurve,
    IfcPerformanceHistory,
    IfcPermeableCoveringProperties,
    IfcPermit,
    IfcPerson,
    IfcPersonAndOrganization,
    IfcPileType,
    IfcPixelTexture,
    /// Abstract entity
    IfcPlacement,
    IfcPlanarBox,
    IfcPlanarExtent,
    IfcPlateType,
    /// Abstract entity
    IfcPoint,
    IfcPolyLoop,
    /// Abstract entity
    IfcPort,
    IfcPostalAddress,
    /// Abstract entity
    IfcPreDefinedItem,
    /// Abstract entity
    IfcPreDefinedProperties,
    /// Abstract entity
    IfcPreDefinedTextFont,
    IfcProcedure,
    IfcProcedureType,
    /// Abstract entity
    IfcProcess,
    IfcProtectiveDeviceTrippingUnitType,
    IfcProtectiveDeviceType,
    IfcProxy,
    IfcPumpType,
    IfcRailingType,
    IfcRampFlightType,
    IfcRampType,
    IfcRectangularPyramid,
    IfcRecurrencePattern,
    IfcReference,
    IfcReferent,
    IfcRegularTimeSeries,
    IfcReinforcementBarProperties,
    IfcReinforcementDefinitionProperties,
    IfcReinforcingBar,
    IfcReinforcingBarType,
    IfcReinforcingMesh,
    IfcReinforcingMeshType,
    IfcRightCircularCone,
    IfcRightCircularCylinder,
    IfcRoofType,
    IfcSIUnit,
    IfcSanitaryTerminalType,
    /// Abstract entity
    IfcSchedulingTime,
    IfcSectionProperties,
    IfcSectionReinforcementProperties,
    IfcSectionedSpine,
    IfcSensorType,
    IfcShadingDeviceType,
    IfcSlippageConnectionCondition,
    IfcSolarDeviceType,
    IfcSpatialZone,
    IfcSpatialZoneType,
    IfcSphere,
    IfcStackTerminalType,
    IfcStairFlightType,
    IfcStairType,
    /// Abstract entity
    IfcStructuralAction,
    /// Abstract entity
    IfcStructuralActivity,
    IfcStructuralAnalysisModel,
    /// Abstract entity
    IfcStructuralConnection,
    /// Abstract entity
    IfcStructuralConnectionCondition,
    /// Abstract entity
    IfcStructuralItem,
    /// Abstract entity
    IfcStructuralLoad,
    IfcStructuralLoadCase,
    IfcStructuralLoadConfiguration,
    IfcStructuralLoadGroup,
    /// Abstract entity
    IfcStructuralLoadOrResult,
    IfcStructuralLoadPlanarForce,
    IfcStructuralLoadSingleDisplacement,
    IfcStructuralLoadSingleDisplacementDistortion,
    IfcStructuralLoadSingleForce,
    IfcStructuralLoadSingleForceWarping,
    /// Abstract entity
    IfcStructuralLoadStatic,
    IfcStructuralLoadTemperature,
    /// Abstract entity
    IfcStructuralMember,
    IfcStructuralPlanarAction,
    IfcStructuralPointAction,
    IfcStructuralPointConnection,
    IfcStructuralPointReaction,
    /// Abstract entity
    IfcStructuralReaction,
    IfcStructuralResultGroup,
    IfcSubedge,
    IfcSwitchingDeviceType,
    IfcSystem,
    IfcTable,
    IfcTableRow,
    IfcTankType,
    IfcTask,
    IfcTaskTime,
    IfcTaskTimeRecurring,
    IfcTaskType,
    IfcTelecomAddress,
    IfcTendon,
    IfcTendonAnchor,
    IfcTendonAnchorType,
    IfcTendonConduit,
    IfcTendonConduitType,
    IfcTendonType,
    /// Abstract entity
    IfcTessellatedItem,
    IfcTextLiteral,
    IfcTextLiteralWithExtent,
    /// Abstract entity
    IfcTextureCoordinate,
    IfcTextureCoordinateGenerator,
    IfcTextureMap,
    IfcTextureVertex,
    IfcTextureVertexList,
    IfcTimePeriod,
    /// Abstract entity
    IfcTimeSeries,
    IfcTransformerType,
    IfcTriangulatedIrregularNetwork,
    IfcTubeBundleType,
    /// Abstract entity
    IfcTypeProcess,
    IfcUnitAssignment,
    IfcUnitaryEquipmentType,
    IfcValveType,
    IfcVector,
    IfcVertex,
    IfcVertexLoop,
    IfcVertexPoint,
    IfcVibrationDamper,
    IfcVibrationDamperType,
    IfcVibrationIsolator,
    IfcVibrationIsolatorType,
    IfcVirtualGridIntersection,
    IfcVoidingFeature,
    IfcWasteTerminalType,
    IfcWorkCalendar,
    /// Abstract entity
    IfcWorkControl,
    IfcWorkPlan,
    IfcWorkSchedule,
    IfcWorkTime,
    IfcZone,

    /// Unknown/unrecognized IFC type with its normalized keyword.
    Unknown(UnknownIfcType),
}

impl IfcType {
    /// Parse IFC type from string (case-insensitive)
    #[allow(clippy::should_implement_trait)]
    pub fn from_str(s: &str) -> Self {
        // #3987: recognized STEP names need no normalization scan.
        if let Some(known) = Self::from_canonical_name(s) {
            return known;
        }
        if s.bytes().all(|b| b.is_ascii() && !b.is_ascii_lowercase()) {
            return Self::Unknown(UnknownIfcType::new(s.to_owned()));
        }
        // Keep Unicode uppercase expansion and the exact unknown-type CRC.
        let upper = s.to_uppercase();
        Self::from_canonical_name(&upper)
            .unwrap_or_else(|| Self::Unknown(UnknownIfcType::new(upper)))
    }

    fn from_canonical_name(s: &str) -> Option<Self> {
        Some(match s {
            "IFCACTIONREQUEST" => Self::IfcActionRequest,
            "IFCACTOR" => Self::IfcActor,
            "IFCACTORROLE" => Self::IfcActorRole,
            "IFCACTUATOR" => Self::IfcActuator,
            "IFCACTUATORTYPE" => Self::IfcActuatorType,
            "IFCADDRESS" => Self::IfcAddress,
            "IFCADVANCEDBREP" => Self::IfcAdvancedBrep,
            "IFCADVANCEDBREPWITHVOIDS" => Self::IfcAdvancedBrepWithVoids,
            "IFCADVANCEDFACE" => Self::IfcAdvancedFace,
            "IFCAIRTERMINAL" => Self::IfcAirTerminal,
            "IFCAIRTERMINALBOX" => Self::IfcAirTerminalBox,
            "IFCAIRTERMINALBOXTYPE" => Self::IfcAirTerminalBoxType,
            "IFCAIRTERMINALTYPE" => Self::IfcAirTerminalType,
            "IFCAIRTOAIRHEATRECOVERY" => Self::IfcAirToAirHeatRecovery,
            "IFCAIRTOAIRHEATRECOVERYTYPE" => Self::IfcAirToAirHeatRecoveryType,
            "IFCALARM" => Self::IfcAlarm,
            "IFCALARMTYPE" => Self::IfcAlarmType,
            "IFCALIGNMENT" => Self::IfcAlignment,
            "IFCALIGNMENT2DHORIZONTAL" => Self::IfcAlignment2DHorizontal,
            "IFCALIGNMENT2DHORIZONTALSEGMENT" => Self::IfcAlignment2DHorizontalSegment,
            "IFCALIGNMENT2DSEGMENT" => Self::IfcAlignment2DSegment,
            "IFCALIGNMENT2DVERSEGCIRCULARARC" => Self::IfcAlignment2DVerSegCircularArc,
            "IFCALIGNMENT2DVERSEGLINE" => Self::IfcAlignment2DVerSegLine,
            "IFCALIGNMENT2DVERSEGPARABOLICARC" => Self::IfcAlignment2DVerSegParabolicArc,
            "IFCALIGNMENT2DVERTICAL" => Self::IfcAlignment2DVertical,
            "IFCALIGNMENT2DVERTICALSEGMENT" => Self::IfcAlignment2DVerticalSegment,
            "IFCALIGNMENTCURVE" => Self::IfcAlignmentCurve,
            "IFCANNOTATION" => Self::IfcAnnotation,
            "IFCANNOTATIONFILLAREA" => Self::IfcAnnotationFillArea,
            "IFCAPPLICATION" => Self::IfcApplication,
            "IFCAPPLIEDVALUE" => Self::IfcAppliedValue,
            "IFCAPPROVAL" => Self::IfcApproval,
            "IFCAPPROVALRELATIONSHIP" => Self::IfcApprovalRelationship,
            "IFCARBITRARYCLOSEDPROFILEDEF" => Self::IfcArbitraryClosedProfileDef,
            "IFCARBITRARYOPENPROFILEDEF" => Self::IfcArbitraryOpenProfileDef,
            "IFCARBITRARYPROFILEDEFWITHVOIDS" => Self::IfcArbitraryProfileDefWithVoids,
            "IFCASSET" => Self::IfcAsset,
            "IFCASYMMETRICISHAPEPROFILEDEF" => Self::IfcAsymmetricIShapeProfileDef,
            "IFCAUDIOVISUALAPPLIANCE" => Self::IfcAudioVisualAppliance,
            "IFCAUDIOVISUALAPPLIANCETYPE" => Self::IfcAudioVisualApplianceType,
            "IFCAXIS1PLACEMENT" => Self::IfcAxis1Placement,
            "IFCAXIS2PLACEMENT2D" => Self::IfcAxis2Placement2D,
            "IFCAXIS2PLACEMENT3D" => Self::IfcAxis2Placement3D,
            "IFCBSPLINECURVE" => Self::IfcBSplineCurve,
            "IFCBSPLINECURVEWITHKNOTS" => Self::IfcBSplineCurveWithKnots,
            "IFCBSPLINESURFACE" => Self::IfcBSplineSurface,
            "IFCBSPLINESURFACEWITHKNOTS" => Self::IfcBSplineSurfaceWithKnots,
            "IFCBEAM" => Self::IfcBeam,
            "IFCBEAMSTANDARDCASE" => Self::IfcBeamStandardCase,
            "IFCBEAMTYPE" => Self::IfcBeamType,
            "IFCBEARING" => Self::IfcBearing,
            "IFCBEARINGTYPE" => Self::IfcBearingType,
            "IFCBLOBTEXTURE" => Self::IfcBlobTexture,
            "IFCBLOCK" => Self::IfcBlock,
            "IFCBOILER" => Self::IfcBoiler,
            "IFCBOILERTYPE" => Self::IfcBoilerType,
            "IFCBOOLEANCLIPPINGRESULT" => Self::IfcBooleanClippingResult,
            "IFCBOOLEANRESULT" => Self::IfcBooleanResult,
            "IFCBOUNDARYCONDITION" => Self::IfcBoundaryCondition,
            "IFCBOUNDARYCURVE" => Self::IfcBoundaryCurve,
            "IFCBOUNDARYEDGECONDITION" => Self::IfcBoundaryEdgeCondition,
            "IFCBOUNDARYFACECONDITION" => Self::IfcBoundaryFaceCondition,
            "IFCBOUNDARYNODECONDITION" => Self::IfcBoundaryNodeCondition,
            "IFCBOUNDARYNODECONDITIONWARPING" => Self::IfcBoundaryNodeConditionWarping,
            "IFCBOUNDEDCURVE" => Self::IfcBoundedCurve,
            "IFCBOUNDEDSURFACE" => Self::IfcBoundedSurface,
            "IFCBOUNDINGBOX" => Self::IfcBoundingBox,
            "IFCBOXEDHALFSPACE" => Self::IfcBoxedHalfSpace,
            "IFCBRIDGE" => Self::IfcBridge,
            "IFCBRIDGEPART" => Self::IfcBridgePart,
            "IFCBUILDING" => Self::IfcBuilding,
            "IFCBUILDINGELEMENT" => Self::IfcBuildingElement,
            "IFCBUILDINGELEMENTPART" => Self::IfcBuildingElementPart,
            "IFCBUILDINGELEMENTPARTTYPE" => Self::IfcBuildingElementPartType,
            "IFCBUILDINGELEMENTPROXY" => Self::IfcBuildingElementProxy,
            "IFCBUILDINGELEMENTPROXYTYPE" => Self::IfcBuildingElementProxyType,
            "IFCBUILDINGELEMENTTYPE" => Self::IfcBuildingElementType,
            "IFCBUILDINGSTOREY" => Self::IfcBuildingStorey,
            "IFCBUILDINGSYSTEM" => Self::IfcBuildingSystem,
            "IFCBURNER" => Self::IfcBurner,
            "IFCBURNERTYPE" => Self::IfcBurnerType,
            "IFCCSHAPEPROFILEDEF" => Self::IfcCShapeProfileDef,
            "IFCCABLECARRIERFITTING" => Self::IfcCableCarrierFitting,
            "IFCCABLECARRIERFITTINGTYPE" => Self::IfcCableCarrierFittingType,
            "IFCCABLECARRIERSEGMENT" => Self::IfcCableCarrierSegment,
            "IFCCABLECARRIERSEGMENTTYPE" => Self::IfcCableCarrierSegmentType,
            "IFCCABLEFITTING" => Self::IfcCableFitting,
            "IFCCABLEFITTINGTYPE" => Self::IfcCableFittingType,
            "IFCCABLESEGMENT" => Self::IfcCableSegment,
            "IFCCABLESEGMENTTYPE" => Self::IfcCableSegmentType,
            "IFCCAISSONFOUNDATION" => Self::IfcCaissonFoundation,
            "IFCCAISSONFOUNDATIONTYPE" => Self::IfcCaissonFoundationType,
            "IFCCARTESIANPOINT" => Self::IfcCartesianPoint,
            "IFCCARTESIANPOINTLIST" => Self::IfcCartesianPointList,
            "IFCCARTESIANPOINTLIST2D" => Self::IfcCartesianPointList2D,
            "IFCCARTESIANPOINTLIST3D" => Self::IfcCartesianPointList3D,
            "IFCCARTESIANTRANSFORMATIONOPERATOR" => Self::IfcCartesianTransformationOperator,
            "IFCCARTESIANTRANSFORMATIONOPERATOR2D" => Self::IfcCartesianTransformationOperator2D,
            "IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM" => Self::IfcCartesianTransformationOperator2DnonUniform,
            "IFCCARTESIANTRANSFORMATIONOPERATOR3D" => Self::IfcCartesianTransformationOperator3D,
            "IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM" => Self::IfcCartesianTransformationOperator3DnonUniform,
            "IFCCENTERLINEPROFILEDEF" => Self::IfcCenterLineProfileDef,
            "IFCCHILLER" => Self::IfcChiller,
            "IFCCHILLERTYPE" => Self::IfcChillerType,
            "IFCCHIMNEY" => Self::IfcChimney,
            "IFCCHIMNEYTYPE" => Self::IfcChimneyType,
            "IFCCIRCLE" => Self::IfcCircle,
            "IFCCIRCLEHOLLOWPROFILEDEF" => Self::IfcCircleHollowProfileDef,
            "IFCCIRCLEPROFILEDEF" => Self::IfcCircleProfileDef,
            "IFCCIRCULARARCSEGMENT2D" => Self::IfcCircularArcSegment2D,
            "IFCCIVILELEMENT" => Self::IfcCivilElement,
            "IFCCIVILELEMENTTYPE" => Self::IfcCivilElementType,
            "IFCCLASSIFICATION" => Self::IfcClassification,
            "IFCCLASSIFICATIONREFERENCE" => Self::IfcClassificationReference,
            "IFCCLOSEDSHELL" => Self::IfcClosedShell,
            "IFCCOIL" => Self::IfcCoil,
            "IFCCOILTYPE" => Self::IfcCoilType,
            "IFCCOLOURRGB" => Self::IfcColourRgb,
            "IFCCOLOURRGBLIST" => Self::IfcColourRgbList,
            "IFCCOLOURSPECIFICATION" => Self::IfcColourSpecification,
            "IFCCOLUMN" => Self::IfcColumn,
            "IFCCOLUMNSTANDARDCASE" => Self::IfcColumnStandardCase,
            "IFCCOLUMNTYPE" => Self::IfcColumnType,
            "IFCCOMMUNICATIONSAPPLIANCE" => Self::IfcCommunicationsAppliance,
            "IFCCOMMUNICATIONSAPPLIANCETYPE" => Self::IfcCommunicationsApplianceType,
            "IFCCOMPLEXPROPERTY" => Self::IfcComplexProperty,
            "IFCCOMPLEXPROPERTYTEMPLATE" => Self::IfcComplexPropertyTemplate,
            "IFCCOMPOSITECURVE" => Self::IfcCompositeCurve,
            "IFCCOMPOSITECURVEONSURFACE" => Self::IfcCompositeCurveOnSurface,
            "IFCCOMPOSITECURVESEGMENT" => Self::IfcCompositeCurveSegment,
            "IFCCOMPOSITEPROFILEDEF" => Self::IfcCompositeProfileDef,
            "IFCCOMPRESSOR" => Self::IfcCompressor,
            "IFCCOMPRESSORTYPE" => Self::IfcCompressorType,
            "IFCCONDENSER" => Self::IfcCondenser,
            "IFCCONDENSERTYPE" => Self::IfcCondenserType,
            "IFCCONIC" => Self::IfcConic,
            "IFCCONNECTEDFACESET" => Self::IfcConnectedFaceSet,
            "IFCCONNECTIONCURVEGEOMETRY" => Self::IfcConnectionCurveGeometry,
            "IFCCONNECTIONGEOMETRY" => Self::IfcConnectionGeometry,
            "IFCCONNECTIONPOINTECCENTRICITY" => Self::IfcConnectionPointEccentricity,
            "IFCCONNECTIONPOINTGEOMETRY" => Self::IfcConnectionPointGeometry,
            "IFCCONNECTIONSURFACEGEOMETRY" => Self::IfcConnectionSurfaceGeometry,
            "IFCCONNECTIONVOLUMEGEOMETRY" => Self::IfcConnectionVolumeGeometry,
            "IFCCONSTRAINT" => Self::IfcConstraint,
            "IFCCONSTRUCTIONEQUIPMENTRESOURCE" => Self::IfcConstructionEquipmentResource,
            "IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE" => Self::IfcConstructionEquipmentResourceType,
            "IFCCONSTRUCTIONMATERIALRESOURCE" => Self::IfcConstructionMaterialResource,
            "IFCCONSTRUCTIONMATERIALRESOURCETYPE" => Self::IfcConstructionMaterialResourceType,
            "IFCCONSTRUCTIONPRODUCTRESOURCE" => Self::IfcConstructionProductResource,
            "IFCCONSTRUCTIONPRODUCTRESOURCETYPE" => Self::IfcConstructionProductResourceType,
            "IFCCONSTRUCTIONRESOURCE" => Self::IfcConstructionResource,
            "IFCCONSTRUCTIONRESOURCETYPE" => Self::IfcConstructionResourceType,
            "IFCCONTEXT" => Self::IfcContext,
            "IFCCONTEXTDEPENDENTUNIT" => Self::IfcContextDependentUnit,
            "IFCCONTROL" => Self::IfcControl,
            "IFCCONTROLLER" => Self::IfcController,
            "IFCCONTROLLERTYPE" => Self::IfcControllerType,
            "IFCCONVERSIONBASEDUNIT" => Self::IfcConversionBasedUnit,
            "IFCCONVERSIONBASEDUNITWITHOFFSET" => Self::IfcConversionBasedUnitWithOffset,
            "IFCCOOLEDBEAM" => Self::IfcCooledBeam,
            "IFCCOOLEDBEAMTYPE" => Self::IfcCooledBeamType,
            "IFCCOOLINGTOWER" => Self::IfcCoolingTower,
            "IFCCOOLINGTOWERTYPE" => Self::IfcCoolingTowerType,
            "IFCCOORDINATEOPERATION" => Self::IfcCoordinateOperation,
            "IFCCOORDINATEREFERENCESYSTEM" => Self::IfcCoordinateReferenceSystem,
            "IFCCOSTITEM" => Self::IfcCostItem,
            "IFCCOSTSCHEDULE" => Self::IfcCostSchedule,
            "IFCCOSTVALUE" => Self::IfcCostValue,
            "IFCCOVERING" => Self::IfcCovering,
            "IFCCOVERINGTYPE" => Self::IfcCoveringType,
            "IFCCREWRESOURCE" => Self::IfcCrewResource,
            "IFCCREWRESOURCETYPE" => Self::IfcCrewResourceType,
            "IFCCSGPRIMITIVE3D" => Self::IfcCsgPrimitive3D,
            "IFCCSGSOLID" => Self::IfcCsgSolid,
            "IFCCURRENCYRELATIONSHIP" => Self::IfcCurrencyRelationship,
            "IFCCURTAINWALL" => Self::IfcCurtainWall,
            "IFCCURTAINWALLTYPE" => Self::IfcCurtainWallType,
            "IFCCURVE" => Self::IfcCurve,
            "IFCCURVEBOUNDEDPLANE" => Self::IfcCurveBoundedPlane,
            "IFCCURVEBOUNDEDSURFACE" => Self::IfcCurveBoundedSurface,
            "IFCCURVESEGMENT2D" => Self::IfcCurveSegment2D,
            "IFCCURVESTYLE" => Self::IfcCurveStyle,
            "IFCCURVESTYLEFONT" => Self::IfcCurveStyleFont,
            "IFCCURVESTYLEFONTANDSCALING" => Self::IfcCurveStyleFontAndScaling,
            "IFCCURVESTYLEFONTPATTERN" => Self::IfcCurveStyleFontPattern,
            "IFCCYLINDRICALSURFACE" => Self::IfcCylindricalSurface,
            "IFCDAMPER" => Self::IfcDamper,
            "IFCDAMPERTYPE" => Self::IfcDamperType,
            "IFCDEEPFOUNDATION" => Self::IfcDeepFoundation,
            "IFCDEEPFOUNDATIONTYPE" => Self::IfcDeepFoundationType,
            "IFCDERIVEDPROFILEDEF" => Self::IfcDerivedProfileDef,
            "IFCDERIVEDUNIT" => Self::IfcDerivedUnit,
            "IFCDERIVEDUNITELEMENT" => Self::IfcDerivedUnitElement,
            "IFCDIMENSIONALEXPONENTS" => Self::IfcDimensionalExponents,
            "IFCDIRECTION" => Self::IfcDirection,
            "IFCDISCRETEACCESSORY" => Self::IfcDiscreteAccessory,
            "IFCDISCRETEACCESSORYTYPE" => Self::IfcDiscreteAccessoryType,
            "IFCDISTANCEEXPRESSION" => Self::IfcDistanceExpression,
            "IFCDISTRIBUTIONCHAMBERELEMENT" => Self::IfcDistributionChamberElement,
            "IFCDISTRIBUTIONCHAMBERELEMENTTYPE" => Self::IfcDistributionChamberElementType,
            "IFCDISTRIBUTIONCIRCUIT" => Self::IfcDistributionCircuit,
            "IFCDISTRIBUTIONCONTROLELEMENT" => Self::IfcDistributionControlElement,
            "IFCDISTRIBUTIONCONTROLELEMENTTYPE" => Self::IfcDistributionControlElementType,
            "IFCDISTRIBUTIONELEMENT" => Self::IfcDistributionElement,
            "IFCDISTRIBUTIONELEMENTTYPE" => Self::IfcDistributionElementType,
            "IFCDISTRIBUTIONFLOWELEMENT" => Self::IfcDistributionFlowElement,
            "IFCDISTRIBUTIONFLOWELEMENTTYPE" => Self::IfcDistributionFlowElementType,
            "IFCDISTRIBUTIONPORT" => Self::IfcDistributionPort,
            "IFCDISTRIBUTIONSYSTEM" => Self::IfcDistributionSystem,
            "IFCDOCUMENTINFORMATION" => Self::IfcDocumentInformation,
            "IFCDOCUMENTINFORMATIONRELATIONSHIP" => Self::IfcDocumentInformationRelationship,
            "IFCDOCUMENTREFERENCE" => Self::IfcDocumentReference,
            "IFCDOOR" => Self::IfcDoor,
            "IFCDOORLININGPROPERTIES" => Self::IfcDoorLiningProperties,
            "IFCDOORPANELPROPERTIES" => Self::IfcDoorPanelProperties,
            "IFCDOORSTANDARDCASE" => Self::IfcDoorStandardCase,
            "IFCDOORSTYLE" => Self::IfcDoorStyle,
            "IFCDOORTYPE" => Self::IfcDoorType,
            "IFCDRAUGHTINGPREDEFINEDCOLOUR" => Self::IfcDraughtingPreDefinedColour,
            "IFCDRAUGHTINGPREDEFINEDCURVEFONT" => Self::IfcDraughtingPreDefinedCurveFont,
            "IFCDUCTFITTING" => Self::IfcDuctFitting,
            "IFCDUCTFITTINGTYPE" => Self::IfcDuctFittingType,
            "IFCDUCTSEGMENT" => Self::IfcDuctSegment,
            "IFCDUCTSEGMENTTYPE" => Self::IfcDuctSegmentType,
            "IFCDUCTSILENCER" => Self::IfcDuctSilencer,
            "IFCDUCTSILENCERTYPE" => Self::IfcDuctSilencerType,
            "IFCEDGE" => Self::IfcEdge,
            "IFCEDGECURVE" => Self::IfcEdgeCurve,
            "IFCEDGELOOP" => Self::IfcEdgeLoop,
            "IFCELECTRICAPPLIANCE" => Self::IfcElectricAppliance,
            "IFCELECTRICAPPLIANCETYPE" => Self::IfcElectricApplianceType,
            "IFCELECTRICDISTRIBUTIONBOARD" => Self::IfcElectricDistributionBoard,
            "IFCELECTRICDISTRIBUTIONBOARDTYPE" => Self::IfcElectricDistributionBoardType,
            "IFCELECTRICFLOWSTORAGEDEVICE" => Self::IfcElectricFlowStorageDevice,
            "IFCELECTRICFLOWSTORAGEDEVICETYPE" => Self::IfcElectricFlowStorageDeviceType,
            "IFCELECTRICGENERATOR" => Self::IfcElectricGenerator,
            "IFCELECTRICGENERATORTYPE" => Self::IfcElectricGeneratorType,
            "IFCELECTRICMOTOR" => Self::IfcElectricMotor,
            "IFCELECTRICMOTORTYPE" => Self::IfcElectricMotorType,
            "IFCELECTRICTIMECONTROL" => Self::IfcElectricTimeControl,
            "IFCELECTRICTIMECONTROLTYPE" => Self::IfcElectricTimeControlType,
            "IFCELEMENT" => Self::IfcElement,
            "IFCELEMENTASSEMBLY" => Self::IfcElementAssembly,
            "IFCELEMENTASSEMBLYTYPE" => Self::IfcElementAssemblyType,
            "IFCELEMENTCOMPONENT" => Self::IfcElementComponent,
            "IFCELEMENTCOMPONENTTYPE" => Self::IfcElementComponentType,
            "IFCELEMENTQUANTITY" => Self::IfcElementQuantity,
            "IFCELEMENTTYPE" => Self::IfcElementType,
            "IFCELEMENTARYSURFACE" => Self::IfcElementarySurface,
            "IFCELLIPSE" => Self::IfcEllipse,
            "IFCELLIPSEPROFILEDEF" => Self::IfcEllipseProfileDef,
            "IFCENERGYCONVERSIONDEVICE" => Self::IfcEnergyConversionDevice,
            "IFCENERGYCONVERSIONDEVICETYPE" => Self::IfcEnergyConversionDeviceType,
            "IFCENGINE" => Self::IfcEngine,
            "IFCENGINETYPE" => Self::IfcEngineType,
            "IFCEVAPORATIVECOOLER" => Self::IfcEvaporativeCooler,
            "IFCEVAPORATIVECOOLERTYPE" => Self::IfcEvaporativeCoolerType,
            "IFCEVAPORATOR" => Self::IfcEvaporator,
            "IFCEVAPORATORTYPE" => Self::IfcEvaporatorType,
            "IFCEVENT" => Self::IfcEvent,
            "IFCEVENTTIME" => Self::IfcEventTime,
            "IFCEVENTTYPE" => Self::IfcEventType,
            "IFCEXTENDEDPROPERTIES" => Self::IfcExtendedProperties,
            "IFCEXTERNALINFORMATION" => Self::IfcExternalInformation,
            "IFCEXTERNALREFERENCE" => Self::IfcExternalReference,
            "IFCEXTERNALREFERENCERELATIONSHIP" => Self::IfcExternalReferenceRelationship,
            "IFCEXTERNALSPATIALELEMENT" => Self::IfcExternalSpatialElement,
            "IFCEXTERNALSPATIALSTRUCTUREELEMENT" => Self::IfcExternalSpatialStructureElement,
            "IFCEXTERNALLYDEFINEDHATCHSTYLE" => Self::IfcExternallyDefinedHatchStyle,
            "IFCEXTERNALLYDEFINEDSURFACESTYLE" => Self::IfcExternallyDefinedSurfaceStyle,
            "IFCEXTERNALLYDEFINEDTEXTFONT" => Self::IfcExternallyDefinedTextFont,
            "IFCEXTRUDEDAREASOLID" => Self::IfcExtrudedAreaSolid,
            "IFCEXTRUDEDAREASOLIDTAPERED" => Self::IfcExtrudedAreaSolidTapered,
            "IFCFACE" => Self::IfcFace,
            "IFCFACEBASEDSURFACEMODEL" => Self::IfcFaceBasedSurfaceModel,
            "IFCFACEBOUND" => Self::IfcFaceBound,
            "IFCFACEOUTERBOUND" => Self::IfcFaceOuterBound,
            "IFCFACESURFACE" => Self::IfcFaceSurface,
            "IFCFACETEDBREP" => Self::IfcFacetedBrep,
            "IFCFACETEDBREPWITHVOIDS" => Self::IfcFacetedBrepWithVoids,
            "IFCFACILITY" => Self::IfcFacility,
            "IFCFACILITYPART" => Self::IfcFacilityPart,
            "IFCFAILURECONNECTIONCONDITION" => Self::IfcFailureConnectionCondition,
            "IFCFAN" => Self::IfcFan,
            "IFCFANTYPE" => Self::IfcFanType,
            "IFCFASTENER" => Self::IfcFastener,
            "IFCFASTENERTYPE" => Self::IfcFastenerType,
            "IFCFEATUREELEMENT" => Self::IfcFeatureElement,
            "IFCFEATUREELEMENTADDITION" => Self::IfcFeatureElementAddition,
            "IFCFEATUREELEMENTSUBTRACTION" => Self::IfcFeatureElementSubtraction,
            "IFCFILLAREASTYLE" => Self::IfcFillAreaStyle,
            "IFCFILLAREASTYLEHATCHING" => Self::IfcFillAreaStyleHatching,
            "IFCFILLAREASTYLETILES" => Self::IfcFillAreaStyleTiles,
            "IFCFILTER" => Self::IfcFilter,
            "IFCFILTERTYPE" => Self::IfcFilterType,
            "IFCFIRESUPPRESSIONTERMINAL" => Self::IfcFireSuppressionTerminal,
            "IFCFIRESUPPRESSIONTERMINALTYPE" => Self::IfcFireSuppressionTerminalType,
            "IFCFIXEDREFERENCESWEPTAREASOLID" => Self::IfcFixedReferenceSweptAreaSolid,
            "IFCFLOWCONTROLLER" => Self::IfcFlowController,
            "IFCFLOWCONTROLLERTYPE" => Self::IfcFlowControllerType,
            "IFCFLOWFITTING" => Self::IfcFlowFitting,
            "IFCFLOWFITTINGTYPE" => Self::IfcFlowFittingType,
            "IFCFLOWINSTRUMENT" => Self::IfcFlowInstrument,
            "IFCFLOWINSTRUMENTTYPE" => Self::IfcFlowInstrumentType,
            "IFCFLOWMETER" => Self::IfcFlowMeter,
            "IFCFLOWMETERTYPE" => Self::IfcFlowMeterType,
            "IFCFLOWMOVINGDEVICE" => Self::IfcFlowMovingDevice,
            "IFCFLOWMOVINGDEVICETYPE" => Self::IfcFlowMovingDeviceType,
            "IFCFLOWSEGMENT" => Self::IfcFlowSegment,
            "IFCFLOWSEGMENTTYPE" => Self::IfcFlowSegmentType,
            "IFCFLOWSTORAGEDEVICE" => Self::IfcFlowStorageDevice,
            "IFCFLOWSTORAGEDEVICETYPE" => Self::IfcFlowStorageDeviceType,
            "IFCFLOWTERMINAL" => Self::IfcFlowTerminal,
            "IFCFLOWTERMINALTYPE" => Self::IfcFlowTerminalType,
            "IFCFLOWTREATMENTDEVICE" => Self::IfcFlowTreatmentDevice,
            "IFCFLOWTREATMENTDEVICETYPE" => Self::IfcFlowTreatmentDeviceType,
            "IFCFOOTING" => Self::IfcFooting,
            "IFCFOOTINGTYPE" => Self::IfcFootingType,
            "IFCFURNISHINGELEMENT" => Self::IfcFurnishingElement,
            "IFCFURNISHINGELEMENTTYPE" => Self::IfcFurnishingElementType,
            "IFCFURNITURE" => Self::IfcFurniture,
            "IFCFURNITURETYPE" => Self::IfcFurnitureType,
            "IFCGEOGRAPHICELEMENT" => Self::IfcGeographicElement,
            "IFCGEOGRAPHICELEMENTTYPE" => Self::IfcGeographicElementType,
            "IFCGEOMETRICCURVESET" => Self::IfcGeometricCurveSet,
            "IFCGEOMETRICREPRESENTATIONCONTEXT" => Self::IfcGeometricRepresentationContext,
            "IFCGEOMETRICREPRESENTATIONITEM" => Self::IfcGeometricRepresentationItem,
            "IFCGEOMETRICREPRESENTATIONSUBCONTEXT" => Self::IfcGeometricRepresentationSubContext,
            "IFCGEOMETRICSET" => Self::IfcGeometricSet,
            "IFCGRID" => Self::IfcGrid,
            "IFCGRIDAXIS" => Self::IfcGridAxis,
            "IFCGRIDPLACEMENT" => Self::IfcGridPlacement,
            "IFCGROUP" => Self::IfcGroup,
            "IFCHALFSPACESOLID" => Self::IfcHalfSpaceSolid,
            "IFCHEATEXCHANGER" => Self::IfcHeatExchanger,
            "IFCHEATEXCHANGERTYPE" => Self::IfcHeatExchangerType,
            "IFCHUMIDIFIER" => Self::IfcHumidifier,
            "IFCHUMIDIFIERTYPE" => Self::IfcHumidifierType,
            "IFCISHAPEPROFILEDEF" => Self::IfcIShapeProfileDef,
            "IFCIMAGETEXTURE" => Self::IfcImageTexture,
            "IFCINDEXEDCOLOURMAP" => Self::IfcIndexedColourMap,
            "IFCINDEXEDPOLYCURVE" => Self::IfcIndexedPolyCurve,
            "IFCINDEXEDPOLYGONALFACE" => Self::IfcIndexedPolygonalFace,
            "IFCINDEXEDPOLYGONALFACEWITHVOIDS" => Self::IfcIndexedPolygonalFaceWithVoids,
            "IFCINDEXEDTEXTUREMAP" => Self::IfcIndexedTextureMap,
            "IFCINDEXEDTRIANGLETEXTUREMAP" => Self::IfcIndexedTriangleTextureMap,
            "IFCINTERCEPTOR" => Self::IfcInterceptor,
            "IFCINTERCEPTORTYPE" => Self::IfcInterceptorType,
            "IFCINTERSECTIONCURVE" => Self::IfcIntersectionCurve,
            "IFCINVENTORY" => Self::IfcInventory,
            "IFCIRREGULARTIMESERIES" => Self::IfcIrregularTimeSeries,
            "IFCIRREGULARTIMESERIESVALUE" => Self::IfcIrregularTimeSeriesValue,
            "IFCJUNCTIONBOX" => Self::IfcJunctionBox,
            "IFCJUNCTIONBOXTYPE" => Self::IfcJunctionBoxType,
            "IFCLSHAPEPROFILEDEF" => Self::IfcLShapeProfileDef,
            "IFCLABORRESOURCE" => Self::IfcLaborResource,
            "IFCLABORRESOURCETYPE" => Self::IfcLaborResourceType,
            "IFCLAGTIME" => Self::IfcLagTime,
            "IFCLAMP" => Self::IfcLamp,
            "IFCLAMPTYPE" => Self::IfcLampType,
            "IFCLIBRARYINFORMATION" => Self::IfcLibraryInformation,
            "IFCLIBRARYREFERENCE" => Self::IfcLibraryReference,
            "IFCLIGHTDISTRIBUTIONDATA" => Self::IfcLightDistributionData,
            "IFCLIGHTFIXTURE" => Self::IfcLightFixture,
            "IFCLIGHTFIXTURETYPE" => Self::IfcLightFixtureType,
            "IFCLIGHTINTENSITYDISTRIBUTION" => Self::IfcLightIntensityDistribution,
            "IFCLIGHTSOURCE" => Self::IfcLightSource,
            "IFCLIGHTSOURCEAMBIENT" => Self::IfcLightSourceAmbient,
            "IFCLIGHTSOURCEDIRECTIONAL" => Self::IfcLightSourceDirectional,
            "IFCLIGHTSOURCEGONIOMETRIC" => Self::IfcLightSourceGoniometric,
            "IFCLIGHTSOURCEPOSITIONAL" => Self::IfcLightSourcePositional,
            "IFCLIGHTSOURCESPOT" => Self::IfcLightSourceSpot,
            "IFCLINE" => Self::IfcLine,
            "IFCLINESEGMENT2D" => Self::IfcLineSegment2D,
            "IFCLINEARPLACEMENT" => Self::IfcLinearPlacement,
            "IFCLINEARPOSITIONINGELEMENT" => Self::IfcLinearPositioningElement,
            "IFCLOCALPLACEMENT" => Self::IfcLocalPlacement,
            "IFCLOOP" => Self::IfcLoop,
            "IFCMANIFOLDSOLIDBREP" => Self::IfcManifoldSolidBrep,
            "IFCMAPCONVERSION" => Self::IfcMapConversion,
            "IFCMAPPEDITEM" => Self::IfcMappedItem,
            "IFCMATERIAL" => Self::IfcMaterial,
            "IFCMATERIALCLASSIFICATIONRELATIONSHIP" => Self::IfcMaterialClassificationRelationship,
            "IFCMATERIALCONSTITUENT" => Self::IfcMaterialConstituent,
            "IFCMATERIALCONSTITUENTSET" => Self::IfcMaterialConstituentSet,
            "IFCMATERIALDEFINITION" => Self::IfcMaterialDefinition,
            "IFCMATERIALDEFINITIONREPRESENTATION" => Self::IfcMaterialDefinitionRepresentation,
            "IFCMATERIALLAYER" => Self::IfcMaterialLayer,
            "IFCMATERIALLAYERSET" => Self::IfcMaterialLayerSet,
            "IFCMATERIALLAYERSETUSAGE" => Self::IfcMaterialLayerSetUsage,
            "IFCMATERIALLAYERWITHOFFSETS" => Self::IfcMaterialLayerWithOffsets,
            "IFCMATERIALLIST" => Self::IfcMaterialList,
            "IFCMATERIALPROFILE" => Self::IfcMaterialProfile,
            "IFCMATERIALPROFILESET" => Self::IfcMaterialProfileSet,
            "IFCMATERIALPROFILESETUSAGE" => Self::IfcMaterialProfileSetUsage,
            "IFCMATERIALPROFILESETUSAGETAPERING" => Self::IfcMaterialProfileSetUsageTapering,
            "IFCMATERIALPROFILEWITHOFFSETS" => Self::IfcMaterialProfileWithOffsets,
            "IFCMATERIALPROPERTIES" => Self::IfcMaterialProperties,
            "IFCMATERIALRELATIONSHIP" => Self::IfcMaterialRelationship,
            "IFCMATERIALUSAGEDEFINITION" => Self::IfcMaterialUsageDefinition,
            "IFCMEASUREWITHUNIT" => Self::IfcMeasureWithUnit,
            "IFCMECHANICALFASTENER" => Self::IfcMechanicalFastener,
            "IFCMECHANICALFASTENERTYPE" => Self::IfcMechanicalFastenerType,
            "IFCMEDICALDEVICE" => Self::IfcMedicalDevice,
            "IFCMEDICALDEVICETYPE" => Self::IfcMedicalDeviceType,
            "IFCMEMBER" => Self::IfcMember,
            "IFCMEMBERSTANDARDCASE" => Self::IfcMemberStandardCase,
            "IFCMEMBERTYPE" => Self::IfcMemberType,
            "IFCMETRIC" => Self::IfcMetric,
            "IFCMIRROREDPROFILEDEF" => Self::IfcMirroredProfileDef,
            "IFCMONETARYUNIT" => Self::IfcMonetaryUnit,
            "IFCMOTORCONNECTION" => Self::IfcMotorConnection,
            "IFCMOTORCONNECTIONTYPE" => Self::IfcMotorConnectionType,
            "IFCNAMEDUNIT" => Self::IfcNamedUnit,
            "IFCOBJECT" => Self::IfcObject,
            "IFCOBJECTDEFINITION" => Self::IfcObjectDefinition,
            "IFCOBJECTPLACEMENT" => Self::IfcObjectPlacement,
            "IFCOBJECTIVE" => Self::IfcObjective,
            "IFCOCCUPANT" => Self::IfcOccupant,
            "IFCOFFSETCURVE" => Self::IfcOffsetCurve,
            "IFCOFFSETCURVE2D" => Self::IfcOffsetCurve2D,
            "IFCOFFSETCURVE3D" => Self::IfcOffsetCurve3D,
            "IFCOFFSETCURVEBYDISTANCES" => Self::IfcOffsetCurveByDistances,
            "IFCOPENSHELL" => Self::IfcOpenShell,
            "IFCOPENINGELEMENT" => Self::IfcOpeningElement,
            "IFCOPENINGSTANDARDCASE" => Self::IfcOpeningStandardCase,
            "IFCORGANIZATION" => Self::IfcOrganization,
            "IFCORGANIZATIONRELATIONSHIP" => Self::IfcOrganizationRelationship,
            "IFCORIENTATIONEXPRESSION" => Self::IfcOrientationExpression,
            "IFCORIENTEDEDGE" => Self::IfcOrientedEdge,
            "IFCOUTERBOUNDARYCURVE" => Self::IfcOuterBoundaryCurve,
            "IFCOUTLET" => Self::IfcOutlet,
            "IFCOUTLETTYPE" => Self::IfcOutletType,
            "IFCOWNERHISTORY" => Self::IfcOwnerHistory,
            "IFCPARAMETERIZEDPROFILEDEF" => Self::IfcParameterizedProfileDef,
            "IFCPATH" => Self::IfcPath,
            "IFCPCURVE" => Self::IfcPcurve,
            "IFCPERFORMANCEHISTORY" => Self::IfcPerformanceHistory,
            "IFCPERMEABLECOVERINGPROPERTIES" => Self::IfcPermeableCoveringProperties,
            "IFCPERMIT" => Self::IfcPermit,
            "IFCPERSON" => Self::IfcPerson,
            "IFCPERSONANDORGANIZATION" => Self::IfcPersonAndOrganization,
            "IFCPHYSICALCOMPLEXQUANTITY" => Self::IfcPhysicalComplexQuantity,
            "IFCPHYSICALQUANTITY" => Self::IfcPhysicalQuantity,
            "IFCPHYSICALSIMPLEQUANTITY" => Self::IfcPhysicalSimpleQuantity,
            "IFCPILE" => Self::IfcPile,
            "IFCPILETYPE" => Self::IfcPileType,
            "IFCPIPEFITTING" => Self::IfcPipeFitting,
            "IFCPIPEFITTINGTYPE" => Self::IfcPipeFittingType,
            "IFCPIPESEGMENT" => Self::IfcPipeSegment,
            "IFCPIPESEGMENTTYPE" => Self::IfcPipeSegmentType,
            "IFCPIXELTEXTURE" => Self::IfcPixelTexture,
            "IFCPLACEMENT" => Self::IfcPlacement,
            "IFCPLANARBOX" => Self::IfcPlanarBox,
            "IFCPLANAREXTENT" => Self::IfcPlanarExtent,
            "IFCPLANE" => Self::IfcPlane,
            "IFCPLATE" => Self::IfcPlate,
            "IFCPLATESTANDARDCASE" => Self::IfcPlateStandardCase,
            "IFCPLATETYPE" => Self::IfcPlateType,
            "IFCPOINT" => Self::IfcPoint,
            "IFCPOINTONCURVE" => Self::IfcPointOnCurve,
            "IFCPOINTONSURFACE" => Self::IfcPointOnSurface,
            "IFCPOLYLOOP" => Self::IfcPolyLoop,
            "IFCPOLYGONALBOUNDEDHALFSPACE" => Self::IfcPolygonalBoundedHalfSpace,
            "IFCPOLYGONALFACESET" => Self::IfcPolygonalFaceSet,
            "IFCPOLYLINE" => Self::IfcPolyline,
            "IFCPORT" => Self::IfcPort,
            "IFCPOSITIONINGELEMENT" => Self::IfcPositioningElement,
            "IFCPOSTALADDRESS" => Self::IfcPostalAddress,
            "IFCPREDEFINEDCOLOUR" => Self::IfcPreDefinedColour,
            "IFCPREDEFINEDCURVEFONT" => Self::IfcPreDefinedCurveFont,
            "IFCPREDEFINEDITEM" => Self::IfcPreDefinedItem,
            "IFCPREDEFINEDPROPERTIES" => Self::IfcPreDefinedProperties,
            "IFCPREDEFINEDPROPERTYSET" => Self::IfcPreDefinedPropertySet,
            "IFCPREDEFINEDTEXTFONT" => Self::IfcPreDefinedTextFont,
            "IFCPRESENTATIONITEM" => Self::IfcPresentationItem,
            "IFCPRESENTATIONLAYERASSIGNMENT" => Self::IfcPresentationLayerAssignment,
            "IFCPRESENTATIONLAYERWITHSTYLE" => Self::IfcPresentationLayerWithStyle,
            "IFCPRESENTATIONSTYLE" => Self::IfcPresentationStyle,
            "IFCPRESENTATIONSTYLEASSIGNMENT" => Self::IfcPresentationStyleAssignment,
            "IFCPROCEDURE" => Self::IfcProcedure,
            "IFCPROCEDURETYPE" => Self::IfcProcedureType,
            "IFCPROCESS" => Self::IfcProcess,
            "IFCPRODUCT" => Self::IfcProduct,
            "IFCPRODUCTDEFINITIONSHAPE" => Self::IfcProductDefinitionShape,
            "IFCPRODUCTREPRESENTATION" => Self::IfcProductRepresentation,
            "IFCPROFILEDEF" => Self::IfcProfileDef,
            "IFCPROFILEPROPERTIES" => Self::IfcProfileProperties,
            "IFCPROJECT" => Self::IfcProject,
            "IFCPROJECTLIBRARY" => Self::IfcProjectLibrary,
            "IFCPROJECTORDER" => Self::IfcProjectOrder,
            "IFCPROJECTEDCRS" => Self::IfcProjectedCRS,
            "IFCPROJECTIONELEMENT" => Self::IfcProjectionElement,
            "IFCPROPERTY" => Self::IfcProperty,
            "IFCPROPERTYABSTRACTION" => Self::IfcPropertyAbstraction,
            "IFCPROPERTYBOUNDEDVALUE" => Self::IfcPropertyBoundedValue,
            "IFCPROPERTYDEFINITION" => Self::IfcPropertyDefinition,
            "IFCPROPERTYDEPENDENCYRELATIONSHIP" => Self::IfcPropertyDependencyRelationship,
            "IFCPROPERTYENUMERATEDVALUE" => Self::IfcPropertyEnumeratedValue,
            "IFCPROPERTYENUMERATION" => Self::IfcPropertyEnumeration,
            "IFCPROPERTYLISTVALUE" => Self::IfcPropertyListValue,
            "IFCPROPERTYREFERENCEVALUE" => Self::IfcPropertyReferenceValue,
            "IFCPROPERTYSET" => Self::IfcPropertySet,
            "IFCPROPERTYSETDEFINITION" => Self::IfcPropertySetDefinition,
            "IFCPROPERTYSETTEMPLATE" => Self::IfcPropertySetTemplate,
            "IFCPROPERTYSINGLEVALUE" => Self::IfcPropertySingleValue,
            "IFCPROPERTYTABLEVALUE" => Self::IfcPropertyTableValue,
            "IFCPROPERTYTEMPLATE" => Self::IfcPropertyTemplate,
            "IFCPROPERTYTEMPLATEDEFINITION" => Self::IfcPropertyTemplateDefinition,
            "IFCPROTECTIVEDEVICE" => Self::IfcProtectiveDevice,
            "IFCPROTECTIVEDEVICETRIPPINGUNIT" => Self::IfcProtectiveDeviceTrippingUnit,
            "IFCPROTECTIVEDEVICETRIPPINGUNITTYPE" => Self::IfcProtectiveDeviceTrippingUnitType,
            "IFCPROTECTIVEDEVICETYPE" => Self::IfcProtectiveDeviceType,
            "IFCPROXY" => Self::IfcProxy,
            "IFCPUMP" => Self::IfcPump,
            "IFCPUMPTYPE" => Self::IfcPumpType,
            "IFCQUANTITYAREA" => Self::IfcQuantityArea,
            "IFCQUANTITYCOUNT" => Self::IfcQuantityCount,
            "IFCQUANTITYLENGTH" => Self::IfcQuantityLength,
            "IFCQUANTITYSET" => Self::IfcQuantitySet,
            "IFCQUANTITYTIME" => Self::IfcQuantityTime,
            "IFCQUANTITYVOLUME" => Self::IfcQuantityVolume,
            "IFCQUANTITYWEIGHT" => Self::IfcQuantityWeight,
            "IFCRAILING" => Self::IfcRailing,
            "IFCRAILINGTYPE" => Self::IfcRailingType,
            "IFCRAMP" => Self::IfcRamp,
            "IFCRAMPFLIGHT" => Self::IfcRampFlight,
            "IFCRAMPFLIGHTTYPE" => Self::IfcRampFlightType,
            "IFCRAMPTYPE" => Self::IfcRampType,
            "IFCRATIONALBSPLINECURVEWITHKNOTS" => Self::IfcRationalBSplineCurveWithKnots,
            "IFCRATIONALBSPLINESURFACEWITHKNOTS" => Self::IfcRationalBSplineSurfaceWithKnots,
            "IFCRECTANGLEHOLLOWPROFILEDEF" => Self::IfcRectangleHollowProfileDef,
            "IFCRECTANGLEPROFILEDEF" => Self::IfcRectangleProfileDef,
            "IFCRECTANGULARPYRAMID" => Self::IfcRectangularPyramid,
            "IFCRECTANGULARTRIMMEDSURFACE" => Self::IfcRectangularTrimmedSurface,
            "IFCRECURRENCEPATTERN" => Self::IfcRecurrencePattern,
            "IFCREFERENCE" => Self::IfcReference,
            "IFCREFERENT" => Self::IfcReferent,
            "IFCREGULARTIMESERIES" => Self::IfcRegularTimeSeries,
            "IFCREINFORCEMENTBARPROPERTIES" => Self::IfcReinforcementBarProperties,
            "IFCREINFORCEMENTDEFINITIONPROPERTIES" => Self::IfcReinforcementDefinitionProperties,
            "IFCREINFORCINGBAR" => Self::IfcReinforcingBar,
            "IFCREINFORCINGBARTYPE" => Self::IfcReinforcingBarType,
            "IFCREINFORCINGELEMENT" => Self::IfcReinforcingElement,
            "IFCREINFORCINGELEMENTTYPE" => Self::IfcReinforcingElementType,
            "IFCREINFORCINGMESH" => Self::IfcReinforcingMesh,
            "IFCREINFORCINGMESHTYPE" => Self::IfcReinforcingMeshType,
            "IFCRELAGGREGATES" => Self::IfcRelAggregates,
            "IFCRELASSIGNS" => Self::IfcRelAssigns,
            "IFCRELASSIGNSTOACTOR" => Self::IfcRelAssignsToActor,
            "IFCRELASSIGNSTOCONTROL" => Self::IfcRelAssignsToControl,
            "IFCRELASSIGNSTOGROUP" => Self::IfcRelAssignsToGroup,
            "IFCRELASSIGNSTOGROUPBYFACTOR" => Self::IfcRelAssignsToGroupByFactor,
            "IFCRELASSIGNSTOPROCESS" => Self::IfcRelAssignsToProcess,
            "IFCRELASSIGNSTOPRODUCT" => Self::IfcRelAssignsToProduct,
            "IFCRELASSIGNSTORESOURCE" => Self::IfcRelAssignsToResource,
            "IFCRELASSOCIATES" => Self::IfcRelAssociates,
            "IFCRELASSOCIATESAPPROVAL" => Self::IfcRelAssociatesApproval,
            "IFCRELASSOCIATESCLASSIFICATION" => Self::IfcRelAssociatesClassification,
            "IFCRELASSOCIATESCONSTRAINT" => Self::IfcRelAssociatesConstraint,
            "IFCRELASSOCIATESDOCUMENT" => Self::IfcRelAssociatesDocument,
            "IFCRELASSOCIATESLIBRARY" => Self::IfcRelAssociatesLibrary,
            "IFCRELASSOCIATESMATERIAL" => Self::IfcRelAssociatesMaterial,
            "IFCRELCONNECTS" => Self::IfcRelConnects,
            "IFCRELCONNECTSELEMENTS" => Self::IfcRelConnectsElements,
            "IFCRELCONNECTSPATHELEMENTS" => Self::IfcRelConnectsPathElements,
            "IFCRELCONNECTSPORTTOELEMENT" => Self::IfcRelConnectsPortToElement,
            "IFCRELCONNECTSPORTS" => Self::IfcRelConnectsPorts,
            "IFCRELCONNECTSSTRUCTURALACTIVITY" => Self::IfcRelConnectsStructuralActivity,
            "IFCRELCONNECTSSTRUCTURALMEMBER" => Self::IfcRelConnectsStructuralMember,
            "IFCRELCONNECTSWITHECCENTRICITY" => Self::IfcRelConnectsWithEccentricity,
            "IFCRELCONNECTSWITHREALIZINGELEMENTS" => Self::IfcRelConnectsWithRealizingElements,
            "IFCRELCONTAINEDINSPATIALSTRUCTURE" => Self::IfcRelContainedInSpatialStructure,
            "IFCRELCOVERSBLDGELEMENTS" => Self::IfcRelCoversBldgElements,
            "IFCRELCOVERSSPACES" => Self::IfcRelCoversSpaces,
            "IFCRELDECLARES" => Self::IfcRelDeclares,
            "IFCRELDECOMPOSES" => Self::IfcRelDecomposes,
            "IFCRELDEFINES" => Self::IfcRelDefines,
            "IFCRELDEFINESBYOBJECT" => Self::IfcRelDefinesByObject,
            "IFCRELDEFINESBYPROPERTIES" => Self::IfcRelDefinesByProperties,
            "IFCRELDEFINESBYTEMPLATE" => Self::IfcRelDefinesByTemplate,
            "IFCRELDEFINESBYTYPE" => Self::IfcRelDefinesByType,
            "IFCRELFILLSELEMENT" => Self::IfcRelFillsElement,
            "IFCRELFLOWCONTROLELEMENTS" => Self::IfcRelFlowControlElements,
            "IFCRELINTERFERESELEMENTS" => Self::IfcRelInterferesElements,
            "IFCRELNESTS" => Self::IfcRelNests,
            "IFCRELPOSITIONS" => Self::IfcRelPositions,
            "IFCRELPROJECTSELEMENT" => Self::IfcRelProjectsElement,
            "IFCRELREFERENCEDINSPATIALSTRUCTURE" => Self::IfcRelReferencedInSpatialStructure,
            "IFCRELSEQUENCE" => Self::IfcRelSequence,
            "IFCRELSERVICESBUILDINGS" => Self::IfcRelServicesBuildings,
            "IFCRELSPACEBOUNDARY" => Self::IfcRelSpaceBoundary,
            "IFCRELSPACEBOUNDARY1STLEVEL" => Self::IfcRelSpaceBoundary1stLevel,
            "IFCRELSPACEBOUNDARY2NDLEVEL" => Self::IfcRelSpaceBoundary2ndLevel,
            "IFCRELVOIDSELEMENT" => Self::IfcRelVoidsElement,
            "IFCRELATIONSHIP" => Self::IfcRelationship,
            "IFCREPARAMETRISEDCOMPOSITECURVESEGMENT" => Self::IfcReparametrisedCompositeCurveSegment,
            "IFCREPRESENTATION" => Self::IfcRepresentation,
            "IFCREPRESENTATIONCONTEXT" => Self::IfcRepresentationContext,
            "IFCREPRESENTATIONITEM" => Self::IfcRepresentationItem,
            "IFCREPRESENTATIONMAP" => Self::IfcRepresentationMap,
            "IFCRESOURCE" => Self::IfcResource,
            "IFCRESOURCEAPPROVALRELATIONSHIP" => Self::IfcResourceApprovalRelationship,
            "IFCRESOURCECONSTRAINTRELATIONSHIP" => Self::IfcResourceConstraintRelationship,
            "IFCRESOURCELEVELRELATIONSHIP" => Self::IfcResourceLevelRelationship,
            "IFCRESOURCETIME" => Self::IfcResourceTime,
            "IFCREVOLVEDAREASOLID" => Self::IfcRevolvedAreaSolid,
            "IFCREVOLVEDAREASOLIDTAPERED" => Self::IfcRevolvedAreaSolidTapered,
            "IFCRIGHTCIRCULARCONE" => Self::IfcRightCircularCone,
            "IFCRIGHTCIRCULARCYLINDER" => Self::IfcRightCircularCylinder,
            "IFCROOF" => Self::IfcRoof,
            "IFCROOFTYPE" => Self::IfcRoofType,
            "IFCROOT" => Self::IfcRoot,
            "IFCROUNDEDRECTANGLEPROFILEDEF" => Self::IfcRoundedRectangleProfileDef,
            "IFCSIUNIT" => Self::IfcSIUnit,
            "IFCSANITARYTERMINAL" => Self::IfcSanitaryTerminal,
            "IFCSANITARYTERMINALTYPE" => Self::IfcSanitaryTerminalType,
            "IFCSCHEDULINGTIME" => Self::IfcSchedulingTime,
            "IFCSEAMCURVE" => Self::IfcSeamCurve,
            "IFCSECTIONPROPERTIES" => Self::IfcSectionProperties,
            "IFCSECTIONREINFORCEMENTPROPERTIES" => Self::IfcSectionReinforcementProperties,
            "IFCSECTIONEDSOLID" => Self::IfcSectionedSolid,
            "IFCSECTIONEDSOLIDHORIZONTAL" => Self::IfcSectionedSolidHorizontal,
            "IFCSECTIONEDSPINE" => Self::IfcSectionedSpine,
            "IFCSENSOR" => Self::IfcSensor,
            "IFCSENSORTYPE" => Self::IfcSensorType,
            "IFCSHADINGDEVICE" => Self::IfcShadingDevice,
            "IFCSHADINGDEVICETYPE" => Self::IfcShadingDeviceType,
            "IFCSHAPEASPECT" => Self::IfcShapeAspect,
            "IFCSHAPEMODEL" => Self::IfcShapeModel,
            "IFCSHAPEREPRESENTATION" => Self::IfcShapeRepresentation,
            "IFCSHELLBASEDSURFACEMODEL" => Self::IfcShellBasedSurfaceModel,
            "IFCSIMPLEPROPERTY" => Self::IfcSimpleProperty,
            "IFCSIMPLEPROPERTYTEMPLATE" => Self::IfcSimplePropertyTemplate,
            "IFCSITE" => Self::IfcSite,
            "IFCSLAB" => Self::IfcSlab,
            "IFCSLABELEMENTEDCASE" => Self::IfcSlabElementedCase,
            "IFCSLABSTANDARDCASE" => Self::IfcSlabStandardCase,
            "IFCSLABTYPE" => Self::IfcSlabType,
            "IFCSLIPPAGECONNECTIONCONDITION" => Self::IfcSlippageConnectionCondition,
            "IFCSOLARDEVICE" => Self::IfcSolarDevice,
            "IFCSOLARDEVICETYPE" => Self::IfcSolarDeviceType,
            "IFCSOLIDMODEL" => Self::IfcSolidModel,
            "IFCSPACE" => Self::IfcSpace,
            "IFCSPACEHEATER" => Self::IfcSpaceHeater,
            "IFCSPACEHEATERTYPE" => Self::IfcSpaceHeaterType,
            "IFCSPACETYPE" => Self::IfcSpaceType,
            "IFCSPATIALELEMENT" => Self::IfcSpatialElement,
            "IFCSPATIALELEMENTTYPE" => Self::IfcSpatialElementType,
            "IFCSPATIALSTRUCTUREELEMENT" => Self::IfcSpatialStructureElement,
            "IFCSPATIALSTRUCTUREELEMENTTYPE" => Self::IfcSpatialStructureElementType,
            "IFCSPATIALZONE" => Self::IfcSpatialZone,
            "IFCSPATIALZONETYPE" => Self::IfcSpatialZoneType,
            "IFCSPHERE" => Self::IfcSphere,
            "IFCSPHERICALSURFACE" => Self::IfcSphericalSurface,
            "IFCSTACKTERMINAL" => Self::IfcStackTerminal,
            "IFCSTACKTERMINALTYPE" => Self::IfcStackTerminalType,
            "IFCSTAIR" => Self::IfcStair,
            "IFCSTAIRFLIGHT" => Self::IfcStairFlight,
            "IFCSTAIRFLIGHTTYPE" => Self::IfcStairFlightType,
            "IFCSTAIRTYPE" => Self::IfcStairType,
            "IFCSTRUCTURALACTION" => Self::IfcStructuralAction,
            "IFCSTRUCTURALACTIVITY" => Self::IfcStructuralActivity,
            "IFCSTRUCTURALANALYSISMODEL" => Self::IfcStructuralAnalysisModel,
            "IFCSTRUCTURALCONNECTION" => Self::IfcStructuralConnection,
            "IFCSTRUCTURALCONNECTIONCONDITION" => Self::IfcStructuralConnectionCondition,
            "IFCSTRUCTURALCURVEACTION" => Self::IfcStructuralCurveAction,
            "IFCSTRUCTURALCURVECONNECTION" => Self::IfcStructuralCurveConnection,
            "IFCSTRUCTURALCURVEMEMBER" => Self::IfcStructuralCurveMember,
            "IFCSTRUCTURALCURVEMEMBERVARYING" => Self::IfcStructuralCurveMemberVarying,
            "IFCSTRUCTURALCURVEREACTION" => Self::IfcStructuralCurveReaction,
            "IFCSTRUCTURALITEM" => Self::IfcStructuralItem,
            "IFCSTRUCTURALLINEARACTION" => Self::IfcStructuralLinearAction,
            "IFCSTRUCTURALLOAD" => Self::IfcStructuralLoad,
            "IFCSTRUCTURALLOADCASE" => Self::IfcStructuralLoadCase,
            "IFCSTRUCTURALLOADCONFIGURATION" => Self::IfcStructuralLoadConfiguration,
            "IFCSTRUCTURALLOADGROUP" => Self::IfcStructuralLoadGroup,
            "IFCSTRUCTURALLOADLINEARFORCE" => Self::IfcStructuralLoadLinearForce,
            "IFCSTRUCTURALLOADORRESULT" => Self::IfcStructuralLoadOrResult,
            "IFCSTRUCTURALLOADPLANARFORCE" => Self::IfcStructuralLoadPlanarForce,
            "IFCSTRUCTURALLOADSINGLEDISPLACEMENT" => Self::IfcStructuralLoadSingleDisplacement,
            "IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION" => Self::IfcStructuralLoadSingleDisplacementDistortion,
            "IFCSTRUCTURALLOADSINGLEFORCE" => Self::IfcStructuralLoadSingleForce,
            "IFCSTRUCTURALLOADSINGLEFORCEWARPING" => Self::IfcStructuralLoadSingleForceWarping,
            "IFCSTRUCTURALLOADSTATIC" => Self::IfcStructuralLoadStatic,
            "IFCSTRUCTURALLOADTEMPERATURE" => Self::IfcStructuralLoadTemperature,
            "IFCSTRUCTURALMEMBER" => Self::IfcStructuralMember,
            "IFCSTRUCTURALPLANARACTION" => Self::IfcStructuralPlanarAction,
            "IFCSTRUCTURALPOINTACTION" => Self::IfcStructuralPointAction,
            "IFCSTRUCTURALPOINTCONNECTION" => Self::IfcStructuralPointConnection,
            "IFCSTRUCTURALPOINTREACTION" => Self::IfcStructuralPointReaction,
            "IFCSTRUCTURALREACTION" => Self::IfcStructuralReaction,
            "IFCSTRUCTURALRESULTGROUP" => Self::IfcStructuralResultGroup,
            "IFCSTRUCTURALSURFACEACTION" => Self::IfcStructuralSurfaceAction,
            "IFCSTRUCTURALSURFACECONNECTION" => Self::IfcStructuralSurfaceConnection,
            "IFCSTRUCTURALSURFACEMEMBER" => Self::IfcStructuralSurfaceMember,
            "IFCSTRUCTURALSURFACEMEMBERVARYING" => Self::IfcStructuralSurfaceMemberVarying,
            "IFCSTRUCTURALSURFACEREACTION" => Self::IfcStructuralSurfaceReaction,
            "IFCSTYLEMODEL" => Self::IfcStyleModel,
            "IFCSTYLEDITEM" => Self::IfcStyledItem,
            "IFCSTYLEDREPRESENTATION" => Self::IfcStyledRepresentation,
            "IFCSUBCONTRACTRESOURCE" => Self::IfcSubContractResource,
            "IFCSUBCONTRACTRESOURCETYPE" => Self::IfcSubContractResourceType,
            "IFCSUBEDGE" => Self::IfcSubedge,
            "IFCSURFACE" => Self::IfcSurface,
            "IFCSURFACECURVE" => Self::IfcSurfaceCurve,
            "IFCSURFACECURVESWEPTAREASOLID" => Self::IfcSurfaceCurveSweptAreaSolid,
            "IFCSURFACEFEATURE" => Self::IfcSurfaceFeature,
            "IFCSURFACEOFLINEAREXTRUSION" => Self::IfcSurfaceOfLinearExtrusion,
            "IFCSURFACEOFREVOLUTION" => Self::IfcSurfaceOfRevolution,
            "IFCSURFACEREINFORCEMENTAREA" => Self::IfcSurfaceReinforcementArea,
            "IFCSURFACESTYLE" => Self::IfcSurfaceStyle,
            "IFCSURFACESTYLELIGHTING" => Self::IfcSurfaceStyleLighting,
            "IFCSURFACESTYLEREFRACTION" => Self::IfcSurfaceStyleRefraction,
            "IFCSURFACESTYLERENDERING" => Self::IfcSurfaceStyleRendering,
            "IFCSURFACESTYLESHADING" => Self::IfcSurfaceStyleShading,
            "IFCSURFACESTYLEWITHTEXTURES" => Self::IfcSurfaceStyleWithTextures,
            "IFCSURFACETEXTURE" => Self::IfcSurfaceTexture,
            "IFCSWEPTAREASOLID" => Self::IfcSweptAreaSolid,
            "IFCSWEPTDISKSOLID" => Self::IfcSweptDiskSolid,
            "IFCSWEPTDISKSOLIDPOLYGONAL" => Self::IfcSweptDiskSolidPolygonal,
            "IFCSWEPTSURFACE" => Self::IfcSweptSurface,
            "IFCSWITCHINGDEVICE" => Self::IfcSwitchingDevice,
            "IFCSWITCHINGDEVICETYPE" => Self::IfcSwitchingDeviceType,
            "IFCSYSTEM" => Self::IfcSystem,
            "IFCSYSTEMFURNITUREELEMENT" => Self::IfcSystemFurnitureElement,
            "IFCSYSTEMFURNITUREELEMENTTYPE" => Self::IfcSystemFurnitureElementType,
            "IFCTSHAPEPROFILEDEF" => Self::IfcTShapeProfileDef,
            "IFCTABLE" => Self::IfcTable,
            "IFCTABLECOLUMN" => Self::IfcTableColumn,
            "IFCTABLEROW" => Self::IfcTableRow,
            "IFCTANK" => Self::IfcTank,
            "IFCTANKTYPE" => Self::IfcTankType,
            "IFCTASK" => Self::IfcTask,
            "IFCTASKTIME" => Self::IfcTaskTime,
            "IFCTASKTIMERECURRING" => Self::IfcTaskTimeRecurring,
            "IFCTASKTYPE" => Self::IfcTaskType,
            "IFCTELECOMADDRESS" => Self::IfcTelecomAddress,
            "IFCTENDON" => Self::IfcTendon,
            "IFCTENDONANCHOR" => Self::IfcTendonAnchor,
            "IFCTENDONANCHORTYPE" => Self::IfcTendonAnchorType,
            "IFCTENDONCONDUIT" => Self::IfcTendonConduit,
            "IFCTENDONCONDUITTYPE" => Self::IfcTendonConduitType,
            "IFCTENDONTYPE" => Self::IfcTendonType,
            "IFCTESSELLATEDFACESET" => Self::IfcTessellatedFaceSet,
            "IFCTESSELLATEDITEM" => Self::IfcTessellatedItem,
            "IFCTEXTLITERAL" => Self::IfcTextLiteral,
            "IFCTEXTLITERALWITHEXTENT" => Self::IfcTextLiteralWithExtent,
            "IFCTEXTSTYLE" => Self::IfcTextStyle,
            "IFCTEXTSTYLEFONTMODEL" => Self::IfcTextStyleFontModel,
            "IFCTEXTSTYLEFORDEFINEDFONT" => Self::IfcTextStyleForDefinedFont,
            "IFCTEXTSTYLETEXTMODEL" => Self::IfcTextStyleTextModel,
            "IFCTEXTURECOORDINATE" => Self::IfcTextureCoordinate,
            "IFCTEXTURECOORDINATEGENERATOR" => Self::IfcTextureCoordinateGenerator,
            "IFCTEXTUREMAP" => Self::IfcTextureMap,
            "IFCTEXTUREVERTEX" => Self::IfcTextureVertex,
            "IFCTEXTUREVERTEXLIST" => Self::IfcTextureVertexList,
            "IFCTIMEPERIOD" => Self::IfcTimePeriod,
            "IFCTIMESERIES" => Self::IfcTimeSeries,
            "IFCTIMESERIESVALUE" => Self::IfcTimeSeriesValue,
            "IFCTOPOLOGICALREPRESENTATIONITEM" => Self::IfcTopologicalRepresentationItem,
            "IFCTOPOLOGYREPRESENTATION" => Self::IfcTopologyRepresentation,
            "IFCTOROIDALSURFACE" => Self::IfcToroidalSurface,
            "IFCTRANSFORMER" => Self::IfcTransformer,
            "IFCTRANSFORMERTYPE" => Self::IfcTransformerType,
            "IFCTRANSITIONCURVESEGMENT2D" => Self::IfcTransitionCurveSegment2D,
            "IFCTRANSPORTELEMENT" => Self::IfcTransportElement,
            "IFCTRANSPORTELEMENTTYPE" => Self::IfcTransportElementType,
            "IFCTRAPEZIUMPROFILEDEF" => Self::IfcTrapeziumProfileDef,
            "IFCTRIANGULATEDFACESET" => Self::IfcTriangulatedFaceSet,
            "IFCTRIANGULATEDIRREGULARNETWORK" => Self::IfcTriangulatedIrregularNetwork,
            "IFCTRIMMEDCURVE" => Self::IfcTrimmedCurve,
            "IFCTUBEBUNDLE" => Self::IfcTubeBundle,
            "IFCTUBEBUNDLETYPE" => Self::IfcTubeBundleType,
            "IFCTYPEOBJECT" => Self::IfcTypeObject,
            "IFCTYPEPROCESS" => Self::IfcTypeProcess,
            "IFCTYPEPRODUCT" => Self::IfcTypeProduct,
            "IFCTYPERESOURCE" => Self::IfcTypeResource,
            "IFCUSHAPEPROFILEDEF" => Self::IfcUShapeProfileDef,
            "IFCUNITASSIGNMENT" => Self::IfcUnitAssignment,
            "IFCUNITARYCONTROLELEMENT" => Self::IfcUnitaryControlElement,
            "IFCUNITARYCONTROLELEMENTTYPE" => Self::IfcUnitaryControlElementType,
            "IFCUNITARYEQUIPMENT" => Self::IfcUnitaryEquipment,
            "IFCUNITARYEQUIPMENTTYPE" => Self::IfcUnitaryEquipmentType,
            "IFCVALVE" => Self::IfcValve,
            "IFCVALVETYPE" => Self::IfcValveType,
            "IFCVECTOR" => Self::IfcVector,
            "IFCVERTEX" => Self::IfcVertex,
            "IFCVERTEXLOOP" => Self::IfcVertexLoop,
            "IFCVERTEXPOINT" => Self::IfcVertexPoint,
            "IFCVIBRATIONDAMPER" => Self::IfcVibrationDamper,
            "IFCVIBRATIONDAMPERTYPE" => Self::IfcVibrationDamperType,
            "IFCVIBRATIONISOLATOR" => Self::IfcVibrationIsolator,
            "IFCVIBRATIONISOLATORTYPE" => Self::IfcVibrationIsolatorType,
            "IFCVIRTUALELEMENT" => Self::IfcVirtualElement,
            "IFCVIRTUALGRIDINTERSECTION" => Self::IfcVirtualGridIntersection,
            "IFCVOIDINGFEATURE" => Self::IfcVoidingFeature,
            "IFCWALL" => Self::IfcWall,
            "IFCWALLELEMENTEDCASE" => Self::IfcWallElementedCase,
            "IFCWALLSTANDARDCASE" => Self::IfcWallStandardCase,
            "IFCWALLTYPE" => Self::IfcWallType,
            "IFCWASTETERMINAL" => Self::IfcWasteTerminal,
            "IFCWASTETERMINALTYPE" => Self::IfcWasteTerminalType,
            "IFCWINDOW" => Self::IfcWindow,
            "IFCWINDOWLININGPROPERTIES" => Self::IfcWindowLiningProperties,
            "IFCWINDOWPANELPROPERTIES" => Self::IfcWindowPanelProperties,
            "IFCWINDOWSTANDARDCASE" => Self::IfcWindowStandardCase,
            "IFCWINDOWSTYLE" => Self::IfcWindowStyle,
            "IFCWINDOWTYPE" => Self::IfcWindowType,
            "IFCWORKCALENDAR" => Self::IfcWorkCalendar,
            "IFCWORKCONTROL" => Self::IfcWorkControl,
            "IFCWORKPLAN" => Self::IfcWorkPlan,
            "IFCWORKSCHEDULE" => Self::IfcWorkSchedule,
            "IFCWORKTIME" => Self::IfcWorkTime,
            "IFCZSHAPEPROFILEDEF" => Self::IfcZShapeProfileDef,
            "IFCZONE" => Self::IfcZone,
            _ => return None,
        })
    }

    /// Parse a known schema type from a CRC32 type ID.
    ///
    /// Unknown keywords cannot be reconstructed from a hash.
    pub fn from_id(id: u32) -> Option<Self> {
        match id {
            3821786052 => Some(Self::IfcActionRequest),
            2296667514 => Some(Self::IfcActor),
            3630933823 => Some(Self::IfcActorRole),
            4288193352 => Some(Self::IfcActuator),
            2874132201 => Some(Self::IfcActuatorType),
            618182010 => Some(Self::IfcAddress),
            1635779807 => Some(Self::IfcAdvancedBrep),
            2603310189 => Some(Self::IfcAdvancedBrepWithVoids),
            3406155212 => Some(Self::IfcAdvancedFace),
            1634111441 => Some(Self::IfcAirTerminal),
            177149247 => Some(Self::IfcAirTerminalBox),
            1411407467 => Some(Self::IfcAirTerminalBoxType),
            3352864051 => Some(Self::IfcAirTerminalType),
            2056796094 => Some(Self::IfcAirToAirHeatRecovery),
            1871374353 => Some(Self::IfcAirToAirHeatRecoveryType),
            3087945054 => Some(Self::IfcAlarm),
            3001207471 => Some(Self::IfcAlarmType),
            325726236 => Some(Self::IfcAlignment),
            749761778 => Some(Self::IfcAlignment2DHorizontal),
            3199563722 => Some(Self::IfcAlignment2DHorizontalSegment),
            2483840362 => Some(Self::IfcAlignment2DSegment),
            3379348081 => Some(Self::IfcAlignment2DVerSegCircularArc),
            3239324667 => Some(Self::IfcAlignment2DVerSegLine),
            4263986512 => Some(Self::IfcAlignment2DVerSegParabolicArc),
            53199957 => Some(Self::IfcAlignment2DVertical),
            2029264950 => Some(Self::IfcAlignment2DVerticalSegment),
            3512275521 => Some(Self::IfcAlignmentCurve),
            1674181508 => Some(Self::IfcAnnotation),
            669184980 => Some(Self::IfcAnnotationFillArea),
            639542469 => Some(Self::IfcApplication),
            411424972 => Some(Self::IfcAppliedValue),
            130549933 => Some(Self::IfcApproval),
            3869604511 => Some(Self::IfcApprovalRelationship),
            3798115385 => Some(Self::IfcArbitraryClosedProfileDef),
            1310608509 => Some(Self::IfcArbitraryOpenProfileDef),
            2705031697 => Some(Self::IfcArbitraryProfileDefWithVoids),
            3460190687 => Some(Self::IfcAsset),
            3207858831 => Some(Self::IfcAsymmetricIShapeProfileDef),
            277319702 => Some(Self::IfcAudioVisualAppliance),
            1532957894 => Some(Self::IfcAudioVisualApplianceType),
            4261334040 => Some(Self::IfcAxis1Placement),
            3125803723 => Some(Self::IfcAxis2Placement2D),
            2740243338 => Some(Self::IfcAxis2Placement3D),
            1967976161 => Some(Self::IfcBSplineCurve),
            2461110595 => Some(Self::IfcBSplineCurveWithKnots),
            2887950389 => Some(Self::IfcBSplineSurface),
            167062518 => Some(Self::IfcBSplineSurfaceWithKnots),
            753842376 => Some(Self::IfcBeam),
            2906023776 => Some(Self::IfcBeamStandardCase),
            819618141 => Some(Self::IfcBeamType),
            4196446775 => Some(Self::IfcBearing),
            3649138523 => Some(Self::IfcBearingType),
            616511568 => Some(Self::IfcBlobTexture),
            1334484129 => Some(Self::IfcBlock),
            32344328 => Some(Self::IfcBoiler),
            231477066 => Some(Self::IfcBoilerType),
            3649129432 => Some(Self::IfcBooleanClippingResult),
            2736907675 => Some(Self::IfcBooleanResult),
            4037036970 => Some(Self::IfcBoundaryCondition),
            1136057603 => Some(Self::IfcBoundaryCurve),
            1560379544 => Some(Self::IfcBoundaryEdgeCondition),
            3367102660 => Some(Self::IfcBoundaryFaceCondition),
            1387855156 => Some(Self::IfcBoundaryNodeCondition),
            2069777674 => Some(Self::IfcBoundaryNodeConditionWarping),
            1260505505 => Some(Self::IfcBoundedCurve),
            4182860854 => Some(Self::IfcBoundedSurface),
            2581212453 => Some(Self::IfcBoundingBox),
            2713105998 => Some(Self::IfcBoxedHalfSpace),
            644574406 => Some(Self::IfcBridge),
            963979645 => Some(Self::IfcBridgePart),
            4031249490 => Some(Self::IfcBuilding),
            3299480353 => Some(Self::IfcBuildingElement),
            2979338954 => Some(Self::IfcBuildingElementPart),
            39481116 => Some(Self::IfcBuildingElementPartType),
            1095909175 => Some(Self::IfcBuildingElementProxy),
            1909888760 => Some(Self::IfcBuildingElementProxyType),
            1950629157 => Some(Self::IfcBuildingElementType),
            3124254112 => Some(Self::IfcBuildingStorey),
            1177604601 => Some(Self::IfcBuildingSystem),
            2938176219 => Some(Self::IfcBurner),
            2188180465 => Some(Self::IfcBurnerType),
            2898889636 => Some(Self::IfcCShapeProfileDef),
            635142910 => Some(Self::IfcCableCarrierFitting),
            395041908 => Some(Self::IfcCableCarrierFittingType),
            3758799889 => Some(Self::IfcCableCarrierSegment),
            3293546465 => Some(Self::IfcCableCarrierSegmentType),
            1051757585 => Some(Self::IfcCableFitting),
            2674252688 => Some(Self::IfcCableFittingType),
            4217484030 => Some(Self::IfcCableSegment),
            1285652485 => Some(Self::IfcCableSegmentType),
            3999819293 => Some(Self::IfcCaissonFoundation),
            3203706013 => Some(Self::IfcCaissonFoundationType),
            1123145078 => Some(Self::IfcCartesianPoint),
            574549367 => Some(Self::IfcCartesianPointList),
            1675464909 => Some(Self::IfcCartesianPointList2D),
            2059837836 => Some(Self::IfcCartesianPointList3D),
            59481748 => Some(Self::IfcCartesianTransformationOperator),
            3749851601 => Some(Self::IfcCartesianTransformationOperator2D),
            3486308946 => Some(Self::IfcCartesianTransformationOperator2DnonUniform),
            3331915920 => Some(Self::IfcCartesianTransformationOperator3D),
            1416205885 => Some(Self::IfcCartesianTransformationOperator3DnonUniform),
            3150382593 => Some(Self::IfcCenterLineProfileDef),
            3902619387 => Some(Self::IfcChiller),
            2951183804 => Some(Self::IfcChillerType),
            3296154744 => Some(Self::IfcChimney),
            2197970202 => Some(Self::IfcChimneyType),
            2611217952 => Some(Self::IfcCircle),
            2937912522 => Some(Self::IfcCircleHollowProfileDef),
            1383045692 => Some(Self::IfcCircleProfileDef),
            1062206242 => Some(Self::IfcCircularArcSegment2D),
            1677625105 => Some(Self::IfcCivilElement),
            3893394355 => Some(Self::IfcCivilElementType),
            747523909 => Some(Self::IfcClassification),
            647927063 => Some(Self::IfcClassificationReference),
            2205249479 => Some(Self::IfcClosedShell),
            639361253 => Some(Self::IfcCoil),
            2301859152 => Some(Self::IfcCoilType),
            776857604 => Some(Self::IfcColourRgb),
            3285139300 => Some(Self::IfcColourRgbList),
            3264961684 => Some(Self::IfcColourSpecification),
            843113511 => Some(Self::IfcColumn),
            905975707 => Some(Self::IfcColumnStandardCase),
            300633059 => Some(Self::IfcColumnType),
            3221913625 => Some(Self::IfcCommunicationsAppliance),
            400855858 => Some(Self::IfcCommunicationsApplianceType),
            2542286263 => Some(Self::IfcComplexProperty),
            3875453745 => Some(Self::IfcComplexPropertyTemplate),
            3732776249 => Some(Self::IfcCompositeCurve),
            15328376 => Some(Self::IfcCompositeCurveOnSurface),
            2485617015 => Some(Self::IfcCompositeCurveSegment),
            1485152156 => Some(Self::IfcCompositeProfileDef),
            3571504051 => Some(Self::IfcCompressor),
            3850581409 => Some(Self::IfcCompressorType),
            2272882330 => Some(Self::IfcCondenser),
            2816379211 => Some(Self::IfcCondenserType),
            2510884976 => Some(Self::IfcConic),
            370225590 => Some(Self::IfcConnectedFaceSet),
            1981873012 => Some(Self::IfcConnectionCurveGeometry),
            2859738748 => Some(Self::IfcConnectionGeometry),
            45288368 => Some(Self::IfcConnectionPointEccentricity),
            2614616156 => Some(Self::IfcConnectionPointGeometry),
            2732653382 => Some(Self::IfcConnectionSurfaceGeometry),
            775493141 => Some(Self::IfcConnectionVolumeGeometry),
            1959218052 => Some(Self::IfcConstraint),
            3898045240 => Some(Self::IfcConstructionEquipmentResource),
            2185764099 => Some(Self::IfcConstructionEquipmentResourceType),
            1060000209 => Some(Self::IfcConstructionMaterialResource),
            4105962743 => Some(Self::IfcConstructionMaterialResourceType),
            488727124 => Some(Self::IfcConstructionProductResource),
            1525564444 => Some(Self::IfcConstructionProductResourceType),
            2559216714 => Some(Self::IfcConstructionResource),
            2574617495 => Some(Self::IfcConstructionResourceType),
            3419103109 => Some(Self::IfcContext),
            3050246964 => Some(Self::IfcContextDependentUnit),
            3293443760 => Some(Self::IfcControl),
            25142252 => Some(Self::IfcController),
            578613899 => Some(Self::IfcControllerType),
            2889183280 => Some(Self::IfcConversionBasedUnit),
            2713554722 => Some(Self::IfcConversionBasedUnitWithOffset),
            4136498852 => Some(Self::IfcCooledBeam),
            335055490 => Some(Self::IfcCooledBeamType),
            3640358203 => Some(Self::IfcCoolingTower),
            2954562838 => Some(Self::IfcCoolingTowerType),
            1785450214 => Some(Self::IfcCoordinateOperation),
            1466758467 => Some(Self::IfcCoordinateReferenceSystem),
            3895139033 => Some(Self::IfcCostItem),
            1419761937 => Some(Self::IfcCostSchedule),
            602808272 => Some(Self::IfcCostValue),
            1973544240 => Some(Self::IfcCovering),
            1916426348 => Some(Self::IfcCoveringType),
            3295246426 => Some(Self::IfcCrewResource),
            1815067380 => Some(Self::IfcCrewResourceType),
            2506170314 => Some(Self::IfcCsgPrimitive3D),
            2147822146 => Some(Self::IfcCsgSolid),
            539742890 => Some(Self::IfcCurrencyRelationship),
            3495092785 => Some(Self::IfcCurtainWall),
            1457835157 => Some(Self::IfcCurtainWallType),
            2601014836 => Some(Self::IfcCurve),
            2827736869 => Some(Self::IfcCurveBoundedPlane),
            2629017746 => Some(Self::IfcCurveBoundedSurface),
            1186437898 => Some(Self::IfcCurveSegment2D),
            3800577675 => Some(Self::IfcCurveStyle),
            1105321065 => Some(Self::IfcCurveStyleFont),
            2367409068 => Some(Self::IfcCurveStyleFontAndScaling),
            3510044353 => Some(Self::IfcCurveStyleFontPattern),
            1213902940 => Some(Self::IfcCylindricalSurface),
            4074379575 => Some(Self::IfcDamper),
            3961806047 => Some(Self::IfcDamperType),
            3426335179 => Some(Self::IfcDeepFoundation),
            1306400036 => Some(Self::IfcDeepFoundationType),
            3632507154 => Some(Self::IfcDerivedProfileDef),
            1765591967 => Some(Self::IfcDerivedUnit),
            1045800335 => Some(Self::IfcDerivedUnitElement),
            2949456006 => Some(Self::IfcDimensionalExponents),
            32440307 => Some(Self::IfcDirection),
            1335981549 => Some(Self::IfcDiscreteAccessory),
            2635815018 => Some(Self::IfcDiscreteAccessoryType),
            1945343521 => Some(Self::IfcDistanceExpression),
            1052013943 => Some(Self::IfcDistributionChamberElement),
            1599208980 => Some(Self::IfcDistributionChamberElementType),
            562808652 => Some(Self::IfcDistributionCircuit),
            1062813311 => Some(Self::IfcDistributionControlElement),
            2063403501 => Some(Self::IfcDistributionControlElementType),
            1945004755 => Some(Self::IfcDistributionElement),
            3256556792 => Some(Self::IfcDistributionElementType),
            3040386961 => Some(Self::IfcDistributionFlowElement),
            3849074793 => Some(Self::IfcDistributionFlowElementType),
            3041715199 => Some(Self::IfcDistributionPort),
            3205830791 => Some(Self::IfcDistributionSystem),
            1154170062 => Some(Self::IfcDocumentInformation),
            770865208 => Some(Self::IfcDocumentInformationRelationship),
            3732053477 => Some(Self::IfcDocumentReference),
            395920057 => Some(Self::IfcDoor),
            2963535650 => Some(Self::IfcDoorLiningProperties),
            1714330368 => Some(Self::IfcDoorPanelProperties),
            3242481149 => Some(Self::IfcDoorStandardCase),
            526551008 => Some(Self::IfcDoorStyle),
            2323601079 => Some(Self::IfcDoorType),
            445594917 => Some(Self::IfcDraughtingPreDefinedColour),
            4006246654 => Some(Self::IfcDraughtingPreDefinedCurveFont),
            342316401 => Some(Self::IfcDuctFitting),
            869906466 => Some(Self::IfcDuctFittingType),
            3518393246 => Some(Self::IfcDuctSegment),
            3760055223 => Some(Self::IfcDuctSegmentType),
            1360408905 => Some(Self::IfcDuctSilencer),
            2030761528 => Some(Self::IfcDuctSilencerType),
            3900360178 => Some(Self::IfcEdge),
            476780140 => Some(Self::IfcEdgeCurve),
            1472233963 => Some(Self::IfcEdgeLoop),
            1904799276 => Some(Self::IfcElectricAppliance),
            663422040 => Some(Self::IfcElectricApplianceType),
            862014818 => Some(Self::IfcElectricDistributionBoard),
            2417008758 => Some(Self::IfcElectricDistributionBoardType),
            3310460725 => Some(Self::IfcElectricFlowStorageDevice),
            3277789161 => Some(Self::IfcElectricFlowStorageDeviceType),
            264262732 => Some(Self::IfcElectricGenerator),
            1534661035 => Some(Self::IfcElectricGeneratorType),
            402227799 => Some(Self::IfcElectricMotor),
            1217240411 => Some(Self::IfcElectricMotorType),
            1003880860 => Some(Self::IfcElectricTimeControl),
            712377611 => Some(Self::IfcElectricTimeControlType),
            1758889154 => Some(Self::IfcElement),
            4123344466 => Some(Self::IfcElementAssembly),
            2397081782 => Some(Self::IfcElementAssemblyType),
            1623761950 => Some(Self::IfcElementComponent),
            2590856083 => Some(Self::IfcElementComponentType),
            1883228015 => Some(Self::IfcElementQuantity),
            339256511 => Some(Self::IfcElementType),
            2777663545 => Some(Self::IfcElementarySurface),
            1704287377 => Some(Self::IfcEllipse),
            2835456948 => Some(Self::IfcEllipseProfileDef),
            1658829314 => Some(Self::IfcEnergyConversionDevice),
            2107101300 => Some(Self::IfcEnergyConversionDeviceType),
            2814081492 => Some(Self::IfcEngine),
            132023988 => Some(Self::IfcEngineType),
            3747195512 => Some(Self::IfcEvaporativeCooler),
            3174744832 => Some(Self::IfcEvaporativeCoolerType),
            484807127 => Some(Self::IfcEvaporator),
            3390157468 => Some(Self::IfcEvaporatorType),
            4148101412 => Some(Self::IfcEvent),
            211053100 => Some(Self::IfcEventTime),
            4024345920 => Some(Self::IfcEventType),
            297599258 => Some(Self::IfcExtendedProperties),
            4294318154 => Some(Self::IfcExternalInformation),
            3200245327 => Some(Self::IfcExternalReference),
            1437805879 => Some(Self::IfcExternalReferenceRelationship),
            1209101575 => Some(Self::IfcExternalSpatialElement),
            2853485674 => Some(Self::IfcExternalSpatialStructureElement),
            2242383968 => Some(Self::IfcExternallyDefinedHatchStyle),
            1040185647 => Some(Self::IfcExternallyDefinedSurfaceStyle),
            3548104201 => Some(Self::IfcExternallyDefinedTextFont),
            477187591 => Some(Self::IfcExtrudedAreaSolid),
            2804161546 => Some(Self::IfcExtrudedAreaSolidTapered),
            2556980723 => Some(Self::IfcFace),
            2047409740 => Some(Self::IfcFaceBasedSurfaceModel),
            1809719519 => Some(Self::IfcFaceBound),
            803316827 => Some(Self::IfcFaceOuterBound),
            3008276851 => Some(Self::IfcFaceSurface),
            807026263 => Some(Self::IfcFacetedBrep),
            3737207727 => Some(Self::IfcFacetedBrepWithVoids),
            24185140 => Some(Self::IfcFacility),
            1310830890 => Some(Self::IfcFacilityPart),
            4219587988 => Some(Self::IfcFailureConnectionCondition),
            3415622556 => Some(Self::IfcFan),
            346874300 => Some(Self::IfcFanType),
            647756555 => Some(Self::IfcFastener),
            2489546625 => Some(Self::IfcFastenerType),
            2827207264 => Some(Self::IfcFeatureElement),
            2143335405 => Some(Self::IfcFeatureElementAddition),
            1287392070 => Some(Self::IfcFeatureElementSubtraction),
            738692330 => Some(Self::IfcFillAreaStyle),
            374418227 => Some(Self::IfcFillAreaStyleHatching),
            315944413 => Some(Self::IfcFillAreaStyleTiles),
            819412036 => Some(Self::IfcFilter),
            1810631287 => Some(Self::IfcFilterType),
            1426591983 => Some(Self::IfcFireSuppressionTerminal),
            4222183408 => Some(Self::IfcFireSuppressionTerminalType),
            2652556860 => Some(Self::IfcFixedReferenceSweptAreaSolid),
            2058353004 => Some(Self::IfcFlowController),
            3907093117 => Some(Self::IfcFlowControllerType),
            4278956645 => Some(Self::IfcFlowFitting),
            3198132628 => Some(Self::IfcFlowFittingType),
            182646315 => Some(Self::IfcFlowInstrument),
            4037862832 => Some(Self::IfcFlowInstrumentType),
            2188021234 => Some(Self::IfcFlowMeter),
            3815607619 => Some(Self::IfcFlowMeterType),
            3132237377 => Some(Self::IfcFlowMovingDevice),
            1482959167 => Some(Self::IfcFlowMovingDeviceType),
            987401354 => Some(Self::IfcFlowSegment),
            1834744321 => Some(Self::IfcFlowSegmentType),
            707683696 => Some(Self::IfcFlowStorageDevice),
            1339347760 => Some(Self::IfcFlowStorageDeviceType),
            2223149337 => Some(Self::IfcFlowTerminal),
            2297155007 => Some(Self::IfcFlowTerminalType),
            3508470533 => Some(Self::IfcFlowTreatmentDevice),
            3009222698 => Some(Self::IfcFlowTreatmentDeviceType),
            900683007 => Some(Self::IfcFooting),
            1893162501 => Some(Self::IfcFootingType),
            263784265 => Some(Self::IfcFurnishingElement),
            4238390223 => Some(Self::IfcFurnishingElementType),
            1509553395 => Some(Self::IfcFurniture),
            1268542332 => Some(Self::IfcFurnitureType),
            3493046030 => Some(Self::IfcGeographicElement),
            4095422895 => Some(Self::IfcGeographicElementType),
            987898635 => Some(Self::IfcGeometricCurveSet),
            3448662350 => Some(Self::IfcGeometricRepresentationContext),
            2453401579 => Some(Self::IfcGeometricRepresentationItem),
            4142052618 => Some(Self::IfcGeometricRepresentationSubContext),
            3590301190 => Some(Self::IfcGeometricSet),
            3009204131 => Some(Self::IfcGrid),
            852622518 => Some(Self::IfcGridAxis),
            178086475 => Some(Self::IfcGridPlacement),
            2706460486 => Some(Self::IfcGroup),
            812098782 => Some(Self::IfcHalfSpaceSolid),
            3319311131 => Some(Self::IfcHeatExchanger),
            1251058090 => Some(Self::IfcHeatExchangerType),
            2068733104 => Some(Self::IfcHumidifier),
            1806887404 => Some(Self::IfcHumidifierType),
            1484403080 => Some(Self::IfcIShapeProfileDef),
            3905492369 => Some(Self::IfcImageTexture),
            3570813810 => Some(Self::IfcIndexedColourMap),
            2571569899 => Some(Self::IfcIndexedPolyCurve),
            178912537 => Some(Self::IfcIndexedPolygonalFace),
            2294589976 => Some(Self::IfcIndexedPolygonalFaceWithVoids),
            1437953363 => Some(Self::IfcIndexedTextureMap),
            2133299955 => Some(Self::IfcIndexedTriangleTextureMap),
            4175244083 => Some(Self::IfcInterceptor),
            3946677679 => Some(Self::IfcInterceptorType),
            3113134337 => Some(Self::IfcIntersectionCurve),
            2391368822 => Some(Self::IfcInventory),
            3741457305 => Some(Self::IfcIrregularTimeSeries),
            3020489413 => Some(Self::IfcIrregularTimeSeriesValue),
            2176052936 => Some(Self::IfcJunctionBox),
            4288270099 => Some(Self::IfcJunctionBoxType),
            572779678 => Some(Self::IfcLShapeProfileDef),
            3827777499 => Some(Self::IfcLaborResource),
            428585644 => Some(Self::IfcLaborResourceType),
            1585845231 => Some(Self::IfcLagTime),
            76236018 => Some(Self::IfcLamp),
            1051575348 => Some(Self::IfcLampType),
            2655187982 => Some(Self::IfcLibraryInformation),
            3452421091 => Some(Self::IfcLibraryReference),
            4162380809 => Some(Self::IfcLightDistributionData),
            629592764 => Some(Self::IfcLightFixture),
            1161773419 => Some(Self::IfcLightFixtureType),
            1566485204 => Some(Self::IfcLightIntensityDistribution),
            1402838566 => Some(Self::IfcLightSource),
            125510826 => Some(Self::IfcLightSourceAmbient),
            2604431987 => Some(Self::IfcLightSourceDirectional),
            4266656042 => Some(Self::IfcLightSourceGoniometric),
            1520743889 => Some(Self::IfcLightSourcePositional),
            3422422726 => Some(Self::IfcLightSourceSpot),
            1281925730 => Some(Self::IfcLine),
            3092502836 => Some(Self::IfcLineSegment2D),
            388784114 => Some(Self::IfcLinearPlacement),
            1154579445 => Some(Self::IfcLinearPositioningElement),
            2624227202 => Some(Self::IfcLocalPlacement),
            1008929658 => Some(Self::IfcLoop),
            1425443689 => Some(Self::IfcManifoldSolidBrep),
            3057273783 => Some(Self::IfcMapConversion),
            2347385850 => Some(Self::IfcMappedItem),
            1838606355 => Some(Self::IfcMaterial),
            1847130766 => Some(Self::IfcMaterialClassificationRelationship),
            3708119000 => Some(Self::IfcMaterialConstituent),
            2852063980 => Some(Self::IfcMaterialConstituentSet),
            760658860 => Some(Self::IfcMaterialDefinition),
            2022407955 => Some(Self::IfcMaterialDefinitionRepresentation),
            248100487 => Some(Self::IfcMaterialLayer),
            3303938423 => Some(Self::IfcMaterialLayerSet),
            1303795690 => Some(Self::IfcMaterialLayerSetUsage),
            1847252529 => Some(Self::IfcMaterialLayerWithOffsets),
            2199411900 => Some(Self::IfcMaterialList),
            2235152071 => Some(Self::IfcMaterialProfile),
            164193824 => Some(Self::IfcMaterialProfileSet),
            3079605661 => Some(Self::IfcMaterialProfileSetUsage),
            3404854881 => Some(Self::IfcMaterialProfileSetUsageTapering),
            552965576 => Some(Self::IfcMaterialProfileWithOffsets),
            3265635763 => Some(Self::IfcMaterialProperties),
            853536259 => Some(Self::IfcMaterialRelationship),
            1507914824 => Some(Self::IfcMaterialUsageDefinition),
            2597039031 => Some(Self::IfcMeasureWithUnit),
            377706215 => Some(Self::IfcMechanicalFastener),
            2108223431 => Some(Self::IfcMechanicalFastenerType),
            1437502449 => Some(Self::IfcMedicalDevice),
            1114901282 => Some(Self::IfcMedicalDeviceType),
            1073191201 => Some(Self::IfcMember),
            1911478936 => Some(Self::IfcMemberStandardCase),
            3181161470 => Some(Self::IfcMemberType),
            3368373690 => Some(Self::IfcMetric),
            2998442950 => Some(Self::IfcMirroredProfileDef),
            2706619895 => Some(Self::IfcMonetaryUnit),
            2474470126 => Some(Self::IfcMotorConnection),
            977012517 => Some(Self::IfcMotorConnectionType),
            1918398963 => Some(Self::IfcNamedUnit),
            3888040117 => Some(Self::IfcObject),
            219451334 => Some(Self::IfcObjectDefinition),
            3701648758 => Some(Self::IfcObjectPlacement),
            2251480897 => Some(Self::IfcObjective),
            4143007308 => Some(Self::IfcOccupant),
            590820931 => Some(Self::IfcOffsetCurve),
            3388369263 => Some(Self::IfcOffsetCurve2D),
            3505215534 => Some(Self::IfcOffsetCurve3D),
            2485787929 => Some(Self::IfcOffsetCurveByDistances),
            2665983363 => Some(Self::IfcOpenShell),
            3588315303 => Some(Self::IfcOpeningElement),
            3079942009 => Some(Self::IfcOpeningStandardCase),
            4251960020 => Some(Self::IfcOrganization),
            1411181986 => Some(Self::IfcOrganizationRelationship),
            643959842 => Some(Self::IfcOrientationExpression),
            1029017970 => Some(Self::IfcOrientedEdge),
            144952367 => Some(Self::IfcOuterBoundaryCurve),
            3694346114 => Some(Self::IfcOutlet),
            2837617999 => Some(Self::IfcOutletType),
            1207048766 => Some(Self::IfcOwnerHistory),
            2529465313 => Some(Self::IfcParameterizedProfileDef),
            2519244187 => Some(Self::IfcPath),
            1682466193 => Some(Self::IfcPcurve),
            2382730787 => Some(Self::IfcPerformanceHistory),
            3566463478 => Some(Self::IfcPermeableCoveringProperties),
            3327091369 => Some(Self::IfcPermit),
            2077209135 => Some(Self::IfcPerson),
            101040310 => Some(Self::IfcPersonAndOrganization),
            3021840470 => Some(Self::IfcPhysicalComplexQuantity),
            2483315170 => Some(Self::IfcPhysicalQuantity),
            2226359599 => Some(Self::IfcPhysicalSimpleQuantity),
            1687234759 => Some(Self::IfcPile),
            1158309216 => Some(Self::IfcPileType),
            310824031 => Some(Self::IfcPipeFitting),
            804291784 => Some(Self::IfcPipeFittingType),
            3612865200 => Some(Self::IfcPipeSegment),
            4231323485 => Some(Self::IfcPipeSegmentType),
            597895409 => Some(Self::IfcPixelTexture),
            2004835150 => Some(Self::IfcPlacement),
            603570806 => Some(Self::IfcPlanarBox),
            1663979128 => Some(Self::IfcPlanarExtent),
            220341763 => Some(Self::IfcPlane),
            3171933400 => Some(Self::IfcPlate),
            1156407060 => Some(Self::IfcPlateStandardCase),
            4017108033 => Some(Self::IfcPlateType),
            2067069095 => Some(Self::IfcPoint),
            4022376103 => Some(Self::IfcPointOnCurve),
            1423911732 => Some(Self::IfcPointOnSurface),
            2924175390 => Some(Self::IfcPolyLoop),
            2775532180 => Some(Self::IfcPolygonalBoundedHalfSpace),
            2839578677 => Some(Self::IfcPolygonalFaceSet),
            3724593414 => Some(Self::IfcPolyline),
            3740093272 => Some(Self::IfcPort),
            1946335990 => Some(Self::IfcPositioningElement),
            3355820592 => Some(Self::IfcPostalAddress),
            759155922 => Some(Self::IfcPreDefinedColour),
            2559016684 => Some(Self::IfcPreDefinedCurveFont),
            3727388367 => Some(Self::IfcPreDefinedItem),
            3778827333 => Some(Self::IfcPreDefinedProperties),
            3967405729 => Some(Self::IfcPreDefinedPropertySet),
            1775413392 => Some(Self::IfcPreDefinedTextFont),
            677532197 => Some(Self::IfcPresentationItem),
            2022622350 => Some(Self::IfcPresentationLayerAssignment),
            1304840413 => Some(Self::IfcPresentationLayerWithStyle),
            3119450353 => Some(Self::IfcPresentationStyle),
            2417041796 => Some(Self::IfcPresentationStyleAssignment),
            2744685151 => Some(Self::IfcProcedure),
            569719735 => Some(Self::IfcProcedureType),
            2945172077 => Some(Self::IfcProcess),
            4208778838 => Some(Self::IfcProduct),
            673634403 => Some(Self::IfcProductDefinitionShape),
            2095639259 => Some(Self::IfcProductRepresentation),
            3958567839 => Some(Self::IfcProfileDef),
            2802850158 => Some(Self::IfcProfileProperties),
            103090709 => Some(Self::IfcProject),
            653396225 => Some(Self::IfcProjectLibrary),
            2904328755 => Some(Self::IfcProjectOrder),
            3843373140 => Some(Self::IfcProjectedCRS),
            3651124850 => Some(Self::IfcProjectionElement),
            2598011224 => Some(Self::IfcProperty),
            986844984 => Some(Self::IfcPropertyAbstraction),
            871118103 => Some(Self::IfcPropertyBoundedValue),
            1680319473 => Some(Self::IfcPropertyDefinition),
            148025276 => Some(Self::IfcPropertyDependencyRelationship),
            4166981789 => Some(Self::IfcPropertyEnumeratedValue),
            3710013099 => Some(Self::IfcPropertyEnumeration),
            2752243245 => Some(Self::IfcPropertyListValue),
            941946838 => Some(Self::IfcPropertyReferenceValue),
            1451395588 => Some(Self::IfcPropertySet),
            3357820518 => Some(Self::IfcPropertySetDefinition),
            492091185 => Some(Self::IfcPropertySetTemplate),
            3650150729 => Some(Self::IfcPropertySingleValue),
            110355661 => Some(Self::IfcPropertyTableValue),
            3521284610 => Some(Self::IfcPropertyTemplate),
            1482703590 => Some(Self::IfcPropertyTemplateDefinition),
            738039164 => Some(Self::IfcProtectiveDevice),
            2295281155 => Some(Self::IfcProtectiveDeviceTrippingUnit),
            655969474 => Some(Self::IfcProtectiveDeviceTrippingUnitType),
            1842657554 => Some(Self::IfcProtectiveDeviceType),
            3219374653 => Some(Self::IfcProxy),
            90941305 => Some(Self::IfcPump),
            2250791053 => Some(Self::IfcPumpType),
            2044713172 => Some(Self::IfcQuantityArea),
            2093928680 => Some(Self::IfcQuantityCount),
            931644368 => Some(Self::IfcQuantityLength),
            2090586900 => Some(Self::IfcQuantitySet),
            3252649465 => Some(Self::IfcQuantityTime),
            2405470396 => Some(Self::IfcQuantityVolume),
            825690147 => Some(Self::IfcQuantityWeight),
            2262370178 => Some(Self::IfcRailing),
            2893384427 => Some(Self::IfcRailingType),
            3024970846 => Some(Self::IfcRamp),
            3283111854 => Some(Self::IfcRampFlight),
            2324767716 => Some(Self::IfcRampFlightType),
            1469900589 => Some(Self::IfcRampType),
            1232101972 => Some(Self::IfcRationalBSplineCurveWithKnots),
            683857671 => Some(Self::IfcRationalBSplineSurfaceWithKnots),
            2770003689 => Some(Self::IfcRectangleHollowProfileDef),
            3615266464 => Some(Self::IfcRectangleProfileDef),
            2798486643 => Some(Self::IfcRectangularPyramid),
            3454111270 => Some(Self::IfcRectangularTrimmedSurface),
            3915482550 => Some(Self::IfcRecurrencePattern),
            2433181523 => Some(Self::IfcReference),
            4021432810 => Some(Self::IfcReferent),
            3413951693 => Some(Self::IfcRegularTimeSeries),
            1580146022 => Some(Self::IfcReinforcementBarProperties),
            3765753017 => Some(Self::IfcReinforcementDefinitionProperties),
            979691226 => Some(Self::IfcReinforcingBar),
            2572171363 => Some(Self::IfcReinforcingBarType),
            3027567501 => Some(Self::IfcReinforcingElement),
            964333572 => Some(Self::IfcReinforcingElementType),
            2320036040 => Some(Self::IfcReinforcingMesh),
            2310774935 => Some(Self::IfcReinforcingMeshType),
            160246688 => Some(Self::IfcRelAggregates),
            3939117080 => Some(Self::IfcRelAssigns),
            1683148259 => Some(Self::IfcRelAssignsToActor),
            2495723537 => Some(Self::IfcRelAssignsToControl),
            1307041759 => Some(Self::IfcRelAssignsToGroup),
            1027710054 => Some(Self::IfcRelAssignsToGroupByFactor),
            4278684876 => Some(Self::IfcRelAssignsToProcess),
            2857406711 => Some(Self::IfcRelAssignsToProduct),
            205026976 => Some(Self::IfcRelAssignsToResource),
            1865459582 => Some(Self::IfcRelAssociates),
            4095574036 => Some(Self::IfcRelAssociatesApproval),
            919958153 => Some(Self::IfcRelAssociatesClassification),
            2728634034 => Some(Self::IfcRelAssociatesConstraint),
            982818633 => Some(Self::IfcRelAssociatesDocument),
            3840914261 => Some(Self::IfcRelAssociatesLibrary),
            2655215786 => Some(Self::IfcRelAssociatesMaterial),
            826625072 => Some(Self::IfcRelConnects),
            1204542856 => Some(Self::IfcRelConnectsElements),
            3945020480 => Some(Self::IfcRelConnectsPathElements),
            4201705270 => Some(Self::IfcRelConnectsPortToElement),
            3190031847 => Some(Self::IfcRelConnectsPorts),
            2127690289 => Some(Self::IfcRelConnectsStructuralActivity),
            1638771189 => Some(Self::IfcRelConnectsStructuralMember),
            504942748 => Some(Self::IfcRelConnectsWithEccentricity),
            3678494232 => Some(Self::IfcRelConnectsWithRealizingElements),
            3242617779 => Some(Self::IfcRelContainedInSpatialStructure),
            886880790 => Some(Self::IfcRelCoversBldgElements),
            2802773753 => Some(Self::IfcRelCoversSpaces),
            2565941209 => Some(Self::IfcRelDeclares),
            2551354335 => Some(Self::IfcRelDecomposes),
            693640335 => Some(Self::IfcRelDefines),
            1462361463 => Some(Self::IfcRelDefinesByObject),
            4186316022 => Some(Self::IfcRelDefinesByProperties),
            307848117 => Some(Self::IfcRelDefinesByTemplate),
            781010003 => Some(Self::IfcRelDefinesByType),
            3940055652 => Some(Self::IfcRelFillsElement),
            279856033 => Some(Self::IfcRelFlowControlElements),
            427948657 => Some(Self::IfcRelInterferesElements),
            3268803585 => Some(Self::IfcRelNests),
            1441486842 => Some(Self::IfcRelPositions),
            750771296 => Some(Self::IfcRelProjectsElement),
            1245217292 => Some(Self::IfcRelReferencedInSpatialStructure),
            4122056220 => Some(Self::IfcRelSequence),
            366585022 => Some(Self::IfcRelServicesBuildings),
            3451746338 => Some(Self::IfcRelSpaceBoundary),
            3523091289 => Some(Self::IfcRelSpaceBoundary1stLevel),
            1521410863 => Some(Self::IfcRelSpaceBoundary2ndLevel),
            1401173127 => Some(Self::IfcRelVoidsElement),
            478536968 => Some(Self::IfcRelationship),
            816062949 => Some(Self::IfcReparametrisedCompositeCurveSegment),
            1076942058 => Some(Self::IfcRepresentation),
            3377609919 => Some(Self::IfcRepresentationContext),
            3008791417 => Some(Self::IfcRepresentationItem),
            1660063152 => Some(Self::IfcRepresentationMap),
            2914609552 => Some(Self::IfcResource),
            2943643501 => Some(Self::IfcResourceApprovalRelationship),
            1608871552 => Some(Self::IfcResourceConstraintRelationship),
            2439245199 => Some(Self::IfcResourceLevelRelationship),
            1042787934 => Some(Self::IfcResourceTime),
            1856042241 => Some(Self::IfcRevolvedAreaSolid),
            3243963512 => Some(Self::IfcRevolvedAreaSolidTapered),
            4158566097 => Some(Self::IfcRightCircularCone),
            3626867408 => Some(Self::IfcRightCircularCylinder),
            2016517767 => Some(Self::IfcRoof),
            2781568857 => Some(Self::IfcRoofType),
            2341007311 => Some(Self::IfcRoot),
            2778083089 => Some(Self::IfcRoundedRectangleProfileDef),
            448429030 => Some(Self::IfcSIUnit),
            3053780830 => Some(Self::IfcSanitaryTerminal),
            1768891740 => Some(Self::IfcSanitaryTerminalType),
            1054537805 => Some(Self::IfcSchedulingTime),
            2157484638 => Some(Self::IfcSeamCurve),
            2042790032 => Some(Self::IfcSectionProperties),
            4165799628 => Some(Self::IfcSectionReinforcementProperties),
            1862484736 => Some(Self::IfcSectionedSolid),
            1290935644 => Some(Self::IfcSectionedSolidHorizontal),
            1509187699 => Some(Self::IfcSectionedSpine),
            4086658281 => Some(Self::IfcSensor),
            1783015770 => Some(Self::IfcSensorType),
            1329646415 => Some(Self::IfcShadingDevice),
            4074543187 => Some(Self::IfcShadingDeviceType),
            867548509 => Some(Self::IfcShapeAspect),
            3982875396 => Some(Self::IfcShapeModel),
            4240577450 => Some(Self::IfcShapeRepresentation),
            4124623270 => Some(Self::IfcShellBasedSurfaceModel),
            3692461612 => Some(Self::IfcSimpleProperty),
            3663146110 => Some(Self::IfcSimplePropertyTemplate),
            4097777520 => Some(Self::IfcSite),
            1529196076 => Some(Self::IfcSlab),
            3127900445 => Some(Self::IfcSlabElementedCase),
            3027962421 => Some(Self::IfcSlabStandardCase),
            2533589738 => Some(Self::IfcSlabType),
            2609359061 => Some(Self::IfcSlippageConnectionCondition),
            3420628829 => Some(Self::IfcSolarDevice),
            1072016465 => Some(Self::IfcSolarDeviceType),
            723233188 => Some(Self::IfcSolidModel),
            3856911033 => Some(Self::IfcSpace),
            1999602285 => Some(Self::IfcSpaceHeater),
            1305183839 => Some(Self::IfcSpaceHeaterType),
            3812236995 => Some(Self::IfcSpaceType),
            1412071761 => Some(Self::IfcSpatialElement),
            710998568 => Some(Self::IfcSpatialElementType),
            2706606064 => Some(Self::IfcSpatialStructureElement),
            3893378262 => Some(Self::IfcSpatialStructureElementType),
            463610769 => Some(Self::IfcSpatialZone),
            2481509218 => Some(Self::IfcSpatialZoneType),
            451544542 => Some(Self::IfcSphere),
            4015995234 => Some(Self::IfcSphericalSurface),
            1404847402 => Some(Self::IfcStackTerminal),
            3112655638 => Some(Self::IfcStackTerminalType),
            331165859 => Some(Self::IfcStair),
            4252922144 => Some(Self::IfcStairFlight),
            1039846685 => Some(Self::IfcStairFlightType),
            338393293 => Some(Self::IfcStairType),
            682877961 => Some(Self::IfcStructuralAction),
            3544373492 => Some(Self::IfcStructuralActivity),
            2515109513 => Some(Self::IfcStructuralAnalysisModel),
            1179482911 => Some(Self::IfcStructuralConnection),
            2273995522 => Some(Self::IfcStructuralConnectionCondition),
            1004757350 => Some(Self::IfcStructuralCurveAction),
            4243806635 => Some(Self::IfcStructuralCurveConnection),
            214636428 => Some(Self::IfcStructuralCurveMember),
            2445595289 => Some(Self::IfcStructuralCurveMemberVarying),
            2757150158 => Some(Self::IfcStructuralCurveReaction),
            3136571912 => Some(Self::IfcStructuralItem),
            1807405624 => Some(Self::IfcStructuralLinearAction),
            2162789131 => Some(Self::IfcStructuralLoad),
            385403989 => Some(Self::IfcStructuralLoadCase),
            3478079324 => Some(Self::IfcStructuralLoadConfiguration),
            1252848954 => Some(Self::IfcStructuralLoadGroup),
            1595516126 => Some(Self::IfcStructuralLoadLinearForce),
            609421318 => Some(Self::IfcStructuralLoadOrResult),
            2668620305 => Some(Self::IfcStructuralLoadPlanarForce),
            2473145415 => Some(Self::IfcStructuralLoadSingleDisplacement),
            1973038258 => Some(Self::IfcStructuralLoadSingleDisplacementDistortion),
            1597423693 => Some(Self::IfcStructuralLoadSingleForce),
            1190533807 => Some(Self::IfcStructuralLoadSingleForceWarping),
            2525727697 => Some(Self::IfcStructuralLoadStatic),
            3408363356 => Some(Self::IfcStructuralLoadTemperature),
            530289379 => Some(Self::IfcStructuralMember),
            1621171031 => Some(Self::IfcStructuralPlanarAction),
            2082059205 => Some(Self::IfcStructuralPointAction),
            734778138 => Some(Self::IfcStructuralPointConnection),
            1235345126 => Some(Self::IfcStructuralPointReaction),
            3689010777 => Some(Self::IfcStructuralReaction),
            2986769608 => Some(Self::IfcStructuralResultGroup),
            3657597509 => Some(Self::IfcStructuralSurfaceAction),
            1975003073 => Some(Self::IfcStructuralSurfaceConnection),
            3979015343 => Some(Self::IfcStructuralSurfaceMember),
            2218152070 => Some(Self::IfcStructuralSurfaceMemberVarying),
            603775116 => Some(Self::IfcStructuralSurfaceReaction),
            2830218821 => Some(Self::IfcStyleModel),
            3958052878 => Some(Self::IfcStyledItem),
            3049322572 => Some(Self::IfcStyledRepresentation),
            148013059 => Some(Self::IfcSubContractResource),
            4095615324 => Some(Self::IfcSubContractResourceType),
            2233826070 => Some(Self::IfcSubedge),
            2513912981 => Some(Self::IfcSurface),
            699246055 => Some(Self::IfcSurfaceCurve),
            2028607225 => Some(Self::IfcSurfaceCurveSweptAreaSolid),
            3101698114 => Some(Self::IfcSurfaceFeature),
            2809605785 => Some(Self::IfcSurfaceOfLinearExtrusion),
            4124788165 => Some(Self::IfcSurfaceOfRevolution),
            2934153892 => Some(Self::IfcSurfaceReinforcementArea),
            1300840506 => Some(Self::IfcSurfaceStyle),
            3303107099 => Some(Self::IfcSurfaceStyleLighting),
            1607154358 => Some(Self::IfcSurfaceStyleRefraction),
            1878645084 => Some(Self::IfcSurfaceStyleRendering),
            846575682 => Some(Self::IfcSurfaceStyleShading),
            1351298697 => Some(Self::IfcSurfaceStyleWithTextures),
            626085974 => Some(Self::IfcSurfaceTexture),
            2247615214 => Some(Self::IfcSweptAreaSolid),
            1260650574 => Some(Self::IfcSweptDiskSolid),
            1096409881 => Some(Self::IfcSweptDiskSolidPolygonal),
            230924584 => Some(Self::IfcSweptSurface),
            1162798199 => Some(Self::IfcSwitchingDevice),
            2315554128 => Some(Self::IfcSwitchingDeviceType),
            2254336722 => Some(Self::IfcSystem),
            413509423 => Some(Self::IfcSystemFurnitureElement),
            1580310250 => Some(Self::IfcSystemFurnitureElementType),
            3071757647 => Some(Self::IfcTShapeProfileDef),
            985171141 => Some(Self::IfcTable),
            2043862942 => Some(Self::IfcTableColumn),
            531007025 => Some(Self::IfcTableRow),
            812556717 => Some(Self::IfcTank),
            5716631 => Some(Self::IfcTankType),
            3473067441 => Some(Self::IfcTask),
            1549132990 => Some(Self::IfcTaskTime),
            2771591690 => Some(Self::IfcTaskTimeRecurring),
            3206491090 => Some(Self::IfcTaskType),
            912023232 => Some(Self::IfcTelecomAddress),
            3824725483 => Some(Self::IfcTendon),
            2347447852 => Some(Self::IfcTendonAnchor),
            3081323446 => Some(Self::IfcTendonAnchorType),
            3663046924 => Some(Self::IfcTendonConduit),
            2281632017 => Some(Self::IfcTendonConduitType),
            2415094496 => Some(Self::IfcTendonType),
            2387106220 => Some(Self::IfcTessellatedFaceSet),
            901063453 => Some(Self::IfcTessellatedItem),
            4282788508 => Some(Self::IfcTextLiteral),
            3124975700 => Some(Self::IfcTextLiteralWithExtent),
            1447204868 => Some(Self::IfcTextStyle),
            1983826977 => Some(Self::IfcTextStyleFontModel),
            2636378356 => Some(Self::IfcTextStyleForDefinedFont),
            1640371178 => Some(Self::IfcTextStyleTextModel),
            280115917 => Some(Self::IfcTextureCoordinate),
            1742049831 => Some(Self::IfcTextureCoordinateGenerator),
            2552916305 => Some(Self::IfcTextureMap),
            1210645708 => Some(Self::IfcTextureVertex),
            3611470254 => Some(Self::IfcTextureVertexList),
            1199560280 => Some(Self::IfcTimePeriod),
            3101149627 => Some(Self::IfcTimeSeries),
            581633288 => Some(Self::IfcTimeSeriesValue),
            1377556343 => Some(Self::IfcTopologicalRepresentationItem),
            1735638870 => Some(Self::IfcTopologyRepresentation),
            1935646853 => Some(Self::IfcToroidalSurface),
            3825984169 => Some(Self::IfcTransformer),
            1692211062 => Some(Self::IfcTransformerType),
            2595432518 => Some(Self::IfcTransitionCurveSegment2D),
            1620046519 => Some(Self::IfcTransportElement),
            2097647324 => Some(Self::IfcTransportElementType),
            2715220739 => Some(Self::IfcTrapeziumProfileDef),
            2916149573 => Some(Self::IfcTriangulatedFaceSet),
            1229763772 => Some(Self::IfcTriangulatedIrregularNetwork),
            3593883385 => Some(Self::IfcTrimmedCurve),
            3026737570 => Some(Self::IfcTubeBundle),
            1600972822 => Some(Self::IfcTubeBundleType),
            1628702193 => Some(Self::IfcTypeObject),
            3736923433 => Some(Self::IfcTypeProcess),
            2347495698 => Some(Self::IfcTypeProduct),
            3698973494 => Some(Self::IfcTypeResource),
            427810014 => Some(Self::IfcUShapeProfileDef),
            180925521 => Some(Self::IfcUnitAssignment),
            630975310 => Some(Self::IfcUnitaryControlElement),
            3179687236 => Some(Self::IfcUnitaryControlElementType),
            4292641817 => Some(Self::IfcUnitaryEquipment),
            1911125066 => Some(Self::IfcUnitaryEquipmentType),
            4207607924 => Some(Self::IfcValve),
            728799441 => Some(Self::IfcValveType),
            1417489154 => Some(Self::IfcVector),
            2799835756 => Some(Self::IfcVertex),
            2759199220 => Some(Self::IfcVertexLoop),
            1907098498 => Some(Self::IfcVertexPoint),
            1530820697 => Some(Self::IfcVibrationDamper),
            3956297820 => Some(Self::IfcVibrationDamperType),
            2391383451 => Some(Self::IfcVibrationIsolator),
            3313531582 => Some(Self::IfcVibrationIsolatorType),
            2769231204 => Some(Self::IfcVirtualElement),
            891718957 => Some(Self::IfcVirtualGridIntersection),
            926996030 => Some(Self::IfcVoidingFeature),
            2391406946 => Some(Self::IfcWall),
            4156078855 => Some(Self::IfcWallElementedCase),
            3512223829 => Some(Self::IfcWallStandardCase),
            1898987631 => Some(Self::IfcWallType),
            4237592921 => Some(Self::IfcWasteTerminal),
            1133259667 => Some(Self::IfcWasteTerminalType),
            3304561284 => Some(Self::IfcWindow),
            336235671 => Some(Self::IfcWindowLiningProperties),
            512836454 => Some(Self::IfcWindowPanelProperties),
            486154966 => Some(Self::IfcWindowStandardCase),
            1299126871 => Some(Self::IfcWindowStyle),
            4009809668 => Some(Self::IfcWindowType),
            4088093105 => Some(Self::IfcWorkCalendar),
            1028945134 => Some(Self::IfcWorkControl),
            4218914973 => Some(Self::IfcWorkPlan),
            3342526732 => Some(Self::IfcWorkSchedule),
            1236880293 => Some(Self::IfcWorkTime),
            2543172580 => Some(Self::IfcZShapeProfileDef),
            1033361043 => Some(Self::IfcZone),
            _ => None,
        }
    }

    /// Get CRC32 type ID
    pub fn id(&self) -> u32 {
        match self {
            Self::IfcActionRequest => 3821786052,
            Self::IfcActor => 2296667514,
            Self::IfcActorRole => 3630933823,
            Self::IfcActuator => 4288193352,
            Self::IfcActuatorType => 2874132201,
            Self::IfcAddress => 618182010,
            Self::IfcAdvancedBrep => 1635779807,
            Self::IfcAdvancedBrepWithVoids => 2603310189,
            Self::IfcAdvancedFace => 3406155212,
            Self::IfcAirTerminal => 1634111441,
            Self::IfcAirTerminalBox => 177149247,
            Self::IfcAirTerminalBoxType => 1411407467,
            Self::IfcAirTerminalType => 3352864051,
            Self::IfcAirToAirHeatRecovery => 2056796094,
            Self::IfcAirToAirHeatRecoveryType => 1871374353,
            Self::IfcAlarm => 3087945054,
            Self::IfcAlarmType => 3001207471,
            Self::IfcAlignment => 325726236,
            Self::IfcAlignment2DHorizontal => 749761778,
            Self::IfcAlignment2DHorizontalSegment => 3199563722,
            Self::IfcAlignment2DSegment => 2483840362,
            Self::IfcAlignment2DVerSegCircularArc => 3379348081,
            Self::IfcAlignment2DVerSegLine => 3239324667,
            Self::IfcAlignment2DVerSegParabolicArc => 4263986512,
            Self::IfcAlignment2DVertical => 53199957,
            Self::IfcAlignment2DVerticalSegment => 2029264950,
            Self::IfcAlignmentCurve => 3512275521,
            Self::IfcAnnotation => 1674181508,
            Self::IfcAnnotationFillArea => 669184980,
            Self::IfcApplication => 639542469,
            Self::IfcAppliedValue => 411424972,
            Self::IfcApproval => 130549933,
            Self::IfcApprovalRelationship => 3869604511,
            Self::IfcArbitraryClosedProfileDef => 3798115385,
            Self::IfcArbitraryOpenProfileDef => 1310608509,
            Self::IfcArbitraryProfileDefWithVoids => 2705031697,
            Self::IfcAsset => 3460190687,
            Self::IfcAsymmetricIShapeProfileDef => 3207858831,
            Self::IfcAudioVisualAppliance => 277319702,
            Self::IfcAudioVisualApplianceType => 1532957894,
            Self::IfcAxis1Placement => 4261334040,
            Self::IfcAxis2Placement2D => 3125803723,
            Self::IfcAxis2Placement3D => 2740243338,
            Self::IfcBSplineCurve => 1967976161,
            Self::IfcBSplineCurveWithKnots => 2461110595,
            Self::IfcBSplineSurface => 2887950389,
            Self::IfcBSplineSurfaceWithKnots => 167062518,
            Self::IfcBeam => 753842376,
            Self::IfcBeamStandardCase => 2906023776,
            Self::IfcBeamType => 819618141,
            Self::IfcBearing => 4196446775,
            Self::IfcBearingType => 3649138523,
            Self::IfcBlobTexture => 616511568,
            Self::IfcBlock => 1334484129,
            Self::IfcBoiler => 32344328,
            Self::IfcBoilerType => 231477066,
            Self::IfcBooleanClippingResult => 3649129432,
            Self::IfcBooleanResult => 2736907675,
            Self::IfcBoundaryCondition => 4037036970,
            Self::IfcBoundaryCurve => 1136057603,
            Self::IfcBoundaryEdgeCondition => 1560379544,
            Self::IfcBoundaryFaceCondition => 3367102660,
            Self::IfcBoundaryNodeCondition => 1387855156,
            Self::IfcBoundaryNodeConditionWarping => 2069777674,
            Self::IfcBoundedCurve => 1260505505,
            Self::IfcBoundedSurface => 4182860854,
            Self::IfcBoundingBox => 2581212453,
            Self::IfcBoxedHalfSpace => 2713105998,
            Self::IfcBridge => 644574406,
            Self::IfcBridgePart => 963979645,
            Self::IfcBuilding => 4031249490,
            Self::IfcBuildingElement => 3299480353,
            Self::IfcBuildingElementPart => 2979338954,
            Self::IfcBuildingElementPartType => 39481116,
            Self::IfcBuildingElementProxy => 1095909175,
            Self::IfcBuildingElementProxyType => 1909888760,
            Self::IfcBuildingElementType => 1950629157,
            Self::IfcBuildingStorey => 3124254112,
            Self::IfcBuildingSystem => 1177604601,
            Self::IfcBurner => 2938176219,
            Self::IfcBurnerType => 2188180465,
            Self::IfcCShapeProfileDef => 2898889636,
            Self::IfcCableCarrierFitting => 635142910,
            Self::IfcCableCarrierFittingType => 395041908,
            Self::IfcCableCarrierSegment => 3758799889,
            Self::IfcCableCarrierSegmentType => 3293546465,
            Self::IfcCableFitting => 1051757585,
            Self::IfcCableFittingType => 2674252688,
            Self::IfcCableSegment => 4217484030,
            Self::IfcCableSegmentType => 1285652485,
            Self::IfcCaissonFoundation => 3999819293,
            Self::IfcCaissonFoundationType => 3203706013,
            Self::IfcCartesianPoint => 1123145078,
            Self::IfcCartesianPointList => 574549367,
            Self::IfcCartesianPointList2D => 1675464909,
            Self::IfcCartesianPointList3D => 2059837836,
            Self::IfcCartesianTransformationOperator => 59481748,
            Self::IfcCartesianTransformationOperator2D => 3749851601,
            Self::IfcCartesianTransformationOperator2DnonUniform => 3486308946,
            Self::IfcCartesianTransformationOperator3D => 3331915920,
            Self::IfcCartesianTransformationOperator3DnonUniform => 1416205885,
            Self::IfcCenterLineProfileDef => 3150382593,
            Self::IfcChiller => 3902619387,
            Self::IfcChillerType => 2951183804,
            Self::IfcChimney => 3296154744,
            Self::IfcChimneyType => 2197970202,
            Self::IfcCircle => 2611217952,
            Self::IfcCircleHollowProfileDef => 2937912522,
            Self::IfcCircleProfileDef => 1383045692,
            Self::IfcCircularArcSegment2D => 1062206242,
            Self::IfcCivilElement => 1677625105,
            Self::IfcCivilElementType => 3893394355,
            Self::IfcClassification => 747523909,
            Self::IfcClassificationReference => 647927063,
            Self::IfcClosedShell => 2205249479,
            Self::IfcCoil => 639361253,
            Self::IfcCoilType => 2301859152,
            Self::IfcColourRgb => 776857604,
            Self::IfcColourRgbList => 3285139300,
            Self::IfcColourSpecification => 3264961684,
            Self::IfcColumn => 843113511,
            Self::IfcColumnStandardCase => 905975707,
            Self::IfcColumnType => 300633059,
            Self::IfcCommunicationsAppliance => 3221913625,
            Self::IfcCommunicationsApplianceType => 400855858,
            Self::IfcComplexProperty => 2542286263,
            Self::IfcComplexPropertyTemplate => 3875453745,
            Self::IfcCompositeCurve => 3732776249,
            Self::IfcCompositeCurveOnSurface => 15328376,
            Self::IfcCompositeCurveSegment => 2485617015,
            Self::IfcCompositeProfileDef => 1485152156,
            Self::IfcCompressor => 3571504051,
            Self::IfcCompressorType => 3850581409,
            Self::IfcCondenser => 2272882330,
            Self::IfcCondenserType => 2816379211,
            Self::IfcConic => 2510884976,
            Self::IfcConnectedFaceSet => 370225590,
            Self::IfcConnectionCurveGeometry => 1981873012,
            Self::IfcConnectionGeometry => 2859738748,
            Self::IfcConnectionPointEccentricity => 45288368,
            Self::IfcConnectionPointGeometry => 2614616156,
            Self::IfcConnectionSurfaceGeometry => 2732653382,
            Self::IfcConnectionVolumeGeometry => 775493141,
            Self::IfcConstraint => 1959218052,
            Self::IfcConstructionEquipmentResource => 3898045240,
            Self::IfcConstructionEquipmentResourceType => 2185764099,
            Self::IfcConstructionMaterialResource => 1060000209,
            Self::IfcConstructionMaterialResourceType => 4105962743,
            Self::IfcConstructionProductResource => 488727124,
            Self::IfcConstructionProductResourceType => 1525564444,
            Self::IfcConstructionResource => 2559216714,
            Self::IfcConstructionResourceType => 2574617495,
            Self::IfcContext => 3419103109,
            Self::IfcContextDependentUnit => 3050246964,
            Self::IfcControl => 3293443760,
            Self::IfcController => 25142252,
            Self::IfcControllerType => 578613899,
            Self::IfcConversionBasedUnit => 2889183280,
            Self::IfcConversionBasedUnitWithOffset => 2713554722,
            Self::IfcCooledBeam => 4136498852,
            Self::IfcCooledBeamType => 335055490,
            Self::IfcCoolingTower => 3640358203,
            Self::IfcCoolingTowerType => 2954562838,
            Self::IfcCoordinateOperation => 1785450214,
            Self::IfcCoordinateReferenceSystem => 1466758467,
            Self::IfcCostItem => 3895139033,
            Self::IfcCostSchedule => 1419761937,
            Self::IfcCostValue => 602808272,
            Self::IfcCovering => 1973544240,
            Self::IfcCoveringType => 1916426348,
            Self::IfcCrewResource => 3295246426,
            Self::IfcCrewResourceType => 1815067380,
            Self::IfcCsgPrimitive3D => 2506170314,
            Self::IfcCsgSolid => 2147822146,
            Self::IfcCurrencyRelationship => 539742890,
            Self::IfcCurtainWall => 3495092785,
            Self::IfcCurtainWallType => 1457835157,
            Self::IfcCurve => 2601014836,
            Self::IfcCurveBoundedPlane => 2827736869,
            Self::IfcCurveBoundedSurface => 2629017746,
            Self::IfcCurveSegment2D => 1186437898,
            Self::IfcCurveStyle => 3800577675,
            Self::IfcCurveStyleFont => 1105321065,
            Self::IfcCurveStyleFontAndScaling => 2367409068,
            Self::IfcCurveStyleFontPattern => 3510044353,
            Self::IfcCylindricalSurface => 1213902940,
            Self::IfcDamper => 4074379575,
            Self::IfcDamperType => 3961806047,
            Self::IfcDeepFoundation => 3426335179,
            Self::IfcDeepFoundationType => 1306400036,
            Self::IfcDerivedProfileDef => 3632507154,
            Self::IfcDerivedUnit => 1765591967,
            Self::IfcDerivedUnitElement => 1045800335,
            Self::IfcDimensionalExponents => 2949456006,
            Self::IfcDirection => 32440307,
            Self::IfcDiscreteAccessory => 1335981549,
            Self::IfcDiscreteAccessoryType => 2635815018,
            Self::IfcDistanceExpression => 1945343521,
            Self::IfcDistributionChamberElement => 1052013943,
            Self::IfcDistributionChamberElementType => 1599208980,
            Self::IfcDistributionCircuit => 562808652,
            Self::IfcDistributionControlElement => 1062813311,
            Self::IfcDistributionControlElementType => 2063403501,
            Self::IfcDistributionElement => 1945004755,
            Self::IfcDistributionElementType => 3256556792,
            Self::IfcDistributionFlowElement => 3040386961,
            Self::IfcDistributionFlowElementType => 3849074793,
            Self::IfcDistributionPort => 3041715199,
            Self::IfcDistributionSystem => 3205830791,
            Self::IfcDocumentInformation => 1154170062,
            Self::IfcDocumentInformationRelationship => 770865208,
            Self::IfcDocumentReference => 3732053477,
            Self::IfcDoor => 395920057,
            Self::IfcDoorLiningProperties => 2963535650,
            Self::IfcDoorPanelProperties => 1714330368,
            Self::IfcDoorStandardCase => 3242481149,
            Self::IfcDoorStyle => 526551008,
            Self::IfcDoorType => 2323601079,
            Self::IfcDraughtingPreDefinedColour => 445594917,
            Self::IfcDraughtingPreDefinedCurveFont => 4006246654,
            Self::IfcDuctFitting => 342316401,
            Self::IfcDuctFittingType => 869906466,
            Self::IfcDuctSegment => 3518393246,
            Self::IfcDuctSegmentType => 3760055223,
            Self::IfcDuctSilencer => 1360408905,
            Self::IfcDuctSilencerType => 2030761528,
            Self::IfcEdge => 3900360178,
            Self::IfcEdgeCurve => 476780140,
            Self::IfcEdgeLoop => 1472233963,
            Self::IfcElectricAppliance => 1904799276,
            Self::IfcElectricApplianceType => 663422040,
            Self::IfcElectricDistributionBoard => 862014818,
            Self::IfcElectricDistributionBoardType => 2417008758,
            Self::IfcElectricFlowStorageDevice => 3310460725,
            Self::IfcElectricFlowStorageDeviceType => 3277789161,
            Self::IfcElectricGenerator => 264262732,
            Self::IfcElectricGeneratorType => 1534661035,
            Self::IfcElectricMotor => 402227799,
            Self::IfcElectricMotorType => 1217240411,
            Self::IfcElectricTimeControl => 1003880860,
            Self::IfcElectricTimeControlType => 712377611,
            Self::IfcElement => 1758889154,
            Self::IfcElementAssembly => 4123344466,
            Self::IfcElementAssemblyType => 2397081782,
            Self::IfcElementComponent => 1623761950,
            Self::IfcElementComponentType => 2590856083,
            Self::IfcElementQuantity => 1883228015,
            Self::IfcElementType => 339256511,
            Self::IfcElementarySurface => 2777663545,
            Self::IfcEllipse => 1704287377,
            Self::IfcEllipseProfileDef => 2835456948,
            Self::IfcEnergyConversionDevice => 1658829314,
            Self::IfcEnergyConversionDeviceType => 2107101300,
            Self::IfcEngine => 2814081492,
            Self::IfcEngineType => 132023988,
            Self::IfcEvaporativeCooler => 3747195512,
            Self::IfcEvaporativeCoolerType => 3174744832,
            Self::IfcEvaporator => 484807127,
            Self::IfcEvaporatorType => 3390157468,
            Self::IfcEvent => 4148101412,
            Self::IfcEventTime => 211053100,
            Self::IfcEventType => 4024345920,
            Self::IfcExtendedProperties => 297599258,
            Self::IfcExternalInformation => 4294318154,
            Self::IfcExternalReference => 3200245327,
            Self::IfcExternalReferenceRelationship => 1437805879,
            Self::IfcExternalSpatialElement => 1209101575,
            Self::IfcExternalSpatialStructureElement => 2853485674,
            Self::IfcExternallyDefinedHatchStyle => 2242383968,
            Self::IfcExternallyDefinedSurfaceStyle => 1040185647,
            Self::IfcExternallyDefinedTextFont => 3548104201,
            Self::IfcExtrudedAreaSolid => 477187591,
            Self::IfcExtrudedAreaSolidTapered => 2804161546,
            Self::IfcFace => 2556980723,
            Self::IfcFaceBasedSurfaceModel => 2047409740,
            Self::IfcFaceBound => 1809719519,
            Self::IfcFaceOuterBound => 803316827,
            Self::IfcFaceSurface => 3008276851,
            Self::IfcFacetedBrep => 807026263,
            Self::IfcFacetedBrepWithVoids => 3737207727,
            Self::IfcFacility => 24185140,
            Self::IfcFacilityPart => 1310830890,
            Self::IfcFailureConnectionCondition => 4219587988,
            Self::IfcFan => 3415622556,
            Self::IfcFanType => 346874300,
            Self::IfcFastener => 647756555,
            Self::IfcFastenerType => 2489546625,
            Self::IfcFeatureElement => 2827207264,
            Self::IfcFeatureElementAddition => 2143335405,
            Self::IfcFeatureElementSubtraction => 1287392070,
            Self::IfcFillAreaStyle => 738692330,
            Self::IfcFillAreaStyleHatching => 374418227,
            Self::IfcFillAreaStyleTiles => 315944413,
            Self::IfcFilter => 819412036,
            Self::IfcFilterType => 1810631287,
            Self::IfcFireSuppressionTerminal => 1426591983,
            Self::IfcFireSuppressionTerminalType => 4222183408,
            Self::IfcFixedReferenceSweptAreaSolid => 2652556860,
            Self::IfcFlowController => 2058353004,
            Self::IfcFlowControllerType => 3907093117,
            Self::IfcFlowFitting => 4278956645,
            Self::IfcFlowFittingType => 3198132628,
            Self::IfcFlowInstrument => 182646315,
            Self::IfcFlowInstrumentType => 4037862832,
            Self::IfcFlowMeter => 2188021234,
            Self::IfcFlowMeterType => 3815607619,
            Self::IfcFlowMovingDevice => 3132237377,
            Self::IfcFlowMovingDeviceType => 1482959167,
            Self::IfcFlowSegment => 987401354,
            Self::IfcFlowSegmentType => 1834744321,
            Self::IfcFlowStorageDevice => 707683696,
            Self::IfcFlowStorageDeviceType => 1339347760,
            Self::IfcFlowTerminal => 2223149337,
            Self::IfcFlowTerminalType => 2297155007,
            Self::IfcFlowTreatmentDevice => 3508470533,
            Self::IfcFlowTreatmentDeviceType => 3009222698,
            Self::IfcFooting => 900683007,
            Self::IfcFootingType => 1893162501,
            Self::IfcFurnishingElement => 263784265,
            Self::IfcFurnishingElementType => 4238390223,
            Self::IfcFurniture => 1509553395,
            Self::IfcFurnitureType => 1268542332,
            Self::IfcGeographicElement => 3493046030,
            Self::IfcGeographicElementType => 4095422895,
            Self::IfcGeometricCurveSet => 987898635,
            Self::IfcGeometricRepresentationContext => 3448662350,
            Self::IfcGeometricRepresentationItem => 2453401579,
            Self::IfcGeometricRepresentationSubContext => 4142052618,
            Self::IfcGeometricSet => 3590301190,
            Self::IfcGrid => 3009204131,
            Self::IfcGridAxis => 852622518,
            Self::IfcGridPlacement => 178086475,
            Self::IfcGroup => 2706460486,
            Self::IfcHalfSpaceSolid => 812098782,
            Self::IfcHeatExchanger => 3319311131,
            Self::IfcHeatExchangerType => 1251058090,
            Self::IfcHumidifier => 2068733104,
            Self::IfcHumidifierType => 1806887404,
            Self::IfcIShapeProfileDef => 1484403080,
            Self::IfcImageTexture => 3905492369,
            Self::IfcIndexedColourMap => 3570813810,
            Self::IfcIndexedPolyCurve => 2571569899,
            Self::IfcIndexedPolygonalFace => 178912537,
            Self::IfcIndexedPolygonalFaceWithVoids => 2294589976,
            Self::IfcIndexedTextureMap => 1437953363,
            Self::IfcIndexedTriangleTextureMap => 2133299955,
            Self::IfcInterceptor => 4175244083,
            Self::IfcInterceptorType => 3946677679,
            Self::IfcIntersectionCurve => 3113134337,
            Self::IfcInventory => 2391368822,
            Self::IfcIrregularTimeSeries => 3741457305,
            Self::IfcIrregularTimeSeriesValue => 3020489413,
            Self::IfcJunctionBox => 2176052936,
            Self::IfcJunctionBoxType => 4288270099,
            Self::IfcLShapeProfileDef => 572779678,
            Self::IfcLaborResource => 3827777499,
            Self::IfcLaborResourceType => 428585644,
            Self::IfcLagTime => 1585845231,
            Self::IfcLamp => 76236018,
            Self::IfcLampType => 1051575348,
            Self::IfcLibraryInformation => 2655187982,
            Self::IfcLibraryReference => 3452421091,
            Self::IfcLightDistributionData => 4162380809,
            Self::IfcLightFixture => 629592764,
            Self::IfcLightFixtureType => 1161773419,
            Self::IfcLightIntensityDistribution => 1566485204,
            Self::IfcLightSource => 1402838566,
            Self::IfcLightSourceAmbient => 125510826,
            Self::IfcLightSourceDirectional => 2604431987,
            Self::IfcLightSourceGoniometric => 4266656042,
            Self::IfcLightSourcePositional => 1520743889,
            Self::IfcLightSourceSpot => 3422422726,
            Self::IfcLine => 1281925730,
            Self::IfcLineSegment2D => 3092502836,
            Self::IfcLinearPlacement => 388784114,
            Self::IfcLinearPositioningElement => 1154579445,
            Self::IfcLocalPlacement => 2624227202,
            Self::IfcLoop => 1008929658,
            Self::IfcManifoldSolidBrep => 1425443689,
            Self::IfcMapConversion => 3057273783,
            Self::IfcMappedItem => 2347385850,
            Self::IfcMaterial => 1838606355,
            Self::IfcMaterialClassificationRelationship => 1847130766,
            Self::IfcMaterialConstituent => 3708119000,
            Self::IfcMaterialConstituentSet => 2852063980,
            Self::IfcMaterialDefinition => 760658860,
            Self::IfcMaterialDefinitionRepresentation => 2022407955,
            Self::IfcMaterialLayer => 248100487,
            Self::IfcMaterialLayerSet => 3303938423,
            Self::IfcMaterialLayerSetUsage => 1303795690,
            Self::IfcMaterialLayerWithOffsets => 1847252529,
            Self::IfcMaterialList => 2199411900,
            Self::IfcMaterialProfile => 2235152071,
            Self::IfcMaterialProfileSet => 164193824,
            Self::IfcMaterialProfileSetUsage => 3079605661,
            Self::IfcMaterialProfileSetUsageTapering => 3404854881,
            Self::IfcMaterialProfileWithOffsets => 552965576,
            Self::IfcMaterialProperties => 3265635763,
            Self::IfcMaterialRelationship => 853536259,
            Self::IfcMaterialUsageDefinition => 1507914824,
            Self::IfcMeasureWithUnit => 2597039031,
            Self::IfcMechanicalFastener => 377706215,
            Self::IfcMechanicalFastenerType => 2108223431,
            Self::IfcMedicalDevice => 1437502449,
            Self::IfcMedicalDeviceType => 1114901282,
            Self::IfcMember => 1073191201,
            Self::IfcMemberStandardCase => 1911478936,
            Self::IfcMemberType => 3181161470,
            Self::IfcMetric => 3368373690,
            Self::IfcMirroredProfileDef => 2998442950,
            Self::IfcMonetaryUnit => 2706619895,
            Self::IfcMotorConnection => 2474470126,
            Self::IfcMotorConnectionType => 977012517,
            Self::IfcNamedUnit => 1918398963,
            Self::IfcObject => 3888040117,
            Self::IfcObjectDefinition => 219451334,
            Self::IfcObjectPlacement => 3701648758,
            Self::IfcObjective => 2251480897,
            Self::IfcOccupant => 4143007308,
            Self::IfcOffsetCurve => 590820931,
            Self::IfcOffsetCurve2D => 3388369263,
            Self::IfcOffsetCurve3D => 3505215534,
            Self::IfcOffsetCurveByDistances => 2485787929,
            Self::IfcOpenShell => 2665983363,
            Self::IfcOpeningElement => 3588315303,
            Self::IfcOpeningStandardCase => 3079942009,
            Self::IfcOrganization => 4251960020,
            Self::IfcOrganizationRelationship => 1411181986,
            Self::IfcOrientationExpression => 643959842,
            Self::IfcOrientedEdge => 1029017970,
            Self::IfcOuterBoundaryCurve => 144952367,
            Self::IfcOutlet => 3694346114,
            Self::IfcOutletType => 2837617999,
            Self::IfcOwnerHistory => 1207048766,
            Self::IfcParameterizedProfileDef => 2529465313,
            Self::IfcPath => 2519244187,
            Self::IfcPcurve => 1682466193,
            Self::IfcPerformanceHistory => 2382730787,
            Self::IfcPermeableCoveringProperties => 3566463478,
            Self::IfcPermit => 3327091369,
            Self::IfcPerson => 2077209135,
            Self::IfcPersonAndOrganization => 101040310,
            Self::IfcPhysicalComplexQuantity => 3021840470,
            Self::IfcPhysicalQuantity => 2483315170,
            Self::IfcPhysicalSimpleQuantity => 2226359599,
            Self::IfcPile => 1687234759,
            Self::IfcPileType => 1158309216,
            Self::IfcPipeFitting => 310824031,
            Self::IfcPipeFittingType => 804291784,
            Self::IfcPipeSegment => 3612865200,
            Self::IfcPipeSegmentType => 4231323485,
            Self::IfcPixelTexture => 597895409,
            Self::IfcPlacement => 2004835150,
            Self::IfcPlanarBox => 603570806,
            Self::IfcPlanarExtent => 1663979128,
            Self::IfcPlane => 220341763,
            Self::IfcPlate => 3171933400,
            Self::IfcPlateStandardCase => 1156407060,
            Self::IfcPlateType => 4017108033,
            Self::IfcPoint => 2067069095,
            Self::IfcPointOnCurve => 4022376103,
            Self::IfcPointOnSurface => 1423911732,
            Self::IfcPolyLoop => 2924175390,
            Self::IfcPolygonalBoundedHalfSpace => 2775532180,
            Self::IfcPolygonalFaceSet => 2839578677,
            Self::IfcPolyline => 3724593414,
            Self::IfcPort => 3740093272,
            Self::IfcPositioningElement => 1946335990,
            Self::IfcPostalAddress => 3355820592,
            Self::IfcPreDefinedColour => 759155922,
            Self::IfcPreDefinedCurveFont => 2559016684,
            Self::IfcPreDefinedItem => 3727388367,
            Self::IfcPreDefinedProperties => 3778827333,
            Self::IfcPreDefinedPropertySet => 3967405729,
            Self::IfcPreDefinedTextFont => 1775413392,
            Self::IfcPresentationItem => 677532197,
            Self::IfcPresentationLayerAssignment => 2022622350,
            Self::IfcPresentationLayerWithStyle => 1304840413,
            Self::IfcPresentationStyle => 3119450353,
            Self::IfcPresentationStyleAssignment => 2417041796,
            Self::IfcProcedure => 2744685151,
            Self::IfcProcedureType => 569719735,
            Self::IfcProcess => 2945172077,
            Self::IfcProduct => 4208778838,
            Self::IfcProductDefinitionShape => 673634403,
            Self::IfcProductRepresentation => 2095639259,
            Self::IfcProfileDef => 3958567839,
            Self::IfcProfileProperties => 2802850158,
            Self::IfcProject => 103090709,
            Self::IfcProjectLibrary => 653396225,
            Self::IfcProjectOrder => 2904328755,
            Self::IfcProjectedCRS => 3843373140,
            Self::IfcProjectionElement => 3651124850,
            Self::IfcProperty => 2598011224,
            Self::IfcPropertyAbstraction => 986844984,
            Self::IfcPropertyBoundedValue => 871118103,
            Self::IfcPropertyDefinition => 1680319473,
            Self::IfcPropertyDependencyRelationship => 148025276,
            Self::IfcPropertyEnumeratedValue => 4166981789,
            Self::IfcPropertyEnumeration => 3710013099,
            Self::IfcPropertyListValue => 2752243245,
            Self::IfcPropertyReferenceValue => 941946838,
            Self::IfcPropertySet => 1451395588,
            Self::IfcPropertySetDefinition => 3357820518,
            Self::IfcPropertySetTemplate => 492091185,
            Self::IfcPropertySingleValue => 3650150729,
            Self::IfcPropertyTableValue => 110355661,
            Self::IfcPropertyTemplate => 3521284610,
            Self::IfcPropertyTemplateDefinition => 1482703590,
            Self::IfcProtectiveDevice => 738039164,
            Self::IfcProtectiveDeviceTrippingUnit => 2295281155,
            Self::IfcProtectiveDeviceTrippingUnitType => 655969474,
            Self::IfcProtectiveDeviceType => 1842657554,
            Self::IfcProxy => 3219374653,
            Self::IfcPump => 90941305,
            Self::IfcPumpType => 2250791053,
            Self::IfcQuantityArea => 2044713172,
            Self::IfcQuantityCount => 2093928680,
            Self::IfcQuantityLength => 931644368,
            Self::IfcQuantitySet => 2090586900,
            Self::IfcQuantityTime => 3252649465,
            Self::IfcQuantityVolume => 2405470396,
            Self::IfcQuantityWeight => 825690147,
            Self::IfcRailing => 2262370178,
            Self::IfcRailingType => 2893384427,
            Self::IfcRamp => 3024970846,
            Self::IfcRampFlight => 3283111854,
            Self::IfcRampFlightType => 2324767716,
            Self::IfcRampType => 1469900589,
            Self::IfcRationalBSplineCurveWithKnots => 1232101972,
            Self::IfcRationalBSplineSurfaceWithKnots => 683857671,
            Self::IfcRectangleHollowProfileDef => 2770003689,
            Self::IfcRectangleProfileDef => 3615266464,
            Self::IfcRectangularPyramid => 2798486643,
            Self::IfcRectangularTrimmedSurface => 3454111270,
            Self::IfcRecurrencePattern => 3915482550,
            Self::IfcReference => 2433181523,
            Self::IfcReferent => 4021432810,
            Self::IfcRegularTimeSeries => 3413951693,
            Self::IfcReinforcementBarProperties => 1580146022,
            Self::IfcReinforcementDefinitionProperties => 3765753017,
            Self::IfcReinforcingBar => 979691226,
            Self::IfcReinforcingBarType => 2572171363,
            Self::IfcReinforcingElement => 3027567501,
            Self::IfcReinforcingElementType => 964333572,
            Self::IfcReinforcingMesh => 2320036040,
            Self::IfcReinforcingMeshType => 2310774935,
            Self::IfcRelAggregates => 160246688,
            Self::IfcRelAssigns => 3939117080,
            Self::IfcRelAssignsToActor => 1683148259,
            Self::IfcRelAssignsToControl => 2495723537,
            Self::IfcRelAssignsToGroup => 1307041759,
            Self::IfcRelAssignsToGroupByFactor => 1027710054,
            Self::IfcRelAssignsToProcess => 4278684876,
            Self::IfcRelAssignsToProduct => 2857406711,
            Self::IfcRelAssignsToResource => 205026976,
            Self::IfcRelAssociates => 1865459582,
            Self::IfcRelAssociatesApproval => 4095574036,
            Self::IfcRelAssociatesClassification => 919958153,
            Self::IfcRelAssociatesConstraint => 2728634034,
            Self::IfcRelAssociatesDocument => 982818633,
            Self::IfcRelAssociatesLibrary => 3840914261,
            Self::IfcRelAssociatesMaterial => 2655215786,
            Self::IfcRelConnects => 826625072,
            Self::IfcRelConnectsElements => 1204542856,
            Self::IfcRelConnectsPathElements => 3945020480,
            Self::IfcRelConnectsPortToElement => 4201705270,
            Self::IfcRelConnectsPorts => 3190031847,
            Self::IfcRelConnectsStructuralActivity => 2127690289,
            Self::IfcRelConnectsStructuralMember => 1638771189,
            Self::IfcRelConnectsWithEccentricity => 504942748,
            Self::IfcRelConnectsWithRealizingElements => 3678494232,
            Self::IfcRelContainedInSpatialStructure => 3242617779,
            Self::IfcRelCoversBldgElements => 886880790,
            Self::IfcRelCoversSpaces => 2802773753,
            Self::IfcRelDeclares => 2565941209,
            Self::IfcRelDecomposes => 2551354335,
            Self::IfcRelDefines => 693640335,
            Self::IfcRelDefinesByObject => 1462361463,
            Self::IfcRelDefinesByProperties => 4186316022,
            Self::IfcRelDefinesByTemplate => 307848117,
            Self::IfcRelDefinesByType => 781010003,
            Self::IfcRelFillsElement => 3940055652,
            Self::IfcRelFlowControlElements => 279856033,
            Self::IfcRelInterferesElements => 427948657,
            Self::IfcRelNests => 3268803585,
            Self::IfcRelPositions => 1441486842,
            Self::IfcRelProjectsElement => 750771296,
            Self::IfcRelReferencedInSpatialStructure => 1245217292,
            Self::IfcRelSequence => 4122056220,
            Self::IfcRelServicesBuildings => 366585022,
            Self::IfcRelSpaceBoundary => 3451746338,
            Self::IfcRelSpaceBoundary1stLevel => 3523091289,
            Self::IfcRelSpaceBoundary2ndLevel => 1521410863,
            Self::IfcRelVoidsElement => 1401173127,
            Self::IfcRelationship => 478536968,
            Self::IfcReparametrisedCompositeCurveSegment => 816062949,
            Self::IfcRepresentation => 1076942058,
            Self::IfcRepresentationContext => 3377609919,
            Self::IfcRepresentationItem => 3008791417,
            Self::IfcRepresentationMap => 1660063152,
            Self::IfcResource => 2914609552,
            Self::IfcResourceApprovalRelationship => 2943643501,
            Self::IfcResourceConstraintRelationship => 1608871552,
            Self::IfcResourceLevelRelationship => 2439245199,
            Self::IfcResourceTime => 1042787934,
            Self::IfcRevolvedAreaSolid => 1856042241,
            Self::IfcRevolvedAreaSolidTapered => 3243963512,
            Self::IfcRightCircularCone => 4158566097,
            Self::IfcRightCircularCylinder => 3626867408,
            Self::IfcRoof => 2016517767,
            Self::IfcRoofType => 2781568857,
            Self::IfcRoot => 2341007311,
            Self::IfcRoundedRectangleProfileDef => 2778083089,
            Self::IfcSIUnit => 448429030,
            Self::IfcSanitaryTerminal => 3053780830,
            Self::IfcSanitaryTerminalType => 1768891740,
            Self::IfcSchedulingTime => 1054537805,
            Self::IfcSeamCurve => 2157484638,
            Self::IfcSectionProperties => 2042790032,
            Self::IfcSectionReinforcementProperties => 4165799628,
            Self::IfcSectionedSolid => 1862484736,
            Self::IfcSectionedSolidHorizontal => 1290935644,
            Self::IfcSectionedSpine => 1509187699,
            Self::IfcSensor => 4086658281,
            Self::IfcSensorType => 1783015770,
            Self::IfcShadingDevice => 1329646415,
            Self::IfcShadingDeviceType => 4074543187,
            Self::IfcShapeAspect => 867548509,
            Self::IfcShapeModel => 3982875396,
            Self::IfcShapeRepresentation => 4240577450,
            Self::IfcShellBasedSurfaceModel => 4124623270,
            Self::IfcSimpleProperty => 3692461612,
            Self::IfcSimplePropertyTemplate => 3663146110,
            Self::IfcSite => 4097777520,
            Self::IfcSlab => 1529196076,
            Self::IfcSlabElementedCase => 3127900445,
            Self::IfcSlabStandardCase => 3027962421,
            Self::IfcSlabType => 2533589738,
            Self::IfcSlippageConnectionCondition => 2609359061,
            Self::IfcSolarDevice => 3420628829,
            Self::IfcSolarDeviceType => 1072016465,
            Self::IfcSolidModel => 723233188,
            Self::IfcSpace => 3856911033,
            Self::IfcSpaceHeater => 1999602285,
            Self::IfcSpaceHeaterType => 1305183839,
            Self::IfcSpaceType => 3812236995,
            Self::IfcSpatialElement => 1412071761,
            Self::IfcSpatialElementType => 710998568,
            Self::IfcSpatialStructureElement => 2706606064,
            Self::IfcSpatialStructureElementType => 3893378262,
            Self::IfcSpatialZone => 463610769,
            Self::IfcSpatialZoneType => 2481509218,
            Self::IfcSphere => 451544542,
            Self::IfcSphericalSurface => 4015995234,
            Self::IfcStackTerminal => 1404847402,
            Self::IfcStackTerminalType => 3112655638,
            Self::IfcStair => 331165859,
            Self::IfcStairFlight => 4252922144,
            Self::IfcStairFlightType => 1039846685,
            Self::IfcStairType => 338393293,
            Self::IfcStructuralAction => 682877961,
            Self::IfcStructuralActivity => 3544373492,
            Self::IfcStructuralAnalysisModel => 2515109513,
            Self::IfcStructuralConnection => 1179482911,
            Self::IfcStructuralConnectionCondition => 2273995522,
            Self::IfcStructuralCurveAction => 1004757350,
            Self::IfcStructuralCurveConnection => 4243806635,
            Self::IfcStructuralCurveMember => 214636428,
            Self::IfcStructuralCurveMemberVarying => 2445595289,
            Self::IfcStructuralCurveReaction => 2757150158,
            Self::IfcStructuralItem => 3136571912,
            Self::IfcStructuralLinearAction => 1807405624,
            Self::IfcStructuralLoad => 2162789131,
            Self::IfcStructuralLoadCase => 385403989,
            Self::IfcStructuralLoadConfiguration => 3478079324,
            Self::IfcStructuralLoadGroup => 1252848954,
            Self::IfcStructuralLoadLinearForce => 1595516126,
            Self::IfcStructuralLoadOrResult => 609421318,
            Self::IfcStructuralLoadPlanarForce => 2668620305,
            Self::IfcStructuralLoadSingleDisplacement => 2473145415,
            Self::IfcStructuralLoadSingleDisplacementDistortion => 1973038258,
            Self::IfcStructuralLoadSingleForce => 1597423693,
            Self::IfcStructuralLoadSingleForceWarping => 1190533807,
            Self::IfcStructuralLoadStatic => 2525727697,
            Self::IfcStructuralLoadTemperature => 3408363356,
            Self::IfcStructuralMember => 530289379,
            Self::IfcStructuralPlanarAction => 1621171031,
            Self::IfcStructuralPointAction => 2082059205,
            Self::IfcStructuralPointConnection => 734778138,
            Self::IfcStructuralPointReaction => 1235345126,
            Self::IfcStructuralReaction => 3689010777,
            Self::IfcStructuralResultGroup => 2986769608,
            Self::IfcStructuralSurfaceAction => 3657597509,
            Self::IfcStructuralSurfaceConnection => 1975003073,
            Self::IfcStructuralSurfaceMember => 3979015343,
            Self::IfcStructuralSurfaceMemberVarying => 2218152070,
            Self::IfcStructuralSurfaceReaction => 603775116,
            Self::IfcStyleModel => 2830218821,
            Self::IfcStyledItem => 3958052878,
            Self::IfcStyledRepresentation => 3049322572,
            Self::IfcSubContractResource => 148013059,
            Self::IfcSubContractResourceType => 4095615324,
            Self::IfcSubedge => 2233826070,
            Self::IfcSurface => 2513912981,
            Self::IfcSurfaceCurve => 699246055,
            Self::IfcSurfaceCurveSweptAreaSolid => 2028607225,
            Self::IfcSurfaceFeature => 3101698114,
            Self::IfcSurfaceOfLinearExtrusion => 2809605785,
            Self::IfcSurfaceOfRevolution => 4124788165,
            Self::IfcSurfaceReinforcementArea => 2934153892,
            Self::IfcSurfaceStyle => 1300840506,
            Self::IfcSurfaceStyleLighting => 3303107099,
            Self::IfcSurfaceStyleRefraction => 1607154358,
            Self::IfcSurfaceStyleRendering => 1878645084,
            Self::IfcSurfaceStyleShading => 846575682,
            Self::IfcSurfaceStyleWithTextures => 1351298697,
            Self::IfcSurfaceTexture => 626085974,
            Self::IfcSweptAreaSolid => 2247615214,
            Self::IfcSweptDiskSolid => 1260650574,
            Self::IfcSweptDiskSolidPolygonal => 1096409881,
            Self::IfcSweptSurface => 230924584,
            Self::IfcSwitchingDevice => 1162798199,
            Self::IfcSwitchingDeviceType => 2315554128,
            Self::IfcSystem => 2254336722,
            Self::IfcSystemFurnitureElement => 413509423,
            Self::IfcSystemFurnitureElementType => 1580310250,
            Self::IfcTShapeProfileDef => 3071757647,
            Self::IfcTable => 985171141,
            Self::IfcTableColumn => 2043862942,
            Self::IfcTableRow => 531007025,
            Self::IfcTank => 812556717,
            Self::IfcTankType => 5716631,
            Self::IfcTask => 3473067441,
            Self::IfcTaskTime => 1549132990,
            Self::IfcTaskTimeRecurring => 2771591690,
            Self::IfcTaskType => 3206491090,
            Self::IfcTelecomAddress => 912023232,
            Self::IfcTendon => 3824725483,
            Self::IfcTendonAnchor => 2347447852,
            Self::IfcTendonAnchorType => 3081323446,
            Self::IfcTendonConduit => 3663046924,
            Self::IfcTendonConduitType => 2281632017,
            Self::IfcTendonType => 2415094496,
            Self::IfcTessellatedFaceSet => 2387106220,
            Self::IfcTessellatedItem => 901063453,
            Self::IfcTextLiteral => 4282788508,
            Self::IfcTextLiteralWithExtent => 3124975700,
            Self::IfcTextStyle => 1447204868,
            Self::IfcTextStyleFontModel => 1983826977,
            Self::IfcTextStyleForDefinedFont => 2636378356,
            Self::IfcTextStyleTextModel => 1640371178,
            Self::IfcTextureCoordinate => 280115917,
            Self::IfcTextureCoordinateGenerator => 1742049831,
            Self::IfcTextureMap => 2552916305,
            Self::IfcTextureVertex => 1210645708,
            Self::IfcTextureVertexList => 3611470254,
            Self::IfcTimePeriod => 1199560280,
            Self::IfcTimeSeries => 3101149627,
            Self::IfcTimeSeriesValue => 581633288,
            Self::IfcTopologicalRepresentationItem => 1377556343,
            Self::IfcTopologyRepresentation => 1735638870,
            Self::IfcToroidalSurface => 1935646853,
            Self::IfcTransformer => 3825984169,
            Self::IfcTransformerType => 1692211062,
            Self::IfcTransitionCurveSegment2D => 2595432518,
            Self::IfcTransportElement => 1620046519,
            Self::IfcTransportElementType => 2097647324,
            Self::IfcTrapeziumProfileDef => 2715220739,
            Self::IfcTriangulatedFaceSet => 2916149573,
            Self::IfcTriangulatedIrregularNetwork => 1229763772,
            Self::IfcTrimmedCurve => 3593883385,
            Self::IfcTubeBundle => 3026737570,
            Self::IfcTubeBundleType => 1600972822,
            Self::IfcTypeObject => 1628702193,
            Self::IfcTypeProcess => 3736923433,
            Self::IfcTypeProduct => 2347495698,
            Self::IfcTypeResource => 3698973494,
            Self::IfcUShapeProfileDef => 427810014,
            Self::IfcUnitAssignment => 180925521,
            Self::IfcUnitaryControlElement => 630975310,
            Self::IfcUnitaryControlElementType => 3179687236,
            Self::IfcUnitaryEquipment => 4292641817,
            Self::IfcUnitaryEquipmentType => 1911125066,
            Self::IfcValve => 4207607924,
            Self::IfcValveType => 728799441,
            Self::IfcVector => 1417489154,
            Self::IfcVertex => 2799835756,
            Self::IfcVertexLoop => 2759199220,
            Self::IfcVertexPoint => 1907098498,
            Self::IfcVibrationDamper => 1530820697,
            Self::IfcVibrationDamperType => 3956297820,
            Self::IfcVibrationIsolator => 2391383451,
            Self::IfcVibrationIsolatorType => 3313531582,
            Self::IfcVirtualElement => 2769231204,
            Self::IfcVirtualGridIntersection => 891718957,
            Self::IfcVoidingFeature => 926996030,
            Self::IfcWall => 2391406946,
            Self::IfcWallElementedCase => 4156078855,
            Self::IfcWallStandardCase => 3512223829,
            Self::IfcWallType => 1898987631,
            Self::IfcWasteTerminal => 4237592921,
            Self::IfcWasteTerminalType => 1133259667,
            Self::IfcWindow => 3304561284,
            Self::IfcWindowLiningProperties => 336235671,
            Self::IfcWindowPanelProperties => 512836454,
            Self::IfcWindowStandardCase => 486154966,
            Self::IfcWindowStyle => 1299126871,
            Self::IfcWindowType => 4009809668,
            Self::IfcWorkCalendar => 4088093105,
            Self::IfcWorkControl => 1028945134,
            Self::IfcWorkPlan => 4218914973,
            Self::IfcWorkSchedule => 3342526732,
            Self::IfcWorkTime => 1236880293,
            Self::IfcZShapeProfileDef => 2543172580,
            Self::IfcZone => 1033361043,
            Self::Unknown(unknown) => unknown.id(),
        }
    }

    /// Get string representation (uppercase)
    pub fn as_str(&self) -> &str {
        match self {
            Self::IfcActionRequest => "IFCACTIONREQUEST",
            Self::IfcActor => "IFCACTOR",
            Self::IfcActorRole => "IFCACTORROLE",
            Self::IfcActuator => "IFCACTUATOR",
            Self::IfcActuatorType => "IFCACTUATORTYPE",
            Self::IfcAddress => "IFCADDRESS",
            Self::IfcAdvancedBrep => "IFCADVANCEDBREP",
            Self::IfcAdvancedBrepWithVoids => "IFCADVANCEDBREPWITHVOIDS",
            Self::IfcAdvancedFace => "IFCADVANCEDFACE",
            Self::IfcAirTerminal => "IFCAIRTERMINAL",
            Self::IfcAirTerminalBox => "IFCAIRTERMINALBOX",
            Self::IfcAirTerminalBoxType => "IFCAIRTERMINALBOXTYPE",
            Self::IfcAirTerminalType => "IFCAIRTERMINALTYPE",
            Self::IfcAirToAirHeatRecovery => "IFCAIRTOAIRHEATRECOVERY",
            Self::IfcAirToAirHeatRecoveryType => "IFCAIRTOAIRHEATRECOVERYTYPE",
            Self::IfcAlarm => "IFCALARM",
            Self::IfcAlarmType => "IFCALARMTYPE",
            Self::IfcAlignment => "IFCALIGNMENT",
            Self::IfcAlignment2DHorizontal => "IFCALIGNMENT2DHORIZONTAL",
            Self::IfcAlignment2DHorizontalSegment => "IFCALIGNMENT2DHORIZONTALSEGMENT",
            Self::IfcAlignment2DSegment => "IFCALIGNMENT2DSEGMENT",
            Self::IfcAlignment2DVerSegCircularArc => "IFCALIGNMENT2DVERSEGCIRCULARARC",
            Self::IfcAlignment2DVerSegLine => "IFCALIGNMENT2DVERSEGLINE",
            Self::IfcAlignment2DVerSegParabolicArc => "IFCALIGNMENT2DVERSEGPARABOLICARC",
            Self::IfcAlignment2DVertical => "IFCALIGNMENT2DVERTICAL",
            Self::IfcAlignment2DVerticalSegment => "IFCALIGNMENT2DVERTICALSEGMENT",
            Self::IfcAlignmentCurve => "IFCALIGNMENTCURVE",
            Self::IfcAnnotation => "IFCANNOTATION",
            Self::IfcAnnotationFillArea => "IFCANNOTATIONFILLAREA",
            Self::IfcApplication => "IFCAPPLICATION",
            Self::IfcAppliedValue => "IFCAPPLIEDVALUE",
            Self::IfcApproval => "IFCAPPROVAL",
            Self::IfcApprovalRelationship => "IFCAPPROVALRELATIONSHIP",
            Self::IfcArbitraryClosedProfileDef => "IFCARBITRARYCLOSEDPROFILEDEF",
            Self::IfcArbitraryOpenProfileDef => "IFCARBITRARYOPENPROFILEDEF",
            Self::IfcArbitraryProfileDefWithVoids => "IFCARBITRARYPROFILEDEFWITHVOIDS",
            Self::IfcAsset => "IFCASSET",
            Self::IfcAsymmetricIShapeProfileDef => "IFCASYMMETRICISHAPEPROFILEDEF",
            Self::IfcAudioVisualAppliance => "IFCAUDIOVISUALAPPLIANCE",
            Self::IfcAudioVisualApplianceType => "IFCAUDIOVISUALAPPLIANCETYPE",
            Self::IfcAxis1Placement => "IFCAXIS1PLACEMENT",
            Self::IfcAxis2Placement2D => "IFCAXIS2PLACEMENT2D",
            Self::IfcAxis2Placement3D => "IFCAXIS2PLACEMENT3D",
            Self::IfcBSplineCurve => "IFCBSPLINECURVE",
            Self::IfcBSplineCurveWithKnots => "IFCBSPLINECURVEWITHKNOTS",
            Self::IfcBSplineSurface => "IFCBSPLINESURFACE",
            Self::IfcBSplineSurfaceWithKnots => "IFCBSPLINESURFACEWITHKNOTS",
            Self::IfcBeam => "IFCBEAM",
            Self::IfcBeamStandardCase => "IFCBEAMSTANDARDCASE",
            Self::IfcBeamType => "IFCBEAMTYPE",
            Self::IfcBearing => "IFCBEARING",
            Self::IfcBearingType => "IFCBEARINGTYPE",
            Self::IfcBlobTexture => "IFCBLOBTEXTURE",
            Self::IfcBlock => "IFCBLOCK",
            Self::IfcBoiler => "IFCBOILER",
            Self::IfcBoilerType => "IFCBOILERTYPE",
            Self::IfcBooleanClippingResult => "IFCBOOLEANCLIPPINGRESULT",
            Self::IfcBooleanResult => "IFCBOOLEANRESULT",
            Self::IfcBoundaryCondition => "IFCBOUNDARYCONDITION",
            Self::IfcBoundaryCurve => "IFCBOUNDARYCURVE",
            Self::IfcBoundaryEdgeCondition => "IFCBOUNDARYEDGECONDITION",
            Self::IfcBoundaryFaceCondition => "IFCBOUNDARYFACECONDITION",
            Self::IfcBoundaryNodeCondition => "IFCBOUNDARYNODECONDITION",
            Self::IfcBoundaryNodeConditionWarping => "IFCBOUNDARYNODECONDITIONWARPING",
            Self::IfcBoundedCurve => "IFCBOUNDEDCURVE",
            Self::IfcBoundedSurface => "IFCBOUNDEDSURFACE",
            Self::IfcBoundingBox => "IFCBOUNDINGBOX",
            Self::IfcBoxedHalfSpace => "IFCBOXEDHALFSPACE",
            Self::IfcBridge => "IFCBRIDGE",
            Self::IfcBridgePart => "IFCBRIDGEPART",
            Self::IfcBuilding => "IFCBUILDING",
            Self::IfcBuildingElement => "IFCBUILDINGELEMENT",
            Self::IfcBuildingElementPart => "IFCBUILDINGELEMENTPART",
            Self::IfcBuildingElementPartType => "IFCBUILDINGELEMENTPARTTYPE",
            Self::IfcBuildingElementProxy => "IFCBUILDINGELEMENTPROXY",
            Self::IfcBuildingElementProxyType => "IFCBUILDINGELEMENTPROXYTYPE",
            Self::IfcBuildingElementType => "IFCBUILDINGELEMENTTYPE",
            Self::IfcBuildingStorey => "IFCBUILDINGSTOREY",
            Self::IfcBuildingSystem => "IFCBUILDINGSYSTEM",
            Self::IfcBurner => "IFCBURNER",
            Self::IfcBurnerType => "IFCBURNERTYPE",
            Self::IfcCShapeProfileDef => "IFCCSHAPEPROFILEDEF",
            Self::IfcCableCarrierFitting => "IFCCABLECARRIERFITTING",
            Self::IfcCableCarrierFittingType => "IFCCABLECARRIERFITTINGTYPE",
            Self::IfcCableCarrierSegment => "IFCCABLECARRIERSEGMENT",
            Self::IfcCableCarrierSegmentType => "IFCCABLECARRIERSEGMENTTYPE",
            Self::IfcCableFitting => "IFCCABLEFITTING",
            Self::IfcCableFittingType => "IFCCABLEFITTINGTYPE",
            Self::IfcCableSegment => "IFCCABLESEGMENT",
            Self::IfcCableSegmentType => "IFCCABLESEGMENTTYPE",
            Self::IfcCaissonFoundation => "IFCCAISSONFOUNDATION",
            Self::IfcCaissonFoundationType => "IFCCAISSONFOUNDATIONTYPE",
            Self::IfcCartesianPoint => "IFCCARTESIANPOINT",
            Self::IfcCartesianPointList => "IFCCARTESIANPOINTLIST",
            Self::IfcCartesianPointList2D => "IFCCARTESIANPOINTLIST2D",
            Self::IfcCartesianPointList3D => "IFCCARTESIANPOINTLIST3D",
            Self::IfcCartesianTransformationOperator => "IFCCARTESIANTRANSFORMATIONOPERATOR",
            Self::IfcCartesianTransformationOperator2D => "IFCCARTESIANTRANSFORMATIONOPERATOR2D",
            Self::IfcCartesianTransformationOperator2DnonUniform => "IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM",
            Self::IfcCartesianTransformationOperator3D => "IFCCARTESIANTRANSFORMATIONOPERATOR3D",
            Self::IfcCartesianTransformationOperator3DnonUniform => "IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM",
            Self::IfcCenterLineProfileDef => "IFCCENTERLINEPROFILEDEF",
            Self::IfcChiller => "IFCCHILLER",
            Self::IfcChillerType => "IFCCHILLERTYPE",
            Self::IfcChimney => "IFCCHIMNEY",
            Self::IfcChimneyType => "IFCCHIMNEYTYPE",
            Self::IfcCircle => "IFCCIRCLE",
            Self::IfcCircleHollowProfileDef => "IFCCIRCLEHOLLOWPROFILEDEF",
            Self::IfcCircleProfileDef => "IFCCIRCLEPROFILEDEF",
            Self::IfcCircularArcSegment2D => "IFCCIRCULARARCSEGMENT2D",
            Self::IfcCivilElement => "IFCCIVILELEMENT",
            Self::IfcCivilElementType => "IFCCIVILELEMENTTYPE",
            Self::IfcClassification => "IFCCLASSIFICATION",
            Self::IfcClassificationReference => "IFCCLASSIFICATIONREFERENCE",
            Self::IfcClosedShell => "IFCCLOSEDSHELL",
            Self::IfcCoil => "IFCCOIL",
            Self::IfcCoilType => "IFCCOILTYPE",
            Self::IfcColourRgb => "IFCCOLOURRGB",
            Self::IfcColourRgbList => "IFCCOLOURRGBLIST",
            Self::IfcColourSpecification => "IFCCOLOURSPECIFICATION",
            Self::IfcColumn => "IFCCOLUMN",
            Self::IfcColumnStandardCase => "IFCCOLUMNSTANDARDCASE",
            Self::IfcColumnType => "IFCCOLUMNTYPE",
            Self::IfcCommunicationsAppliance => "IFCCOMMUNICATIONSAPPLIANCE",
            Self::IfcCommunicationsApplianceType => "IFCCOMMUNICATIONSAPPLIANCETYPE",
            Self::IfcComplexProperty => "IFCCOMPLEXPROPERTY",
            Self::IfcComplexPropertyTemplate => "IFCCOMPLEXPROPERTYTEMPLATE",
            Self::IfcCompositeCurve => "IFCCOMPOSITECURVE",
            Self::IfcCompositeCurveOnSurface => "IFCCOMPOSITECURVEONSURFACE",
            Self::IfcCompositeCurveSegment => "IFCCOMPOSITECURVESEGMENT",
            Self::IfcCompositeProfileDef => "IFCCOMPOSITEPROFILEDEF",
            Self::IfcCompressor => "IFCCOMPRESSOR",
            Self::IfcCompressorType => "IFCCOMPRESSORTYPE",
            Self::IfcCondenser => "IFCCONDENSER",
            Self::IfcCondenserType => "IFCCONDENSERTYPE",
            Self::IfcConic => "IFCCONIC",
            Self::IfcConnectedFaceSet => "IFCCONNECTEDFACESET",
            Self::IfcConnectionCurveGeometry => "IFCCONNECTIONCURVEGEOMETRY",
            Self::IfcConnectionGeometry => "IFCCONNECTIONGEOMETRY",
            Self::IfcConnectionPointEccentricity => "IFCCONNECTIONPOINTECCENTRICITY",
            Self::IfcConnectionPointGeometry => "IFCCONNECTIONPOINTGEOMETRY",
            Self::IfcConnectionSurfaceGeometry => "IFCCONNECTIONSURFACEGEOMETRY",
            Self::IfcConnectionVolumeGeometry => "IFCCONNECTIONVOLUMEGEOMETRY",
            Self::IfcConstraint => "IFCCONSTRAINT",
            Self::IfcConstructionEquipmentResource => "IFCCONSTRUCTIONEQUIPMENTRESOURCE",
            Self::IfcConstructionEquipmentResourceType => "IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE",
            Self::IfcConstructionMaterialResource => "IFCCONSTRUCTIONMATERIALRESOURCE",
            Self::IfcConstructionMaterialResourceType => "IFCCONSTRUCTIONMATERIALRESOURCETYPE",
            Self::IfcConstructionProductResource => "IFCCONSTRUCTIONPRODUCTRESOURCE",
            Self::IfcConstructionProductResourceType => "IFCCONSTRUCTIONPRODUCTRESOURCETYPE",
            Self::IfcConstructionResource => "IFCCONSTRUCTIONRESOURCE",
            Self::IfcConstructionResourceType => "IFCCONSTRUCTIONRESOURCETYPE",
            Self::IfcContext => "IFCCONTEXT",
            Self::IfcContextDependentUnit => "IFCCONTEXTDEPENDENTUNIT",
            Self::IfcControl => "IFCCONTROL",
            Self::IfcController => "IFCCONTROLLER",
            Self::IfcControllerType => "IFCCONTROLLERTYPE",
            Self::IfcConversionBasedUnit => "IFCCONVERSIONBASEDUNIT",
            Self::IfcConversionBasedUnitWithOffset => "IFCCONVERSIONBASEDUNITWITHOFFSET",
            Self::IfcCooledBeam => "IFCCOOLEDBEAM",
            Self::IfcCooledBeamType => "IFCCOOLEDBEAMTYPE",
            Self::IfcCoolingTower => "IFCCOOLINGTOWER",
            Self::IfcCoolingTowerType => "IFCCOOLINGTOWERTYPE",
            Self::IfcCoordinateOperation => "IFCCOORDINATEOPERATION",
            Self::IfcCoordinateReferenceSystem => "IFCCOORDINATEREFERENCESYSTEM",
            Self::IfcCostItem => "IFCCOSTITEM",
            Self::IfcCostSchedule => "IFCCOSTSCHEDULE",
            Self::IfcCostValue => "IFCCOSTVALUE",
            Self::IfcCovering => "IFCCOVERING",
            Self::IfcCoveringType => "IFCCOVERINGTYPE",
            Self::IfcCrewResource => "IFCCREWRESOURCE",
            Self::IfcCrewResourceType => "IFCCREWRESOURCETYPE",
            Self::IfcCsgPrimitive3D => "IFCCSGPRIMITIVE3D",
            Self::IfcCsgSolid => "IFCCSGSOLID",
            Self::IfcCurrencyRelationship => "IFCCURRENCYRELATIONSHIP",
            Self::IfcCurtainWall => "IFCCURTAINWALL",
            Self::IfcCurtainWallType => "IFCCURTAINWALLTYPE",
            Self::IfcCurve => "IFCCURVE",
            Self::IfcCurveBoundedPlane => "IFCCURVEBOUNDEDPLANE",
            Self::IfcCurveBoundedSurface => "IFCCURVEBOUNDEDSURFACE",
            Self::IfcCurveSegment2D => "IFCCURVESEGMENT2D",
            Self::IfcCurveStyle => "IFCCURVESTYLE",
            Self::IfcCurveStyleFont => "IFCCURVESTYLEFONT",
            Self::IfcCurveStyleFontAndScaling => "IFCCURVESTYLEFONTANDSCALING",
            Self::IfcCurveStyleFontPattern => "IFCCURVESTYLEFONTPATTERN",
            Self::IfcCylindricalSurface => "IFCCYLINDRICALSURFACE",
            Self::IfcDamper => "IFCDAMPER",
            Self::IfcDamperType => "IFCDAMPERTYPE",
            Self::IfcDeepFoundation => "IFCDEEPFOUNDATION",
            Self::IfcDeepFoundationType => "IFCDEEPFOUNDATIONTYPE",
            Self::IfcDerivedProfileDef => "IFCDERIVEDPROFILEDEF",
            Self::IfcDerivedUnit => "IFCDERIVEDUNIT",
            Self::IfcDerivedUnitElement => "IFCDERIVEDUNITELEMENT",
            Self::IfcDimensionalExponents => "IFCDIMENSIONALEXPONENTS",
            Self::IfcDirection => "IFCDIRECTION",
            Self::IfcDiscreteAccessory => "IFCDISCRETEACCESSORY",
            Self::IfcDiscreteAccessoryType => "IFCDISCRETEACCESSORYTYPE",
            Self::IfcDistanceExpression => "IFCDISTANCEEXPRESSION",
            Self::IfcDistributionChamberElement => "IFCDISTRIBUTIONCHAMBERELEMENT",
            Self::IfcDistributionChamberElementType => "IFCDISTRIBUTIONCHAMBERELEMENTTYPE",
            Self::IfcDistributionCircuit => "IFCDISTRIBUTIONCIRCUIT",
            Self::IfcDistributionControlElement => "IFCDISTRIBUTIONCONTROLELEMENT",
            Self::IfcDistributionControlElementType => "IFCDISTRIBUTIONCONTROLELEMENTTYPE",
            Self::IfcDistributionElement => "IFCDISTRIBUTIONELEMENT",
            Self::IfcDistributionElementType => "IFCDISTRIBUTIONELEMENTTYPE",
            Self::IfcDistributionFlowElement => "IFCDISTRIBUTIONFLOWELEMENT",
            Self::IfcDistributionFlowElementType => "IFCDISTRIBUTIONFLOWELEMENTTYPE",
            Self::IfcDistributionPort => "IFCDISTRIBUTIONPORT",
            Self::IfcDistributionSystem => "IFCDISTRIBUTIONSYSTEM",
            Self::IfcDocumentInformation => "IFCDOCUMENTINFORMATION",
            Self::IfcDocumentInformationRelationship => "IFCDOCUMENTINFORMATIONRELATIONSHIP",
            Self::IfcDocumentReference => "IFCDOCUMENTREFERENCE",
            Self::IfcDoor => "IFCDOOR",
            Self::IfcDoorLiningProperties => "IFCDOORLININGPROPERTIES",
            Self::IfcDoorPanelProperties => "IFCDOORPANELPROPERTIES",
            Self::IfcDoorStandardCase => "IFCDOORSTANDARDCASE",
            Self::IfcDoorStyle => "IFCDOORSTYLE",
            Self::IfcDoorType => "IFCDOORTYPE",
            Self::IfcDraughtingPreDefinedColour => "IFCDRAUGHTINGPREDEFINEDCOLOUR",
            Self::IfcDraughtingPreDefinedCurveFont => "IFCDRAUGHTINGPREDEFINEDCURVEFONT",
            Self::IfcDuctFitting => "IFCDUCTFITTING",
            Self::IfcDuctFittingType => "IFCDUCTFITTINGTYPE",
            Self::IfcDuctSegment => "IFCDUCTSEGMENT",
            Self::IfcDuctSegmentType => "IFCDUCTSEGMENTTYPE",
            Self::IfcDuctSilencer => "IFCDUCTSILENCER",
            Self::IfcDuctSilencerType => "IFCDUCTSILENCERTYPE",
            Self::IfcEdge => "IFCEDGE",
            Self::IfcEdgeCurve => "IFCEDGECURVE",
            Self::IfcEdgeLoop => "IFCEDGELOOP",
            Self::IfcElectricAppliance => "IFCELECTRICAPPLIANCE",
            Self::IfcElectricApplianceType => "IFCELECTRICAPPLIANCETYPE",
            Self::IfcElectricDistributionBoard => "IFCELECTRICDISTRIBUTIONBOARD",
            Self::IfcElectricDistributionBoardType => "IFCELECTRICDISTRIBUTIONBOARDTYPE",
            Self::IfcElectricFlowStorageDevice => "IFCELECTRICFLOWSTORAGEDEVICE",
            Self::IfcElectricFlowStorageDeviceType => "IFCELECTRICFLOWSTORAGEDEVICETYPE",
            Self::IfcElectricGenerator => "IFCELECTRICGENERATOR",
            Self::IfcElectricGeneratorType => "IFCELECTRICGENERATORTYPE",
            Self::IfcElectricMotor => "IFCELECTRICMOTOR",
            Self::IfcElectricMotorType => "IFCELECTRICMOTORTYPE",
            Self::IfcElectricTimeControl => "IFCELECTRICTIMECONTROL",
            Self::IfcElectricTimeControlType => "IFCELECTRICTIMECONTROLTYPE",
            Self::IfcElement => "IFCELEMENT",
            Self::IfcElementAssembly => "IFCELEMENTASSEMBLY",
            Self::IfcElementAssemblyType => "IFCELEMENTASSEMBLYTYPE",
            Self::IfcElementComponent => "IFCELEMENTCOMPONENT",
            Self::IfcElementComponentType => "IFCELEMENTCOMPONENTTYPE",
            Self::IfcElementQuantity => "IFCELEMENTQUANTITY",
            Self::IfcElementType => "IFCELEMENTTYPE",
            Self::IfcElementarySurface => "IFCELEMENTARYSURFACE",
            Self::IfcEllipse => "IFCELLIPSE",
            Self::IfcEllipseProfileDef => "IFCELLIPSEPROFILEDEF",
            Self::IfcEnergyConversionDevice => "IFCENERGYCONVERSIONDEVICE",
            Self::IfcEnergyConversionDeviceType => "IFCENERGYCONVERSIONDEVICETYPE",
            Self::IfcEngine => "IFCENGINE",
            Self::IfcEngineType => "IFCENGINETYPE",
            Self::IfcEvaporativeCooler => "IFCEVAPORATIVECOOLER",
            Self::IfcEvaporativeCoolerType => "IFCEVAPORATIVECOOLERTYPE",
            Self::IfcEvaporator => "IFCEVAPORATOR",
            Self::IfcEvaporatorType => "IFCEVAPORATORTYPE",
            Self::IfcEvent => "IFCEVENT",
            Self::IfcEventTime => "IFCEVENTTIME",
            Self::IfcEventType => "IFCEVENTTYPE",
            Self::IfcExtendedProperties => "IFCEXTENDEDPROPERTIES",
            Self::IfcExternalInformation => "IFCEXTERNALINFORMATION",
            Self::IfcExternalReference => "IFCEXTERNALREFERENCE",
            Self::IfcExternalReferenceRelationship => "IFCEXTERNALREFERENCERELATIONSHIP",
            Self::IfcExternalSpatialElement => "IFCEXTERNALSPATIALELEMENT",
            Self::IfcExternalSpatialStructureElement => "IFCEXTERNALSPATIALSTRUCTUREELEMENT",
            Self::IfcExternallyDefinedHatchStyle => "IFCEXTERNALLYDEFINEDHATCHSTYLE",
            Self::IfcExternallyDefinedSurfaceStyle => "IFCEXTERNALLYDEFINEDSURFACESTYLE",
            Self::IfcExternallyDefinedTextFont => "IFCEXTERNALLYDEFINEDTEXTFONT",
            Self::IfcExtrudedAreaSolid => "IFCEXTRUDEDAREASOLID",
            Self::IfcExtrudedAreaSolidTapered => "IFCEXTRUDEDAREASOLIDTAPERED",
            Self::IfcFace => "IFCFACE",
            Self::IfcFaceBasedSurfaceModel => "IFCFACEBASEDSURFACEMODEL",
            Self::IfcFaceBound => "IFCFACEBOUND",
            Self::IfcFaceOuterBound => "IFCFACEOUTERBOUND",
            Self::IfcFaceSurface => "IFCFACESURFACE",
            Self::IfcFacetedBrep => "IFCFACETEDBREP",
            Self::IfcFacetedBrepWithVoids => "IFCFACETEDBREPWITHVOIDS",
            Self::IfcFacility => "IFCFACILITY",
            Self::IfcFacilityPart => "IFCFACILITYPART",
            Self::IfcFailureConnectionCondition => "IFCFAILURECONNECTIONCONDITION",
            Self::IfcFan => "IFCFAN",
            Self::IfcFanType => "IFCFANTYPE",
            Self::IfcFastener => "IFCFASTENER",
            Self::IfcFastenerType => "IFCFASTENERTYPE",
            Self::IfcFeatureElement => "IFCFEATUREELEMENT",
            Self::IfcFeatureElementAddition => "IFCFEATUREELEMENTADDITION",
            Self::IfcFeatureElementSubtraction => "IFCFEATUREELEMENTSUBTRACTION",
            Self::IfcFillAreaStyle => "IFCFILLAREASTYLE",
            Self::IfcFillAreaStyleHatching => "IFCFILLAREASTYLEHATCHING",
            Self::IfcFillAreaStyleTiles => "IFCFILLAREASTYLETILES",
            Self::IfcFilter => "IFCFILTER",
            Self::IfcFilterType => "IFCFILTERTYPE",
            Self::IfcFireSuppressionTerminal => "IFCFIRESUPPRESSIONTERMINAL",
            Self::IfcFireSuppressionTerminalType => "IFCFIRESUPPRESSIONTERMINALTYPE",
            Self::IfcFixedReferenceSweptAreaSolid => "IFCFIXEDREFERENCESWEPTAREASOLID",
            Self::IfcFlowController => "IFCFLOWCONTROLLER",
            Self::IfcFlowControllerType => "IFCFLOWCONTROLLERTYPE",
            Self::IfcFlowFitting => "IFCFLOWFITTING",
            Self::IfcFlowFittingType => "IFCFLOWFITTINGTYPE",
            Self::IfcFlowInstrument => "IFCFLOWINSTRUMENT",
            Self::IfcFlowInstrumentType => "IFCFLOWINSTRUMENTTYPE",
            Self::IfcFlowMeter => "IFCFLOWMETER",
            Self::IfcFlowMeterType => "IFCFLOWMETERTYPE",
            Self::IfcFlowMovingDevice => "IFCFLOWMOVINGDEVICE",
            Self::IfcFlowMovingDeviceType => "IFCFLOWMOVINGDEVICETYPE",
            Self::IfcFlowSegment => "IFCFLOWSEGMENT",
            Self::IfcFlowSegmentType => "IFCFLOWSEGMENTTYPE",
            Self::IfcFlowStorageDevice => "IFCFLOWSTORAGEDEVICE",
            Self::IfcFlowStorageDeviceType => "IFCFLOWSTORAGEDEVICETYPE",
            Self::IfcFlowTerminal => "IFCFLOWTERMINAL",
            Self::IfcFlowTerminalType => "IFCFLOWTERMINALTYPE",
            Self::IfcFlowTreatmentDevice => "IFCFLOWTREATMENTDEVICE",
            Self::IfcFlowTreatmentDeviceType => "IFCFLOWTREATMENTDEVICETYPE",
            Self::IfcFooting => "IFCFOOTING",
            Self::IfcFootingType => "IFCFOOTINGTYPE",
            Self::IfcFurnishingElement => "IFCFURNISHINGELEMENT",
            Self::IfcFurnishingElementType => "IFCFURNISHINGELEMENTTYPE",
            Self::IfcFurniture => "IFCFURNITURE",
            Self::IfcFurnitureType => "IFCFURNITURETYPE",
            Self::IfcGeographicElement => "IFCGEOGRAPHICELEMENT",
            Self::IfcGeographicElementType => "IFCGEOGRAPHICELEMENTTYPE",
            Self::IfcGeometricCurveSet => "IFCGEOMETRICCURVESET",
            Self::IfcGeometricRepresentationContext => "IFCGEOMETRICREPRESENTATIONCONTEXT",
            Self::IfcGeometricRepresentationItem => "IFCGEOMETRICREPRESENTATIONITEM",
            Self::IfcGeometricRepresentationSubContext => "IFCGEOMETRICREPRESENTATIONSUBCONTEXT",
            Self::IfcGeometricSet => "IFCGEOMETRICSET",
            Self::IfcGrid => "IFCGRID",
            Self::IfcGridAxis => "IFCGRIDAXIS",
            Self::IfcGridPlacement => "IFCGRIDPLACEMENT",
            Self::IfcGroup => "IFCGROUP",
            Self::IfcHalfSpaceSolid => "IFCHALFSPACESOLID",
            Self::IfcHeatExchanger => "IFCHEATEXCHANGER",
            Self::IfcHeatExchangerType => "IFCHEATEXCHANGERTYPE",
            Self::IfcHumidifier => "IFCHUMIDIFIER",
            Self::IfcHumidifierType => "IFCHUMIDIFIERTYPE",
            Self::IfcIShapeProfileDef => "IFCISHAPEPROFILEDEF",
            Self::IfcImageTexture => "IFCIMAGETEXTURE",
            Self::IfcIndexedColourMap => "IFCINDEXEDCOLOURMAP",
            Self::IfcIndexedPolyCurve => "IFCINDEXEDPOLYCURVE",
            Self::IfcIndexedPolygonalFace => "IFCINDEXEDPOLYGONALFACE",
            Self::IfcIndexedPolygonalFaceWithVoids => "IFCINDEXEDPOLYGONALFACEWITHVOIDS",
            Self::IfcIndexedTextureMap => "IFCINDEXEDTEXTUREMAP",
            Self::IfcIndexedTriangleTextureMap => "IFCINDEXEDTRIANGLETEXTUREMAP",
            Self::IfcInterceptor => "IFCINTERCEPTOR",
            Self::IfcInterceptorType => "IFCINTERCEPTORTYPE",
            Self::IfcIntersectionCurve => "IFCINTERSECTIONCURVE",
            Self::IfcInventory => "IFCINVENTORY",
            Self::IfcIrregularTimeSeries => "IFCIRREGULARTIMESERIES",
            Self::IfcIrregularTimeSeriesValue => "IFCIRREGULARTIMESERIESVALUE",
            Self::IfcJunctionBox => "IFCJUNCTIONBOX",
            Self::IfcJunctionBoxType => "IFCJUNCTIONBOXTYPE",
            Self::IfcLShapeProfileDef => "IFCLSHAPEPROFILEDEF",
            Self::IfcLaborResource => "IFCLABORRESOURCE",
            Self::IfcLaborResourceType => "IFCLABORRESOURCETYPE",
            Self::IfcLagTime => "IFCLAGTIME",
            Self::IfcLamp => "IFCLAMP",
            Self::IfcLampType => "IFCLAMPTYPE",
            Self::IfcLibraryInformation => "IFCLIBRARYINFORMATION",
            Self::IfcLibraryReference => "IFCLIBRARYREFERENCE",
            Self::IfcLightDistributionData => "IFCLIGHTDISTRIBUTIONDATA",
            Self::IfcLightFixture => "IFCLIGHTFIXTURE",
            Self::IfcLightFixtureType => "IFCLIGHTFIXTURETYPE",
            Self::IfcLightIntensityDistribution => "IFCLIGHTINTENSITYDISTRIBUTION",
            Self::IfcLightSource => "IFCLIGHTSOURCE",
            Self::IfcLightSourceAmbient => "IFCLIGHTSOURCEAMBIENT",
            Self::IfcLightSourceDirectional => "IFCLIGHTSOURCEDIRECTIONAL",
            Self::IfcLightSourceGoniometric => "IFCLIGHTSOURCEGONIOMETRIC",
            Self::IfcLightSourcePositional => "IFCLIGHTSOURCEPOSITIONAL",
            Self::IfcLightSourceSpot => "IFCLIGHTSOURCESPOT",
            Self::IfcLine => "IFCLINE",
            Self::IfcLineSegment2D => "IFCLINESEGMENT2D",
            Self::IfcLinearPlacement => "IFCLINEARPLACEMENT",
            Self::IfcLinearPositioningElement => "IFCLINEARPOSITIONINGELEMENT",
            Self::IfcLocalPlacement => "IFCLOCALPLACEMENT",
            Self::IfcLoop => "IFCLOOP",
            Self::IfcManifoldSolidBrep => "IFCMANIFOLDSOLIDBREP",
            Self::IfcMapConversion => "IFCMAPCONVERSION",
            Self::IfcMappedItem => "IFCMAPPEDITEM",
            Self::IfcMaterial => "IFCMATERIAL",
            Self::IfcMaterialClassificationRelationship => "IFCMATERIALCLASSIFICATIONRELATIONSHIP",
            Self::IfcMaterialConstituent => "IFCMATERIALCONSTITUENT",
            Self::IfcMaterialConstituentSet => "IFCMATERIALCONSTITUENTSET",
            Self::IfcMaterialDefinition => "IFCMATERIALDEFINITION",
            Self::IfcMaterialDefinitionRepresentation => "IFCMATERIALDEFINITIONREPRESENTATION",
            Self::IfcMaterialLayer => "IFCMATERIALLAYER",
            Self::IfcMaterialLayerSet => "IFCMATERIALLAYERSET",
            Self::IfcMaterialLayerSetUsage => "IFCMATERIALLAYERSETUSAGE",
            Self::IfcMaterialLayerWithOffsets => "IFCMATERIALLAYERWITHOFFSETS",
            Self::IfcMaterialList => "IFCMATERIALLIST",
            Self::IfcMaterialProfile => "IFCMATERIALPROFILE",
            Self::IfcMaterialProfileSet => "IFCMATERIALPROFILESET",
            Self::IfcMaterialProfileSetUsage => "IFCMATERIALPROFILESETUSAGE",
            Self::IfcMaterialProfileSetUsageTapering => "IFCMATERIALPROFILESETUSAGETAPERING",
            Self::IfcMaterialProfileWithOffsets => "IFCMATERIALPROFILEWITHOFFSETS",
            Self::IfcMaterialProperties => "IFCMATERIALPROPERTIES",
            Self::IfcMaterialRelationship => "IFCMATERIALRELATIONSHIP",
            Self::IfcMaterialUsageDefinition => "IFCMATERIALUSAGEDEFINITION",
            Self::IfcMeasureWithUnit => "IFCMEASUREWITHUNIT",
            Self::IfcMechanicalFastener => "IFCMECHANICALFASTENER",
            Self::IfcMechanicalFastenerType => "IFCMECHANICALFASTENERTYPE",
            Self::IfcMedicalDevice => "IFCMEDICALDEVICE",
            Self::IfcMedicalDeviceType => "IFCMEDICALDEVICETYPE",
            Self::IfcMember => "IFCMEMBER",
            Self::IfcMemberStandardCase => "IFCMEMBERSTANDARDCASE",
            Self::IfcMemberType => "IFCMEMBERTYPE",
            Self::IfcMetric => "IFCMETRIC",
            Self::IfcMirroredProfileDef => "IFCMIRROREDPROFILEDEF",
            Self::IfcMonetaryUnit => "IFCMONETARYUNIT",
            Self::IfcMotorConnection => "IFCMOTORCONNECTION",
            Self::IfcMotorConnectionType => "IFCMOTORCONNECTIONTYPE",
            Self::IfcNamedUnit => "IFCNAMEDUNIT",
            Self::IfcObject => "IFCOBJECT",
            Self::IfcObjectDefinition => "IFCOBJECTDEFINITION",
            Self::IfcObjectPlacement => "IFCOBJECTPLACEMENT",
            Self::IfcObjective => "IFCOBJECTIVE",
            Self::IfcOccupant => "IFCOCCUPANT",
            Self::IfcOffsetCurve => "IFCOFFSETCURVE",
            Self::IfcOffsetCurve2D => "IFCOFFSETCURVE2D",
            Self::IfcOffsetCurve3D => "IFCOFFSETCURVE3D",
            Self::IfcOffsetCurveByDistances => "IFCOFFSETCURVEBYDISTANCES",
            Self::IfcOpenShell => "IFCOPENSHELL",
            Self::IfcOpeningElement => "IFCOPENINGELEMENT",
            Self::IfcOpeningStandardCase => "IFCOPENINGSTANDARDCASE",
            Self::IfcOrganization => "IFCORGANIZATION",
            Self::IfcOrganizationRelationship => "IFCORGANIZATIONRELATIONSHIP",
            Self::IfcOrientationExpression => "IFCORIENTATIONEXPRESSION",
            Self::IfcOrientedEdge => "IFCORIENTEDEDGE",
            Self::IfcOuterBoundaryCurve => "IFCOUTERBOUNDARYCURVE",
            Self::IfcOutlet => "IFCOUTLET",
            Self::IfcOutletType => "IFCOUTLETTYPE",
            Self::IfcOwnerHistory => "IFCOWNERHISTORY",
            Self::IfcParameterizedProfileDef => "IFCPARAMETERIZEDPROFILEDEF",
            Self::IfcPath => "IFCPATH",
            Self::IfcPcurve => "IFCPCURVE",
            Self::IfcPerformanceHistory => "IFCPERFORMANCEHISTORY",
            Self::IfcPermeableCoveringProperties => "IFCPERMEABLECOVERINGPROPERTIES",
            Self::IfcPermit => "IFCPERMIT",
            Self::IfcPerson => "IFCPERSON",
            Self::IfcPersonAndOrganization => "IFCPERSONANDORGANIZATION",
            Self::IfcPhysicalComplexQuantity => "IFCPHYSICALCOMPLEXQUANTITY",
            Self::IfcPhysicalQuantity => "IFCPHYSICALQUANTITY",
            Self::IfcPhysicalSimpleQuantity => "IFCPHYSICALSIMPLEQUANTITY",
            Self::IfcPile => "IFCPILE",
            Self::IfcPileType => "IFCPILETYPE",
            Self::IfcPipeFitting => "IFCPIPEFITTING",
            Self::IfcPipeFittingType => "IFCPIPEFITTINGTYPE",
            Self::IfcPipeSegment => "IFCPIPESEGMENT",
            Self::IfcPipeSegmentType => "IFCPIPESEGMENTTYPE",
            Self::IfcPixelTexture => "IFCPIXELTEXTURE",
            Self::IfcPlacement => "IFCPLACEMENT",
            Self::IfcPlanarBox => "IFCPLANARBOX",
            Self::IfcPlanarExtent => "IFCPLANAREXTENT",
            Self::IfcPlane => "IFCPLANE",
            Self::IfcPlate => "IFCPLATE",
            Self::IfcPlateStandardCase => "IFCPLATESTANDARDCASE",
            Self::IfcPlateType => "IFCPLATETYPE",
            Self::IfcPoint => "IFCPOINT",
            Self::IfcPointOnCurve => "IFCPOINTONCURVE",
            Self::IfcPointOnSurface => "IFCPOINTONSURFACE",
            Self::IfcPolyLoop => "IFCPOLYLOOP",
            Self::IfcPolygonalBoundedHalfSpace => "IFCPOLYGONALBOUNDEDHALFSPACE",
            Self::IfcPolygonalFaceSet => "IFCPOLYGONALFACESET",
            Self::IfcPolyline => "IFCPOLYLINE",
            Self::IfcPort => "IFCPORT",
            Self::IfcPositioningElement => "IFCPOSITIONINGELEMENT",
            Self::IfcPostalAddress => "IFCPOSTALADDRESS",
            Self::IfcPreDefinedColour => "IFCPREDEFINEDCOLOUR",
            Self::IfcPreDefinedCurveFont => "IFCPREDEFINEDCURVEFONT",
            Self::IfcPreDefinedItem => "IFCPREDEFINEDITEM",
            Self::IfcPreDefinedProperties => "IFCPREDEFINEDPROPERTIES",
            Self::IfcPreDefinedPropertySet => "IFCPREDEFINEDPROPERTYSET",
            Self::IfcPreDefinedTextFont => "IFCPREDEFINEDTEXTFONT",
            Self::IfcPresentationItem => "IFCPRESENTATIONITEM",
            Self::IfcPresentationLayerAssignment => "IFCPRESENTATIONLAYERASSIGNMENT",
            Self::IfcPresentationLayerWithStyle => "IFCPRESENTATIONLAYERWITHSTYLE",
            Self::IfcPresentationStyle => "IFCPRESENTATIONSTYLE",
            Self::IfcPresentationStyleAssignment => "IFCPRESENTATIONSTYLEASSIGNMENT",
            Self::IfcProcedure => "IFCPROCEDURE",
            Self::IfcProcedureType => "IFCPROCEDURETYPE",
            Self::IfcProcess => "IFCPROCESS",
            Self::IfcProduct => "IFCPRODUCT",
            Self::IfcProductDefinitionShape => "IFCPRODUCTDEFINITIONSHAPE",
            Self::IfcProductRepresentation => "IFCPRODUCTREPRESENTATION",
            Self::IfcProfileDef => "IFCPROFILEDEF",
            Self::IfcProfileProperties => "IFCPROFILEPROPERTIES",
            Self::IfcProject => "IFCPROJECT",
            Self::IfcProjectLibrary => "IFCPROJECTLIBRARY",
            Self::IfcProjectOrder => "IFCPROJECTORDER",
            Self::IfcProjectedCRS => "IFCPROJECTEDCRS",
            Self::IfcProjectionElement => "IFCPROJECTIONELEMENT",
            Self::IfcProperty => "IFCPROPERTY",
            Self::IfcPropertyAbstraction => "IFCPROPERTYABSTRACTION",
            Self::IfcPropertyBoundedValue => "IFCPROPERTYBOUNDEDVALUE",
            Self::IfcPropertyDefinition => "IFCPROPERTYDEFINITION",
            Self::IfcPropertyDependencyRelationship => "IFCPROPERTYDEPENDENCYRELATIONSHIP",
            Self::IfcPropertyEnumeratedValue => "IFCPROPERTYENUMERATEDVALUE",
            Self::IfcPropertyEnumeration => "IFCPROPERTYENUMERATION",
            Self::IfcPropertyListValue => "IFCPROPERTYLISTVALUE",
            Self::IfcPropertyReferenceValue => "IFCPROPERTYREFERENCEVALUE",
            Self::IfcPropertySet => "IFCPROPERTYSET",
            Self::IfcPropertySetDefinition => "IFCPROPERTYSETDEFINITION",
            Self::IfcPropertySetTemplate => "IFCPROPERTYSETTEMPLATE",
            Self::IfcPropertySingleValue => "IFCPROPERTYSINGLEVALUE",
            Self::IfcPropertyTableValue => "IFCPROPERTYTABLEVALUE",
            Self::IfcPropertyTemplate => "IFCPROPERTYTEMPLATE",
            Self::IfcPropertyTemplateDefinition => "IFCPROPERTYTEMPLATEDEFINITION",
            Self::IfcProtectiveDevice => "IFCPROTECTIVEDEVICE",
            Self::IfcProtectiveDeviceTrippingUnit => "IFCPROTECTIVEDEVICETRIPPINGUNIT",
            Self::IfcProtectiveDeviceTrippingUnitType => "IFCPROTECTIVEDEVICETRIPPINGUNITTYPE",
            Self::IfcProtectiveDeviceType => "IFCPROTECTIVEDEVICETYPE",
            Self::IfcProxy => "IFCPROXY",
            Self::IfcPump => "IFCPUMP",
            Self::IfcPumpType => "IFCPUMPTYPE",
            Self::IfcQuantityArea => "IFCQUANTITYAREA",
            Self::IfcQuantityCount => "IFCQUANTITYCOUNT",
            Self::IfcQuantityLength => "IFCQUANTITYLENGTH",
            Self::IfcQuantitySet => "IFCQUANTITYSET",
            Self::IfcQuantityTime => "IFCQUANTITYTIME",
            Self::IfcQuantityVolume => "IFCQUANTITYVOLUME",
            Self::IfcQuantityWeight => "IFCQUANTITYWEIGHT",
            Self::IfcRailing => "IFCRAILING",
            Self::IfcRailingType => "IFCRAILINGTYPE",
            Self::IfcRamp => "IFCRAMP",
            Self::IfcRampFlight => "IFCRAMPFLIGHT",
            Self::IfcRampFlightType => "IFCRAMPFLIGHTTYPE",
            Self::IfcRampType => "IFCRAMPTYPE",
            Self::IfcRationalBSplineCurveWithKnots => "IFCRATIONALBSPLINECURVEWITHKNOTS",
            Self::IfcRationalBSplineSurfaceWithKnots => "IFCRATIONALBSPLINESURFACEWITHKNOTS",
            Self::IfcRectangleHollowProfileDef => "IFCRECTANGLEHOLLOWPROFILEDEF",
            Self::IfcRectangleProfileDef => "IFCRECTANGLEPROFILEDEF",
            Self::IfcRectangularPyramid => "IFCRECTANGULARPYRAMID",
            Self::IfcRectangularTrimmedSurface => "IFCRECTANGULARTRIMMEDSURFACE",
            Self::IfcRecurrencePattern => "IFCRECURRENCEPATTERN",
            Self::IfcReference => "IFCREFERENCE",
            Self::IfcReferent => "IFCREFERENT",
            Self::IfcRegularTimeSeries => "IFCREGULARTIMESERIES",
            Self::IfcReinforcementBarProperties => "IFCREINFORCEMENTBARPROPERTIES",
            Self::IfcReinforcementDefinitionProperties => "IFCREINFORCEMENTDEFINITIONPROPERTIES",
            Self::IfcReinforcingBar => "IFCREINFORCINGBAR",
            Self::IfcReinforcingBarType => "IFCREINFORCINGBARTYPE",
            Self::IfcReinforcingElement => "IFCREINFORCINGELEMENT",
            Self::IfcReinforcingElementType => "IFCREINFORCINGELEMENTTYPE",
            Self::IfcReinforcingMesh => "IFCREINFORCINGMESH",
            Self::IfcReinforcingMeshType => "IFCREINFORCINGMESHTYPE",
            Self::IfcRelAggregates => "IFCRELAGGREGATES",
            Self::IfcRelAssigns => "IFCRELASSIGNS",
            Self::IfcRelAssignsToActor => "IFCRELASSIGNSTOACTOR",
            Self::IfcRelAssignsToControl => "IFCRELASSIGNSTOCONTROL",
            Self::IfcRelAssignsToGroup => "IFCRELASSIGNSTOGROUP",
            Self::IfcRelAssignsToGroupByFactor => "IFCRELASSIGNSTOGROUPBYFACTOR",
            Self::IfcRelAssignsToProcess => "IFCRELASSIGNSTOPROCESS",
            Self::IfcRelAssignsToProduct => "IFCRELASSIGNSTOPRODUCT",
            Self::IfcRelAssignsToResource => "IFCRELASSIGNSTORESOURCE",
            Self::IfcRelAssociates => "IFCRELASSOCIATES",
            Self::IfcRelAssociatesApproval => "IFCRELASSOCIATESAPPROVAL",
            Self::IfcRelAssociatesClassification => "IFCRELASSOCIATESCLASSIFICATION",
            Self::IfcRelAssociatesConstraint => "IFCRELASSOCIATESCONSTRAINT",
            Self::IfcRelAssociatesDocument => "IFCRELASSOCIATESDOCUMENT",
            Self::IfcRelAssociatesLibrary => "IFCRELASSOCIATESLIBRARY",
            Self::IfcRelAssociatesMaterial => "IFCRELASSOCIATESMATERIAL",
            Self::IfcRelConnects => "IFCRELCONNECTS",
            Self::IfcRelConnectsElements => "IFCRELCONNECTSELEMENTS",
            Self::IfcRelConnectsPathElements => "IFCRELCONNECTSPATHELEMENTS",
            Self::IfcRelConnectsPortToElement => "IFCRELCONNECTSPORTTOELEMENT",
            Self::IfcRelConnectsPorts => "IFCRELCONNECTSPORTS",
            Self::IfcRelConnectsStructuralActivity => "IFCRELCONNECTSSTRUCTURALACTIVITY",
            Self::IfcRelConnectsStructuralMember => "IFCRELCONNECTSSTRUCTURALMEMBER",
            Self::IfcRelConnectsWithEccentricity => "IFCRELCONNECTSWITHECCENTRICITY",
            Self::IfcRelConnectsWithRealizingElements => "IFCRELCONNECTSWITHREALIZINGELEMENTS",
            Self::IfcRelContainedInSpatialStructure => "IFCRELCONTAINEDINSPATIALSTRUCTURE",
            Self::IfcRelCoversBldgElements => "IFCRELCOVERSBLDGELEMENTS",
            Self::IfcRelCoversSpaces => "IFCRELCOVERSSPACES",
            Self::IfcRelDeclares => "IFCRELDECLARES",
            Self::IfcRelDecomposes => "IFCRELDECOMPOSES",
            Self::IfcRelDefines => "IFCRELDEFINES",
            Self::IfcRelDefinesByObject => "IFCRELDEFINESBYOBJECT",
            Self::IfcRelDefinesByProperties => "IFCRELDEFINESBYPROPERTIES",
            Self::IfcRelDefinesByTemplate => "IFCRELDEFINESBYTEMPLATE",
            Self::IfcRelDefinesByType => "IFCRELDEFINESBYTYPE",
            Self::IfcRelFillsElement => "IFCRELFILLSELEMENT",
            Self::IfcRelFlowControlElements => "IFCRELFLOWCONTROLELEMENTS",
            Self::IfcRelInterferesElements => "IFCRELINTERFERESELEMENTS",
            Self::IfcRelNests => "IFCRELNESTS",
            Self::IfcRelPositions => "IFCRELPOSITIONS",
            Self::IfcRelProjectsElement => "IFCRELPROJECTSELEMENT",
            Self::IfcRelReferencedInSpatialStructure => "IFCRELREFERENCEDINSPATIALSTRUCTURE",
            Self::IfcRelSequence => "IFCRELSEQUENCE",
            Self::IfcRelServicesBuildings => "IFCRELSERVICESBUILDINGS",
            Self::IfcRelSpaceBoundary => "IFCRELSPACEBOUNDARY",
            Self::IfcRelSpaceBoundary1stLevel => "IFCRELSPACEBOUNDARY1STLEVEL",
            Self::IfcRelSpaceBoundary2ndLevel => "IFCRELSPACEBOUNDARY2NDLEVEL",
            Self::IfcRelVoidsElement => "IFCRELVOIDSELEMENT",
            Self::IfcRelationship => "IFCRELATIONSHIP",
            Self::IfcReparametrisedCompositeCurveSegment => "IFCREPARAMETRISEDCOMPOSITECURVESEGMENT",
            Self::IfcRepresentation => "IFCREPRESENTATION",
            Self::IfcRepresentationContext => "IFCREPRESENTATIONCONTEXT",
            Self::IfcRepresentationItem => "IFCREPRESENTATIONITEM",
            Self::IfcRepresentationMap => "IFCREPRESENTATIONMAP",
            Self::IfcResource => "IFCRESOURCE",
            Self::IfcResourceApprovalRelationship => "IFCRESOURCEAPPROVALRELATIONSHIP",
            Self::IfcResourceConstraintRelationship => "IFCRESOURCECONSTRAINTRELATIONSHIP",
            Self::IfcResourceLevelRelationship => "IFCRESOURCELEVELRELATIONSHIP",
            Self::IfcResourceTime => "IFCRESOURCETIME",
            Self::IfcRevolvedAreaSolid => "IFCREVOLVEDAREASOLID",
            Self::IfcRevolvedAreaSolidTapered => "IFCREVOLVEDAREASOLIDTAPERED",
            Self::IfcRightCircularCone => "IFCRIGHTCIRCULARCONE",
            Self::IfcRightCircularCylinder => "IFCRIGHTCIRCULARCYLINDER",
            Self::IfcRoof => "IFCROOF",
            Self::IfcRoofType => "IFCROOFTYPE",
            Self::IfcRoot => "IFCROOT",
            Self::IfcRoundedRectangleProfileDef => "IFCROUNDEDRECTANGLEPROFILEDEF",
            Self::IfcSIUnit => "IFCSIUNIT",
            Self::IfcSanitaryTerminal => "IFCSANITARYTERMINAL",
            Self::IfcSanitaryTerminalType => "IFCSANITARYTERMINALTYPE",
            Self::IfcSchedulingTime => "IFCSCHEDULINGTIME",
            Self::IfcSeamCurve => "IFCSEAMCURVE",
            Self::IfcSectionProperties => "IFCSECTIONPROPERTIES",
            Self::IfcSectionReinforcementProperties => "IFCSECTIONREINFORCEMENTPROPERTIES",
            Self::IfcSectionedSolid => "IFCSECTIONEDSOLID",
            Self::IfcSectionedSolidHorizontal => "IFCSECTIONEDSOLIDHORIZONTAL",
            Self::IfcSectionedSpine => "IFCSECTIONEDSPINE",
            Self::IfcSensor => "IFCSENSOR",
            Self::IfcSensorType => "IFCSENSORTYPE",
            Self::IfcShadingDevice => "IFCSHADINGDEVICE",
            Self::IfcShadingDeviceType => "IFCSHADINGDEVICETYPE",
            Self::IfcShapeAspect => "IFCSHAPEASPECT",
            Self::IfcShapeModel => "IFCSHAPEMODEL",
            Self::IfcShapeRepresentation => "IFCSHAPEREPRESENTATION",
            Self::IfcShellBasedSurfaceModel => "IFCSHELLBASEDSURFACEMODEL",
            Self::IfcSimpleProperty => "IFCSIMPLEPROPERTY",
            Self::IfcSimplePropertyTemplate => "IFCSIMPLEPROPERTYTEMPLATE",
            Self::IfcSite => "IFCSITE",
            Self::IfcSlab => "IFCSLAB",
            Self::IfcSlabElementedCase => "IFCSLABELEMENTEDCASE",
            Self::IfcSlabStandardCase => "IFCSLABSTANDARDCASE",
            Self::IfcSlabType => "IFCSLABTYPE",
            Self::IfcSlippageConnectionCondition => "IFCSLIPPAGECONNECTIONCONDITION",
            Self::IfcSolarDevice => "IFCSOLARDEVICE",
            Self::IfcSolarDeviceType => "IFCSOLARDEVICETYPE",
            Self::IfcSolidModel => "IFCSOLIDMODEL",
            Self::IfcSpace => "IFCSPACE",
            Self::IfcSpaceHeater => "IFCSPACEHEATER",
            Self::IfcSpaceHeaterType => "IFCSPACEHEATERTYPE",
            Self::IfcSpaceType => "IFCSPACETYPE",
            Self::IfcSpatialElement => "IFCSPATIALELEMENT",
            Self::IfcSpatialElementType => "IFCSPATIALELEMENTTYPE",
            Self::IfcSpatialStructureElement => "IFCSPATIALSTRUCTUREELEMENT",
            Self::IfcSpatialStructureElementType => "IFCSPATIALSTRUCTUREELEMENTTYPE",
            Self::IfcSpatialZone => "IFCSPATIALZONE",
            Self::IfcSpatialZoneType => "IFCSPATIALZONETYPE",
            Self::IfcSphere => "IFCSPHERE",
            Self::IfcSphericalSurface => "IFCSPHERICALSURFACE",
            Self::IfcStackTerminal => "IFCSTACKTERMINAL",
            Self::IfcStackTerminalType => "IFCSTACKTERMINALTYPE",
            Self::IfcStair => "IFCSTAIR",
            Self::IfcStairFlight => "IFCSTAIRFLIGHT",
            Self::IfcStairFlightType => "IFCSTAIRFLIGHTTYPE",
            Self::IfcStairType => "IFCSTAIRTYPE",
            Self::IfcStructuralAction => "IFCSTRUCTURALACTION",
            Self::IfcStructuralActivity => "IFCSTRUCTURALACTIVITY",
            Self::IfcStructuralAnalysisModel => "IFCSTRUCTURALANALYSISMODEL",
            Self::IfcStructuralConnection => "IFCSTRUCTURALCONNECTION",
            Self::IfcStructuralConnectionCondition => "IFCSTRUCTURALCONNECTIONCONDITION",
            Self::IfcStructuralCurveAction => "IFCSTRUCTURALCURVEACTION",
            Self::IfcStructuralCurveConnection => "IFCSTRUCTURALCURVECONNECTION",
            Self::IfcStructuralCurveMember => "IFCSTRUCTURALCURVEMEMBER",
            Self::IfcStructuralCurveMemberVarying => "IFCSTRUCTURALCURVEMEMBERVARYING",
            Self::IfcStructuralCurveReaction => "IFCSTRUCTURALCURVEREACTION",
            Self::IfcStructuralItem => "IFCSTRUCTURALITEM",
            Self::IfcStructuralLinearAction => "IFCSTRUCTURALLINEARACTION",
            Self::IfcStructuralLoad => "IFCSTRUCTURALLOAD",
            Self::IfcStructuralLoadCase => "IFCSTRUCTURALLOADCASE",
            Self::IfcStructuralLoadConfiguration => "IFCSTRUCTURALLOADCONFIGURATION",
            Self::IfcStructuralLoadGroup => "IFCSTRUCTURALLOADGROUP",
            Self::IfcStructuralLoadLinearForce => "IFCSTRUCTURALLOADLINEARFORCE",
            Self::IfcStructuralLoadOrResult => "IFCSTRUCTURALLOADORRESULT",
            Self::IfcStructuralLoadPlanarForce => "IFCSTRUCTURALLOADPLANARFORCE",
            Self::IfcStructuralLoadSingleDisplacement => "IFCSTRUCTURALLOADSINGLEDISPLACEMENT",
            Self::IfcStructuralLoadSingleDisplacementDistortion => "IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION",
            Self::IfcStructuralLoadSingleForce => "IFCSTRUCTURALLOADSINGLEFORCE",
            Self::IfcStructuralLoadSingleForceWarping => "IFCSTRUCTURALLOADSINGLEFORCEWARPING",
            Self::IfcStructuralLoadStatic => "IFCSTRUCTURALLOADSTATIC",
            Self::IfcStructuralLoadTemperature => "IFCSTRUCTURALLOADTEMPERATURE",
            Self::IfcStructuralMember => "IFCSTRUCTURALMEMBER",
            Self::IfcStructuralPlanarAction => "IFCSTRUCTURALPLANARACTION",
            Self::IfcStructuralPointAction => "IFCSTRUCTURALPOINTACTION",
            Self::IfcStructuralPointConnection => "IFCSTRUCTURALPOINTCONNECTION",
            Self::IfcStructuralPointReaction => "IFCSTRUCTURALPOINTREACTION",
            Self::IfcStructuralReaction => "IFCSTRUCTURALREACTION",
            Self::IfcStructuralResultGroup => "IFCSTRUCTURALRESULTGROUP",
            Self::IfcStructuralSurfaceAction => "IFCSTRUCTURALSURFACEACTION",
            Self::IfcStructuralSurfaceConnection => "IFCSTRUCTURALSURFACECONNECTION",
            Self::IfcStructuralSurfaceMember => "IFCSTRUCTURALSURFACEMEMBER",
            Self::IfcStructuralSurfaceMemberVarying => "IFCSTRUCTURALSURFACEMEMBERVARYING",
            Self::IfcStructuralSurfaceReaction => "IFCSTRUCTURALSURFACEREACTION",
            Self::IfcStyleModel => "IFCSTYLEMODEL",
            Self::IfcStyledItem => "IFCSTYLEDITEM",
            Self::IfcStyledRepresentation => "IFCSTYLEDREPRESENTATION",
            Self::IfcSubContractResource => "IFCSUBCONTRACTRESOURCE",
            Self::IfcSubContractResourceType => "IFCSUBCONTRACTRESOURCETYPE",
            Self::IfcSubedge => "IFCSUBEDGE",
            Self::IfcSurface => "IFCSURFACE",
            Self::IfcSurfaceCurve => "IFCSURFACECURVE",
            Self::IfcSurfaceCurveSweptAreaSolid => "IFCSURFACECURVESWEPTAREASOLID",
            Self::IfcSurfaceFeature => "IFCSURFACEFEATURE",
            Self::IfcSurfaceOfLinearExtrusion => "IFCSURFACEOFLINEAREXTRUSION",
            Self::IfcSurfaceOfRevolution => "IFCSURFACEOFREVOLUTION",
            Self::IfcSurfaceReinforcementArea => "IFCSURFACEREINFORCEMENTAREA",
            Self::IfcSurfaceStyle => "IFCSURFACESTYLE",
            Self::IfcSurfaceStyleLighting => "IFCSURFACESTYLELIGHTING",
            Self::IfcSurfaceStyleRefraction => "IFCSURFACESTYLEREFRACTION",
            Self::IfcSurfaceStyleRendering => "IFCSURFACESTYLERENDERING",
            Self::IfcSurfaceStyleShading => "IFCSURFACESTYLESHADING",
            Self::IfcSurfaceStyleWithTextures => "IFCSURFACESTYLEWITHTEXTURES",
            Self::IfcSurfaceTexture => "IFCSURFACETEXTURE",
            Self::IfcSweptAreaSolid => "IFCSWEPTAREASOLID",
            Self::IfcSweptDiskSolid => "IFCSWEPTDISKSOLID",
            Self::IfcSweptDiskSolidPolygonal => "IFCSWEPTDISKSOLIDPOLYGONAL",
            Self::IfcSweptSurface => "IFCSWEPTSURFACE",
            Self::IfcSwitchingDevice => "IFCSWITCHINGDEVICE",
            Self::IfcSwitchingDeviceType => "IFCSWITCHINGDEVICETYPE",
            Self::IfcSystem => "IFCSYSTEM",
            Self::IfcSystemFurnitureElement => "IFCSYSTEMFURNITUREELEMENT",
            Self::IfcSystemFurnitureElementType => "IFCSYSTEMFURNITUREELEMENTTYPE",
            Self::IfcTShapeProfileDef => "IFCTSHAPEPROFILEDEF",
            Self::IfcTable => "IFCTABLE",
            Self::IfcTableColumn => "IFCTABLECOLUMN",
            Self::IfcTableRow => "IFCTABLEROW",
            Self::IfcTank => "IFCTANK",
            Self::IfcTankType => "IFCTANKTYPE",
            Self::IfcTask => "IFCTASK",
            Self::IfcTaskTime => "IFCTASKTIME",
            Self::IfcTaskTimeRecurring => "IFCTASKTIMERECURRING",
            Self::IfcTaskType => "IFCTASKTYPE",
            Self::IfcTelecomAddress => "IFCTELECOMADDRESS",
            Self::IfcTendon => "IFCTENDON",
            Self::IfcTendonAnchor => "IFCTENDONANCHOR",
            Self::IfcTendonAnchorType => "IFCTENDONANCHORTYPE",
            Self::IfcTendonConduit => "IFCTENDONCONDUIT",
            Self::IfcTendonConduitType => "IFCTENDONCONDUITTYPE",
            Self::IfcTendonType => "IFCTENDONTYPE",
            Self::IfcTessellatedFaceSet => "IFCTESSELLATEDFACESET",
            Self::IfcTessellatedItem => "IFCTESSELLATEDITEM",
            Self::IfcTextLiteral => "IFCTEXTLITERAL",
            Self::IfcTextLiteralWithExtent => "IFCTEXTLITERALWITHEXTENT",
            Self::IfcTextStyle => "IFCTEXTSTYLE",
            Self::IfcTextStyleFontModel => "IFCTEXTSTYLEFONTMODEL",
            Self::IfcTextStyleForDefinedFont => "IFCTEXTSTYLEFORDEFINEDFONT",
            Self::IfcTextStyleTextModel => "IFCTEXTSTYLETEXTMODEL",
            Self::IfcTextureCoordinate => "IFCTEXTURECOORDINATE",
            Self::IfcTextureCoordinateGenerator => "IFCTEXTURECOORDINATEGENERATOR",
            Self::IfcTextureMap => "IFCTEXTUREMAP",
            Self::IfcTextureVertex => "IFCTEXTUREVERTEX",
            Self::IfcTextureVertexList => "IFCTEXTUREVERTEXLIST",
            Self::IfcTimePeriod => "IFCTIMEPERIOD",
            Self::IfcTimeSeries => "IFCTIMESERIES",
            Self::IfcTimeSeriesValue => "IFCTIMESERIESVALUE",
            Self::IfcTopologicalRepresentationItem => "IFCTOPOLOGICALREPRESENTATIONITEM",
            Self::IfcTopologyRepresentation => "IFCTOPOLOGYREPRESENTATION",
            Self::IfcToroidalSurface => "IFCTOROIDALSURFACE",
            Self::IfcTransformer => "IFCTRANSFORMER",
            Self::IfcTransformerType => "IFCTRANSFORMERTYPE",
            Self::IfcTransitionCurveSegment2D => "IFCTRANSITIONCURVESEGMENT2D",
            Self::IfcTransportElement => "IFCTRANSPORTELEMENT",
            Self::IfcTransportElementType => "IFCTRANSPORTELEMENTTYPE",
            Self::IfcTrapeziumProfileDef => "IFCTRAPEZIUMPROFILEDEF",
            Self::IfcTriangulatedFaceSet => "IFCTRIANGULATEDFACESET",
            Self::IfcTriangulatedIrregularNetwork => "IFCTRIANGULATEDIRREGULARNETWORK",
            Self::IfcTrimmedCurve => "IFCTRIMMEDCURVE",
            Self::IfcTubeBundle => "IFCTUBEBUNDLE",
            Self::IfcTubeBundleType => "IFCTUBEBUNDLETYPE",
            Self::IfcTypeObject => "IFCTYPEOBJECT",
            Self::IfcTypeProcess => "IFCTYPEPROCESS",
            Self::IfcTypeProduct => "IFCTYPEPRODUCT",
            Self::IfcTypeResource => "IFCTYPERESOURCE",
            Self::IfcUShapeProfileDef => "IFCUSHAPEPROFILEDEF",
            Self::IfcUnitAssignment => "IFCUNITASSIGNMENT",
            Self::IfcUnitaryControlElement => "IFCUNITARYCONTROLELEMENT",
            Self::IfcUnitaryControlElementType => "IFCUNITARYCONTROLELEMENTTYPE",
            Self::IfcUnitaryEquipment => "IFCUNITARYEQUIPMENT",
            Self::IfcUnitaryEquipmentType => "IFCUNITARYEQUIPMENTTYPE",
            Self::IfcValve => "IFCVALVE",
            Self::IfcValveType => "IFCVALVETYPE",
            Self::IfcVector => "IFCVECTOR",
            Self::IfcVertex => "IFCVERTEX",
            Self::IfcVertexLoop => "IFCVERTEXLOOP",
            Self::IfcVertexPoint => "IFCVERTEXPOINT",
            Self::IfcVibrationDamper => "IFCVIBRATIONDAMPER",
            Self::IfcVibrationDamperType => "IFCVIBRATIONDAMPERTYPE",
            Self::IfcVibrationIsolator => "IFCVIBRATIONISOLATOR",
            Self::IfcVibrationIsolatorType => "IFCVIBRATIONISOLATORTYPE",
            Self::IfcVirtualElement => "IFCVIRTUALELEMENT",
            Self::IfcVirtualGridIntersection => "IFCVIRTUALGRIDINTERSECTION",
            Self::IfcVoidingFeature => "IFCVOIDINGFEATURE",
            Self::IfcWall => "IFCWALL",
            Self::IfcWallElementedCase => "IFCWALLELEMENTEDCASE",
            Self::IfcWallStandardCase => "IFCWALLSTANDARDCASE",
            Self::IfcWallType => "IFCWALLTYPE",
            Self::IfcWasteTerminal => "IFCWASTETERMINAL",
            Self::IfcWasteTerminalType => "IFCWASTETERMINALTYPE",
            Self::IfcWindow => "IFCWINDOW",
            Self::IfcWindowLiningProperties => "IFCWINDOWLININGPROPERTIES",
            Self::IfcWindowPanelProperties => "IFCWINDOWPANELPROPERTIES",
            Self::IfcWindowStandardCase => "IFCWINDOWSTANDARDCASE",
            Self::IfcWindowStyle => "IFCWINDOWSTYLE",
            Self::IfcWindowType => "IFCWINDOWTYPE",
            Self::IfcWorkCalendar => "IFCWORKCALENDAR",
            Self::IfcWorkControl => "IFCWORKCONTROL",
            Self::IfcWorkPlan => "IFCWORKPLAN",
            Self::IfcWorkSchedule => "IFCWORKSCHEDULE",
            Self::IfcWorkTime => "IFCWORKTIME",
            Self::IfcZShapeProfileDef => "IFCZSHAPEPROFILEDEF",
            Self::IfcZone => "IFCZONE",
            Self::Unknown(unknown) => unknown.as_str(),
        }
    }

    /// Static schema keyword for a known type, or None for an owned unknown.
    pub fn known_as_str(&self) -> Option<&'static str> {
        match self {
            Self::IfcActionRequest => Some("IFCACTIONREQUEST"),
            Self::IfcActor => Some("IFCACTOR"),
            Self::IfcActorRole => Some("IFCACTORROLE"),
            Self::IfcActuator => Some("IFCACTUATOR"),
            Self::IfcActuatorType => Some("IFCACTUATORTYPE"),
            Self::IfcAddress => Some("IFCADDRESS"),
            Self::IfcAdvancedBrep => Some("IFCADVANCEDBREP"),
            Self::IfcAdvancedBrepWithVoids => Some("IFCADVANCEDBREPWITHVOIDS"),
            Self::IfcAdvancedFace => Some("IFCADVANCEDFACE"),
            Self::IfcAirTerminal => Some("IFCAIRTERMINAL"),
            Self::IfcAirTerminalBox => Some("IFCAIRTERMINALBOX"),
            Self::IfcAirTerminalBoxType => Some("IFCAIRTERMINALBOXTYPE"),
            Self::IfcAirTerminalType => Some("IFCAIRTERMINALTYPE"),
            Self::IfcAirToAirHeatRecovery => Some("IFCAIRTOAIRHEATRECOVERY"),
            Self::IfcAirToAirHeatRecoveryType => Some("IFCAIRTOAIRHEATRECOVERYTYPE"),
            Self::IfcAlarm => Some("IFCALARM"),
            Self::IfcAlarmType => Some("IFCALARMTYPE"),
            Self::IfcAlignment => Some("IFCALIGNMENT"),
            Self::IfcAlignment2DHorizontal => Some("IFCALIGNMENT2DHORIZONTAL"),
            Self::IfcAlignment2DHorizontalSegment => Some("IFCALIGNMENT2DHORIZONTALSEGMENT"),
            Self::IfcAlignment2DSegment => Some("IFCALIGNMENT2DSEGMENT"),
            Self::IfcAlignment2DVerSegCircularArc => Some("IFCALIGNMENT2DVERSEGCIRCULARARC"),
            Self::IfcAlignment2DVerSegLine => Some("IFCALIGNMENT2DVERSEGLINE"),
            Self::IfcAlignment2DVerSegParabolicArc => Some("IFCALIGNMENT2DVERSEGPARABOLICARC"),
            Self::IfcAlignment2DVertical => Some("IFCALIGNMENT2DVERTICAL"),
            Self::IfcAlignment2DVerticalSegment => Some("IFCALIGNMENT2DVERTICALSEGMENT"),
            Self::IfcAlignmentCurve => Some("IFCALIGNMENTCURVE"),
            Self::IfcAnnotation => Some("IFCANNOTATION"),
            Self::IfcAnnotationFillArea => Some("IFCANNOTATIONFILLAREA"),
            Self::IfcApplication => Some("IFCAPPLICATION"),
            Self::IfcAppliedValue => Some("IFCAPPLIEDVALUE"),
            Self::IfcApproval => Some("IFCAPPROVAL"),
            Self::IfcApprovalRelationship => Some("IFCAPPROVALRELATIONSHIP"),
            Self::IfcArbitraryClosedProfileDef => Some("IFCARBITRARYCLOSEDPROFILEDEF"),
            Self::IfcArbitraryOpenProfileDef => Some("IFCARBITRARYOPENPROFILEDEF"),
            Self::IfcArbitraryProfileDefWithVoids => Some("IFCARBITRARYPROFILEDEFWITHVOIDS"),
            Self::IfcAsset => Some("IFCASSET"),
            Self::IfcAsymmetricIShapeProfileDef => Some("IFCASYMMETRICISHAPEPROFILEDEF"),
            Self::IfcAudioVisualAppliance => Some("IFCAUDIOVISUALAPPLIANCE"),
            Self::IfcAudioVisualApplianceType => Some("IFCAUDIOVISUALAPPLIANCETYPE"),
            Self::IfcAxis1Placement => Some("IFCAXIS1PLACEMENT"),
            Self::IfcAxis2Placement2D => Some("IFCAXIS2PLACEMENT2D"),
            Self::IfcAxis2Placement3D => Some("IFCAXIS2PLACEMENT3D"),
            Self::IfcBSplineCurve => Some("IFCBSPLINECURVE"),
            Self::IfcBSplineCurveWithKnots => Some("IFCBSPLINECURVEWITHKNOTS"),
            Self::IfcBSplineSurface => Some("IFCBSPLINESURFACE"),
            Self::IfcBSplineSurfaceWithKnots => Some("IFCBSPLINESURFACEWITHKNOTS"),
            Self::IfcBeam => Some("IFCBEAM"),
            Self::IfcBeamStandardCase => Some("IFCBEAMSTANDARDCASE"),
            Self::IfcBeamType => Some("IFCBEAMTYPE"),
            Self::IfcBearing => Some("IFCBEARING"),
            Self::IfcBearingType => Some("IFCBEARINGTYPE"),
            Self::IfcBlobTexture => Some("IFCBLOBTEXTURE"),
            Self::IfcBlock => Some("IFCBLOCK"),
            Self::IfcBoiler => Some("IFCBOILER"),
            Self::IfcBoilerType => Some("IFCBOILERTYPE"),
            Self::IfcBooleanClippingResult => Some("IFCBOOLEANCLIPPINGRESULT"),
            Self::IfcBooleanResult => Some("IFCBOOLEANRESULT"),
            Self::IfcBoundaryCondition => Some("IFCBOUNDARYCONDITION"),
            Self::IfcBoundaryCurve => Some("IFCBOUNDARYCURVE"),
            Self::IfcBoundaryEdgeCondition => Some("IFCBOUNDARYEDGECONDITION"),
            Self::IfcBoundaryFaceCondition => Some("IFCBOUNDARYFACECONDITION"),
            Self::IfcBoundaryNodeCondition => Some("IFCBOUNDARYNODECONDITION"),
            Self::IfcBoundaryNodeConditionWarping => Some("IFCBOUNDARYNODECONDITIONWARPING"),
            Self::IfcBoundedCurve => Some("IFCBOUNDEDCURVE"),
            Self::IfcBoundedSurface => Some("IFCBOUNDEDSURFACE"),
            Self::IfcBoundingBox => Some("IFCBOUNDINGBOX"),
            Self::IfcBoxedHalfSpace => Some("IFCBOXEDHALFSPACE"),
            Self::IfcBridge => Some("IFCBRIDGE"),
            Self::IfcBridgePart => Some("IFCBRIDGEPART"),
            Self::IfcBuilding => Some("IFCBUILDING"),
            Self::IfcBuildingElement => Some("IFCBUILDINGELEMENT"),
            Self::IfcBuildingElementPart => Some("IFCBUILDINGELEMENTPART"),
            Self::IfcBuildingElementPartType => Some("IFCBUILDINGELEMENTPARTTYPE"),
            Self::IfcBuildingElementProxy => Some("IFCBUILDINGELEMENTPROXY"),
            Self::IfcBuildingElementProxyType => Some("IFCBUILDINGELEMENTPROXYTYPE"),
            Self::IfcBuildingElementType => Some("IFCBUILDINGELEMENTTYPE"),
            Self::IfcBuildingStorey => Some("IFCBUILDINGSTOREY"),
            Self::IfcBuildingSystem => Some("IFCBUILDINGSYSTEM"),
            Self::IfcBurner => Some("IFCBURNER"),
            Self::IfcBurnerType => Some("IFCBURNERTYPE"),
            Self::IfcCShapeProfileDef => Some("IFCCSHAPEPROFILEDEF"),
            Self::IfcCableCarrierFitting => Some("IFCCABLECARRIERFITTING"),
            Self::IfcCableCarrierFittingType => Some("IFCCABLECARRIERFITTINGTYPE"),
            Self::IfcCableCarrierSegment => Some("IFCCABLECARRIERSEGMENT"),
            Self::IfcCableCarrierSegmentType => Some("IFCCABLECARRIERSEGMENTTYPE"),
            Self::IfcCableFitting => Some("IFCCABLEFITTING"),
            Self::IfcCableFittingType => Some("IFCCABLEFITTINGTYPE"),
            Self::IfcCableSegment => Some("IFCCABLESEGMENT"),
            Self::IfcCableSegmentType => Some("IFCCABLESEGMENTTYPE"),
            Self::IfcCaissonFoundation => Some("IFCCAISSONFOUNDATION"),
            Self::IfcCaissonFoundationType => Some("IFCCAISSONFOUNDATIONTYPE"),
            Self::IfcCartesianPoint => Some("IFCCARTESIANPOINT"),
            Self::IfcCartesianPointList => Some("IFCCARTESIANPOINTLIST"),
            Self::IfcCartesianPointList2D => Some("IFCCARTESIANPOINTLIST2D"),
            Self::IfcCartesianPointList3D => Some("IFCCARTESIANPOINTLIST3D"),
            Self::IfcCartesianTransformationOperator => Some("IFCCARTESIANTRANSFORMATIONOPERATOR"),
            Self::IfcCartesianTransformationOperator2D => Some("IFCCARTESIANTRANSFORMATIONOPERATOR2D"),
            Self::IfcCartesianTransformationOperator2DnonUniform => Some("IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM"),
            Self::IfcCartesianTransformationOperator3D => Some("IFCCARTESIANTRANSFORMATIONOPERATOR3D"),
            Self::IfcCartesianTransformationOperator3DnonUniform => Some("IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM"),
            Self::IfcCenterLineProfileDef => Some("IFCCENTERLINEPROFILEDEF"),
            Self::IfcChiller => Some("IFCCHILLER"),
            Self::IfcChillerType => Some("IFCCHILLERTYPE"),
            Self::IfcChimney => Some("IFCCHIMNEY"),
            Self::IfcChimneyType => Some("IFCCHIMNEYTYPE"),
            Self::IfcCircle => Some("IFCCIRCLE"),
            Self::IfcCircleHollowProfileDef => Some("IFCCIRCLEHOLLOWPROFILEDEF"),
            Self::IfcCircleProfileDef => Some("IFCCIRCLEPROFILEDEF"),
            Self::IfcCircularArcSegment2D => Some("IFCCIRCULARARCSEGMENT2D"),
            Self::IfcCivilElement => Some("IFCCIVILELEMENT"),
            Self::IfcCivilElementType => Some("IFCCIVILELEMENTTYPE"),
            Self::IfcClassification => Some("IFCCLASSIFICATION"),
            Self::IfcClassificationReference => Some("IFCCLASSIFICATIONREFERENCE"),
            Self::IfcClosedShell => Some("IFCCLOSEDSHELL"),
            Self::IfcCoil => Some("IFCCOIL"),
            Self::IfcCoilType => Some("IFCCOILTYPE"),
            Self::IfcColourRgb => Some("IFCCOLOURRGB"),
            Self::IfcColourRgbList => Some("IFCCOLOURRGBLIST"),
            Self::IfcColourSpecification => Some("IFCCOLOURSPECIFICATION"),
            Self::IfcColumn => Some("IFCCOLUMN"),
            Self::IfcColumnStandardCase => Some("IFCCOLUMNSTANDARDCASE"),
            Self::IfcColumnType => Some("IFCCOLUMNTYPE"),
            Self::IfcCommunicationsAppliance => Some("IFCCOMMUNICATIONSAPPLIANCE"),
            Self::IfcCommunicationsApplianceType => Some("IFCCOMMUNICATIONSAPPLIANCETYPE"),
            Self::IfcComplexProperty => Some("IFCCOMPLEXPROPERTY"),
            Self::IfcComplexPropertyTemplate => Some("IFCCOMPLEXPROPERTYTEMPLATE"),
            Self::IfcCompositeCurve => Some("IFCCOMPOSITECURVE"),
            Self::IfcCompositeCurveOnSurface => Some("IFCCOMPOSITECURVEONSURFACE"),
            Self::IfcCompositeCurveSegment => Some("IFCCOMPOSITECURVESEGMENT"),
            Self::IfcCompositeProfileDef => Some("IFCCOMPOSITEPROFILEDEF"),
            Self::IfcCompressor => Some("IFCCOMPRESSOR"),
            Self::IfcCompressorType => Some("IFCCOMPRESSORTYPE"),
            Self::IfcCondenser => Some("IFCCONDENSER"),
            Self::IfcCondenserType => Some("IFCCONDENSERTYPE"),
            Self::IfcConic => Some("IFCCONIC"),
            Self::IfcConnectedFaceSet => Some("IFCCONNECTEDFACESET"),
            Self::IfcConnectionCurveGeometry => Some("IFCCONNECTIONCURVEGEOMETRY"),
            Self::IfcConnectionGeometry => Some("IFCCONNECTIONGEOMETRY"),
            Self::IfcConnectionPointEccentricity => Some("IFCCONNECTIONPOINTECCENTRICITY"),
            Self::IfcConnectionPointGeometry => Some("IFCCONNECTIONPOINTGEOMETRY"),
            Self::IfcConnectionSurfaceGeometry => Some("IFCCONNECTIONSURFACEGEOMETRY"),
            Self::IfcConnectionVolumeGeometry => Some("IFCCONNECTIONVOLUMEGEOMETRY"),
            Self::IfcConstraint => Some("IFCCONSTRAINT"),
            Self::IfcConstructionEquipmentResource => Some("IFCCONSTRUCTIONEQUIPMENTRESOURCE"),
            Self::IfcConstructionEquipmentResourceType => Some("IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE"),
            Self::IfcConstructionMaterialResource => Some("IFCCONSTRUCTIONMATERIALRESOURCE"),
            Self::IfcConstructionMaterialResourceType => Some("IFCCONSTRUCTIONMATERIALRESOURCETYPE"),
            Self::IfcConstructionProductResource => Some("IFCCONSTRUCTIONPRODUCTRESOURCE"),
            Self::IfcConstructionProductResourceType => Some("IFCCONSTRUCTIONPRODUCTRESOURCETYPE"),
            Self::IfcConstructionResource => Some("IFCCONSTRUCTIONRESOURCE"),
            Self::IfcConstructionResourceType => Some("IFCCONSTRUCTIONRESOURCETYPE"),
            Self::IfcContext => Some("IFCCONTEXT"),
            Self::IfcContextDependentUnit => Some("IFCCONTEXTDEPENDENTUNIT"),
            Self::IfcControl => Some("IFCCONTROL"),
            Self::IfcController => Some("IFCCONTROLLER"),
            Self::IfcControllerType => Some("IFCCONTROLLERTYPE"),
            Self::IfcConversionBasedUnit => Some("IFCCONVERSIONBASEDUNIT"),
            Self::IfcConversionBasedUnitWithOffset => Some("IFCCONVERSIONBASEDUNITWITHOFFSET"),
            Self::IfcCooledBeam => Some("IFCCOOLEDBEAM"),
            Self::IfcCooledBeamType => Some("IFCCOOLEDBEAMTYPE"),
            Self::IfcCoolingTower => Some("IFCCOOLINGTOWER"),
            Self::IfcCoolingTowerType => Some("IFCCOOLINGTOWERTYPE"),
            Self::IfcCoordinateOperation => Some("IFCCOORDINATEOPERATION"),
            Self::IfcCoordinateReferenceSystem => Some("IFCCOORDINATEREFERENCESYSTEM"),
            Self::IfcCostItem => Some("IFCCOSTITEM"),
            Self::IfcCostSchedule => Some("IFCCOSTSCHEDULE"),
            Self::IfcCostValue => Some("IFCCOSTVALUE"),
            Self::IfcCovering => Some("IFCCOVERING"),
            Self::IfcCoveringType => Some("IFCCOVERINGTYPE"),
            Self::IfcCrewResource => Some("IFCCREWRESOURCE"),
            Self::IfcCrewResourceType => Some("IFCCREWRESOURCETYPE"),
            Self::IfcCsgPrimitive3D => Some("IFCCSGPRIMITIVE3D"),
            Self::IfcCsgSolid => Some("IFCCSGSOLID"),
            Self::IfcCurrencyRelationship => Some("IFCCURRENCYRELATIONSHIP"),
            Self::IfcCurtainWall => Some("IFCCURTAINWALL"),
            Self::IfcCurtainWallType => Some("IFCCURTAINWALLTYPE"),
            Self::IfcCurve => Some("IFCCURVE"),
            Self::IfcCurveBoundedPlane => Some("IFCCURVEBOUNDEDPLANE"),
            Self::IfcCurveBoundedSurface => Some("IFCCURVEBOUNDEDSURFACE"),
            Self::IfcCurveSegment2D => Some("IFCCURVESEGMENT2D"),
            Self::IfcCurveStyle => Some("IFCCURVESTYLE"),
            Self::IfcCurveStyleFont => Some("IFCCURVESTYLEFONT"),
            Self::IfcCurveStyleFontAndScaling => Some("IFCCURVESTYLEFONTANDSCALING"),
            Self::IfcCurveStyleFontPattern => Some("IFCCURVESTYLEFONTPATTERN"),
            Self::IfcCylindricalSurface => Some("IFCCYLINDRICALSURFACE"),
            Self::IfcDamper => Some("IFCDAMPER"),
            Self::IfcDamperType => Some("IFCDAMPERTYPE"),
            Self::IfcDeepFoundation => Some("IFCDEEPFOUNDATION"),
            Self::IfcDeepFoundationType => Some("IFCDEEPFOUNDATIONTYPE"),
            Self::IfcDerivedProfileDef => Some("IFCDERIVEDPROFILEDEF"),
            Self::IfcDerivedUnit => Some("IFCDERIVEDUNIT"),
            Self::IfcDerivedUnitElement => Some("IFCDERIVEDUNITELEMENT"),
            Self::IfcDimensionalExponents => Some("IFCDIMENSIONALEXPONENTS"),
            Self::IfcDirection => Some("IFCDIRECTION"),
            Self::IfcDiscreteAccessory => Some("IFCDISCRETEACCESSORY"),
            Self::IfcDiscreteAccessoryType => Some("IFCDISCRETEACCESSORYTYPE"),
            Self::IfcDistanceExpression => Some("IFCDISTANCEEXPRESSION"),
            Self::IfcDistributionChamberElement => Some("IFCDISTRIBUTIONCHAMBERELEMENT"),
            Self::IfcDistributionChamberElementType => Some("IFCDISTRIBUTIONCHAMBERELEMENTTYPE"),
            Self::IfcDistributionCircuit => Some("IFCDISTRIBUTIONCIRCUIT"),
            Self::IfcDistributionControlElement => Some("IFCDISTRIBUTIONCONTROLELEMENT"),
            Self::IfcDistributionControlElementType => Some("IFCDISTRIBUTIONCONTROLELEMENTTYPE"),
            Self::IfcDistributionElement => Some("IFCDISTRIBUTIONELEMENT"),
            Self::IfcDistributionElementType => Some("IFCDISTRIBUTIONELEMENTTYPE"),
            Self::IfcDistributionFlowElement => Some("IFCDISTRIBUTIONFLOWELEMENT"),
            Self::IfcDistributionFlowElementType => Some("IFCDISTRIBUTIONFLOWELEMENTTYPE"),
            Self::IfcDistributionPort => Some("IFCDISTRIBUTIONPORT"),
            Self::IfcDistributionSystem => Some("IFCDISTRIBUTIONSYSTEM"),
            Self::IfcDocumentInformation => Some("IFCDOCUMENTINFORMATION"),
            Self::IfcDocumentInformationRelationship => Some("IFCDOCUMENTINFORMATIONRELATIONSHIP"),
            Self::IfcDocumentReference => Some("IFCDOCUMENTREFERENCE"),
            Self::IfcDoor => Some("IFCDOOR"),
            Self::IfcDoorLiningProperties => Some("IFCDOORLININGPROPERTIES"),
            Self::IfcDoorPanelProperties => Some("IFCDOORPANELPROPERTIES"),
            Self::IfcDoorStandardCase => Some("IFCDOORSTANDARDCASE"),
            Self::IfcDoorStyle => Some("IFCDOORSTYLE"),
            Self::IfcDoorType => Some("IFCDOORTYPE"),
            Self::IfcDraughtingPreDefinedColour => Some("IFCDRAUGHTINGPREDEFINEDCOLOUR"),
            Self::IfcDraughtingPreDefinedCurveFont => Some("IFCDRAUGHTINGPREDEFINEDCURVEFONT"),
            Self::IfcDuctFitting => Some("IFCDUCTFITTING"),
            Self::IfcDuctFittingType => Some("IFCDUCTFITTINGTYPE"),
            Self::IfcDuctSegment => Some("IFCDUCTSEGMENT"),
            Self::IfcDuctSegmentType => Some("IFCDUCTSEGMENTTYPE"),
            Self::IfcDuctSilencer => Some("IFCDUCTSILENCER"),
            Self::IfcDuctSilencerType => Some("IFCDUCTSILENCERTYPE"),
            Self::IfcEdge => Some("IFCEDGE"),
            Self::IfcEdgeCurve => Some("IFCEDGECURVE"),
            Self::IfcEdgeLoop => Some("IFCEDGELOOP"),
            Self::IfcElectricAppliance => Some("IFCELECTRICAPPLIANCE"),
            Self::IfcElectricApplianceType => Some("IFCELECTRICAPPLIANCETYPE"),
            Self::IfcElectricDistributionBoard => Some("IFCELECTRICDISTRIBUTIONBOARD"),
            Self::IfcElectricDistributionBoardType => Some("IFCELECTRICDISTRIBUTIONBOARDTYPE"),
            Self::IfcElectricFlowStorageDevice => Some("IFCELECTRICFLOWSTORAGEDEVICE"),
            Self::IfcElectricFlowStorageDeviceType => Some("IFCELECTRICFLOWSTORAGEDEVICETYPE"),
            Self::IfcElectricGenerator => Some("IFCELECTRICGENERATOR"),
            Self::IfcElectricGeneratorType => Some("IFCELECTRICGENERATORTYPE"),
            Self::IfcElectricMotor => Some("IFCELECTRICMOTOR"),
            Self::IfcElectricMotorType => Some("IFCELECTRICMOTORTYPE"),
            Self::IfcElectricTimeControl => Some("IFCELECTRICTIMECONTROL"),
            Self::IfcElectricTimeControlType => Some("IFCELECTRICTIMECONTROLTYPE"),
            Self::IfcElement => Some("IFCELEMENT"),
            Self::IfcElementAssembly => Some("IFCELEMENTASSEMBLY"),
            Self::IfcElementAssemblyType => Some("IFCELEMENTASSEMBLYTYPE"),
            Self::IfcElementComponent => Some("IFCELEMENTCOMPONENT"),
            Self::IfcElementComponentType => Some("IFCELEMENTCOMPONENTTYPE"),
            Self::IfcElementQuantity => Some("IFCELEMENTQUANTITY"),
            Self::IfcElementType => Some("IFCELEMENTTYPE"),
            Self::IfcElementarySurface => Some("IFCELEMENTARYSURFACE"),
            Self::IfcEllipse => Some("IFCELLIPSE"),
            Self::IfcEllipseProfileDef => Some("IFCELLIPSEPROFILEDEF"),
            Self::IfcEnergyConversionDevice => Some("IFCENERGYCONVERSIONDEVICE"),
            Self::IfcEnergyConversionDeviceType => Some("IFCENERGYCONVERSIONDEVICETYPE"),
            Self::IfcEngine => Some("IFCENGINE"),
            Self::IfcEngineType => Some("IFCENGINETYPE"),
            Self::IfcEvaporativeCooler => Some("IFCEVAPORATIVECOOLER"),
            Self::IfcEvaporativeCoolerType => Some("IFCEVAPORATIVECOOLERTYPE"),
            Self::IfcEvaporator => Some("IFCEVAPORATOR"),
            Self::IfcEvaporatorType => Some("IFCEVAPORATORTYPE"),
            Self::IfcEvent => Some("IFCEVENT"),
            Self::IfcEventTime => Some("IFCEVENTTIME"),
            Self::IfcEventType => Some("IFCEVENTTYPE"),
            Self::IfcExtendedProperties => Some("IFCEXTENDEDPROPERTIES"),
            Self::IfcExternalInformation => Some("IFCEXTERNALINFORMATION"),
            Self::IfcExternalReference => Some("IFCEXTERNALREFERENCE"),
            Self::IfcExternalReferenceRelationship => Some("IFCEXTERNALREFERENCERELATIONSHIP"),
            Self::IfcExternalSpatialElement => Some("IFCEXTERNALSPATIALELEMENT"),
            Self::IfcExternalSpatialStructureElement => Some("IFCEXTERNALSPATIALSTRUCTUREELEMENT"),
            Self::IfcExternallyDefinedHatchStyle => Some("IFCEXTERNALLYDEFINEDHATCHSTYLE"),
            Self::IfcExternallyDefinedSurfaceStyle => Some("IFCEXTERNALLYDEFINEDSURFACESTYLE"),
            Self::IfcExternallyDefinedTextFont => Some("IFCEXTERNALLYDEFINEDTEXTFONT"),
            Self::IfcExtrudedAreaSolid => Some("IFCEXTRUDEDAREASOLID"),
            Self::IfcExtrudedAreaSolidTapered => Some("IFCEXTRUDEDAREASOLIDTAPERED"),
            Self::IfcFace => Some("IFCFACE"),
            Self::IfcFaceBasedSurfaceModel => Some("IFCFACEBASEDSURFACEMODEL"),
            Self::IfcFaceBound => Some("IFCFACEBOUND"),
            Self::IfcFaceOuterBound => Some("IFCFACEOUTERBOUND"),
            Self::IfcFaceSurface => Some("IFCFACESURFACE"),
            Self::IfcFacetedBrep => Some("IFCFACETEDBREP"),
            Self::IfcFacetedBrepWithVoids => Some("IFCFACETEDBREPWITHVOIDS"),
            Self::IfcFacility => Some("IFCFACILITY"),
            Self::IfcFacilityPart => Some("IFCFACILITYPART"),
            Self::IfcFailureConnectionCondition => Some("IFCFAILURECONNECTIONCONDITION"),
            Self::IfcFan => Some("IFCFAN"),
            Self::IfcFanType => Some("IFCFANTYPE"),
            Self::IfcFastener => Some("IFCFASTENER"),
            Self::IfcFastenerType => Some("IFCFASTENERTYPE"),
            Self::IfcFeatureElement => Some("IFCFEATUREELEMENT"),
            Self::IfcFeatureElementAddition => Some("IFCFEATUREELEMENTADDITION"),
            Self::IfcFeatureElementSubtraction => Some("IFCFEATUREELEMENTSUBTRACTION"),
            Self::IfcFillAreaStyle => Some("IFCFILLAREASTYLE"),
            Self::IfcFillAreaStyleHatching => Some("IFCFILLAREASTYLEHATCHING"),
            Self::IfcFillAreaStyleTiles => Some("IFCFILLAREASTYLETILES"),
            Self::IfcFilter => Some("IFCFILTER"),
            Self::IfcFilterType => Some("IFCFILTERTYPE"),
            Self::IfcFireSuppressionTerminal => Some("IFCFIRESUPPRESSIONTERMINAL"),
            Self::IfcFireSuppressionTerminalType => Some("IFCFIRESUPPRESSIONTERMINALTYPE"),
            Self::IfcFixedReferenceSweptAreaSolid => Some("IFCFIXEDREFERENCESWEPTAREASOLID"),
            Self::IfcFlowController => Some("IFCFLOWCONTROLLER"),
            Self::IfcFlowControllerType => Some("IFCFLOWCONTROLLERTYPE"),
            Self::IfcFlowFitting => Some("IFCFLOWFITTING"),
            Self::IfcFlowFittingType => Some("IFCFLOWFITTINGTYPE"),
            Self::IfcFlowInstrument => Some("IFCFLOWINSTRUMENT"),
            Self::IfcFlowInstrumentType => Some("IFCFLOWINSTRUMENTTYPE"),
            Self::IfcFlowMeter => Some("IFCFLOWMETER"),
            Self::IfcFlowMeterType => Some("IFCFLOWMETERTYPE"),
            Self::IfcFlowMovingDevice => Some("IFCFLOWMOVINGDEVICE"),
            Self::IfcFlowMovingDeviceType => Some("IFCFLOWMOVINGDEVICETYPE"),
            Self::IfcFlowSegment => Some("IFCFLOWSEGMENT"),
            Self::IfcFlowSegmentType => Some("IFCFLOWSEGMENTTYPE"),
            Self::IfcFlowStorageDevice => Some("IFCFLOWSTORAGEDEVICE"),
            Self::IfcFlowStorageDeviceType => Some("IFCFLOWSTORAGEDEVICETYPE"),
            Self::IfcFlowTerminal => Some("IFCFLOWTERMINAL"),
            Self::IfcFlowTerminalType => Some("IFCFLOWTERMINALTYPE"),
            Self::IfcFlowTreatmentDevice => Some("IFCFLOWTREATMENTDEVICE"),
            Self::IfcFlowTreatmentDeviceType => Some("IFCFLOWTREATMENTDEVICETYPE"),
            Self::IfcFooting => Some("IFCFOOTING"),
            Self::IfcFootingType => Some("IFCFOOTINGTYPE"),
            Self::IfcFurnishingElement => Some("IFCFURNISHINGELEMENT"),
            Self::IfcFurnishingElementType => Some("IFCFURNISHINGELEMENTTYPE"),
            Self::IfcFurniture => Some("IFCFURNITURE"),
            Self::IfcFurnitureType => Some("IFCFURNITURETYPE"),
            Self::IfcGeographicElement => Some("IFCGEOGRAPHICELEMENT"),
            Self::IfcGeographicElementType => Some("IFCGEOGRAPHICELEMENTTYPE"),
            Self::IfcGeometricCurveSet => Some("IFCGEOMETRICCURVESET"),
            Self::IfcGeometricRepresentationContext => Some("IFCGEOMETRICREPRESENTATIONCONTEXT"),
            Self::IfcGeometricRepresentationItem => Some("IFCGEOMETRICREPRESENTATIONITEM"),
            Self::IfcGeometricRepresentationSubContext => Some("IFCGEOMETRICREPRESENTATIONSUBCONTEXT"),
            Self::IfcGeometricSet => Some("IFCGEOMETRICSET"),
            Self::IfcGrid => Some("IFCGRID"),
            Self::IfcGridAxis => Some("IFCGRIDAXIS"),
            Self::IfcGridPlacement => Some("IFCGRIDPLACEMENT"),
            Self::IfcGroup => Some("IFCGROUP"),
            Self::IfcHalfSpaceSolid => Some("IFCHALFSPACESOLID"),
            Self::IfcHeatExchanger => Some("IFCHEATEXCHANGER"),
            Self::IfcHeatExchangerType => Some("IFCHEATEXCHANGERTYPE"),
            Self::IfcHumidifier => Some("IFCHUMIDIFIER"),
            Self::IfcHumidifierType => Some("IFCHUMIDIFIERTYPE"),
            Self::IfcIShapeProfileDef => Some("IFCISHAPEPROFILEDEF"),
            Self::IfcImageTexture => Some("IFCIMAGETEXTURE"),
            Self::IfcIndexedColourMap => Some("IFCINDEXEDCOLOURMAP"),
            Self::IfcIndexedPolyCurve => Some("IFCINDEXEDPOLYCURVE"),
            Self::IfcIndexedPolygonalFace => Some("IFCINDEXEDPOLYGONALFACE"),
            Self::IfcIndexedPolygonalFaceWithVoids => Some("IFCINDEXEDPOLYGONALFACEWITHVOIDS"),
            Self::IfcIndexedTextureMap => Some("IFCINDEXEDTEXTUREMAP"),
            Self::IfcIndexedTriangleTextureMap => Some("IFCINDEXEDTRIANGLETEXTUREMAP"),
            Self::IfcInterceptor => Some("IFCINTERCEPTOR"),
            Self::IfcInterceptorType => Some("IFCINTERCEPTORTYPE"),
            Self::IfcIntersectionCurve => Some("IFCINTERSECTIONCURVE"),
            Self::IfcInventory => Some("IFCINVENTORY"),
            Self::IfcIrregularTimeSeries => Some("IFCIRREGULARTIMESERIES"),
            Self::IfcIrregularTimeSeriesValue => Some("IFCIRREGULARTIMESERIESVALUE"),
            Self::IfcJunctionBox => Some("IFCJUNCTIONBOX"),
            Self::IfcJunctionBoxType => Some("IFCJUNCTIONBOXTYPE"),
            Self::IfcLShapeProfileDef => Some("IFCLSHAPEPROFILEDEF"),
            Self::IfcLaborResource => Some("IFCLABORRESOURCE"),
            Self::IfcLaborResourceType => Some("IFCLABORRESOURCETYPE"),
            Self::IfcLagTime => Some("IFCLAGTIME"),
            Self::IfcLamp => Some("IFCLAMP"),
            Self::IfcLampType => Some("IFCLAMPTYPE"),
            Self::IfcLibraryInformation => Some("IFCLIBRARYINFORMATION"),
            Self::IfcLibraryReference => Some("IFCLIBRARYREFERENCE"),
            Self::IfcLightDistributionData => Some("IFCLIGHTDISTRIBUTIONDATA"),
            Self::IfcLightFixture => Some("IFCLIGHTFIXTURE"),
            Self::IfcLightFixtureType => Some("IFCLIGHTFIXTURETYPE"),
            Self::IfcLightIntensityDistribution => Some("IFCLIGHTINTENSITYDISTRIBUTION"),
            Self::IfcLightSource => Some("IFCLIGHTSOURCE"),
            Self::IfcLightSourceAmbient => Some("IFCLIGHTSOURCEAMBIENT"),
            Self::IfcLightSourceDirectional => Some("IFCLIGHTSOURCEDIRECTIONAL"),
            Self::IfcLightSourceGoniometric => Some("IFCLIGHTSOURCEGONIOMETRIC"),
            Self::IfcLightSourcePositional => Some("IFCLIGHTSOURCEPOSITIONAL"),
            Self::IfcLightSourceSpot => Some("IFCLIGHTSOURCESPOT"),
            Self::IfcLine => Some("IFCLINE"),
            Self::IfcLineSegment2D => Some("IFCLINESEGMENT2D"),
            Self::IfcLinearPlacement => Some("IFCLINEARPLACEMENT"),
            Self::IfcLinearPositioningElement => Some("IFCLINEARPOSITIONINGELEMENT"),
            Self::IfcLocalPlacement => Some("IFCLOCALPLACEMENT"),
            Self::IfcLoop => Some("IFCLOOP"),
            Self::IfcManifoldSolidBrep => Some("IFCMANIFOLDSOLIDBREP"),
            Self::IfcMapConversion => Some("IFCMAPCONVERSION"),
            Self::IfcMappedItem => Some("IFCMAPPEDITEM"),
            Self::IfcMaterial => Some("IFCMATERIAL"),
            Self::IfcMaterialClassificationRelationship => Some("IFCMATERIALCLASSIFICATIONRELATIONSHIP"),
            Self::IfcMaterialConstituent => Some("IFCMATERIALCONSTITUENT"),
            Self::IfcMaterialConstituentSet => Some("IFCMATERIALCONSTITUENTSET"),
            Self::IfcMaterialDefinition => Some("IFCMATERIALDEFINITION"),
            Self::IfcMaterialDefinitionRepresentation => Some("IFCMATERIALDEFINITIONREPRESENTATION"),
            Self::IfcMaterialLayer => Some("IFCMATERIALLAYER"),
            Self::IfcMaterialLayerSet => Some("IFCMATERIALLAYERSET"),
            Self::IfcMaterialLayerSetUsage => Some("IFCMATERIALLAYERSETUSAGE"),
            Self::IfcMaterialLayerWithOffsets => Some("IFCMATERIALLAYERWITHOFFSETS"),
            Self::IfcMaterialList => Some("IFCMATERIALLIST"),
            Self::IfcMaterialProfile => Some("IFCMATERIALPROFILE"),
            Self::IfcMaterialProfileSet => Some("IFCMATERIALPROFILESET"),
            Self::IfcMaterialProfileSetUsage => Some("IFCMATERIALPROFILESETUSAGE"),
            Self::IfcMaterialProfileSetUsageTapering => Some("IFCMATERIALPROFILESETUSAGETAPERING"),
            Self::IfcMaterialProfileWithOffsets => Some("IFCMATERIALPROFILEWITHOFFSETS"),
            Self::IfcMaterialProperties => Some("IFCMATERIALPROPERTIES"),
            Self::IfcMaterialRelationship => Some("IFCMATERIALRELATIONSHIP"),
            Self::IfcMaterialUsageDefinition => Some("IFCMATERIALUSAGEDEFINITION"),
            Self::IfcMeasureWithUnit => Some("IFCMEASUREWITHUNIT"),
            Self::IfcMechanicalFastener => Some("IFCMECHANICALFASTENER"),
            Self::IfcMechanicalFastenerType => Some("IFCMECHANICALFASTENERTYPE"),
            Self::IfcMedicalDevice => Some("IFCMEDICALDEVICE"),
            Self::IfcMedicalDeviceType => Some("IFCMEDICALDEVICETYPE"),
            Self::IfcMember => Some("IFCMEMBER"),
            Self::IfcMemberStandardCase => Some("IFCMEMBERSTANDARDCASE"),
            Self::IfcMemberType => Some("IFCMEMBERTYPE"),
            Self::IfcMetric => Some("IFCMETRIC"),
            Self::IfcMirroredProfileDef => Some("IFCMIRROREDPROFILEDEF"),
            Self::IfcMonetaryUnit => Some("IFCMONETARYUNIT"),
            Self::IfcMotorConnection => Some("IFCMOTORCONNECTION"),
            Self::IfcMotorConnectionType => Some("IFCMOTORCONNECTIONTYPE"),
            Self::IfcNamedUnit => Some("IFCNAMEDUNIT"),
            Self::IfcObject => Some("IFCOBJECT"),
            Self::IfcObjectDefinition => Some("IFCOBJECTDEFINITION"),
            Self::IfcObjectPlacement => Some("IFCOBJECTPLACEMENT"),
            Self::IfcObjective => Some("IFCOBJECTIVE"),
            Self::IfcOccupant => Some("IFCOCCUPANT"),
            Self::IfcOffsetCurve => Some("IFCOFFSETCURVE"),
            Self::IfcOffsetCurve2D => Some("IFCOFFSETCURVE2D"),
            Self::IfcOffsetCurve3D => Some("IFCOFFSETCURVE3D"),
            Self::IfcOffsetCurveByDistances => Some("IFCOFFSETCURVEBYDISTANCES"),
            Self::IfcOpenShell => Some("IFCOPENSHELL"),
            Self::IfcOpeningElement => Some("IFCOPENINGELEMENT"),
            Self::IfcOpeningStandardCase => Some("IFCOPENINGSTANDARDCASE"),
            Self::IfcOrganization => Some("IFCORGANIZATION"),
            Self::IfcOrganizationRelationship => Some("IFCORGANIZATIONRELATIONSHIP"),
            Self::IfcOrientationExpression => Some("IFCORIENTATIONEXPRESSION"),
            Self::IfcOrientedEdge => Some("IFCORIENTEDEDGE"),
            Self::IfcOuterBoundaryCurve => Some("IFCOUTERBOUNDARYCURVE"),
            Self::IfcOutlet => Some("IFCOUTLET"),
            Self::IfcOutletType => Some("IFCOUTLETTYPE"),
            Self::IfcOwnerHistory => Some("IFCOWNERHISTORY"),
            Self::IfcParameterizedProfileDef => Some("IFCPARAMETERIZEDPROFILEDEF"),
            Self::IfcPath => Some("IFCPATH"),
            Self::IfcPcurve => Some("IFCPCURVE"),
            Self::IfcPerformanceHistory => Some("IFCPERFORMANCEHISTORY"),
            Self::IfcPermeableCoveringProperties => Some("IFCPERMEABLECOVERINGPROPERTIES"),
            Self::IfcPermit => Some("IFCPERMIT"),
            Self::IfcPerson => Some("IFCPERSON"),
            Self::IfcPersonAndOrganization => Some("IFCPERSONANDORGANIZATION"),
            Self::IfcPhysicalComplexQuantity => Some("IFCPHYSICALCOMPLEXQUANTITY"),
            Self::IfcPhysicalQuantity => Some("IFCPHYSICALQUANTITY"),
            Self::IfcPhysicalSimpleQuantity => Some("IFCPHYSICALSIMPLEQUANTITY"),
            Self::IfcPile => Some("IFCPILE"),
            Self::IfcPileType => Some("IFCPILETYPE"),
            Self::IfcPipeFitting => Some("IFCPIPEFITTING"),
            Self::IfcPipeFittingType => Some("IFCPIPEFITTINGTYPE"),
            Self::IfcPipeSegment => Some("IFCPIPESEGMENT"),
            Self::IfcPipeSegmentType => Some("IFCPIPESEGMENTTYPE"),
            Self::IfcPixelTexture => Some("IFCPIXELTEXTURE"),
            Self::IfcPlacement => Some("IFCPLACEMENT"),
            Self::IfcPlanarBox => Some("IFCPLANARBOX"),
            Self::IfcPlanarExtent => Some("IFCPLANAREXTENT"),
            Self::IfcPlane => Some("IFCPLANE"),
            Self::IfcPlate => Some("IFCPLATE"),
            Self::IfcPlateStandardCase => Some("IFCPLATESTANDARDCASE"),
            Self::IfcPlateType => Some("IFCPLATETYPE"),
            Self::IfcPoint => Some("IFCPOINT"),
            Self::IfcPointOnCurve => Some("IFCPOINTONCURVE"),
            Self::IfcPointOnSurface => Some("IFCPOINTONSURFACE"),
            Self::IfcPolyLoop => Some("IFCPOLYLOOP"),
            Self::IfcPolygonalBoundedHalfSpace => Some("IFCPOLYGONALBOUNDEDHALFSPACE"),
            Self::IfcPolygonalFaceSet => Some("IFCPOLYGONALFACESET"),
            Self::IfcPolyline => Some("IFCPOLYLINE"),
            Self::IfcPort => Some("IFCPORT"),
            Self::IfcPositioningElement => Some("IFCPOSITIONINGELEMENT"),
            Self::IfcPostalAddress => Some("IFCPOSTALADDRESS"),
            Self::IfcPreDefinedColour => Some("IFCPREDEFINEDCOLOUR"),
            Self::IfcPreDefinedCurveFont => Some("IFCPREDEFINEDCURVEFONT"),
            Self::IfcPreDefinedItem => Some("IFCPREDEFINEDITEM"),
            Self::IfcPreDefinedProperties => Some("IFCPREDEFINEDPROPERTIES"),
            Self::IfcPreDefinedPropertySet => Some("IFCPREDEFINEDPROPERTYSET"),
            Self::IfcPreDefinedTextFont => Some("IFCPREDEFINEDTEXTFONT"),
            Self::IfcPresentationItem => Some("IFCPRESENTATIONITEM"),
            Self::IfcPresentationLayerAssignment => Some("IFCPRESENTATIONLAYERASSIGNMENT"),
            Self::IfcPresentationLayerWithStyle => Some("IFCPRESENTATIONLAYERWITHSTYLE"),
            Self::IfcPresentationStyle => Some("IFCPRESENTATIONSTYLE"),
            Self::IfcPresentationStyleAssignment => Some("IFCPRESENTATIONSTYLEASSIGNMENT"),
            Self::IfcProcedure => Some("IFCPROCEDURE"),
            Self::IfcProcedureType => Some("IFCPROCEDURETYPE"),
            Self::IfcProcess => Some("IFCPROCESS"),
            Self::IfcProduct => Some("IFCPRODUCT"),
            Self::IfcProductDefinitionShape => Some("IFCPRODUCTDEFINITIONSHAPE"),
            Self::IfcProductRepresentation => Some("IFCPRODUCTREPRESENTATION"),
            Self::IfcProfileDef => Some("IFCPROFILEDEF"),
            Self::IfcProfileProperties => Some("IFCPROFILEPROPERTIES"),
            Self::IfcProject => Some("IFCPROJECT"),
            Self::IfcProjectLibrary => Some("IFCPROJECTLIBRARY"),
            Self::IfcProjectOrder => Some("IFCPROJECTORDER"),
            Self::IfcProjectedCRS => Some("IFCPROJECTEDCRS"),
            Self::IfcProjectionElement => Some("IFCPROJECTIONELEMENT"),
            Self::IfcProperty => Some("IFCPROPERTY"),
            Self::IfcPropertyAbstraction => Some("IFCPROPERTYABSTRACTION"),
            Self::IfcPropertyBoundedValue => Some("IFCPROPERTYBOUNDEDVALUE"),
            Self::IfcPropertyDefinition => Some("IFCPROPERTYDEFINITION"),
            Self::IfcPropertyDependencyRelationship => Some("IFCPROPERTYDEPENDENCYRELATIONSHIP"),
            Self::IfcPropertyEnumeratedValue => Some("IFCPROPERTYENUMERATEDVALUE"),
            Self::IfcPropertyEnumeration => Some("IFCPROPERTYENUMERATION"),
            Self::IfcPropertyListValue => Some("IFCPROPERTYLISTVALUE"),
            Self::IfcPropertyReferenceValue => Some("IFCPROPERTYREFERENCEVALUE"),
            Self::IfcPropertySet => Some("IFCPROPERTYSET"),
            Self::IfcPropertySetDefinition => Some("IFCPROPERTYSETDEFINITION"),
            Self::IfcPropertySetTemplate => Some("IFCPROPERTYSETTEMPLATE"),
            Self::IfcPropertySingleValue => Some("IFCPROPERTYSINGLEVALUE"),
            Self::IfcPropertyTableValue => Some("IFCPROPERTYTABLEVALUE"),
            Self::IfcPropertyTemplate => Some("IFCPROPERTYTEMPLATE"),
            Self::IfcPropertyTemplateDefinition => Some("IFCPROPERTYTEMPLATEDEFINITION"),
            Self::IfcProtectiveDevice => Some("IFCPROTECTIVEDEVICE"),
            Self::IfcProtectiveDeviceTrippingUnit => Some("IFCPROTECTIVEDEVICETRIPPINGUNIT"),
            Self::IfcProtectiveDeviceTrippingUnitType => Some("IFCPROTECTIVEDEVICETRIPPINGUNITTYPE"),
            Self::IfcProtectiveDeviceType => Some("IFCPROTECTIVEDEVICETYPE"),
            Self::IfcProxy => Some("IFCPROXY"),
            Self::IfcPump => Some("IFCPUMP"),
            Self::IfcPumpType => Some("IFCPUMPTYPE"),
            Self::IfcQuantityArea => Some("IFCQUANTITYAREA"),
            Self::IfcQuantityCount => Some("IFCQUANTITYCOUNT"),
            Self::IfcQuantityLength => Some("IFCQUANTITYLENGTH"),
            Self::IfcQuantitySet => Some("IFCQUANTITYSET"),
            Self::IfcQuantityTime => Some("IFCQUANTITYTIME"),
            Self::IfcQuantityVolume => Some("IFCQUANTITYVOLUME"),
            Self::IfcQuantityWeight => Some("IFCQUANTITYWEIGHT"),
            Self::IfcRailing => Some("IFCRAILING"),
            Self::IfcRailingType => Some("IFCRAILINGTYPE"),
            Self::IfcRamp => Some("IFCRAMP"),
            Self::IfcRampFlight => Some("IFCRAMPFLIGHT"),
            Self::IfcRampFlightType => Some("IFCRAMPFLIGHTTYPE"),
            Self::IfcRampType => Some("IFCRAMPTYPE"),
            Self::IfcRationalBSplineCurveWithKnots => Some("IFCRATIONALBSPLINECURVEWITHKNOTS"),
            Self::IfcRationalBSplineSurfaceWithKnots => Some("IFCRATIONALBSPLINESURFACEWITHKNOTS"),
            Self::IfcRectangleHollowProfileDef => Some("IFCRECTANGLEHOLLOWPROFILEDEF"),
            Self::IfcRectangleProfileDef => Some("IFCRECTANGLEPROFILEDEF"),
            Self::IfcRectangularPyramid => Some("IFCRECTANGULARPYRAMID"),
            Self::IfcRectangularTrimmedSurface => Some("IFCRECTANGULARTRIMMEDSURFACE"),
            Self::IfcRecurrencePattern => Some("IFCRECURRENCEPATTERN"),
            Self::IfcReference => Some("IFCREFERENCE"),
            Self::IfcReferent => Some("IFCREFERENT"),
            Self::IfcRegularTimeSeries => Some("IFCREGULARTIMESERIES"),
            Self::IfcReinforcementBarProperties => Some("IFCREINFORCEMENTBARPROPERTIES"),
            Self::IfcReinforcementDefinitionProperties => Some("IFCREINFORCEMENTDEFINITIONPROPERTIES"),
            Self::IfcReinforcingBar => Some("IFCREINFORCINGBAR"),
            Self::IfcReinforcingBarType => Some("IFCREINFORCINGBARTYPE"),
            Self::IfcReinforcingElement => Some("IFCREINFORCINGELEMENT"),
            Self::IfcReinforcingElementType => Some("IFCREINFORCINGELEMENTTYPE"),
            Self::IfcReinforcingMesh => Some("IFCREINFORCINGMESH"),
            Self::IfcReinforcingMeshType => Some("IFCREINFORCINGMESHTYPE"),
            Self::IfcRelAggregates => Some("IFCRELAGGREGATES"),
            Self::IfcRelAssigns => Some("IFCRELASSIGNS"),
            Self::IfcRelAssignsToActor => Some("IFCRELASSIGNSTOACTOR"),
            Self::IfcRelAssignsToControl => Some("IFCRELASSIGNSTOCONTROL"),
            Self::IfcRelAssignsToGroup => Some("IFCRELASSIGNSTOGROUP"),
            Self::IfcRelAssignsToGroupByFactor => Some("IFCRELASSIGNSTOGROUPBYFACTOR"),
            Self::IfcRelAssignsToProcess => Some("IFCRELASSIGNSTOPROCESS"),
            Self::IfcRelAssignsToProduct => Some("IFCRELASSIGNSTOPRODUCT"),
            Self::IfcRelAssignsToResource => Some("IFCRELASSIGNSTORESOURCE"),
            Self::IfcRelAssociates => Some("IFCRELASSOCIATES"),
            Self::IfcRelAssociatesApproval => Some("IFCRELASSOCIATESAPPROVAL"),
            Self::IfcRelAssociatesClassification => Some("IFCRELASSOCIATESCLASSIFICATION"),
            Self::IfcRelAssociatesConstraint => Some("IFCRELASSOCIATESCONSTRAINT"),
            Self::IfcRelAssociatesDocument => Some("IFCRELASSOCIATESDOCUMENT"),
            Self::IfcRelAssociatesLibrary => Some("IFCRELASSOCIATESLIBRARY"),
            Self::IfcRelAssociatesMaterial => Some("IFCRELASSOCIATESMATERIAL"),
            Self::IfcRelConnects => Some("IFCRELCONNECTS"),
            Self::IfcRelConnectsElements => Some("IFCRELCONNECTSELEMENTS"),
            Self::IfcRelConnectsPathElements => Some("IFCRELCONNECTSPATHELEMENTS"),
            Self::IfcRelConnectsPortToElement => Some("IFCRELCONNECTSPORTTOELEMENT"),
            Self::IfcRelConnectsPorts => Some("IFCRELCONNECTSPORTS"),
            Self::IfcRelConnectsStructuralActivity => Some("IFCRELCONNECTSSTRUCTURALACTIVITY"),
            Self::IfcRelConnectsStructuralMember => Some("IFCRELCONNECTSSTRUCTURALMEMBER"),
            Self::IfcRelConnectsWithEccentricity => Some("IFCRELCONNECTSWITHECCENTRICITY"),
            Self::IfcRelConnectsWithRealizingElements => Some("IFCRELCONNECTSWITHREALIZINGELEMENTS"),
            Self::IfcRelContainedInSpatialStructure => Some("IFCRELCONTAINEDINSPATIALSTRUCTURE"),
            Self::IfcRelCoversBldgElements => Some("IFCRELCOVERSBLDGELEMENTS"),
            Self::IfcRelCoversSpaces => Some("IFCRELCOVERSSPACES"),
            Self::IfcRelDeclares => Some("IFCRELDECLARES"),
            Self::IfcRelDecomposes => Some("IFCRELDECOMPOSES"),
            Self::IfcRelDefines => Some("IFCRELDEFINES"),
            Self::IfcRelDefinesByObject => Some("IFCRELDEFINESBYOBJECT"),
            Self::IfcRelDefinesByProperties => Some("IFCRELDEFINESBYPROPERTIES"),
            Self::IfcRelDefinesByTemplate => Some("IFCRELDEFINESBYTEMPLATE"),
            Self::IfcRelDefinesByType => Some("IFCRELDEFINESBYTYPE"),
            Self::IfcRelFillsElement => Some("IFCRELFILLSELEMENT"),
            Self::IfcRelFlowControlElements => Some("IFCRELFLOWCONTROLELEMENTS"),
            Self::IfcRelInterferesElements => Some("IFCRELINTERFERESELEMENTS"),
            Self::IfcRelNests => Some("IFCRELNESTS"),
            Self::IfcRelPositions => Some("IFCRELPOSITIONS"),
            Self::IfcRelProjectsElement => Some("IFCRELPROJECTSELEMENT"),
            Self::IfcRelReferencedInSpatialStructure => Some("IFCRELREFERENCEDINSPATIALSTRUCTURE"),
            Self::IfcRelSequence => Some("IFCRELSEQUENCE"),
            Self::IfcRelServicesBuildings => Some("IFCRELSERVICESBUILDINGS"),
            Self::IfcRelSpaceBoundary => Some("IFCRELSPACEBOUNDARY"),
            Self::IfcRelSpaceBoundary1stLevel => Some("IFCRELSPACEBOUNDARY1STLEVEL"),
            Self::IfcRelSpaceBoundary2ndLevel => Some("IFCRELSPACEBOUNDARY2NDLEVEL"),
            Self::IfcRelVoidsElement => Some("IFCRELVOIDSELEMENT"),
            Self::IfcRelationship => Some("IFCRELATIONSHIP"),
            Self::IfcReparametrisedCompositeCurveSegment => Some("IFCREPARAMETRISEDCOMPOSITECURVESEGMENT"),
            Self::IfcRepresentation => Some("IFCREPRESENTATION"),
            Self::IfcRepresentationContext => Some("IFCREPRESENTATIONCONTEXT"),
            Self::IfcRepresentationItem => Some("IFCREPRESENTATIONITEM"),
            Self::IfcRepresentationMap => Some("IFCREPRESENTATIONMAP"),
            Self::IfcResource => Some("IFCRESOURCE"),
            Self::IfcResourceApprovalRelationship => Some("IFCRESOURCEAPPROVALRELATIONSHIP"),
            Self::IfcResourceConstraintRelationship => Some("IFCRESOURCECONSTRAINTRELATIONSHIP"),
            Self::IfcResourceLevelRelationship => Some("IFCRESOURCELEVELRELATIONSHIP"),
            Self::IfcResourceTime => Some("IFCRESOURCETIME"),
            Self::IfcRevolvedAreaSolid => Some("IFCREVOLVEDAREASOLID"),
            Self::IfcRevolvedAreaSolidTapered => Some("IFCREVOLVEDAREASOLIDTAPERED"),
            Self::IfcRightCircularCone => Some("IFCRIGHTCIRCULARCONE"),
            Self::IfcRightCircularCylinder => Some("IFCRIGHTCIRCULARCYLINDER"),
            Self::IfcRoof => Some("IFCROOF"),
            Self::IfcRoofType => Some("IFCROOFTYPE"),
            Self::IfcRoot => Some("IFCROOT"),
            Self::IfcRoundedRectangleProfileDef => Some("IFCROUNDEDRECTANGLEPROFILEDEF"),
            Self::IfcSIUnit => Some("IFCSIUNIT"),
            Self::IfcSanitaryTerminal => Some("IFCSANITARYTERMINAL"),
            Self::IfcSanitaryTerminalType => Some("IFCSANITARYTERMINALTYPE"),
            Self::IfcSchedulingTime => Some("IFCSCHEDULINGTIME"),
            Self::IfcSeamCurve => Some("IFCSEAMCURVE"),
            Self::IfcSectionProperties => Some("IFCSECTIONPROPERTIES"),
            Self::IfcSectionReinforcementProperties => Some("IFCSECTIONREINFORCEMENTPROPERTIES"),
            Self::IfcSectionedSolid => Some("IFCSECTIONEDSOLID"),
            Self::IfcSectionedSolidHorizontal => Some("IFCSECTIONEDSOLIDHORIZONTAL"),
            Self::IfcSectionedSpine => Some("IFCSECTIONEDSPINE"),
            Self::IfcSensor => Some("IFCSENSOR"),
            Self::IfcSensorType => Some("IFCSENSORTYPE"),
            Self::IfcShadingDevice => Some("IFCSHADINGDEVICE"),
            Self::IfcShadingDeviceType => Some("IFCSHADINGDEVICETYPE"),
            Self::IfcShapeAspect => Some("IFCSHAPEASPECT"),
            Self::IfcShapeModel => Some("IFCSHAPEMODEL"),
            Self::IfcShapeRepresentation => Some("IFCSHAPEREPRESENTATION"),
            Self::IfcShellBasedSurfaceModel => Some("IFCSHELLBASEDSURFACEMODEL"),
            Self::IfcSimpleProperty => Some("IFCSIMPLEPROPERTY"),
            Self::IfcSimplePropertyTemplate => Some("IFCSIMPLEPROPERTYTEMPLATE"),
            Self::IfcSite => Some("IFCSITE"),
            Self::IfcSlab => Some("IFCSLAB"),
            Self::IfcSlabElementedCase => Some("IFCSLABELEMENTEDCASE"),
            Self::IfcSlabStandardCase => Some("IFCSLABSTANDARDCASE"),
            Self::IfcSlabType => Some("IFCSLABTYPE"),
            Self::IfcSlippageConnectionCondition => Some("IFCSLIPPAGECONNECTIONCONDITION"),
            Self::IfcSolarDevice => Some("IFCSOLARDEVICE"),
            Self::IfcSolarDeviceType => Some("IFCSOLARDEVICETYPE"),
            Self::IfcSolidModel => Some("IFCSOLIDMODEL"),
            Self::IfcSpace => Some("IFCSPACE"),
            Self::IfcSpaceHeater => Some("IFCSPACEHEATER"),
            Self::IfcSpaceHeaterType => Some("IFCSPACEHEATERTYPE"),
            Self::IfcSpaceType => Some("IFCSPACETYPE"),
            Self::IfcSpatialElement => Some("IFCSPATIALELEMENT"),
            Self::IfcSpatialElementType => Some("IFCSPATIALELEMENTTYPE"),
            Self::IfcSpatialStructureElement => Some("IFCSPATIALSTRUCTUREELEMENT"),
            Self::IfcSpatialStructureElementType => Some("IFCSPATIALSTRUCTUREELEMENTTYPE"),
            Self::IfcSpatialZone => Some("IFCSPATIALZONE"),
            Self::IfcSpatialZoneType => Some("IFCSPATIALZONETYPE"),
            Self::IfcSphere => Some("IFCSPHERE"),
            Self::IfcSphericalSurface => Some("IFCSPHERICALSURFACE"),
            Self::IfcStackTerminal => Some("IFCSTACKTERMINAL"),
            Self::IfcStackTerminalType => Some("IFCSTACKTERMINALTYPE"),
            Self::IfcStair => Some("IFCSTAIR"),
            Self::IfcStairFlight => Some("IFCSTAIRFLIGHT"),
            Self::IfcStairFlightType => Some("IFCSTAIRFLIGHTTYPE"),
            Self::IfcStairType => Some("IFCSTAIRTYPE"),
            Self::IfcStructuralAction => Some("IFCSTRUCTURALACTION"),
            Self::IfcStructuralActivity => Some("IFCSTRUCTURALACTIVITY"),
            Self::IfcStructuralAnalysisModel => Some("IFCSTRUCTURALANALYSISMODEL"),
            Self::IfcStructuralConnection => Some("IFCSTRUCTURALCONNECTION"),
            Self::IfcStructuralConnectionCondition => Some("IFCSTRUCTURALCONNECTIONCONDITION"),
            Self::IfcStructuralCurveAction => Some("IFCSTRUCTURALCURVEACTION"),
            Self::IfcStructuralCurveConnection => Some("IFCSTRUCTURALCURVECONNECTION"),
            Self::IfcStructuralCurveMember => Some("IFCSTRUCTURALCURVEMEMBER"),
            Self::IfcStructuralCurveMemberVarying => Some("IFCSTRUCTURALCURVEMEMBERVARYING"),
            Self::IfcStructuralCurveReaction => Some("IFCSTRUCTURALCURVEREACTION"),
            Self::IfcStructuralItem => Some("IFCSTRUCTURALITEM"),
            Self::IfcStructuralLinearAction => Some("IFCSTRUCTURALLINEARACTION"),
            Self::IfcStructuralLoad => Some("IFCSTRUCTURALLOAD"),
            Self::IfcStructuralLoadCase => Some("IFCSTRUCTURALLOADCASE"),
            Self::IfcStructuralLoadConfiguration => Some("IFCSTRUCTURALLOADCONFIGURATION"),
            Self::IfcStructuralLoadGroup => Some("IFCSTRUCTURALLOADGROUP"),
            Self::IfcStructuralLoadLinearForce => Some("IFCSTRUCTURALLOADLINEARFORCE"),
            Self::IfcStructuralLoadOrResult => Some("IFCSTRUCTURALLOADORRESULT"),
            Self::IfcStructuralLoadPlanarForce => Some("IFCSTRUCTURALLOADPLANARFORCE"),
            Self::IfcStructuralLoadSingleDisplacement => Some("IFCSTRUCTURALLOADSINGLEDISPLACEMENT"),
            Self::IfcStructuralLoadSingleDisplacementDistortion => Some("IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION"),
            Self::IfcStructuralLoadSingleForce => Some("IFCSTRUCTURALLOADSINGLEFORCE"),
            Self::IfcStructuralLoadSingleForceWarping => Some("IFCSTRUCTURALLOADSINGLEFORCEWARPING"),
            Self::IfcStructuralLoadStatic => Some("IFCSTRUCTURALLOADSTATIC"),
            Self::IfcStructuralLoadTemperature => Some("IFCSTRUCTURALLOADTEMPERATURE"),
            Self::IfcStructuralMember => Some("IFCSTRUCTURALMEMBER"),
            Self::IfcStructuralPlanarAction => Some("IFCSTRUCTURALPLANARACTION"),
            Self::IfcStructuralPointAction => Some("IFCSTRUCTURALPOINTACTION"),
            Self::IfcStructuralPointConnection => Some("IFCSTRUCTURALPOINTCONNECTION"),
            Self::IfcStructuralPointReaction => Some("IFCSTRUCTURALPOINTREACTION"),
            Self::IfcStructuralReaction => Some("IFCSTRUCTURALREACTION"),
            Self::IfcStructuralResultGroup => Some("IFCSTRUCTURALRESULTGROUP"),
            Self::IfcStructuralSurfaceAction => Some("IFCSTRUCTURALSURFACEACTION"),
            Self::IfcStructuralSurfaceConnection => Some("IFCSTRUCTURALSURFACECONNECTION"),
            Self::IfcStructuralSurfaceMember => Some("IFCSTRUCTURALSURFACEMEMBER"),
            Self::IfcStructuralSurfaceMemberVarying => Some("IFCSTRUCTURALSURFACEMEMBERVARYING"),
            Self::IfcStructuralSurfaceReaction => Some("IFCSTRUCTURALSURFACEREACTION"),
            Self::IfcStyleModel => Some("IFCSTYLEMODEL"),
            Self::IfcStyledItem => Some("IFCSTYLEDITEM"),
            Self::IfcStyledRepresentation => Some("IFCSTYLEDREPRESENTATION"),
            Self::IfcSubContractResource => Some("IFCSUBCONTRACTRESOURCE"),
            Self::IfcSubContractResourceType => Some("IFCSUBCONTRACTRESOURCETYPE"),
            Self::IfcSubedge => Some("IFCSUBEDGE"),
            Self::IfcSurface => Some("IFCSURFACE"),
            Self::IfcSurfaceCurve => Some("IFCSURFACECURVE"),
            Self::IfcSurfaceCurveSweptAreaSolid => Some("IFCSURFACECURVESWEPTAREASOLID"),
            Self::IfcSurfaceFeature => Some("IFCSURFACEFEATURE"),
            Self::IfcSurfaceOfLinearExtrusion => Some("IFCSURFACEOFLINEAREXTRUSION"),
            Self::IfcSurfaceOfRevolution => Some("IFCSURFACEOFREVOLUTION"),
            Self::IfcSurfaceReinforcementArea => Some("IFCSURFACEREINFORCEMENTAREA"),
            Self::IfcSurfaceStyle => Some("IFCSURFACESTYLE"),
            Self::IfcSurfaceStyleLighting => Some("IFCSURFACESTYLELIGHTING"),
            Self::IfcSurfaceStyleRefraction => Some("IFCSURFACESTYLEREFRACTION"),
            Self::IfcSurfaceStyleRendering => Some("IFCSURFACESTYLERENDERING"),
            Self::IfcSurfaceStyleShading => Some("IFCSURFACESTYLESHADING"),
            Self::IfcSurfaceStyleWithTextures => Some("IFCSURFACESTYLEWITHTEXTURES"),
            Self::IfcSurfaceTexture => Some("IFCSURFACETEXTURE"),
            Self::IfcSweptAreaSolid => Some("IFCSWEPTAREASOLID"),
            Self::IfcSweptDiskSolid => Some("IFCSWEPTDISKSOLID"),
            Self::IfcSweptDiskSolidPolygonal => Some("IFCSWEPTDISKSOLIDPOLYGONAL"),
            Self::IfcSweptSurface => Some("IFCSWEPTSURFACE"),
            Self::IfcSwitchingDevice => Some("IFCSWITCHINGDEVICE"),
            Self::IfcSwitchingDeviceType => Some("IFCSWITCHINGDEVICETYPE"),
            Self::IfcSystem => Some("IFCSYSTEM"),
            Self::IfcSystemFurnitureElement => Some("IFCSYSTEMFURNITUREELEMENT"),
            Self::IfcSystemFurnitureElementType => Some("IFCSYSTEMFURNITUREELEMENTTYPE"),
            Self::IfcTShapeProfileDef => Some("IFCTSHAPEPROFILEDEF"),
            Self::IfcTable => Some("IFCTABLE"),
            Self::IfcTableColumn => Some("IFCTABLECOLUMN"),
            Self::IfcTableRow => Some("IFCTABLEROW"),
            Self::IfcTank => Some("IFCTANK"),
            Self::IfcTankType => Some("IFCTANKTYPE"),
            Self::IfcTask => Some("IFCTASK"),
            Self::IfcTaskTime => Some("IFCTASKTIME"),
            Self::IfcTaskTimeRecurring => Some("IFCTASKTIMERECURRING"),
            Self::IfcTaskType => Some("IFCTASKTYPE"),
            Self::IfcTelecomAddress => Some("IFCTELECOMADDRESS"),
            Self::IfcTendon => Some("IFCTENDON"),
            Self::IfcTendonAnchor => Some("IFCTENDONANCHOR"),
            Self::IfcTendonAnchorType => Some("IFCTENDONANCHORTYPE"),
            Self::IfcTendonConduit => Some("IFCTENDONCONDUIT"),
            Self::IfcTendonConduitType => Some("IFCTENDONCONDUITTYPE"),
            Self::IfcTendonType => Some("IFCTENDONTYPE"),
            Self::IfcTessellatedFaceSet => Some("IFCTESSELLATEDFACESET"),
            Self::IfcTessellatedItem => Some("IFCTESSELLATEDITEM"),
            Self::IfcTextLiteral => Some("IFCTEXTLITERAL"),
            Self::IfcTextLiteralWithExtent => Some("IFCTEXTLITERALWITHEXTENT"),
            Self::IfcTextStyle => Some("IFCTEXTSTYLE"),
            Self::IfcTextStyleFontModel => Some("IFCTEXTSTYLEFONTMODEL"),
            Self::IfcTextStyleForDefinedFont => Some("IFCTEXTSTYLEFORDEFINEDFONT"),
            Self::IfcTextStyleTextModel => Some("IFCTEXTSTYLETEXTMODEL"),
            Self::IfcTextureCoordinate => Some("IFCTEXTURECOORDINATE"),
            Self::IfcTextureCoordinateGenerator => Some("IFCTEXTURECOORDINATEGENERATOR"),
            Self::IfcTextureMap => Some("IFCTEXTUREMAP"),
            Self::IfcTextureVertex => Some("IFCTEXTUREVERTEX"),
            Self::IfcTextureVertexList => Some("IFCTEXTUREVERTEXLIST"),
            Self::IfcTimePeriod => Some("IFCTIMEPERIOD"),
            Self::IfcTimeSeries => Some("IFCTIMESERIES"),
            Self::IfcTimeSeriesValue => Some("IFCTIMESERIESVALUE"),
            Self::IfcTopologicalRepresentationItem => Some("IFCTOPOLOGICALREPRESENTATIONITEM"),
            Self::IfcTopologyRepresentation => Some("IFCTOPOLOGYREPRESENTATION"),
            Self::IfcToroidalSurface => Some("IFCTOROIDALSURFACE"),
            Self::IfcTransformer => Some("IFCTRANSFORMER"),
            Self::IfcTransformerType => Some("IFCTRANSFORMERTYPE"),
            Self::IfcTransitionCurveSegment2D => Some("IFCTRANSITIONCURVESEGMENT2D"),
            Self::IfcTransportElement => Some("IFCTRANSPORTELEMENT"),
            Self::IfcTransportElementType => Some("IFCTRANSPORTELEMENTTYPE"),
            Self::IfcTrapeziumProfileDef => Some("IFCTRAPEZIUMPROFILEDEF"),
            Self::IfcTriangulatedFaceSet => Some("IFCTRIANGULATEDFACESET"),
            Self::IfcTriangulatedIrregularNetwork => Some("IFCTRIANGULATEDIRREGULARNETWORK"),
            Self::IfcTrimmedCurve => Some("IFCTRIMMEDCURVE"),
            Self::IfcTubeBundle => Some("IFCTUBEBUNDLE"),
            Self::IfcTubeBundleType => Some("IFCTUBEBUNDLETYPE"),
            Self::IfcTypeObject => Some("IFCTYPEOBJECT"),
            Self::IfcTypeProcess => Some("IFCTYPEPROCESS"),
            Self::IfcTypeProduct => Some("IFCTYPEPRODUCT"),
            Self::IfcTypeResource => Some("IFCTYPERESOURCE"),
            Self::IfcUShapeProfileDef => Some("IFCUSHAPEPROFILEDEF"),
            Self::IfcUnitAssignment => Some("IFCUNITASSIGNMENT"),
            Self::IfcUnitaryControlElement => Some("IFCUNITARYCONTROLELEMENT"),
            Self::IfcUnitaryControlElementType => Some("IFCUNITARYCONTROLELEMENTTYPE"),
            Self::IfcUnitaryEquipment => Some("IFCUNITARYEQUIPMENT"),
            Self::IfcUnitaryEquipmentType => Some("IFCUNITARYEQUIPMENTTYPE"),
            Self::IfcValve => Some("IFCVALVE"),
            Self::IfcValveType => Some("IFCVALVETYPE"),
            Self::IfcVector => Some("IFCVECTOR"),
            Self::IfcVertex => Some("IFCVERTEX"),
            Self::IfcVertexLoop => Some("IFCVERTEXLOOP"),
            Self::IfcVertexPoint => Some("IFCVERTEXPOINT"),
            Self::IfcVibrationDamper => Some("IFCVIBRATIONDAMPER"),
            Self::IfcVibrationDamperType => Some("IFCVIBRATIONDAMPERTYPE"),
            Self::IfcVibrationIsolator => Some("IFCVIBRATIONISOLATOR"),
            Self::IfcVibrationIsolatorType => Some("IFCVIBRATIONISOLATORTYPE"),
            Self::IfcVirtualElement => Some("IFCVIRTUALELEMENT"),
            Self::IfcVirtualGridIntersection => Some("IFCVIRTUALGRIDINTERSECTION"),
            Self::IfcVoidingFeature => Some("IFCVOIDINGFEATURE"),
            Self::IfcWall => Some("IFCWALL"),
            Self::IfcWallElementedCase => Some("IFCWALLELEMENTEDCASE"),
            Self::IfcWallStandardCase => Some("IFCWALLSTANDARDCASE"),
            Self::IfcWallType => Some("IFCWALLTYPE"),
            Self::IfcWasteTerminal => Some("IFCWASTETERMINAL"),
            Self::IfcWasteTerminalType => Some("IFCWASTETERMINALTYPE"),
            Self::IfcWindow => Some("IFCWINDOW"),
            Self::IfcWindowLiningProperties => Some("IFCWINDOWLININGPROPERTIES"),
            Self::IfcWindowPanelProperties => Some("IFCWINDOWPANELPROPERTIES"),
            Self::IfcWindowStandardCase => Some("IFCWINDOWSTANDARDCASE"),
            Self::IfcWindowStyle => Some("IFCWINDOWSTYLE"),
            Self::IfcWindowType => Some("IFCWINDOWTYPE"),
            Self::IfcWorkCalendar => Some("IFCWORKCALENDAR"),
            Self::IfcWorkControl => Some("IFCWORKCONTROL"),
            Self::IfcWorkPlan => Some("IFCWORKPLAN"),
            Self::IfcWorkSchedule => Some("IFCWORKSCHEDULE"),
            Self::IfcWorkTime => Some("IFCWORKTIME"),
            Self::IfcZShapeProfileDef => Some("IFCZSHAPEPROFILEDEF"),
            Self::IfcZone => Some("IFCZONE"),
            Self::Unknown(_) => None,
        }
    }

    /// Get display name (PascalCase)
    pub fn name(&self) -> &str {
        match self {
            Self::IfcActionRequest => "IfcActionRequest",
            Self::IfcActor => "IfcActor",
            Self::IfcActorRole => "IfcActorRole",
            Self::IfcActuator => "IfcActuator",
            Self::IfcActuatorType => "IfcActuatorType",
            Self::IfcAddress => "IfcAddress",
            Self::IfcAdvancedBrep => "IfcAdvancedBrep",
            Self::IfcAdvancedBrepWithVoids => "IfcAdvancedBrepWithVoids",
            Self::IfcAdvancedFace => "IfcAdvancedFace",
            Self::IfcAirTerminal => "IfcAirTerminal",
            Self::IfcAirTerminalBox => "IfcAirTerminalBox",
            Self::IfcAirTerminalBoxType => "IfcAirTerminalBoxType",
            Self::IfcAirTerminalType => "IfcAirTerminalType",
            Self::IfcAirToAirHeatRecovery => "IfcAirToAirHeatRecovery",
            Self::IfcAirToAirHeatRecoveryType => "IfcAirToAirHeatRecoveryType",
            Self::IfcAlarm => "IfcAlarm",
            Self::IfcAlarmType => "IfcAlarmType",
            Self::IfcAlignment => "IfcAlignment",
            Self::IfcAlignment2DHorizontal => "IfcAlignment2DHorizontal",
            Self::IfcAlignment2DHorizontalSegment => "IfcAlignment2DHorizontalSegment",
            Self::IfcAlignment2DSegment => "IfcAlignment2DSegment",
            Self::IfcAlignment2DVerSegCircularArc => "IfcAlignment2DVerSegCircularArc",
            Self::IfcAlignment2DVerSegLine => "IfcAlignment2DVerSegLine",
            Self::IfcAlignment2DVerSegParabolicArc => "IfcAlignment2DVerSegParabolicArc",
            Self::IfcAlignment2DVertical => "IfcAlignment2DVertical",
            Self::IfcAlignment2DVerticalSegment => "IfcAlignment2DVerticalSegment",
            Self::IfcAlignmentCurve => "IfcAlignmentCurve",
            Self::IfcAnnotation => "IfcAnnotation",
            Self::IfcAnnotationFillArea => "IfcAnnotationFillArea",
            Self::IfcApplication => "IfcApplication",
            Self::IfcAppliedValue => "IfcAppliedValue",
            Self::IfcApproval => "IfcApproval",
            Self::IfcApprovalRelationship => "IfcApprovalRelationship",
            Self::IfcArbitraryClosedProfileDef => "IfcArbitraryClosedProfileDef",
            Self::IfcArbitraryOpenProfileDef => "IfcArbitraryOpenProfileDef",
            Self::IfcArbitraryProfileDefWithVoids => "IfcArbitraryProfileDefWithVoids",
            Self::IfcAsset => "IfcAsset",
            Self::IfcAsymmetricIShapeProfileDef => "IfcAsymmetricIShapeProfileDef",
            Self::IfcAudioVisualAppliance => "IfcAudioVisualAppliance",
            Self::IfcAudioVisualApplianceType => "IfcAudioVisualApplianceType",
            Self::IfcAxis1Placement => "IfcAxis1Placement",
            Self::IfcAxis2Placement2D => "IfcAxis2Placement2D",
            Self::IfcAxis2Placement3D => "IfcAxis2Placement3D",
            Self::IfcBSplineCurve => "IfcBSplineCurve",
            Self::IfcBSplineCurveWithKnots => "IfcBSplineCurveWithKnots",
            Self::IfcBSplineSurface => "IfcBSplineSurface",
            Self::IfcBSplineSurfaceWithKnots => "IfcBSplineSurfaceWithKnots",
            Self::IfcBeam => "IfcBeam",
            Self::IfcBeamStandardCase => "IfcBeamStandardCase",
            Self::IfcBeamType => "IfcBeamType",
            Self::IfcBearing => "IfcBearing",
            Self::IfcBearingType => "IfcBearingType",
            Self::IfcBlobTexture => "IfcBlobTexture",
            Self::IfcBlock => "IfcBlock",
            Self::IfcBoiler => "IfcBoiler",
            Self::IfcBoilerType => "IfcBoilerType",
            Self::IfcBooleanClippingResult => "IfcBooleanClippingResult",
            Self::IfcBooleanResult => "IfcBooleanResult",
            Self::IfcBoundaryCondition => "IfcBoundaryCondition",
            Self::IfcBoundaryCurve => "IfcBoundaryCurve",
            Self::IfcBoundaryEdgeCondition => "IfcBoundaryEdgeCondition",
            Self::IfcBoundaryFaceCondition => "IfcBoundaryFaceCondition",
            Self::IfcBoundaryNodeCondition => "IfcBoundaryNodeCondition",
            Self::IfcBoundaryNodeConditionWarping => "IfcBoundaryNodeConditionWarping",
            Self::IfcBoundedCurve => "IfcBoundedCurve",
            Self::IfcBoundedSurface => "IfcBoundedSurface",
            Self::IfcBoundingBox => "IfcBoundingBox",
            Self::IfcBoxedHalfSpace => "IfcBoxedHalfSpace",
            Self::IfcBridge => "IfcBridge",
            Self::IfcBridgePart => "IfcBridgePart",
            Self::IfcBuilding => "IfcBuilding",
            Self::IfcBuildingElement => "IfcBuildingElement",
            Self::IfcBuildingElementPart => "IfcBuildingElementPart",
            Self::IfcBuildingElementPartType => "IfcBuildingElementPartType",
            Self::IfcBuildingElementProxy => "IfcBuildingElementProxy",
            Self::IfcBuildingElementProxyType => "IfcBuildingElementProxyType",
            Self::IfcBuildingElementType => "IfcBuildingElementType",
            Self::IfcBuildingStorey => "IfcBuildingStorey",
            Self::IfcBuildingSystem => "IfcBuildingSystem",
            Self::IfcBurner => "IfcBurner",
            Self::IfcBurnerType => "IfcBurnerType",
            Self::IfcCShapeProfileDef => "IfcCShapeProfileDef",
            Self::IfcCableCarrierFitting => "IfcCableCarrierFitting",
            Self::IfcCableCarrierFittingType => "IfcCableCarrierFittingType",
            Self::IfcCableCarrierSegment => "IfcCableCarrierSegment",
            Self::IfcCableCarrierSegmentType => "IfcCableCarrierSegmentType",
            Self::IfcCableFitting => "IfcCableFitting",
            Self::IfcCableFittingType => "IfcCableFittingType",
            Self::IfcCableSegment => "IfcCableSegment",
            Self::IfcCableSegmentType => "IfcCableSegmentType",
            Self::IfcCaissonFoundation => "IfcCaissonFoundation",
            Self::IfcCaissonFoundationType => "IfcCaissonFoundationType",
            Self::IfcCartesianPoint => "IfcCartesianPoint",
            Self::IfcCartesianPointList => "IfcCartesianPointList",
            Self::IfcCartesianPointList2D => "IfcCartesianPointList2D",
            Self::IfcCartesianPointList3D => "IfcCartesianPointList3D",
            Self::IfcCartesianTransformationOperator => "IfcCartesianTransformationOperator",
            Self::IfcCartesianTransformationOperator2D => "IfcCartesianTransformationOperator2D",
            Self::IfcCartesianTransformationOperator2DnonUniform => "IfcCartesianTransformationOperator2DnonUniform",
            Self::IfcCartesianTransformationOperator3D => "IfcCartesianTransformationOperator3D",
            Self::IfcCartesianTransformationOperator3DnonUniform => "IfcCartesianTransformationOperator3DnonUniform",
            Self::IfcCenterLineProfileDef => "IfcCenterLineProfileDef",
            Self::IfcChiller => "IfcChiller",
            Self::IfcChillerType => "IfcChillerType",
            Self::IfcChimney => "IfcChimney",
            Self::IfcChimneyType => "IfcChimneyType",
            Self::IfcCircle => "IfcCircle",
            Self::IfcCircleHollowProfileDef => "IfcCircleHollowProfileDef",
            Self::IfcCircleProfileDef => "IfcCircleProfileDef",
            Self::IfcCircularArcSegment2D => "IfcCircularArcSegment2D",
            Self::IfcCivilElement => "IfcCivilElement",
            Self::IfcCivilElementType => "IfcCivilElementType",
            Self::IfcClassification => "IfcClassification",
            Self::IfcClassificationReference => "IfcClassificationReference",
            Self::IfcClosedShell => "IfcClosedShell",
            Self::IfcCoil => "IfcCoil",
            Self::IfcCoilType => "IfcCoilType",
            Self::IfcColourRgb => "IfcColourRgb",
            Self::IfcColourRgbList => "IfcColourRgbList",
            Self::IfcColourSpecification => "IfcColourSpecification",
            Self::IfcColumn => "IfcColumn",
            Self::IfcColumnStandardCase => "IfcColumnStandardCase",
            Self::IfcColumnType => "IfcColumnType",
            Self::IfcCommunicationsAppliance => "IfcCommunicationsAppliance",
            Self::IfcCommunicationsApplianceType => "IfcCommunicationsApplianceType",
            Self::IfcComplexProperty => "IfcComplexProperty",
            Self::IfcComplexPropertyTemplate => "IfcComplexPropertyTemplate",
            Self::IfcCompositeCurve => "IfcCompositeCurve",
            Self::IfcCompositeCurveOnSurface => "IfcCompositeCurveOnSurface",
            Self::IfcCompositeCurveSegment => "IfcCompositeCurveSegment",
            Self::IfcCompositeProfileDef => "IfcCompositeProfileDef",
            Self::IfcCompressor => "IfcCompressor",
            Self::IfcCompressorType => "IfcCompressorType",
            Self::IfcCondenser => "IfcCondenser",
            Self::IfcCondenserType => "IfcCondenserType",
            Self::IfcConic => "IfcConic",
            Self::IfcConnectedFaceSet => "IfcConnectedFaceSet",
            Self::IfcConnectionCurveGeometry => "IfcConnectionCurveGeometry",
            Self::IfcConnectionGeometry => "IfcConnectionGeometry",
            Self::IfcConnectionPointEccentricity => "IfcConnectionPointEccentricity",
            Self::IfcConnectionPointGeometry => "IfcConnectionPointGeometry",
            Self::IfcConnectionSurfaceGeometry => "IfcConnectionSurfaceGeometry",
            Self::IfcConnectionVolumeGeometry => "IfcConnectionVolumeGeometry",
            Self::IfcConstraint => "IfcConstraint",
            Self::IfcConstructionEquipmentResource => "IfcConstructionEquipmentResource",
            Self::IfcConstructionEquipmentResourceType => "IfcConstructionEquipmentResourceType",
            Self::IfcConstructionMaterialResource => "IfcConstructionMaterialResource",
            Self::IfcConstructionMaterialResourceType => "IfcConstructionMaterialResourceType",
            Self::IfcConstructionProductResource => "IfcConstructionProductResource",
            Self::IfcConstructionProductResourceType => "IfcConstructionProductResourceType",
            Self::IfcConstructionResource => "IfcConstructionResource",
            Self::IfcConstructionResourceType => "IfcConstructionResourceType",
            Self::IfcContext => "IfcContext",
            Self::IfcContextDependentUnit => "IfcContextDependentUnit",
            Self::IfcControl => "IfcControl",
            Self::IfcController => "IfcController",
            Self::IfcControllerType => "IfcControllerType",
            Self::IfcConversionBasedUnit => "IfcConversionBasedUnit",
            Self::IfcConversionBasedUnitWithOffset => "IfcConversionBasedUnitWithOffset",
            Self::IfcCooledBeam => "IfcCooledBeam",
            Self::IfcCooledBeamType => "IfcCooledBeamType",
            Self::IfcCoolingTower => "IfcCoolingTower",
            Self::IfcCoolingTowerType => "IfcCoolingTowerType",
            Self::IfcCoordinateOperation => "IfcCoordinateOperation",
            Self::IfcCoordinateReferenceSystem => "IfcCoordinateReferenceSystem",
            Self::IfcCostItem => "IfcCostItem",
            Self::IfcCostSchedule => "IfcCostSchedule",
            Self::IfcCostValue => "IfcCostValue",
            Self::IfcCovering => "IfcCovering",
            Self::IfcCoveringType => "IfcCoveringType",
            Self::IfcCrewResource => "IfcCrewResource",
            Self::IfcCrewResourceType => "IfcCrewResourceType",
            Self::IfcCsgPrimitive3D => "IfcCsgPrimitive3D",
            Self::IfcCsgSolid => "IfcCsgSolid",
            Self::IfcCurrencyRelationship => "IfcCurrencyRelationship",
            Self::IfcCurtainWall => "IfcCurtainWall",
            Self::IfcCurtainWallType => "IfcCurtainWallType",
            Self::IfcCurve => "IfcCurve",
            Self::IfcCurveBoundedPlane => "IfcCurveBoundedPlane",
            Self::IfcCurveBoundedSurface => "IfcCurveBoundedSurface",
            Self::IfcCurveSegment2D => "IfcCurveSegment2D",
            Self::IfcCurveStyle => "IfcCurveStyle",
            Self::IfcCurveStyleFont => "IfcCurveStyleFont",
            Self::IfcCurveStyleFontAndScaling => "IfcCurveStyleFontAndScaling",
            Self::IfcCurveStyleFontPattern => "IfcCurveStyleFontPattern",
            Self::IfcCylindricalSurface => "IfcCylindricalSurface",
            Self::IfcDamper => "IfcDamper",
            Self::IfcDamperType => "IfcDamperType",
            Self::IfcDeepFoundation => "IfcDeepFoundation",
            Self::IfcDeepFoundationType => "IfcDeepFoundationType",
            Self::IfcDerivedProfileDef => "IfcDerivedProfileDef",
            Self::IfcDerivedUnit => "IfcDerivedUnit",
            Self::IfcDerivedUnitElement => "IfcDerivedUnitElement",
            Self::IfcDimensionalExponents => "IfcDimensionalExponents",
            Self::IfcDirection => "IfcDirection",
            Self::IfcDiscreteAccessory => "IfcDiscreteAccessory",
            Self::IfcDiscreteAccessoryType => "IfcDiscreteAccessoryType",
            Self::IfcDistanceExpression => "IfcDistanceExpression",
            Self::IfcDistributionChamberElement => "IfcDistributionChamberElement",
            Self::IfcDistributionChamberElementType => "IfcDistributionChamberElementType",
            Self::IfcDistributionCircuit => "IfcDistributionCircuit",
            Self::IfcDistributionControlElement => "IfcDistributionControlElement",
            Self::IfcDistributionControlElementType => "IfcDistributionControlElementType",
            Self::IfcDistributionElement => "IfcDistributionElement",
            Self::IfcDistributionElementType => "IfcDistributionElementType",
            Self::IfcDistributionFlowElement => "IfcDistributionFlowElement",
            Self::IfcDistributionFlowElementType => "IfcDistributionFlowElementType",
            Self::IfcDistributionPort => "IfcDistributionPort",
            Self::IfcDistributionSystem => "IfcDistributionSystem",
            Self::IfcDocumentInformation => "IfcDocumentInformation",
            Self::IfcDocumentInformationRelationship => "IfcDocumentInformationRelationship",
            Self::IfcDocumentReference => "IfcDocumentReference",
            Self::IfcDoor => "IfcDoor",
            Self::IfcDoorLiningProperties => "IfcDoorLiningProperties",
            Self::IfcDoorPanelProperties => "IfcDoorPanelProperties",
            Self::IfcDoorStandardCase => "IfcDoorStandardCase",
            Self::IfcDoorStyle => "IfcDoorStyle",
            Self::IfcDoorType => "IfcDoorType",
            Self::IfcDraughtingPreDefinedColour => "IfcDraughtingPreDefinedColour",
            Self::IfcDraughtingPreDefinedCurveFont => "IfcDraughtingPreDefinedCurveFont",
            Self::IfcDuctFitting => "IfcDuctFitting",
            Self::IfcDuctFittingType => "IfcDuctFittingType",
            Self::IfcDuctSegment => "IfcDuctSegment",
            Self::IfcDuctSegmentType => "IfcDuctSegmentType",
            Self::IfcDuctSilencer => "IfcDuctSilencer",
            Self::IfcDuctSilencerType => "IfcDuctSilencerType",
            Self::IfcEdge => "IfcEdge",
            Self::IfcEdgeCurve => "IfcEdgeCurve",
            Self::IfcEdgeLoop => "IfcEdgeLoop",
            Self::IfcElectricAppliance => "IfcElectricAppliance",
            Self::IfcElectricApplianceType => "IfcElectricApplianceType",
            Self::IfcElectricDistributionBoard => "IfcElectricDistributionBoard",
            Self::IfcElectricDistributionBoardType => "IfcElectricDistributionBoardType",
            Self::IfcElectricFlowStorageDevice => "IfcElectricFlowStorageDevice",
            Self::IfcElectricFlowStorageDeviceType => "IfcElectricFlowStorageDeviceType",
            Self::IfcElectricGenerator => "IfcElectricGenerator",
            Self::IfcElectricGeneratorType => "IfcElectricGeneratorType",
            Self::IfcElectricMotor => "IfcElectricMotor",
            Self::IfcElectricMotorType => "IfcElectricMotorType",
            Self::IfcElectricTimeControl => "IfcElectricTimeControl",
            Self::IfcElectricTimeControlType => "IfcElectricTimeControlType",
            Self::IfcElement => "IfcElement",
            Self::IfcElementAssembly => "IfcElementAssembly",
            Self::IfcElementAssemblyType => "IfcElementAssemblyType",
            Self::IfcElementComponent => "IfcElementComponent",
            Self::IfcElementComponentType => "IfcElementComponentType",
            Self::IfcElementQuantity => "IfcElementQuantity",
            Self::IfcElementType => "IfcElementType",
            Self::IfcElementarySurface => "IfcElementarySurface",
            Self::IfcEllipse => "IfcEllipse",
            Self::IfcEllipseProfileDef => "IfcEllipseProfileDef",
            Self::IfcEnergyConversionDevice => "IfcEnergyConversionDevice",
            Self::IfcEnergyConversionDeviceType => "IfcEnergyConversionDeviceType",
            Self::IfcEngine => "IfcEngine",
            Self::IfcEngineType => "IfcEngineType",
            Self::IfcEvaporativeCooler => "IfcEvaporativeCooler",
            Self::IfcEvaporativeCoolerType => "IfcEvaporativeCoolerType",
            Self::IfcEvaporator => "IfcEvaporator",
            Self::IfcEvaporatorType => "IfcEvaporatorType",
            Self::IfcEvent => "IfcEvent",
            Self::IfcEventTime => "IfcEventTime",
            Self::IfcEventType => "IfcEventType",
            Self::IfcExtendedProperties => "IfcExtendedProperties",
            Self::IfcExternalInformation => "IfcExternalInformation",
            Self::IfcExternalReference => "IfcExternalReference",
            Self::IfcExternalReferenceRelationship => "IfcExternalReferenceRelationship",
            Self::IfcExternalSpatialElement => "IfcExternalSpatialElement",
            Self::IfcExternalSpatialStructureElement => "IfcExternalSpatialStructureElement",
            Self::IfcExternallyDefinedHatchStyle => "IfcExternallyDefinedHatchStyle",
            Self::IfcExternallyDefinedSurfaceStyle => "IfcExternallyDefinedSurfaceStyle",
            Self::IfcExternallyDefinedTextFont => "IfcExternallyDefinedTextFont",
            Self::IfcExtrudedAreaSolid => "IfcExtrudedAreaSolid",
            Self::IfcExtrudedAreaSolidTapered => "IfcExtrudedAreaSolidTapered",
            Self::IfcFace => "IfcFace",
            Self::IfcFaceBasedSurfaceModel => "IfcFaceBasedSurfaceModel",
            Self::IfcFaceBound => "IfcFaceBound",
            Self::IfcFaceOuterBound => "IfcFaceOuterBound",
            Self::IfcFaceSurface => "IfcFaceSurface",
            Self::IfcFacetedBrep => "IfcFacetedBrep",
            Self::IfcFacetedBrepWithVoids => "IfcFacetedBrepWithVoids",
            Self::IfcFacility => "IfcFacility",
            Self::IfcFacilityPart => "IfcFacilityPart",
            Self::IfcFailureConnectionCondition => "IfcFailureConnectionCondition",
            Self::IfcFan => "IfcFan",
            Self::IfcFanType => "IfcFanType",
            Self::IfcFastener => "IfcFastener",
            Self::IfcFastenerType => "IfcFastenerType",
            Self::IfcFeatureElement => "IfcFeatureElement",
            Self::IfcFeatureElementAddition => "IfcFeatureElementAddition",
            Self::IfcFeatureElementSubtraction => "IfcFeatureElementSubtraction",
            Self::IfcFillAreaStyle => "IfcFillAreaStyle",
            Self::IfcFillAreaStyleHatching => "IfcFillAreaStyleHatching",
            Self::IfcFillAreaStyleTiles => "IfcFillAreaStyleTiles",
            Self::IfcFilter => "IfcFilter",
            Self::IfcFilterType => "IfcFilterType",
            Self::IfcFireSuppressionTerminal => "IfcFireSuppressionTerminal",
            Self::IfcFireSuppressionTerminalType => "IfcFireSuppressionTerminalType",
            Self::IfcFixedReferenceSweptAreaSolid => "IfcFixedReferenceSweptAreaSolid",
            Self::IfcFlowController => "IfcFlowController",
            Self::IfcFlowControllerType => "IfcFlowControllerType",
            Self::IfcFlowFitting => "IfcFlowFitting",
            Self::IfcFlowFittingType => "IfcFlowFittingType",
            Self::IfcFlowInstrument => "IfcFlowInstrument",
            Self::IfcFlowInstrumentType => "IfcFlowInstrumentType",
            Self::IfcFlowMeter => "IfcFlowMeter",
            Self::IfcFlowMeterType => "IfcFlowMeterType",
            Self::IfcFlowMovingDevice => "IfcFlowMovingDevice",
            Self::IfcFlowMovingDeviceType => "IfcFlowMovingDeviceType",
            Self::IfcFlowSegment => "IfcFlowSegment",
            Self::IfcFlowSegmentType => "IfcFlowSegmentType",
            Self::IfcFlowStorageDevice => "IfcFlowStorageDevice",
            Self::IfcFlowStorageDeviceType => "IfcFlowStorageDeviceType",
            Self::IfcFlowTerminal => "IfcFlowTerminal",
            Self::IfcFlowTerminalType => "IfcFlowTerminalType",
            Self::IfcFlowTreatmentDevice => "IfcFlowTreatmentDevice",
            Self::IfcFlowTreatmentDeviceType => "IfcFlowTreatmentDeviceType",
            Self::IfcFooting => "IfcFooting",
            Self::IfcFootingType => "IfcFootingType",
            Self::IfcFurnishingElement => "IfcFurnishingElement",
            Self::IfcFurnishingElementType => "IfcFurnishingElementType",
            Self::IfcFurniture => "IfcFurniture",
            Self::IfcFurnitureType => "IfcFurnitureType",
            Self::IfcGeographicElement => "IfcGeographicElement",
            Self::IfcGeographicElementType => "IfcGeographicElementType",
            Self::IfcGeometricCurveSet => "IfcGeometricCurveSet",
            Self::IfcGeometricRepresentationContext => "IfcGeometricRepresentationContext",
            Self::IfcGeometricRepresentationItem => "IfcGeometricRepresentationItem",
            Self::IfcGeometricRepresentationSubContext => "IfcGeometricRepresentationSubContext",
            Self::IfcGeometricSet => "IfcGeometricSet",
            Self::IfcGrid => "IfcGrid",
            Self::IfcGridAxis => "IfcGridAxis",
            Self::IfcGridPlacement => "IfcGridPlacement",
            Self::IfcGroup => "IfcGroup",
            Self::IfcHalfSpaceSolid => "IfcHalfSpaceSolid",
            Self::IfcHeatExchanger => "IfcHeatExchanger",
            Self::IfcHeatExchangerType => "IfcHeatExchangerType",
            Self::IfcHumidifier => "IfcHumidifier",
            Self::IfcHumidifierType => "IfcHumidifierType",
            Self::IfcIShapeProfileDef => "IfcIShapeProfileDef",
            Self::IfcImageTexture => "IfcImageTexture",
            Self::IfcIndexedColourMap => "IfcIndexedColourMap",
            Self::IfcIndexedPolyCurve => "IfcIndexedPolyCurve",
            Self::IfcIndexedPolygonalFace => "IfcIndexedPolygonalFace",
            Self::IfcIndexedPolygonalFaceWithVoids => "IfcIndexedPolygonalFaceWithVoids",
            Self::IfcIndexedTextureMap => "IfcIndexedTextureMap",
            Self::IfcIndexedTriangleTextureMap => "IfcIndexedTriangleTextureMap",
            Self::IfcInterceptor => "IfcInterceptor",
            Self::IfcInterceptorType => "IfcInterceptorType",
            Self::IfcIntersectionCurve => "IfcIntersectionCurve",
            Self::IfcInventory => "IfcInventory",
            Self::IfcIrregularTimeSeries => "IfcIrregularTimeSeries",
            Self::IfcIrregularTimeSeriesValue => "IfcIrregularTimeSeriesValue",
            Self::IfcJunctionBox => "IfcJunctionBox",
            Self::IfcJunctionBoxType => "IfcJunctionBoxType",
            Self::IfcLShapeProfileDef => "IfcLShapeProfileDef",
            Self::IfcLaborResource => "IfcLaborResource",
            Self::IfcLaborResourceType => "IfcLaborResourceType",
            Self::IfcLagTime => "IfcLagTime",
            Self::IfcLamp => "IfcLamp",
            Self::IfcLampType => "IfcLampType",
            Self::IfcLibraryInformation => "IfcLibraryInformation",
            Self::IfcLibraryReference => "IfcLibraryReference",
            Self::IfcLightDistributionData => "IfcLightDistributionData",
            Self::IfcLightFixture => "IfcLightFixture",
            Self::IfcLightFixtureType => "IfcLightFixtureType",
            Self::IfcLightIntensityDistribution => "IfcLightIntensityDistribution",
            Self::IfcLightSource => "IfcLightSource",
            Self::IfcLightSourceAmbient => "IfcLightSourceAmbient",
            Self::IfcLightSourceDirectional => "IfcLightSourceDirectional",
            Self::IfcLightSourceGoniometric => "IfcLightSourceGoniometric",
            Self::IfcLightSourcePositional => "IfcLightSourcePositional",
            Self::IfcLightSourceSpot => "IfcLightSourceSpot",
            Self::IfcLine => "IfcLine",
            Self::IfcLineSegment2D => "IfcLineSegment2D",
            Self::IfcLinearPlacement => "IfcLinearPlacement",
            Self::IfcLinearPositioningElement => "IfcLinearPositioningElement",
            Self::IfcLocalPlacement => "IfcLocalPlacement",
            Self::IfcLoop => "IfcLoop",
            Self::IfcManifoldSolidBrep => "IfcManifoldSolidBrep",
            Self::IfcMapConversion => "IfcMapConversion",
            Self::IfcMappedItem => "IfcMappedItem",
            Self::IfcMaterial => "IfcMaterial",
            Self::IfcMaterialClassificationRelationship => "IfcMaterialClassificationRelationship",
            Self::IfcMaterialConstituent => "IfcMaterialConstituent",
            Self::IfcMaterialConstituentSet => "IfcMaterialConstituentSet",
            Self::IfcMaterialDefinition => "IfcMaterialDefinition",
            Self::IfcMaterialDefinitionRepresentation => "IfcMaterialDefinitionRepresentation",
            Self::IfcMaterialLayer => "IfcMaterialLayer",
            Self::IfcMaterialLayerSet => "IfcMaterialLayerSet",
            Self::IfcMaterialLayerSetUsage => "IfcMaterialLayerSetUsage",
            Self::IfcMaterialLayerWithOffsets => "IfcMaterialLayerWithOffsets",
            Self::IfcMaterialList => "IfcMaterialList",
            Self::IfcMaterialProfile => "IfcMaterialProfile",
            Self::IfcMaterialProfileSet => "IfcMaterialProfileSet",
            Self::IfcMaterialProfileSetUsage => "IfcMaterialProfileSetUsage",
            Self::IfcMaterialProfileSetUsageTapering => "IfcMaterialProfileSetUsageTapering",
            Self::IfcMaterialProfileWithOffsets => "IfcMaterialProfileWithOffsets",
            Self::IfcMaterialProperties => "IfcMaterialProperties",
            Self::IfcMaterialRelationship => "IfcMaterialRelationship",
            Self::IfcMaterialUsageDefinition => "IfcMaterialUsageDefinition",
            Self::IfcMeasureWithUnit => "IfcMeasureWithUnit",
            Self::IfcMechanicalFastener => "IfcMechanicalFastener",
            Self::IfcMechanicalFastenerType => "IfcMechanicalFastenerType",
            Self::IfcMedicalDevice => "IfcMedicalDevice",
            Self::IfcMedicalDeviceType => "IfcMedicalDeviceType",
            Self::IfcMember => "IfcMember",
            Self::IfcMemberStandardCase => "IfcMemberStandardCase",
            Self::IfcMemberType => "IfcMemberType",
            Self::IfcMetric => "IfcMetric",
            Self::IfcMirroredProfileDef => "IfcMirroredProfileDef",
            Self::IfcMonetaryUnit => "IfcMonetaryUnit",
            Self::IfcMotorConnection => "IfcMotorConnection",
            Self::IfcMotorConnectionType => "IfcMotorConnectionType",
            Self::IfcNamedUnit => "IfcNamedUnit",
            Self::IfcObject => "IfcObject",
            Self::IfcObjectDefinition => "IfcObjectDefinition",
            Self::IfcObjectPlacement => "IfcObjectPlacement",
            Self::IfcObjective => "IfcObjective",
            Self::IfcOccupant => "IfcOccupant",
            Self::IfcOffsetCurve => "IfcOffsetCurve",
            Self::IfcOffsetCurve2D => "IfcOffsetCurve2D",
            Self::IfcOffsetCurve3D => "IfcOffsetCurve3D",
            Self::IfcOffsetCurveByDistances => "IfcOffsetCurveByDistances",
            Self::IfcOpenShell => "IfcOpenShell",
            Self::IfcOpeningElement => "IfcOpeningElement",
            Self::IfcOpeningStandardCase => "IfcOpeningStandardCase",
            Self::IfcOrganization => "IfcOrganization",
            Self::IfcOrganizationRelationship => "IfcOrganizationRelationship",
            Self::IfcOrientationExpression => "IfcOrientationExpression",
            Self::IfcOrientedEdge => "IfcOrientedEdge",
            Self::IfcOuterBoundaryCurve => "IfcOuterBoundaryCurve",
            Self::IfcOutlet => "IfcOutlet",
            Self::IfcOutletType => "IfcOutletType",
            Self::IfcOwnerHistory => "IfcOwnerHistory",
            Self::IfcParameterizedProfileDef => "IfcParameterizedProfileDef",
            Self::IfcPath => "IfcPath",
            Self::IfcPcurve => "IfcPcurve",
            Self::IfcPerformanceHistory => "IfcPerformanceHistory",
            Self::IfcPermeableCoveringProperties => "IfcPermeableCoveringProperties",
            Self::IfcPermit => "IfcPermit",
            Self::IfcPerson => "IfcPerson",
            Self::IfcPersonAndOrganization => "IfcPersonAndOrganization",
            Self::IfcPhysicalComplexQuantity => "IfcPhysicalComplexQuantity",
            Self::IfcPhysicalQuantity => "IfcPhysicalQuantity",
            Self::IfcPhysicalSimpleQuantity => "IfcPhysicalSimpleQuantity",
            Self::IfcPile => "IfcPile",
            Self::IfcPileType => "IfcPileType",
            Self::IfcPipeFitting => "IfcPipeFitting",
            Self::IfcPipeFittingType => "IfcPipeFittingType",
            Self::IfcPipeSegment => "IfcPipeSegment",
            Self::IfcPipeSegmentType => "IfcPipeSegmentType",
            Self::IfcPixelTexture => "IfcPixelTexture",
            Self::IfcPlacement => "IfcPlacement",
            Self::IfcPlanarBox => "IfcPlanarBox",
            Self::IfcPlanarExtent => "IfcPlanarExtent",
            Self::IfcPlane => "IfcPlane",
            Self::IfcPlate => "IfcPlate",
            Self::IfcPlateStandardCase => "IfcPlateStandardCase",
            Self::IfcPlateType => "IfcPlateType",
            Self::IfcPoint => "IfcPoint",
            Self::IfcPointOnCurve => "IfcPointOnCurve",
            Self::IfcPointOnSurface => "IfcPointOnSurface",
            Self::IfcPolyLoop => "IfcPolyLoop",
            Self::IfcPolygonalBoundedHalfSpace => "IfcPolygonalBoundedHalfSpace",
            Self::IfcPolygonalFaceSet => "IfcPolygonalFaceSet",
            Self::IfcPolyline => "IfcPolyline",
            Self::IfcPort => "IfcPort",
            Self::IfcPositioningElement => "IfcPositioningElement",
            Self::IfcPostalAddress => "IfcPostalAddress",
            Self::IfcPreDefinedColour => "IfcPreDefinedColour",
            Self::IfcPreDefinedCurveFont => "IfcPreDefinedCurveFont",
            Self::IfcPreDefinedItem => "IfcPreDefinedItem",
            Self::IfcPreDefinedProperties => "IfcPreDefinedProperties",
            Self::IfcPreDefinedPropertySet => "IfcPreDefinedPropertySet",
            Self::IfcPreDefinedTextFont => "IfcPreDefinedTextFont",
            Self::IfcPresentationItem => "IfcPresentationItem",
            Self::IfcPresentationLayerAssignment => "IfcPresentationLayerAssignment",
            Self::IfcPresentationLayerWithStyle => "IfcPresentationLayerWithStyle",
            Self::IfcPresentationStyle => "IfcPresentationStyle",
            Self::IfcPresentationStyleAssignment => "IfcPresentationStyleAssignment",
            Self::IfcProcedure => "IfcProcedure",
            Self::IfcProcedureType => "IfcProcedureType",
            Self::IfcProcess => "IfcProcess",
            Self::IfcProduct => "IfcProduct",
            Self::IfcProductDefinitionShape => "IfcProductDefinitionShape",
            Self::IfcProductRepresentation => "IfcProductRepresentation",
            Self::IfcProfileDef => "IfcProfileDef",
            Self::IfcProfileProperties => "IfcProfileProperties",
            Self::IfcProject => "IfcProject",
            Self::IfcProjectLibrary => "IfcProjectLibrary",
            Self::IfcProjectOrder => "IfcProjectOrder",
            Self::IfcProjectedCRS => "IfcProjectedCRS",
            Self::IfcProjectionElement => "IfcProjectionElement",
            Self::IfcProperty => "IfcProperty",
            Self::IfcPropertyAbstraction => "IfcPropertyAbstraction",
            Self::IfcPropertyBoundedValue => "IfcPropertyBoundedValue",
            Self::IfcPropertyDefinition => "IfcPropertyDefinition",
            Self::IfcPropertyDependencyRelationship => "IfcPropertyDependencyRelationship",
            Self::IfcPropertyEnumeratedValue => "IfcPropertyEnumeratedValue",
            Self::IfcPropertyEnumeration => "IfcPropertyEnumeration",
            Self::IfcPropertyListValue => "IfcPropertyListValue",
            Self::IfcPropertyReferenceValue => "IfcPropertyReferenceValue",
            Self::IfcPropertySet => "IfcPropertySet",
            Self::IfcPropertySetDefinition => "IfcPropertySetDefinition",
            Self::IfcPropertySetTemplate => "IfcPropertySetTemplate",
            Self::IfcPropertySingleValue => "IfcPropertySingleValue",
            Self::IfcPropertyTableValue => "IfcPropertyTableValue",
            Self::IfcPropertyTemplate => "IfcPropertyTemplate",
            Self::IfcPropertyTemplateDefinition => "IfcPropertyTemplateDefinition",
            Self::IfcProtectiveDevice => "IfcProtectiveDevice",
            Self::IfcProtectiveDeviceTrippingUnit => "IfcProtectiveDeviceTrippingUnit",
            Self::IfcProtectiveDeviceTrippingUnitType => "IfcProtectiveDeviceTrippingUnitType",
            Self::IfcProtectiveDeviceType => "IfcProtectiveDeviceType",
            Self::IfcProxy => "IfcProxy",
            Self::IfcPump => "IfcPump",
            Self::IfcPumpType => "IfcPumpType",
            Self::IfcQuantityArea => "IfcQuantityArea",
            Self::IfcQuantityCount => "IfcQuantityCount",
            Self::IfcQuantityLength => "IfcQuantityLength",
            Self::IfcQuantitySet => "IfcQuantitySet",
            Self::IfcQuantityTime => "IfcQuantityTime",
            Self::IfcQuantityVolume => "IfcQuantityVolume",
            Self::IfcQuantityWeight => "IfcQuantityWeight",
            Self::IfcRailing => "IfcRailing",
            Self::IfcRailingType => "IfcRailingType",
            Self::IfcRamp => "IfcRamp",
            Self::IfcRampFlight => "IfcRampFlight",
            Self::IfcRampFlightType => "IfcRampFlightType",
            Self::IfcRampType => "IfcRampType",
            Self::IfcRationalBSplineCurveWithKnots => "IfcRationalBSplineCurveWithKnots",
            Self::IfcRationalBSplineSurfaceWithKnots => "IfcRationalBSplineSurfaceWithKnots",
            Self::IfcRectangleHollowProfileDef => "IfcRectangleHollowProfileDef",
            Self::IfcRectangleProfileDef => "IfcRectangleProfileDef",
            Self::IfcRectangularPyramid => "IfcRectangularPyramid",
            Self::IfcRectangularTrimmedSurface => "IfcRectangularTrimmedSurface",
            Self::IfcRecurrencePattern => "IfcRecurrencePattern",
            Self::IfcReference => "IfcReference",
            Self::IfcReferent => "IfcReferent",
            Self::IfcRegularTimeSeries => "IfcRegularTimeSeries",
            Self::IfcReinforcementBarProperties => "IfcReinforcementBarProperties",
            Self::IfcReinforcementDefinitionProperties => "IfcReinforcementDefinitionProperties",
            Self::IfcReinforcingBar => "IfcReinforcingBar",
            Self::IfcReinforcingBarType => "IfcReinforcingBarType",
            Self::IfcReinforcingElement => "IfcReinforcingElement",
            Self::IfcReinforcingElementType => "IfcReinforcingElementType",
            Self::IfcReinforcingMesh => "IfcReinforcingMesh",
            Self::IfcReinforcingMeshType => "IfcReinforcingMeshType",
            Self::IfcRelAggregates => "IfcRelAggregates",
            Self::IfcRelAssigns => "IfcRelAssigns",
            Self::IfcRelAssignsToActor => "IfcRelAssignsToActor",
            Self::IfcRelAssignsToControl => "IfcRelAssignsToControl",
            Self::IfcRelAssignsToGroup => "IfcRelAssignsToGroup",
            Self::IfcRelAssignsToGroupByFactor => "IfcRelAssignsToGroupByFactor",
            Self::IfcRelAssignsToProcess => "IfcRelAssignsToProcess",
            Self::IfcRelAssignsToProduct => "IfcRelAssignsToProduct",
            Self::IfcRelAssignsToResource => "IfcRelAssignsToResource",
            Self::IfcRelAssociates => "IfcRelAssociates",
            Self::IfcRelAssociatesApproval => "IfcRelAssociatesApproval",
            Self::IfcRelAssociatesClassification => "IfcRelAssociatesClassification",
            Self::IfcRelAssociatesConstraint => "IfcRelAssociatesConstraint",
            Self::IfcRelAssociatesDocument => "IfcRelAssociatesDocument",
            Self::IfcRelAssociatesLibrary => "IfcRelAssociatesLibrary",
            Self::IfcRelAssociatesMaterial => "IfcRelAssociatesMaterial",
            Self::IfcRelConnects => "IfcRelConnects",
            Self::IfcRelConnectsElements => "IfcRelConnectsElements",
            Self::IfcRelConnectsPathElements => "IfcRelConnectsPathElements",
            Self::IfcRelConnectsPortToElement => "IfcRelConnectsPortToElement",
            Self::IfcRelConnectsPorts => "IfcRelConnectsPorts",
            Self::IfcRelConnectsStructuralActivity => "IfcRelConnectsStructuralActivity",
            Self::IfcRelConnectsStructuralMember => "IfcRelConnectsStructuralMember",
            Self::IfcRelConnectsWithEccentricity => "IfcRelConnectsWithEccentricity",
            Self::IfcRelConnectsWithRealizingElements => "IfcRelConnectsWithRealizingElements",
            Self::IfcRelContainedInSpatialStructure => "IfcRelContainedInSpatialStructure",
            Self::IfcRelCoversBldgElements => "IfcRelCoversBldgElements",
            Self::IfcRelCoversSpaces => "IfcRelCoversSpaces",
            Self::IfcRelDeclares => "IfcRelDeclares",
            Self::IfcRelDecomposes => "IfcRelDecomposes",
            Self::IfcRelDefines => "IfcRelDefines",
            Self::IfcRelDefinesByObject => "IfcRelDefinesByObject",
            Self::IfcRelDefinesByProperties => "IfcRelDefinesByProperties",
            Self::IfcRelDefinesByTemplate => "IfcRelDefinesByTemplate",
            Self::IfcRelDefinesByType => "IfcRelDefinesByType",
            Self::IfcRelFillsElement => "IfcRelFillsElement",
            Self::IfcRelFlowControlElements => "IfcRelFlowControlElements",
            Self::IfcRelInterferesElements => "IfcRelInterferesElements",
            Self::IfcRelNests => "IfcRelNests",
            Self::IfcRelPositions => "IfcRelPositions",
            Self::IfcRelProjectsElement => "IfcRelProjectsElement",
            Self::IfcRelReferencedInSpatialStructure => "IfcRelReferencedInSpatialStructure",
            Self::IfcRelSequence => "IfcRelSequence",
            Self::IfcRelServicesBuildings => "IfcRelServicesBuildings",
            Self::IfcRelSpaceBoundary => "IfcRelSpaceBoundary",
            Self::IfcRelSpaceBoundary1stLevel => "IfcRelSpaceBoundary1stLevel",
            Self::IfcRelSpaceBoundary2ndLevel => "IfcRelSpaceBoundary2ndLevel",
            Self::IfcRelVoidsElement => "IfcRelVoidsElement",
            Self::IfcRelationship => "IfcRelationship",
            Self::IfcReparametrisedCompositeCurveSegment => "IfcReparametrisedCompositeCurveSegment",
            Self::IfcRepresentation => "IfcRepresentation",
            Self::IfcRepresentationContext => "IfcRepresentationContext",
            Self::IfcRepresentationItem => "IfcRepresentationItem",
            Self::IfcRepresentationMap => "IfcRepresentationMap",
            Self::IfcResource => "IfcResource",
            Self::IfcResourceApprovalRelationship => "IfcResourceApprovalRelationship",
            Self::IfcResourceConstraintRelationship => "IfcResourceConstraintRelationship",
            Self::IfcResourceLevelRelationship => "IfcResourceLevelRelationship",
            Self::IfcResourceTime => "IfcResourceTime",
            Self::IfcRevolvedAreaSolid => "IfcRevolvedAreaSolid",
            Self::IfcRevolvedAreaSolidTapered => "IfcRevolvedAreaSolidTapered",
            Self::IfcRightCircularCone => "IfcRightCircularCone",
            Self::IfcRightCircularCylinder => "IfcRightCircularCylinder",
            Self::IfcRoof => "IfcRoof",
            Self::IfcRoofType => "IfcRoofType",
            Self::IfcRoot => "IfcRoot",
            Self::IfcRoundedRectangleProfileDef => "IfcRoundedRectangleProfileDef",
            Self::IfcSIUnit => "IfcSIUnit",
            Self::IfcSanitaryTerminal => "IfcSanitaryTerminal",
            Self::IfcSanitaryTerminalType => "IfcSanitaryTerminalType",
            Self::IfcSchedulingTime => "IfcSchedulingTime",
            Self::IfcSeamCurve => "IfcSeamCurve",
            Self::IfcSectionProperties => "IfcSectionProperties",
            Self::IfcSectionReinforcementProperties => "IfcSectionReinforcementProperties",
            Self::IfcSectionedSolid => "IfcSectionedSolid",
            Self::IfcSectionedSolidHorizontal => "IfcSectionedSolidHorizontal",
            Self::IfcSectionedSpine => "IfcSectionedSpine",
            Self::IfcSensor => "IfcSensor",
            Self::IfcSensorType => "IfcSensorType",
            Self::IfcShadingDevice => "IfcShadingDevice",
            Self::IfcShadingDeviceType => "IfcShadingDeviceType",
            Self::IfcShapeAspect => "IfcShapeAspect",
            Self::IfcShapeModel => "IfcShapeModel",
            Self::IfcShapeRepresentation => "IfcShapeRepresentation",
            Self::IfcShellBasedSurfaceModel => "IfcShellBasedSurfaceModel",
            Self::IfcSimpleProperty => "IfcSimpleProperty",
            Self::IfcSimplePropertyTemplate => "IfcSimplePropertyTemplate",
            Self::IfcSite => "IfcSite",
            Self::IfcSlab => "IfcSlab",
            Self::IfcSlabElementedCase => "IfcSlabElementedCase",
            Self::IfcSlabStandardCase => "IfcSlabStandardCase",
            Self::IfcSlabType => "IfcSlabType",
            Self::IfcSlippageConnectionCondition => "IfcSlippageConnectionCondition",
            Self::IfcSolarDevice => "IfcSolarDevice",
            Self::IfcSolarDeviceType => "IfcSolarDeviceType",
            Self::IfcSolidModel => "IfcSolidModel",
            Self::IfcSpace => "IfcSpace",
            Self::IfcSpaceHeater => "IfcSpaceHeater",
            Self::IfcSpaceHeaterType => "IfcSpaceHeaterType",
            Self::IfcSpaceType => "IfcSpaceType",
            Self::IfcSpatialElement => "IfcSpatialElement",
            Self::IfcSpatialElementType => "IfcSpatialElementType",
            Self::IfcSpatialStructureElement => "IfcSpatialStructureElement",
            Self::IfcSpatialStructureElementType => "IfcSpatialStructureElementType",
            Self::IfcSpatialZone => "IfcSpatialZone",
            Self::IfcSpatialZoneType => "IfcSpatialZoneType",
            Self::IfcSphere => "IfcSphere",
            Self::IfcSphericalSurface => "IfcSphericalSurface",
            Self::IfcStackTerminal => "IfcStackTerminal",
            Self::IfcStackTerminalType => "IfcStackTerminalType",
            Self::IfcStair => "IfcStair",
            Self::IfcStairFlight => "IfcStairFlight",
            Self::IfcStairFlightType => "IfcStairFlightType",
            Self::IfcStairType => "IfcStairType",
            Self::IfcStructuralAction => "IfcStructuralAction",
            Self::IfcStructuralActivity => "IfcStructuralActivity",
            Self::IfcStructuralAnalysisModel => "IfcStructuralAnalysisModel",
            Self::IfcStructuralConnection => "IfcStructuralConnection",
            Self::IfcStructuralConnectionCondition => "IfcStructuralConnectionCondition",
            Self::IfcStructuralCurveAction => "IfcStructuralCurveAction",
            Self::IfcStructuralCurveConnection => "IfcStructuralCurveConnection",
            Self::IfcStructuralCurveMember => "IfcStructuralCurveMember",
            Self::IfcStructuralCurveMemberVarying => "IfcStructuralCurveMemberVarying",
            Self::IfcStructuralCurveReaction => "IfcStructuralCurveReaction",
            Self::IfcStructuralItem => "IfcStructuralItem",
            Self::IfcStructuralLinearAction => "IfcStructuralLinearAction",
            Self::IfcStructuralLoad => "IfcStructuralLoad",
            Self::IfcStructuralLoadCase => "IfcStructuralLoadCase",
            Self::IfcStructuralLoadConfiguration => "IfcStructuralLoadConfiguration",
            Self::IfcStructuralLoadGroup => "IfcStructuralLoadGroup",
            Self::IfcStructuralLoadLinearForce => "IfcStructuralLoadLinearForce",
            Self::IfcStructuralLoadOrResult => "IfcStructuralLoadOrResult",
            Self::IfcStructuralLoadPlanarForce => "IfcStructuralLoadPlanarForce",
            Self::IfcStructuralLoadSingleDisplacement => "IfcStructuralLoadSingleDisplacement",
            Self::IfcStructuralLoadSingleDisplacementDistortion => "IfcStructuralLoadSingleDisplacementDistortion",
            Self::IfcStructuralLoadSingleForce => "IfcStructuralLoadSingleForce",
            Self::IfcStructuralLoadSingleForceWarping => "IfcStructuralLoadSingleForceWarping",
            Self::IfcStructuralLoadStatic => "IfcStructuralLoadStatic",
            Self::IfcStructuralLoadTemperature => "IfcStructuralLoadTemperature",
            Self::IfcStructuralMember => "IfcStructuralMember",
            Self::IfcStructuralPlanarAction => "IfcStructuralPlanarAction",
            Self::IfcStructuralPointAction => "IfcStructuralPointAction",
            Self::IfcStructuralPointConnection => "IfcStructuralPointConnection",
            Self::IfcStructuralPointReaction => "IfcStructuralPointReaction",
            Self::IfcStructuralReaction => "IfcStructuralReaction",
            Self::IfcStructuralResultGroup => "IfcStructuralResultGroup",
            Self::IfcStructuralSurfaceAction => "IfcStructuralSurfaceAction",
            Self::IfcStructuralSurfaceConnection => "IfcStructuralSurfaceConnection",
            Self::IfcStructuralSurfaceMember => "IfcStructuralSurfaceMember",
            Self::IfcStructuralSurfaceMemberVarying => "IfcStructuralSurfaceMemberVarying",
            Self::IfcStructuralSurfaceReaction => "IfcStructuralSurfaceReaction",
            Self::IfcStyleModel => "IfcStyleModel",
            Self::IfcStyledItem => "IfcStyledItem",
            Self::IfcStyledRepresentation => "IfcStyledRepresentation",
            Self::IfcSubContractResource => "IfcSubContractResource",
            Self::IfcSubContractResourceType => "IfcSubContractResourceType",
            Self::IfcSubedge => "IfcSubedge",
            Self::IfcSurface => "IfcSurface",
            Self::IfcSurfaceCurve => "IfcSurfaceCurve",
            Self::IfcSurfaceCurveSweptAreaSolid => "IfcSurfaceCurveSweptAreaSolid",
            Self::IfcSurfaceFeature => "IfcSurfaceFeature",
            Self::IfcSurfaceOfLinearExtrusion => "IfcSurfaceOfLinearExtrusion",
            Self::IfcSurfaceOfRevolution => "IfcSurfaceOfRevolution",
            Self::IfcSurfaceReinforcementArea => "IfcSurfaceReinforcementArea",
            Self::IfcSurfaceStyle => "IfcSurfaceStyle",
            Self::IfcSurfaceStyleLighting => "IfcSurfaceStyleLighting",
            Self::IfcSurfaceStyleRefraction => "IfcSurfaceStyleRefraction",
            Self::IfcSurfaceStyleRendering => "IfcSurfaceStyleRendering",
            Self::IfcSurfaceStyleShading => "IfcSurfaceStyleShading",
            Self::IfcSurfaceStyleWithTextures => "IfcSurfaceStyleWithTextures",
            Self::IfcSurfaceTexture => "IfcSurfaceTexture",
            Self::IfcSweptAreaSolid => "IfcSweptAreaSolid",
            Self::IfcSweptDiskSolid => "IfcSweptDiskSolid",
            Self::IfcSweptDiskSolidPolygonal => "IfcSweptDiskSolidPolygonal",
            Self::IfcSweptSurface => "IfcSweptSurface",
            Self::IfcSwitchingDevice => "IfcSwitchingDevice",
            Self::IfcSwitchingDeviceType => "IfcSwitchingDeviceType",
            Self::IfcSystem => "IfcSystem",
            Self::IfcSystemFurnitureElement => "IfcSystemFurnitureElement",
            Self::IfcSystemFurnitureElementType => "IfcSystemFurnitureElementType",
            Self::IfcTShapeProfileDef => "IfcTShapeProfileDef",
            Self::IfcTable => "IfcTable",
            Self::IfcTableColumn => "IfcTableColumn",
            Self::IfcTableRow => "IfcTableRow",
            Self::IfcTank => "IfcTank",
            Self::IfcTankType => "IfcTankType",
            Self::IfcTask => "IfcTask",
            Self::IfcTaskTime => "IfcTaskTime",
            Self::IfcTaskTimeRecurring => "IfcTaskTimeRecurring",
            Self::IfcTaskType => "IfcTaskType",
            Self::IfcTelecomAddress => "IfcTelecomAddress",
            Self::IfcTendon => "IfcTendon",
            Self::IfcTendonAnchor => "IfcTendonAnchor",
            Self::IfcTendonAnchorType => "IfcTendonAnchorType",
            Self::IfcTendonConduit => "IfcTendonConduit",
            Self::IfcTendonConduitType => "IfcTendonConduitType",
            Self::IfcTendonType => "IfcTendonType",
            Self::IfcTessellatedFaceSet => "IfcTessellatedFaceSet",
            Self::IfcTessellatedItem => "IfcTessellatedItem",
            Self::IfcTextLiteral => "IfcTextLiteral",
            Self::IfcTextLiteralWithExtent => "IfcTextLiteralWithExtent",
            Self::IfcTextStyle => "IfcTextStyle",
            Self::IfcTextStyleFontModel => "IfcTextStyleFontModel",
            Self::IfcTextStyleForDefinedFont => "IfcTextStyleForDefinedFont",
            Self::IfcTextStyleTextModel => "IfcTextStyleTextModel",
            Self::IfcTextureCoordinate => "IfcTextureCoordinate",
            Self::IfcTextureCoordinateGenerator => "IfcTextureCoordinateGenerator",
            Self::IfcTextureMap => "IfcTextureMap",
            Self::IfcTextureVertex => "IfcTextureVertex",
            Self::IfcTextureVertexList => "IfcTextureVertexList",
            Self::IfcTimePeriod => "IfcTimePeriod",
            Self::IfcTimeSeries => "IfcTimeSeries",
            Self::IfcTimeSeriesValue => "IfcTimeSeriesValue",
            Self::IfcTopologicalRepresentationItem => "IfcTopologicalRepresentationItem",
            Self::IfcTopologyRepresentation => "IfcTopologyRepresentation",
            Self::IfcToroidalSurface => "IfcToroidalSurface",
            Self::IfcTransformer => "IfcTransformer",
            Self::IfcTransformerType => "IfcTransformerType",
            Self::IfcTransitionCurveSegment2D => "IfcTransitionCurveSegment2D",
            Self::IfcTransportElement => "IfcTransportElement",
            Self::IfcTransportElementType => "IfcTransportElementType",
            Self::IfcTrapeziumProfileDef => "IfcTrapeziumProfileDef",
            Self::IfcTriangulatedFaceSet => "IfcTriangulatedFaceSet",
            Self::IfcTriangulatedIrregularNetwork => "IfcTriangulatedIrregularNetwork",
            Self::IfcTrimmedCurve => "IfcTrimmedCurve",
            Self::IfcTubeBundle => "IfcTubeBundle",
            Self::IfcTubeBundleType => "IfcTubeBundleType",
            Self::IfcTypeObject => "IfcTypeObject",
            Self::IfcTypeProcess => "IfcTypeProcess",
            Self::IfcTypeProduct => "IfcTypeProduct",
            Self::IfcTypeResource => "IfcTypeResource",
            Self::IfcUShapeProfileDef => "IfcUShapeProfileDef",
            Self::IfcUnitAssignment => "IfcUnitAssignment",
            Self::IfcUnitaryControlElement => "IfcUnitaryControlElement",
            Self::IfcUnitaryControlElementType => "IfcUnitaryControlElementType",
            Self::IfcUnitaryEquipment => "IfcUnitaryEquipment",
            Self::IfcUnitaryEquipmentType => "IfcUnitaryEquipmentType",
            Self::IfcValve => "IfcValve",
            Self::IfcValveType => "IfcValveType",
            Self::IfcVector => "IfcVector",
            Self::IfcVertex => "IfcVertex",
            Self::IfcVertexLoop => "IfcVertexLoop",
            Self::IfcVertexPoint => "IfcVertexPoint",
            Self::IfcVibrationDamper => "IfcVibrationDamper",
            Self::IfcVibrationDamperType => "IfcVibrationDamperType",
            Self::IfcVibrationIsolator => "IfcVibrationIsolator",
            Self::IfcVibrationIsolatorType => "IfcVibrationIsolatorType",
            Self::IfcVirtualElement => "IfcVirtualElement",
            Self::IfcVirtualGridIntersection => "IfcVirtualGridIntersection",
            Self::IfcVoidingFeature => "IfcVoidingFeature",
            Self::IfcWall => "IfcWall",
            Self::IfcWallElementedCase => "IfcWallElementedCase",
            Self::IfcWallStandardCase => "IfcWallStandardCase",
            Self::IfcWallType => "IfcWallType",
            Self::IfcWasteTerminal => "IfcWasteTerminal",
            Self::IfcWasteTerminalType => "IfcWasteTerminalType",
            Self::IfcWindow => "IfcWindow",
            Self::IfcWindowLiningProperties => "IfcWindowLiningProperties",
            Self::IfcWindowPanelProperties => "IfcWindowPanelProperties",
            Self::IfcWindowStandardCase => "IfcWindowStandardCase",
            Self::IfcWindowStyle => "IfcWindowStyle",
            Self::IfcWindowType => "IfcWindowType",
            Self::IfcWorkCalendar => "IfcWorkCalendar",
            Self::IfcWorkControl => "IfcWorkControl",
            Self::IfcWorkPlan => "IfcWorkPlan",
            Self::IfcWorkSchedule => "IfcWorkSchedule",
            Self::IfcWorkTime => "IfcWorkTime",
            Self::IfcZShapeProfileDef => "IfcZShapeProfileDef",
            Self::IfcZone => "IfcZone",
            Self::Unknown(unknown) => unknown.as_str(),
        }
    }

    /// Get parent type (if any)
    pub fn parent(&self) -> Option<Self> {
        match self {
            Self::IfcActionRequest => Some(Self::IfcControl),
            Self::IfcActor => Some(Self::IfcObject),
            Self::IfcActuator => Some(Self::IfcDistributionControlElement),
            Self::IfcActuatorType => Some(Self::IfcDistributionControlElementType),
            Self::IfcAdvancedBrep => Some(Self::IfcManifoldSolidBrep),
            Self::IfcAdvancedBrepWithVoids => Some(Self::IfcAdvancedBrep),
            Self::IfcAdvancedFace => Some(Self::IfcFaceSurface),
            Self::IfcAirTerminal => Some(Self::IfcFlowTerminal),
            Self::IfcAirTerminalBox => Some(Self::IfcFlowController),
            Self::IfcAirTerminalBoxType => Some(Self::IfcFlowControllerType),
            Self::IfcAirTerminalType => Some(Self::IfcFlowTerminalType),
            Self::IfcAirToAirHeatRecovery => Some(Self::IfcEnergyConversionDevice),
            Self::IfcAirToAirHeatRecoveryType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcAlarm => Some(Self::IfcDistributionControlElement),
            Self::IfcAlarmType => Some(Self::IfcDistributionControlElementType),
            Self::IfcAlignment => Some(Self::IfcLinearPositioningElement),
            Self::IfcAlignment2DHorizontal => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcAlignment2DHorizontalSegment => Some(Self::IfcAlignment2DSegment),
            Self::IfcAlignment2DSegment => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcAlignment2DVerSegCircularArc => Some(Self::IfcAlignment2DVerticalSegment),
            Self::IfcAlignment2DVerSegLine => Some(Self::IfcAlignment2DVerticalSegment),
            Self::IfcAlignment2DVerSegParabolicArc => Some(Self::IfcAlignment2DVerticalSegment),
            Self::IfcAlignment2DVertical => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcAlignment2DVerticalSegment => Some(Self::IfcAlignment2DSegment),
            Self::IfcAlignmentCurve => Some(Self::IfcBoundedCurve),
            Self::IfcAnnotation => Some(Self::IfcProduct),
            Self::IfcAnnotationFillArea => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcApprovalRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcArbitraryClosedProfileDef => Some(Self::IfcProfileDef),
            Self::IfcArbitraryOpenProfileDef => Some(Self::IfcProfileDef),
            Self::IfcArbitraryProfileDefWithVoids => Some(Self::IfcArbitraryClosedProfileDef),
            Self::IfcAsset => Some(Self::IfcGroup),
            Self::IfcAsymmetricIShapeProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcAudioVisualAppliance => Some(Self::IfcFlowTerminal),
            Self::IfcAudioVisualApplianceType => Some(Self::IfcFlowTerminalType),
            Self::IfcAxis1Placement => Some(Self::IfcPlacement),
            Self::IfcAxis2Placement2D => Some(Self::IfcPlacement),
            Self::IfcAxis2Placement3D => Some(Self::IfcPlacement),
            Self::IfcBSplineCurve => Some(Self::IfcBoundedCurve),
            Self::IfcBSplineCurveWithKnots => Some(Self::IfcBSplineCurve),
            Self::IfcBSplineSurface => Some(Self::IfcBoundedSurface),
            Self::IfcBSplineSurfaceWithKnots => Some(Self::IfcBSplineSurface),
            Self::IfcBeam => Some(Self::IfcBuildingElement),
            Self::IfcBeamStandardCase => Some(Self::IfcBeam),
            Self::IfcBeamType => Some(Self::IfcBuildingElementType),
            Self::IfcBearing => Some(Self::IfcBuildingElement),
            Self::IfcBearingType => Some(Self::IfcBuildingElementType),
            Self::IfcBlobTexture => Some(Self::IfcSurfaceTexture),
            Self::IfcBlock => Some(Self::IfcCsgPrimitive3D),
            Self::IfcBoiler => Some(Self::IfcEnergyConversionDevice),
            Self::IfcBoilerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcBooleanClippingResult => Some(Self::IfcBooleanResult),
            Self::IfcBooleanResult => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcBoundaryCurve => Some(Self::IfcCompositeCurveOnSurface),
            Self::IfcBoundaryEdgeCondition => Some(Self::IfcBoundaryCondition),
            Self::IfcBoundaryFaceCondition => Some(Self::IfcBoundaryCondition),
            Self::IfcBoundaryNodeCondition => Some(Self::IfcBoundaryCondition),
            Self::IfcBoundaryNodeConditionWarping => Some(Self::IfcBoundaryNodeCondition),
            Self::IfcBoundedCurve => Some(Self::IfcCurve),
            Self::IfcBoundedSurface => Some(Self::IfcSurface),
            Self::IfcBoundingBox => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcBoxedHalfSpace => Some(Self::IfcHalfSpaceSolid),
            Self::IfcBridge => Some(Self::IfcFacility),
            Self::IfcBridgePart => Some(Self::IfcFacilityPart),
            Self::IfcBuilding => Some(Self::IfcFacility),
            Self::IfcBuildingElement => Some(Self::IfcElement),
            Self::IfcBuildingElementPart => Some(Self::IfcElementComponent),
            Self::IfcBuildingElementPartType => Some(Self::IfcElementComponentType),
            Self::IfcBuildingElementProxy => Some(Self::IfcBuildingElement),
            Self::IfcBuildingElementProxyType => Some(Self::IfcBuildingElementType),
            Self::IfcBuildingElementType => Some(Self::IfcElementType),
            Self::IfcBuildingStorey => Some(Self::IfcFacilityPart),
            Self::IfcBuildingSystem => Some(Self::IfcSystem),
            Self::IfcBurner => Some(Self::IfcEnergyConversionDevice),
            Self::IfcBurnerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcCShapeProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcCableCarrierFitting => Some(Self::IfcFlowFitting),
            Self::IfcCableCarrierFittingType => Some(Self::IfcFlowFittingType),
            Self::IfcCableCarrierSegment => Some(Self::IfcFlowSegment),
            Self::IfcCableCarrierSegmentType => Some(Self::IfcFlowSegmentType),
            Self::IfcCableFitting => Some(Self::IfcFlowFitting),
            Self::IfcCableFittingType => Some(Self::IfcFlowFittingType),
            Self::IfcCableSegment => Some(Self::IfcFlowSegment),
            Self::IfcCableSegmentType => Some(Self::IfcFlowSegmentType),
            Self::IfcCaissonFoundation => Some(Self::IfcDeepFoundation),
            Self::IfcCaissonFoundationType => Some(Self::IfcDeepFoundationType),
            Self::IfcCartesianPoint => Some(Self::IfcPoint),
            Self::IfcCartesianPointList => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcCartesianPointList2D => Some(Self::IfcCartesianPointList),
            Self::IfcCartesianPointList3D => Some(Self::IfcCartesianPointList),
            Self::IfcCartesianTransformationOperator => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcCartesianTransformationOperator2D => Some(Self::IfcCartesianTransformationOperator),
            Self::IfcCartesianTransformationOperator2DnonUniform => Some(Self::IfcCartesianTransformationOperator2D),
            Self::IfcCartesianTransformationOperator3D => Some(Self::IfcCartesianTransformationOperator),
            Self::IfcCartesianTransformationOperator3DnonUniform => Some(Self::IfcCartesianTransformationOperator3D),
            Self::IfcCenterLineProfileDef => Some(Self::IfcArbitraryOpenProfileDef),
            Self::IfcChiller => Some(Self::IfcEnergyConversionDevice),
            Self::IfcChillerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcChimney => Some(Self::IfcBuildingElement),
            Self::IfcChimneyType => Some(Self::IfcBuildingElementType),
            Self::IfcCircle => Some(Self::IfcConic),
            Self::IfcCircleHollowProfileDef => Some(Self::IfcCircleProfileDef),
            Self::IfcCircleProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcCircularArcSegment2D => Some(Self::IfcCurveSegment2D),
            Self::IfcCivilElement => Some(Self::IfcElement),
            Self::IfcCivilElementType => Some(Self::IfcElementType),
            Self::IfcClassification => Some(Self::IfcExternalInformation),
            Self::IfcClassificationReference => Some(Self::IfcExternalReference),
            Self::IfcClosedShell => Some(Self::IfcConnectedFaceSet),
            Self::IfcCoil => Some(Self::IfcEnergyConversionDevice),
            Self::IfcCoilType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcColourRgb => Some(Self::IfcColourSpecification),
            Self::IfcColourRgbList => Some(Self::IfcPresentationItem),
            Self::IfcColourSpecification => Some(Self::IfcPresentationItem),
            Self::IfcColumn => Some(Self::IfcBuildingElement),
            Self::IfcColumnStandardCase => Some(Self::IfcColumn),
            Self::IfcColumnType => Some(Self::IfcBuildingElementType),
            Self::IfcCommunicationsAppliance => Some(Self::IfcFlowTerminal),
            Self::IfcCommunicationsApplianceType => Some(Self::IfcFlowTerminalType),
            Self::IfcComplexProperty => Some(Self::IfcProperty),
            Self::IfcComplexPropertyTemplate => Some(Self::IfcPropertyTemplate),
            Self::IfcCompositeCurve => Some(Self::IfcBoundedCurve),
            Self::IfcCompositeCurveOnSurface => Some(Self::IfcCompositeCurve),
            Self::IfcCompositeCurveSegment => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcCompositeProfileDef => Some(Self::IfcProfileDef),
            Self::IfcCompressor => Some(Self::IfcFlowMovingDevice),
            Self::IfcCompressorType => Some(Self::IfcFlowMovingDeviceType),
            Self::IfcCondenser => Some(Self::IfcEnergyConversionDevice),
            Self::IfcCondenserType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcConic => Some(Self::IfcCurve),
            Self::IfcConnectedFaceSet => Some(Self::IfcTopologicalRepresentationItem),
            Self::IfcConnectionCurveGeometry => Some(Self::IfcConnectionGeometry),
            Self::IfcConnectionPointEccentricity => Some(Self::IfcConnectionPointGeometry),
            Self::IfcConnectionPointGeometry => Some(Self::IfcConnectionGeometry),
            Self::IfcConnectionSurfaceGeometry => Some(Self::IfcConnectionGeometry),
            Self::IfcConnectionVolumeGeometry => Some(Self::IfcConnectionGeometry),
            Self::IfcConstructionEquipmentResource => Some(Self::IfcConstructionResource),
            Self::IfcConstructionEquipmentResourceType => Some(Self::IfcConstructionResourceType),
            Self::IfcConstructionMaterialResource => Some(Self::IfcConstructionResource),
            Self::IfcConstructionMaterialResourceType => Some(Self::IfcConstructionResourceType),
            Self::IfcConstructionProductResource => Some(Self::IfcConstructionResource),
            Self::IfcConstructionProductResourceType => Some(Self::IfcConstructionResourceType),
            Self::IfcConstructionResource => Some(Self::IfcResource),
            Self::IfcConstructionResourceType => Some(Self::IfcTypeResource),
            Self::IfcContext => Some(Self::IfcObjectDefinition),
            Self::IfcContextDependentUnit => Some(Self::IfcNamedUnit),
            Self::IfcControl => Some(Self::IfcObject),
            Self::IfcController => Some(Self::IfcDistributionControlElement),
            Self::IfcControllerType => Some(Self::IfcDistributionControlElementType),
            Self::IfcConversionBasedUnit => Some(Self::IfcNamedUnit),
            Self::IfcConversionBasedUnitWithOffset => Some(Self::IfcConversionBasedUnit),
            Self::IfcCooledBeam => Some(Self::IfcEnergyConversionDevice),
            Self::IfcCooledBeamType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcCoolingTower => Some(Self::IfcEnergyConversionDevice),
            Self::IfcCoolingTowerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcCostItem => Some(Self::IfcControl),
            Self::IfcCostSchedule => Some(Self::IfcControl),
            Self::IfcCostValue => Some(Self::IfcAppliedValue),
            Self::IfcCovering => Some(Self::IfcBuildingElement),
            Self::IfcCoveringType => Some(Self::IfcBuildingElementType),
            Self::IfcCrewResource => Some(Self::IfcConstructionResource),
            Self::IfcCrewResourceType => Some(Self::IfcConstructionResourceType),
            Self::IfcCsgPrimitive3D => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcCsgSolid => Some(Self::IfcSolidModel),
            Self::IfcCurrencyRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcCurtainWall => Some(Self::IfcBuildingElement),
            Self::IfcCurtainWallType => Some(Self::IfcBuildingElementType),
            Self::IfcCurve => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcCurveBoundedPlane => Some(Self::IfcBoundedSurface),
            Self::IfcCurveBoundedSurface => Some(Self::IfcBoundedSurface),
            Self::IfcCurveSegment2D => Some(Self::IfcBoundedCurve),
            Self::IfcCurveStyle => Some(Self::IfcPresentationStyle),
            Self::IfcCurveStyleFont => Some(Self::IfcPresentationItem),
            Self::IfcCurveStyleFontAndScaling => Some(Self::IfcPresentationItem),
            Self::IfcCurveStyleFontPattern => Some(Self::IfcPresentationItem),
            Self::IfcCylindricalSurface => Some(Self::IfcElementarySurface),
            Self::IfcDamper => Some(Self::IfcFlowController),
            Self::IfcDamperType => Some(Self::IfcFlowControllerType),
            Self::IfcDeepFoundation => Some(Self::IfcBuildingElement),
            Self::IfcDeepFoundationType => Some(Self::IfcBuildingElementType),
            Self::IfcDerivedProfileDef => Some(Self::IfcProfileDef),
            Self::IfcDirection => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcDiscreteAccessory => Some(Self::IfcElementComponent),
            Self::IfcDiscreteAccessoryType => Some(Self::IfcElementComponentType),
            Self::IfcDistanceExpression => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcDistributionChamberElement => Some(Self::IfcDistributionFlowElement),
            Self::IfcDistributionChamberElementType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcDistributionCircuit => Some(Self::IfcDistributionSystem),
            Self::IfcDistributionControlElement => Some(Self::IfcDistributionElement),
            Self::IfcDistributionControlElementType => Some(Self::IfcDistributionElementType),
            Self::IfcDistributionElement => Some(Self::IfcElement),
            Self::IfcDistributionElementType => Some(Self::IfcElementType),
            Self::IfcDistributionFlowElement => Some(Self::IfcDistributionElement),
            Self::IfcDistributionFlowElementType => Some(Self::IfcDistributionElementType),
            Self::IfcDistributionPort => Some(Self::IfcPort),
            Self::IfcDistributionSystem => Some(Self::IfcSystem),
            Self::IfcDocumentInformation => Some(Self::IfcExternalInformation),
            Self::IfcDocumentInformationRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcDocumentReference => Some(Self::IfcExternalReference),
            Self::IfcDoor => Some(Self::IfcBuildingElement),
            Self::IfcDoorLiningProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcDoorPanelProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcDoorStandardCase => Some(Self::IfcDoor),
            Self::IfcDoorStyle => Some(Self::IfcTypeProduct),
            Self::IfcDoorType => Some(Self::IfcBuildingElementType),
            Self::IfcDraughtingPreDefinedColour => Some(Self::IfcPreDefinedColour),
            Self::IfcDraughtingPreDefinedCurveFont => Some(Self::IfcPreDefinedCurveFont),
            Self::IfcDuctFitting => Some(Self::IfcFlowFitting),
            Self::IfcDuctFittingType => Some(Self::IfcFlowFittingType),
            Self::IfcDuctSegment => Some(Self::IfcFlowSegment),
            Self::IfcDuctSegmentType => Some(Self::IfcFlowSegmentType),
            Self::IfcDuctSilencer => Some(Self::IfcFlowTreatmentDevice),
            Self::IfcDuctSilencerType => Some(Self::IfcFlowTreatmentDeviceType),
            Self::IfcEdge => Some(Self::IfcTopologicalRepresentationItem),
            Self::IfcEdgeCurve => Some(Self::IfcEdge),
            Self::IfcEdgeLoop => Some(Self::IfcLoop),
            Self::IfcElectricAppliance => Some(Self::IfcFlowTerminal),
            Self::IfcElectricApplianceType => Some(Self::IfcFlowTerminalType),
            Self::IfcElectricDistributionBoard => Some(Self::IfcFlowController),
            Self::IfcElectricDistributionBoardType => Some(Self::IfcFlowControllerType),
            Self::IfcElectricFlowStorageDevice => Some(Self::IfcFlowStorageDevice),
            Self::IfcElectricFlowStorageDeviceType => Some(Self::IfcFlowStorageDeviceType),
            Self::IfcElectricGenerator => Some(Self::IfcEnergyConversionDevice),
            Self::IfcElectricGeneratorType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcElectricMotor => Some(Self::IfcEnergyConversionDevice),
            Self::IfcElectricMotorType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcElectricTimeControl => Some(Self::IfcFlowController),
            Self::IfcElectricTimeControlType => Some(Self::IfcFlowControllerType),
            Self::IfcElement => Some(Self::IfcProduct),
            Self::IfcElementAssembly => Some(Self::IfcElement),
            Self::IfcElementAssemblyType => Some(Self::IfcElementType),
            Self::IfcElementComponent => Some(Self::IfcElement),
            Self::IfcElementComponentType => Some(Self::IfcElementType),
            Self::IfcElementQuantity => Some(Self::IfcQuantitySet),
            Self::IfcElementType => Some(Self::IfcTypeProduct),
            Self::IfcElementarySurface => Some(Self::IfcSurface),
            Self::IfcEllipse => Some(Self::IfcConic),
            Self::IfcEllipseProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcEnergyConversionDevice => Some(Self::IfcDistributionFlowElement),
            Self::IfcEnergyConversionDeviceType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcEngine => Some(Self::IfcEnergyConversionDevice),
            Self::IfcEngineType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcEvaporativeCooler => Some(Self::IfcEnergyConversionDevice),
            Self::IfcEvaporativeCoolerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcEvaporator => Some(Self::IfcEnergyConversionDevice),
            Self::IfcEvaporatorType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcEvent => Some(Self::IfcProcess),
            Self::IfcEventTime => Some(Self::IfcSchedulingTime),
            Self::IfcEventType => Some(Self::IfcTypeProcess),
            Self::IfcExtendedProperties => Some(Self::IfcPropertyAbstraction),
            Self::IfcExternalReferenceRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcExternalSpatialElement => Some(Self::IfcExternalSpatialStructureElement),
            Self::IfcExternalSpatialStructureElement => Some(Self::IfcSpatialElement),
            Self::IfcExternallyDefinedHatchStyle => Some(Self::IfcExternalReference),
            Self::IfcExternallyDefinedSurfaceStyle => Some(Self::IfcExternalReference),
            Self::IfcExternallyDefinedTextFont => Some(Self::IfcExternalReference),
            Self::IfcExtrudedAreaSolid => Some(Self::IfcSweptAreaSolid),
            Self::IfcExtrudedAreaSolidTapered => Some(Self::IfcExtrudedAreaSolid),
            Self::IfcFace => Some(Self::IfcTopologicalRepresentationItem),
            Self::IfcFaceBasedSurfaceModel => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcFaceBound => Some(Self::IfcTopologicalRepresentationItem),
            Self::IfcFaceOuterBound => Some(Self::IfcFaceBound),
            Self::IfcFaceSurface => Some(Self::IfcFace),
            Self::IfcFacetedBrep => Some(Self::IfcManifoldSolidBrep),
            Self::IfcFacetedBrepWithVoids => Some(Self::IfcFacetedBrep),
            Self::IfcFacility => Some(Self::IfcSpatialStructureElement),
            Self::IfcFacilityPart => Some(Self::IfcSpatialStructureElement),
            Self::IfcFailureConnectionCondition => Some(Self::IfcStructuralConnectionCondition),
            Self::IfcFan => Some(Self::IfcFlowMovingDevice),
            Self::IfcFanType => Some(Self::IfcFlowMovingDeviceType),
            Self::IfcFastener => Some(Self::IfcElementComponent),
            Self::IfcFastenerType => Some(Self::IfcElementComponentType),
            Self::IfcFeatureElement => Some(Self::IfcElement),
            Self::IfcFeatureElementAddition => Some(Self::IfcFeatureElement),
            Self::IfcFeatureElementSubtraction => Some(Self::IfcFeatureElement),
            Self::IfcFillAreaStyle => Some(Self::IfcPresentationStyle),
            Self::IfcFillAreaStyleHatching => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcFillAreaStyleTiles => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcFilter => Some(Self::IfcFlowTreatmentDevice),
            Self::IfcFilterType => Some(Self::IfcFlowTreatmentDeviceType),
            Self::IfcFireSuppressionTerminal => Some(Self::IfcFlowTerminal),
            Self::IfcFireSuppressionTerminalType => Some(Self::IfcFlowTerminalType),
            Self::IfcFixedReferenceSweptAreaSolid => Some(Self::IfcSweptAreaSolid),
            Self::IfcFlowController => Some(Self::IfcDistributionFlowElement),
            Self::IfcFlowControllerType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcFlowFitting => Some(Self::IfcDistributionFlowElement),
            Self::IfcFlowFittingType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcFlowInstrument => Some(Self::IfcDistributionControlElement),
            Self::IfcFlowInstrumentType => Some(Self::IfcDistributionControlElementType),
            Self::IfcFlowMeter => Some(Self::IfcFlowController),
            Self::IfcFlowMeterType => Some(Self::IfcFlowControllerType),
            Self::IfcFlowMovingDevice => Some(Self::IfcDistributionFlowElement),
            Self::IfcFlowMovingDeviceType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcFlowSegment => Some(Self::IfcDistributionFlowElement),
            Self::IfcFlowSegmentType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcFlowStorageDevice => Some(Self::IfcDistributionFlowElement),
            Self::IfcFlowStorageDeviceType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcFlowTerminal => Some(Self::IfcDistributionFlowElement),
            Self::IfcFlowTerminalType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcFlowTreatmentDevice => Some(Self::IfcDistributionFlowElement),
            Self::IfcFlowTreatmentDeviceType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcFooting => Some(Self::IfcBuildingElement),
            Self::IfcFootingType => Some(Self::IfcBuildingElementType),
            Self::IfcFurnishingElement => Some(Self::IfcElement),
            Self::IfcFurnishingElementType => Some(Self::IfcElementType),
            Self::IfcFurniture => Some(Self::IfcFurnishingElement),
            Self::IfcFurnitureType => Some(Self::IfcFurnishingElementType),
            Self::IfcGeographicElement => Some(Self::IfcElement),
            Self::IfcGeographicElementType => Some(Self::IfcElementType),
            Self::IfcGeometricCurveSet => Some(Self::IfcGeometricSet),
            Self::IfcGeometricRepresentationContext => Some(Self::IfcRepresentationContext),
            Self::IfcGeometricRepresentationItem => Some(Self::IfcRepresentationItem),
            Self::IfcGeometricRepresentationSubContext => Some(Self::IfcGeometricRepresentationContext),
            Self::IfcGeometricSet => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcGrid => Some(Self::IfcPositioningElement),
            Self::IfcGridPlacement => Some(Self::IfcObjectPlacement),
            Self::IfcGroup => Some(Self::IfcObject),
            Self::IfcHalfSpaceSolid => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcHeatExchanger => Some(Self::IfcEnergyConversionDevice),
            Self::IfcHeatExchangerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcHumidifier => Some(Self::IfcEnergyConversionDevice),
            Self::IfcHumidifierType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcIShapeProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcImageTexture => Some(Self::IfcSurfaceTexture),
            Self::IfcIndexedColourMap => Some(Self::IfcPresentationItem),
            Self::IfcIndexedPolyCurve => Some(Self::IfcBoundedCurve),
            Self::IfcIndexedPolygonalFace => Some(Self::IfcTessellatedItem),
            Self::IfcIndexedPolygonalFaceWithVoids => Some(Self::IfcIndexedPolygonalFace),
            Self::IfcIndexedTextureMap => Some(Self::IfcTextureCoordinate),
            Self::IfcIndexedTriangleTextureMap => Some(Self::IfcIndexedTextureMap),
            Self::IfcInterceptor => Some(Self::IfcFlowTreatmentDevice),
            Self::IfcInterceptorType => Some(Self::IfcFlowTreatmentDeviceType),
            Self::IfcIntersectionCurve => Some(Self::IfcSurfaceCurve),
            Self::IfcInventory => Some(Self::IfcGroup),
            Self::IfcIrregularTimeSeries => Some(Self::IfcTimeSeries),
            Self::IfcJunctionBox => Some(Self::IfcFlowFitting),
            Self::IfcJunctionBoxType => Some(Self::IfcFlowFittingType),
            Self::IfcLShapeProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcLaborResource => Some(Self::IfcConstructionResource),
            Self::IfcLaborResourceType => Some(Self::IfcConstructionResourceType),
            Self::IfcLagTime => Some(Self::IfcSchedulingTime),
            Self::IfcLamp => Some(Self::IfcFlowTerminal),
            Self::IfcLampType => Some(Self::IfcFlowTerminalType),
            Self::IfcLibraryInformation => Some(Self::IfcExternalInformation),
            Self::IfcLibraryReference => Some(Self::IfcExternalReference),
            Self::IfcLightFixture => Some(Self::IfcFlowTerminal),
            Self::IfcLightFixtureType => Some(Self::IfcFlowTerminalType),
            Self::IfcLightSource => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcLightSourceAmbient => Some(Self::IfcLightSource),
            Self::IfcLightSourceDirectional => Some(Self::IfcLightSource),
            Self::IfcLightSourceGoniometric => Some(Self::IfcLightSource),
            Self::IfcLightSourcePositional => Some(Self::IfcLightSource),
            Self::IfcLightSourceSpot => Some(Self::IfcLightSourcePositional),
            Self::IfcLine => Some(Self::IfcCurve),
            Self::IfcLineSegment2D => Some(Self::IfcCurveSegment2D),
            Self::IfcLinearPlacement => Some(Self::IfcObjectPlacement),
            Self::IfcLinearPositioningElement => Some(Self::IfcPositioningElement),
            Self::IfcLocalPlacement => Some(Self::IfcObjectPlacement),
            Self::IfcLoop => Some(Self::IfcTopologicalRepresentationItem),
            Self::IfcManifoldSolidBrep => Some(Self::IfcSolidModel),
            Self::IfcMapConversion => Some(Self::IfcCoordinateOperation),
            Self::IfcMappedItem => Some(Self::IfcRepresentationItem),
            Self::IfcMaterial => Some(Self::IfcMaterialDefinition),
            Self::IfcMaterialConstituent => Some(Self::IfcMaterialDefinition),
            Self::IfcMaterialConstituentSet => Some(Self::IfcMaterialDefinition),
            Self::IfcMaterialDefinitionRepresentation => Some(Self::IfcProductRepresentation),
            Self::IfcMaterialLayer => Some(Self::IfcMaterialDefinition),
            Self::IfcMaterialLayerSet => Some(Self::IfcMaterialDefinition),
            Self::IfcMaterialLayerSetUsage => Some(Self::IfcMaterialUsageDefinition),
            Self::IfcMaterialLayerWithOffsets => Some(Self::IfcMaterialLayer),
            Self::IfcMaterialProfile => Some(Self::IfcMaterialDefinition),
            Self::IfcMaterialProfileSet => Some(Self::IfcMaterialDefinition),
            Self::IfcMaterialProfileSetUsage => Some(Self::IfcMaterialUsageDefinition),
            Self::IfcMaterialProfileSetUsageTapering => Some(Self::IfcMaterialProfileSetUsage),
            Self::IfcMaterialProfileWithOffsets => Some(Self::IfcMaterialProfile),
            Self::IfcMaterialProperties => Some(Self::IfcExtendedProperties),
            Self::IfcMaterialRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcMechanicalFastener => Some(Self::IfcElementComponent),
            Self::IfcMechanicalFastenerType => Some(Self::IfcElementComponentType),
            Self::IfcMedicalDevice => Some(Self::IfcFlowTerminal),
            Self::IfcMedicalDeviceType => Some(Self::IfcFlowTerminalType),
            Self::IfcMember => Some(Self::IfcBuildingElement),
            Self::IfcMemberStandardCase => Some(Self::IfcMember),
            Self::IfcMemberType => Some(Self::IfcBuildingElementType),
            Self::IfcMetric => Some(Self::IfcConstraint),
            Self::IfcMirroredProfileDef => Some(Self::IfcDerivedProfileDef),
            Self::IfcMotorConnection => Some(Self::IfcEnergyConversionDevice),
            Self::IfcMotorConnectionType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcObject => Some(Self::IfcObjectDefinition),
            Self::IfcObjectDefinition => Some(Self::IfcRoot),
            Self::IfcObjective => Some(Self::IfcConstraint),
            Self::IfcOccupant => Some(Self::IfcActor),
            Self::IfcOffsetCurve => Some(Self::IfcCurve),
            Self::IfcOffsetCurve2D => Some(Self::IfcOffsetCurve),
            Self::IfcOffsetCurve3D => Some(Self::IfcOffsetCurve),
            Self::IfcOffsetCurveByDistances => Some(Self::IfcOffsetCurve),
            Self::IfcOpenShell => Some(Self::IfcConnectedFaceSet),
            Self::IfcOpeningElement => Some(Self::IfcFeatureElementSubtraction),
            Self::IfcOpeningStandardCase => Some(Self::IfcOpeningElement),
            Self::IfcOrganizationRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcOrientationExpression => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcOrientedEdge => Some(Self::IfcEdge),
            Self::IfcOuterBoundaryCurve => Some(Self::IfcBoundaryCurve),
            Self::IfcOutlet => Some(Self::IfcFlowTerminal),
            Self::IfcOutletType => Some(Self::IfcFlowTerminalType),
            Self::IfcParameterizedProfileDef => Some(Self::IfcProfileDef),
            Self::IfcPath => Some(Self::IfcTopologicalRepresentationItem),
            Self::IfcPcurve => Some(Self::IfcCurve),
            Self::IfcPerformanceHistory => Some(Self::IfcControl),
            Self::IfcPermeableCoveringProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcPermit => Some(Self::IfcControl),
            Self::IfcPhysicalComplexQuantity => Some(Self::IfcPhysicalQuantity),
            Self::IfcPhysicalSimpleQuantity => Some(Self::IfcPhysicalQuantity),
            Self::IfcPile => Some(Self::IfcDeepFoundation),
            Self::IfcPileType => Some(Self::IfcDeepFoundationType),
            Self::IfcPipeFitting => Some(Self::IfcFlowFitting),
            Self::IfcPipeFittingType => Some(Self::IfcFlowFittingType),
            Self::IfcPipeSegment => Some(Self::IfcFlowSegment),
            Self::IfcPipeSegmentType => Some(Self::IfcFlowSegmentType),
            Self::IfcPixelTexture => Some(Self::IfcSurfaceTexture),
            Self::IfcPlacement => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcPlanarBox => Some(Self::IfcPlanarExtent),
            Self::IfcPlanarExtent => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcPlane => Some(Self::IfcElementarySurface),
            Self::IfcPlate => Some(Self::IfcBuildingElement),
            Self::IfcPlateStandardCase => Some(Self::IfcPlate),
            Self::IfcPlateType => Some(Self::IfcBuildingElementType),
            Self::IfcPoint => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcPointOnCurve => Some(Self::IfcPoint),
            Self::IfcPointOnSurface => Some(Self::IfcPoint),
            Self::IfcPolyLoop => Some(Self::IfcLoop),
            Self::IfcPolygonalBoundedHalfSpace => Some(Self::IfcHalfSpaceSolid),
            Self::IfcPolygonalFaceSet => Some(Self::IfcTessellatedFaceSet),
            Self::IfcPolyline => Some(Self::IfcBoundedCurve),
            Self::IfcPort => Some(Self::IfcProduct),
            Self::IfcPositioningElement => Some(Self::IfcProduct),
            Self::IfcPostalAddress => Some(Self::IfcAddress),
            Self::IfcPreDefinedColour => Some(Self::IfcPreDefinedItem),
            Self::IfcPreDefinedCurveFont => Some(Self::IfcPreDefinedItem),
            Self::IfcPreDefinedItem => Some(Self::IfcPresentationItem),
            Self::IfcPreDefinedProperties => Some(Self::IfcPropertyAbstraction),
            Self::IfcPreDefinedPropertySet => Some(Self::IfcPropertySetDefinition),
            Self::IfcPreDefinedTextFont => Some(Self::IfcPreDefinedItem),
            Self::IfcPresentationLayerWithStyle => Some(Self::IfcPresentationLayerAssignment),
            Self::IfcProcedure => Some(Self::IfcProcess),
            Self::IfcProcedureType => Some(Self::IfcTypeProcess),
            Self::IfcProcess => Some(Self::IfcObject),
            Self::IfcProduct => Some(Self::IfcObject),
            Self::IfcProductDefinitionShape => Some(Self::IfcProductRepresentation),
            Self::IfcProfileProperties => Some(Self::IfcExtendedProperties),
            Self::IfcProject => Some(Self::IfcContext),
            Self::IfcProjectLibrary => Some(Self::IfcContext),
            Self::IfcProjectOrder => Some(Self::IfcControl),
            Self::IfcProjectedCRS => Some(Self::IfcCoordinateReferenceSystem),
            Self::IfcProjectionElement => Some(Self::IfcFeatureElementAddition),
            Self::IfcProperty => Some(Self::IfcPropertyAbstraction),
            Self::IfcPropertyBoundedValue => Some(Self::IfcSimpleProperty),
            Self::IfcPropertyDefinition => Some(Self::IfcRoot),
            Self::IfcPropertyDependencyRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcPropertyEnumeratedValue => Some(Self::IfcSimpleProperty),
            Self::IfcPropertyEnumeration => Some(Self::IfcPropertyAbstraction),
            Self::IfcPropertyListValue => Some(Self::IfcSimpleProperty),
            Self::IfcPropertyReferenceValue => Some(Self::IfcSimpleProperty),
            Self::IfcPropertySet => Some(Self::IfcPropertySetDefinition),
            Self::IfcPropertySetDefinition => Some(Self::IfcPropertyDefinition),
            Self::IfcPropertySetTemplate => Some(Self::IfcPropertyTemplateDefinition),
            Self::IfcPropertySingleValue => Some(Self::IfcSimpleProperty),
            Self::IfcPropertyTableValue => Some(Self::IfcSimpleProperty),
            Self::IfcPropertyTemplate => Some(Self::IfcPropertyTemplateDefinition),
            Self::IfcPropertyTemplateDefinition => Some(Self::IfcPropertyDefinition),
            Self::IfcProtectiveDevice => Some(Self::IfcFlowController),
            Self::IfcProtectiveDeviceTrippingUnit => Some(Self::IfcDistributionControlElement),
            Self::IfcProtectiveDeviceTrippingUnitType => Some(Self::IfcDistributionControlElementType),
            Self::IfcProtectiveDeviceType => Some(Self::IfcFlowControllerType),
            Self::IfcProxy => Some(Self::IfcProduct),
            Self::IfcPump => Some(Self::IfcFlowMovingDevice),
            Self::IfcPumpType => Some(Self::IfcFlowMovingDeviceType),
            Self::IfcQuantityArea => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcQuantityCount => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcQuantityLength => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcQuantitySet => Some(Self::IfcPropertySetDefinition),
            Self::IfcQuantityTime => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcQuantityVolume => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcQuantityWeight => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcRailing => Some(Self::IfcBuildingElement),
            Self::IfcRailingType => Some(Self::IfcBuildingElementType),
            Self::IfcRamp => Some(Self::IfcBuildingElement),
            Self::IfcRampFlight => Some(Self::IfcBuildingElement),
            Self::IfcRampFlightType => Some(Self::IfcBuildingElementType),
            Self::IfcRampType => Some(Self::IfcBuildingElementType),
            Self::IfcRationalBSplineCurveWithKnots => Some(Self::IfcBSplineCurveWithKnots),
            Self::IfcRationalBSplineSurfaceWithKnots => Some(Self::IfcBSplineSurfaceWithKnots),
            Self::IfcRectangleHollowProfileDef => Some(Self::IfcRectangleProfileDef),
            Self::IfcRectangleProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcRectangularPyramid => Some(Self::IfcCsgPrimitive3D),
            Self::IfcRectangularTrimmedSurface => Some(Self::IfcBoundedSurface),
            Self::IfcReferent => Some(Self::IfcPositioningElement),
            Self::IfcRegularTimeSeries => Some(Self::IfcTimeSeries),
            Self::IfcReinforcementBarProperties => Some(Self::IfcPreDefinedProperties),
            Self::IfcReinforcementDefinitionProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcReinforcingBar => Some(Self::IfcReinforcingElement),
            Self::IfcReinforcingBarType => Some(Self::IfcReinforcingElementType),
            Self::IfcReinforcingElement => Some(Self::IfcElementComponent),
            Self::IfcReinforcingElementType => Some(Self::IfcElementComponentType),
            Self::IfcReinforcingMesh => Some(Self::IfcReinforcingElement),
            Self::IfcReinforcingMeshType => Some(Self::IfcReinforcingElementType),
            Self::IfcRelAggregates => Some(Self::IfcRelDecomposes),
            Self::IfcRelAssigns => Some(Self::IfcRelationship),
            Self::IfcRelAssignsToActor => Some(Self::IfcRelAssigns),
            Self::IfcRelAssignsToControl => Some(Self::IfcRelAssigns),
            Self::IfcRelAssignsToGroup => Some(Self::IfcRelAssigns),
            Self::IfcRelAssignsToGroupByFactor => Some(Self::IfcRelAssignsToGroup),
            Self::IfcRelAssignsToProcess => Some(Self::IfcRelAssigns),
            Self::IfcRelAssignsToProduct => Some(Self::IfcRelAssigns),
            Self::IfcRelAssignsToResource => Some(Self::IfcRelAssigns),
            Self::IfcRelAssociates => Some(Self::IfcRelationship),
            Self::IfcRelAssociatesApproval => Some(Self::IfcRelAssociates),
            Self::IfcRelAssociatesClassification => Some(Self::IfcRelAssociates),
            Self::IfcRelAssociatesConstraint => Some(Self::IfcRelAssociates),
            Self::IfcRelAssociatesDocument => Some(Self::IfcRelAssociates),
            Self::IfcRelAssociatesLibrary => Some(Self::IfcRelAssociates),
            Self::IfcRelAssociatesMaterial => Some(Self::IfcRelAssociates),
            Self::IfcRelConnects => Some(Self::IfcRelationship),
            Self::IfcRelConnectsElements => Some(Self::IfcRelConnects),
            Self::IfcRelConnectsPathElements => Some(Self::IfcRelConnectsElements),
            Self::IfcRelConnectsPortToElement => Some(Self::IfcRelConnects),
            Self::IfcRelConnectsPorts => Some(Self::IfcRelConnects),
            Self::IfcRelConnectsStructuralActivity => Some(Self::IfcRelConnects),
            Self::IfcRelConnectsStructuralMember => Some(Self::IfcRelConnects),
            Self::IfcRelConnectsWithEccentricity => Some(Self::IfcRelConnectsStructuralMember),
            Self::IfcRelConnectsWithRealizingElements => Some(Self::IfcRelConnectsElements),
            Self::IfcRelContainedInSpatialStructure => Some(Self::IfcRelConnects),
            Self::IfcRelCoversBldgElements => Some(Self::IfcRelConnects),
            Self::IfcRelCoversSpaces => Some(Self::IfcRelConnects),
            Self::IfcRelDeclares => Some(Self::IfcRelationship),
            Self::IfcRelDecomposes => Some(Self::IfcRelationship),
            Self::IfcRelDefines => Some(Self::IfcRelationship),
            Self::IfcRelDefinesByObject => Some(Self::IfcRelDefines),
            Self::IfcRelDefinesByProperties => Some(Self::IfcRelDefines),
            Self::IfcRelDefinesByTemplate => Some(Self::IfcRelDefines),
            Self::IfcRelDefinesByType => Some(Self::IfcRelDefines),
            Self::IfcRelFillsElement => Some(Self::IfcRelConnects),
            Self::IfcRelFlowControlElements => Some(Self::IfcRelConnects),
            Self::IfcRelInterferesElements => Some(Self::IfcRelConnects),
            Self::IfcRelNests => Some(Self::IfcRelDecomposes),
            Self::IfcRelPositions => Some(Self::IfcRelConnects),
            Self::IfcRelProjectsElement => Some(Self::IfcRelDecomposes),
            Self::IfcRelReferencedInSpatialStructure => Some(Self::IfcRelConnects),
            Self::IfcRelSequence => Some(Self::IfcRelConnects),
            Self::IfcRelServicesBuildings => Some(Self::IfcRelConnects),
            Self::IfcRelSpaceBoundary => Some(Self::IfcRelConnects),
            Self::IfcRelSpaceBoundary1stLevel => Some(Self::IfcRelSpaceBoundary),
            Self::IfcRelSpaceBoundary2ndLevel => Some(Self::IfcRelSpaceBoundary1stLevel),
            Self::IfcRelVoidsElement => Some(Self::IfcRelDecomposes),
            Self::IfcRelationship => Some(Self::IfcRoot),
            Self::IfcReparametrisedCompositeCurveSegment => Some(Self::IfcCompositeCurveSegment),
            Self::IfcResource => Some(Self::IfcObject),
            Self::IfcResourceApprovalRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcResourceConstraintRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcResourceTime => Some(Self::IfcSchedulingTime),
            Self::IfcRevolvedAreaSolid => Some(Self::IfcSweptAreaSolid),
            Self::IfcRevolvedAreaSolidTapered => Some(Self::IfcRevolvedAreaSolid),
            Self::IfcRightCircularCone => Some(Self::IfcCsgPrimitive3D),
            Self::IfcRightCircularCylinder => Some(Self::IfcCsgPrimitive3D),
            Self::IfcRoof => Some(Self::IfcBuildingElement),
            Self::IfcRoofType => Some(Self::IfcBuildingElementType),
            Self::IfcRoundedRectangleProfileDef => Some(Self::IfcRectangleProfileDef),
            Self::IfcSIUnit => Some(Self::IfcNamedUnit),
            Self::IfcSanitaryTerminal => Some(Self::IfcFlowTerminal),
            Self::IfcSanitaryTerminalType => Some(Self::IfcFlowTerminalType),
            Self::IfcSeamCurve => Some(Self::IfcSurfaceCurve),
            Self::IfcSectionProperties => Some(Self::IfcPreDefinedProperties),
            Self::IfcSectionReinforcementProperties => Some(Self::IfcPreDefinedProperties),
            Self::IfcSectionedSolid => Some(Self::IfcSolidModel),
            Self::IfcSectionedSolidHorizontal => Some(Self::IfcSectionedSolid),
            Self::IfcSectionedSpine => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcSensor => Some(Self::IfcDistributionControlElement),
            Self::IfcSensorType => Some(Self::IfcDistributionControlElementType),
            Self::IfcShadingDevice => Some(Self::IfcBuildingElement),
            Self::IfcShadingDeviceType => Some(Self::IfcBuildingElementType),
            Self::IfcShapeModel => Some(Self::IfcRepresentation),
            Self::IfcShapeRepresentation => Some(Self::IfcShapeModel),
            Self::IfcShellBasedSurfaceModel => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcSimpleProperty => Some(Self::IfcProperty),
            Self::IfcSimplePropertyTemplate => Some(Self::IfcPropertyTemplate),
            Self::IfcSite => Some(Self::IfcSpatialStructureElement),
            Self::IfcSlab => Some(Self::IfcBuildingElement),
            Self::IfcSlabElementedCase => Some(Self::IfcSlab),
            Self::IfcSlabStandardCase => Some(Self::IfcSlab),
            Self::IfcSlabType => Some(Self::IfcBuildingElementType),
            Self::IfcSlippageConnectionCondition => Some(Self::IfcStructuralConnectionCondition),
            Self::IfcSolarDevice => Some(Self::IfcEnergyConversionDevice),
            Self::IfcSolarDeviceType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcSolidModel => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcSpace => Some(Self::IfcSpatialStructureElement),
            Self::IfcSpaceHeater => Some(Self::IfcFlowTerminal),
            Self::IfcSpaceHeaterType => Some(Self::IfcFlowTerminalType),
            Self::IfcSpaceType => Some(Self::IfcSpatialStructureElementType),
            Self::IfcSpatialElement => Some(Self::IfcProduct),
            Self::IfcSpatialElementType => Some(Self::IfcTypeProduct),
            Self::IfcSpatialStructureElement => Some(Self::IfcSpatialElement),
            Self::IfcSpatialStructureElementType => Some(Self::IfcSpatialElementType),
            Self::IfcSpatialZone => Some(Self::IfcSpatialElement),
            Self::IfcSpatialZoneType => Some(Self::IfcSpatialElementType),
            Self::IfcSphere => Some(Self::IfcCsgPrimitive3D),
            Self::IfcSphericalSurface => Some(Self::IfcElementarySurface),
            Self::IfcStackTerminal => Some(Self::IfcFlowTerminal),
            Self::IfcStackTerminalType => Some(Self::IfcFlowTerminalType),
            Self::IfcStair => Some(Self::IfcBuildingElement),
            Self::IfcStairFlight => Some(Self::IfcBuildingElement),
            Self::IfcStairFlightType => Some(Self::IfcBuildingElementType),
            Self::IfcStairType => Some(Self::IfcBuildingElementType),
            Self::IfcStructuralAction => Some(Self::IfcStructuralActivity),
            Self::IfcStructuralActivity => Some(Self::IfcProduct),
            Self::IfcStructuralAnalysisModel => Some(Self::IfcSystem),
            Self::IfcStructuralConnection => Some(Self::IfcStructuralItem),
            Self::IfcStructuralCurveAction => Some(Self::IfcStructuralAction),
            Self::IfcStructuralCurveConnection => Some(Self::IfcStructuralConnection),
            Self::IfcStructuralCurveMember => Some(Self::IfcStructuralMember),
            Self::IfcStructuralCurveMemberVarying => Some(Self::IfcStructuralCurveMember),
            Self::IfcStructuralCurveReaction => Some(Self::IfcStructuralReaction),
            Self::IfcStructuralItem => Some(Self::IfcProduct),
            Self::IfcStructuralLinearAction => Some(Self::IfcStructuralCurveAction),
            Self::IfcStructuralLoadCase => Some(Self::IfcStructuralLoadGroup),
            Self::IfcStructuralLoadConfiguration => Some(Self::IfcStructuralLoad),
            Self::IfcStructuralLoadGroup => Some(Self::IfcGroup),
            Self::IfcStructuralLoadLinearForce => Some(Self::IfcStructuralLoadStatic),
            Self::IfcStructuralLoadOrResult => Some(Self::IfcStructuralLoad),
            Self::IfcStructuralLoadPlanarForce => Some(Self::IfcStructuralLoadStatic),
            Self::IfcStructuralLoadSingleDisplacement => Some(Self::IfcStructuralLoadStatic),
            Self::IfcStructuralLoadSingleDisplacementDistortion => Some(Self::IfcStructuralLoadSingleDisplacement),
            Self::IfcStructuralLoadSingleForce => Some(Self::IfcStructuralLoadStatic),
            Self::IfcStructuralLoadSingleForceWarping => Some(Self::IfcStructuralLoadSingleForce),
            Self::IfcStructuralLoadStatic => Some(Self::IfcStructuralLoadOrResult),
            Self::IfcStructuralLoadTemperature => Some(Self::IfcStructuralLoadStatic),
            Self::IfcStructuralMember => Some(Self::IfcStructuralItem),
            Self::IfcStructuralPlanarAction => Some(Self::IfcStructuralSurfaceAction),
            Self::IfcStructuralPointAction => Some(Self::IfcStructuralAction),
            Self::IfcStructuralPointConnection => Some(Self::IfcStructuralConnection),
            Self::IfcStructuralPointReaction => Some(Self::IfcStructuralReaction),
            Self::IfcStructuralReaction => Some(Self::IfcStructuralActivity),
            Self::IfcStructuralResultGroup => Some(Self::IfcGroup),
            Self::IfcStructuralSurfaceAction => Some(Self::IfcStructuralAction),
            Self::IfcStructuralSurfaceConnection => Some(Self::IfcStructuralConnection),
            Self::IfcStructuralSurfaceMember => Some(Self::IfcStructuralMember),
            Self::IfcStructuralSurfaceMemberVarying => Some(Self::IfcStructuralSurfaceMember),
            Self::IfcStructuralSurfaceReaction => Some(Self::IfcStructuralReaction),
            Self::IfcStyleModel => Some(Self::IfcRepresentation),
            Self::IfcStyledItem => Some(Self::IfcRepresentationItem),
            Self::IfcStyledRepresentation => Some(Self::IfcStyleModel),
            Self::IfcSubContractResource => Some(Self::IfcConstructionResource),
            Self::IfcSubContractResourceType => Some(Self::IfcConstructionResourceType),
            Self::IfcSubedge => Some(Self::IfcEdge),
            Self::IfcSurface => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcSurfaceCurve => Some(Self::IfcCurve),
            Self::IfcSurfaceCurveSweptAreaSolid => Some(Self::IfcSweptAreaSolid),
            Self::IfcSurfaceFeature => Some(Self::IfcFeatureElement),
            Self::IfcSurfaceOfLinearExtrusion => Some(Self::IfcSweptSurface),
            Self::IfcSurfaceOfRevolution => Some(Self::IfcSweptSurface),
            Self::IfcSurfaceReinforcementArea => Some(Self::IfcStructuralLoadOrResult),
            Self::IfcSurfaceStyle => Some(Self::IfcPresentationStyle),
            Self::IfcSurfaceStyleLighting => Some(Self::IfcPresentationItem),
            Self::IfcSurfaceStyleRefraction => Some(Self::IfcPresentationItem),
            Self::IfcSurfaceStyleRendering => Some(Self::IfcSurfaceStyleShading),
            Self::IfcSurfaceStyleShading => Some(Self::IfcPresentationItem),
            Self::IfcSurfaceStyleWithTextures => Some(Self::IfcPresentationItem),
            Self::IfcSurfaceTexture => Some(Self::IfcPresentationItem),
            Self::IfcSweptAreaSolid => Some(Self::IfcSolidModel),
            Self::IfcSweptDiskSolid => Some(Self::IfcSolidModel),
            Self::IfcSweptDiskSolidPolygonal => Some(Self::IfcSweptDiskSolid),
            Self::IfcSweptSurface => Some(Self::IfcSurface),
            Self::IfcSwitchingDevice => Some(Self::IfcFlowController),
            Self::IfcSwitchingDeviceType => Some(Self::IfcFlowControllerType),
            Self::IfcSystem => Some(Self::IfcGroup),
            Self::IfcSystemFurnitureElement => Some(Self::IfcFurnishingElement),
            Self::IfcSystemFurnitureElementType => Some(Self::IfcFurnishingElementType),
            Self::IfcTShapeProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcTank => Some(Self::IfcFlowStorageDevice),
            Self::IfcTankType => Some(Self::IfcFlowStorageDeviceType),
            Self::IfcTask => Some(Self::IfcProcess),
            Self::IfcTaskTime => Some(Self::IfcSchedulingTime),
            Self::IfcTaskTimeRecurring => Some(Self::IfcTaskTime),
            Self::IfcTaskType => Some(Self::IfcTypeProcess),
            Self::IfcTelecomAddress => Some(Self::IfcAddress),
            Self::IfcTendon => Some(Self::IfcReinforcingElement),
            Self::IfcTendonAnchor => Some(Self::IfcReinforcingElement),
            Self::IfcTendonAnchorType => Some(Self::IfcReinforcingElementType),
            Self::IfcTendonConduit => Some(Self::IfcReinforcingElement),
            Self::IfcTendonConduitType => Some(Self::IfcReinforcingElementType),
            Self::IfcTendonType => Some(Self::IfcReinforcingElementType),
            Self::IfcTessellatedFaceSet => Some(Self::IfcTessellatedItem),
            Self::IfcTessellatedItem => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcTextLiteral => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcTextLiteralWithExtent => Some(Self::IfcTextLiteral),
            Self::IfcTextStyle => Some(Self::IfcPresentationStyle),
            Self::IfcTextStyleFontModel => Some(Self::IfcPreDefinedTextFont),
            Self::IfcTextStyleForDefinedFont => Some(Self::IfcPresentationItem),
            Self::IfcTextStyleTextModel => Some(Self::IfcPresentationItem),
            Self::IfcTextureCoordinate => Some(Self::IfcPresentationItem),
            Self::IfcTextureCoordinateGenerator => Some(Self::IfcTextureCoordinate),
            Self::IfcTextureMap => Some(Self::IfcTextureCoordinate),
            Self::IfcTextureVertex => Some(Self::IfcPresentationItem),
            Self::IfcTextureVertexList => Some(Self::IfcPresentationItem),
            Self::IfcTopologicalRepresentationItem => Some(Self::IfcRepresentationItem),
            Self::IfcTopologyRepresentation => Some(Self::IfcShapeModel),
            Self::IfcToroidalSurface => Some(Self::IfcElementarySurface),
            Self::IfcTransformer => Some(Self::IfcEnergyConversionDevice),
            Self::IfcTransformerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcTransitionCurveSegment2D => Some(Self::IfcCurveSegment2D),
            Self::IfcTransportElement => Some(Self::IfcElement),
            Self::IfcTransportElementType => Some(Self::IfcElementType),
            Self::IfcTrapeziumProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcTriangulatedFaceSet => Some(Self::IfcTessellatedFaceSet),
            Self::IfcTriangulatedIrregularNetwork => Some(Self::IfcTriangulatedFaceSet),
            Self::IfcTrimmedCurve => Some(Self::IfcBoundedCurve),
            Self::IfcTubeBundle => Some(Self::IfcEnergyConversionDevice),
            Self::IfcTubeBundleType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcTypeObject => Some(Self::IfcObjectDefinition),
            Self::IfcTypeProcess => Some(Self::IfcTypeObject),
            Self::IfcTypeProduct => Some(Self::IfcTypeObject),
            Self::IfcTypeResource => Some(Self::IfcTypeObject),
            Self::IfcUShapeProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcUnitaryControlElement => Some(Self::IfcDistributionControlElement),
            Self::IfcUnitaryControlElementType => Some(Self::IfcDistributionControlElementType),
            Self::IfcUnitaryEquipment => Some(Self::IfcEnergyConversionDevice),
            Self::IfcUnitaryEquipmentType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcValve => Some(Self::IfcFlowController),
            Self::IfcValveType => Some(Self::IfcFlowControllerType),
            Self::IfcVector => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcVertex => Some(Self::IfcTopologicalRepresentationItem),
            Self::IfcVertexLoop => Some(Self::IfcLoop),
            Self::IfcVertexPoint => Some(Self::IfcVertex),
            Self::IfcVibrationDamper => Some(Self::IfcElementComponent),
            Self::IfcVibrationDamperType => Some(Self::IfcElementComponentType),
            Self::IfcVibrationIsolator => Some(Self::IfcElementComponent),
            Self::IfcVibrationIsolatorType => Some(Self::IfcElementComponentType),
            Self::IfcVirtualElement => Some(Self::IfcElement),
            Self::IfcVoidingFeature => Some(Self::IfcFeatureElementSubtraction),
            Self::IfcWall => Some(Self::IfcBuildingElement),
            Self::IfcWallElementedCase => Some(Self::IfcWall),
            Self::IfcWallStandardCase => Some(Self::IfcWall),
            Self::IfcWallType => Some(Self::IfcBuildingElementType),
            Self::IfcWasteTerminal => Some(Self::IfcFlowTerminal),
            Self::IfcWasteTerminalType => Some(Self::IfcFlowTerminalType),
            Self::IfcWindow => Some(Self::IfcBuildingElement),
            Self::IfcWindowLiningProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcWindowPanelProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcWindowStandardCase => Some(Self::IfcWindow),
            Self::IfcWindowStyle => Some(Self::IfcTypeProduct),
            Self::IfcWindowType => Some(Self::IfcBuildingElementType),
            Self::IfcWorkCalendar => Some(Self::IfcControl),
            Self::IfcWorkControl => Some(Self::IfcControl),
            Self::IfcWorkPlan => Some(Self::IfcWorkControl),
            Self::IfcWorkSchedule => Some(Self::IfcWorkControl),
            Self::IfcWorkTime => Some(Self::IfcSchedulingTime),
            Self::IfcZShapeProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcZone => Some(Self::IfcSystem),
            _ => None,
        }
    }

    /// Check if this type is a subtype of another
    pub fn is_subtype_of(&self, parent: Self) -> bool {
        let mut current = Some(self.clone());
        while let Some(t) = current {
            if t == parent {
                return true;
            }
            current = t.parent();
        }
        false
    }

    /// Check if this is an abstract type
    #[allow(clippy::match_like_matches_macro)]
    pub fn is_abstract(&self) -> bool {
        match self {
            Self::IfcAddress => true,
            Self::IfcAlignment2DSegment => true,
            Self::IfcAlignment2DVerticalSegment => true,
            Self::IfcBSplineCurve => true,
            Self::IfcBSplineSurface => true,
            Self::IfcBoundaryCondition => true,
            Self::IfcBoundedCurve => true,
            Self::IfcBoundedSurface => true,
            Self::IfcBuildingElement => true,
            Self::IfcBuildingElementType => true,
            Self::IfcCartesianPointList => true,
            Self::IfcCartesianTransformationOperator => true,
            Self::IfcColourSpecification => true,
            Self::IfcConic => true,
            Self::IfcConnectionGeometry => true,
            Self::IfcConstraint => true,
            Self::IfcConstructionResource => true,
            Self::IfcConstructionResourceType => true,
            Self::IfcContext => true,
            Self::IfcControl => true,
            Self::IfcCoordinateOperation => true,
            Self::IfcCoordinateReferenceSystem => true,
            Self::IfcCsgPrimitive3D => true,
            Self::IfcCurve => true,
            Self::IfcCurveSegment2D => true,
            Self::IfcDistributionControlElementType => true,
            Self::IfcDistributionFlowElementType => true,
            Self::IfcElement => true,
            Self::IfcElementComponent => true,
            Self::IfcElementComponentType => true,
            Self::IfcElementType => true,
            Self::IfcElementarySurface => true,
            Self::IfcEnergyConversionDeviceType => true,
            Self::IfcExtendedProperties => true,
            Self::IfcExternalInformation => true,
            Self::IfcExternalReference => true,
            Self::IfcExternalSpatialStructureElement => true,
            Self::IfcFeatureElement => true,
            Self::IfcFeatureElementAddition => true,
            Self::IfcFeatureElementSubtraction => true,
            Self::IfcFlowControllerType => true,
            Self::IfcFlowFittingType => true,
            Self::IfcFlowMovingDeviceType => true,
            Self::IfcFlowSegmentType => true,
            Self::IfcFlowStorageDeviceType => true,
            Self::IfcFlowTerminalType => true,
            Self::IfcFlowTreatmentDeviceType => true,
            Self::IfcGeometricRepresentationItem => true,
            Self::IfcIndexedTextureMap => true,
            Self::IfcLightSource => true,
            Self::IfcManifoldSolidBrep => true,
            Self::IfcMaterialDefinition => true,
            Self::IfcMaterialUsageDefinition => true,
            Self::IfcNamedUnit => true,
            Self::IfcObject => true,
            Self::IfcObjectDefinition => true,
            Self::IfcObjectPlacement => true,
            Self::IfcOffsetCurve => true,
            Self::IfcParameterizedProfileDef => true,
            Self::IfcPhysicalQuantity => true,
            Self::IfcPhysicalSimpleQuantity => true,
            Self::IfcPlacement => true,
            Self::IfcPoint => true,
            Self::IfcPort => true,
            Self::IfcPositioningElement => true,
            Self::IfcPreDefinedColour => true,
            Self::IfcPreDefinedCurveFont => true,
            Self::IfcPreDefinedItem => true,
            Self::IfcPreDefinedProperties => true,
            Self::IfcPreDefinedPropertySet => true,
            Self::IfcPreDefinedTextFont => true,
            Self::IfcPresentationItem => true,
            Self::IfcPresentationStyle => true,
            Self::IfcProcess => true,
            Self::IfcProduct => true,
            Self::IfcProductRepresentation => true,
            Self::IfcProperty => true,
            Self::IfcPropertyAbstraction => true,
            Self::IfcPropertyDefinition => true,
            Self::IfcPropertySetDefinition => true,
            Self::IfcPropertyTemplate => true,
            Self::IfcPropertyTemplateDefinition => true,
            Self::IfcQuantitySet => true,
            Self::IfcReinforcingElement => true,
            Self::IfcReinforcingElementType => true,
            Self::IfcRelAssigns => true,
            Self::IfcRelAssociates => true,
            Self::IfcRelConnects => true,
            Self::IfcRelDecomposes => true,
            Self::IfcRelDefines => true,
            Self::IfcRelationship => true,
            Self::IfcRepresentation => true,
            Self::IfcRepresentationContext => true,
            Self::IfcRepresentationItem => true,
            Self::IfcResource => true,
            Self::IfcResourceLevelRelationship => true,
            Self::IfcRoot => true,
            Self::IfcSchedulingTime => true,
            Self::IfcSectionedSolid => true,
            Self::IfcShapeModel => true,
            Self::IfcSimpleProperty => true,
            Self::IfcSolidModel => true,
            Self::IfcSpatialElement => true,
            Self::IfcSpatialElementType => true,
            Self::IfcSpatialStructureElement => true,
            Self::IfcSpatialStructureElementType => true,
            Self::IfcStructuralAction => true,
            Self::IfcStructuralActivity => true,
            Self::IfcStructuralConnection => true,
            Self::IfcStructuralConnectionCondition => true,
            Self::IfcStructuralItem => true,
            Self::IfcStructuralLoad => true,
            Self::IfcStructuralLoadOrResult => true,
            Self::IfcStructuralLoadStatic => true,
            Self::IfcStructuralMember => true,
            Self::IfcStructuralReaction => true,
            Self::IfcStyleModel => true,
            Self::IfcSurface => true,
            Self::IfcSurfaceTexture => true,
            Self::IfcSweptAreaSolid => true,
            Self::IfcSweptSurface => true,
            Self::IfcTessellatedFaceSet => true,
            Self::IfcTessellatedItem => true,
            Self::IfcTextureCoordinate => true,
            Self::IfcTimeSeries => true,
            Self::IfcTopologicalRepresentationItem => true,
            Self::IfcTypeProcess => true,
            Self::IfcTypeResource => true,
            Self::IfcWorkControl => true,
            _ => false,
        }
    }

    /// This entity's attributes, in STEP declaration order.
    ///
    /// Supertype attributes come FIRST, which is what makes the position here
    /// the same position DecodedEntity::get indexes. An entity's own
    /// attribute list alone would be wrong about every index on every subtype.
    ///
    /// These names are this schema's (IFC4X2). An entity whose
    /// attribute list grew between IFC releases has a different length, and
    /// therefore possibly different indices, in a file that declares an older
    /// schema. Check the file's FILE_SCHEMA before treating an index from here
    /// as authoritative for it.
    pub fn attribute_names(&self) -> &'static [&'static str] {
        match self {
            Self::IfcActionRequest => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "PredefinedType", "Status", "LongDescription"],
            Self::IfcActor => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "TheActor"],
            Self::IfcActorRole => &["Role", "UserDefinedRole", "Description"],
            Self::IfcActuator => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcActuatorType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcAddress => &["Purpose", "Description", "UserDefinedPurpose"],
            Self::IfcAdvancedBrep => &["Outer"],
            Self::IfcAdvancedBrepWithVoids => &["Outer", "Voids"],
            Self::IfcAdvancedFace => &["Bounds", "FaceSurface", "SameSense"],
            Self::IfcAirTerminal => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcAirTerminalBox => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcAirTerminalBoxType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcAirTerminalType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcAirToAirHeatRecovery => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcAirToAirHeatRecoveryType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcAlarm => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcAlarmType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcAlignment => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Axis", "PredefinedType"],
            Self::IfcAlignment2DHorizontal => &["StartDistAlong", "Segments"],
            Self::IfcAlignment2DHorizontalSegment => &["TangentialContinuity", "StartTag", "EndTag", "CurveGeometry"],
            Self::IfcAlignment2DSegment => &["TangentialContinuity", "StartTag", "EndTag"],
            Self::IfcAlignment2DVerSegCircularArc => &["TangentialContinuity", "StartTag", "EndTag", "StartDistAlong", "HorizontalLength", "StartHeight", "StartGradient", "Radius", "IsConvex"],
            Self::IfcAlignment2DVerSegLine => &["TangentialContinuity", "StartTag", "EndTag", "StartDistAlong", "HorizontalLength", "StartHeight", "StartGradient"],
            Self::IfcAlignment2DVerSegParabolicArc => &["TangentialContinuity", "StartTag", "EndTag", "StartDistAlong", "HorizontalLength", "StartHeight", "StartGradient", "ParabolaConstant", "IsConvex"],
            Self::IfcAlignment2DVertical => &["Segments"],
            Self::IfcAlignment2DVerticalSegment => &["TangentialContinuity", "StartTag", "EndTag", "StartDistAlong", "HorizontalLength", "StartHeight", "StartGradient"],
            Self::IfcAlignmentCurve => &["Horizontal", "Vertical", "Tag"],
            Self::IfcAnnotation => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation"],
            Self::IfcAnnotationFillArea => &["OuterBoundary", "InnerBoundaries"],
            Self::IfcApplication => &["ApplicationDeveloper", "Version", "ApplicationFullName", "ApplicationIdentifier"],
            Self::IfcAppliedValue => &["Name", "Description", "AppliedValue", "UnitBasis", "ApplicableDate", "FixedUntilDate", "Category", "Condition", "ArithmeticOperator", "Components"],
            Self::IfcApproval => &["Identifier", "Name", "Description", "TimeOfApproval", "Status", "Level", "Qualifier", "RequestingApproval", "GivingApproval"],
            Self::IfcApprovalRelationship => &["Name", "Description", "RelatingApproval", "RelatedApprovals"],
            Self::IfcArbitraryClosedProfileDef => &["ProfileType", "ProfileName", "OuterCurve"],
            Self::IfcArbitraryOpenProfileDef => &["ProfileType", "ProfileName", "Curve"],
            Self::IfcArbitraryProfileDefWithVoids => &["ProfileType", "ProfileName", "OuterCurve", "InnerCurves"],
            Self::IfcAsset => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "OriginalValue", "CurrentValue", "TotalReplacementCost", "Owner", "User", "ResponsiblePerson", "IncorporationDate", "DepreciatedValue"],
            Self::IfcAsymmetricIShapeProfileDef => &["ProfileType", "ProfileName", "Position", "BottomFlangeWidth", "OverallDepth", "WebThickness", "BottomFlangeThickness", "BottomFlangeFilletRadius", "TopFlangeWidth", "TopFlangeThickness", "TopFlangeFilletRadius", "BottomFlangeEdgeRadius", "BottomFlangeSlope", "TopFlangeEdgeRadius", "TopFlangeSlope"],
            Self::IfcAudioVisualAppliance => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcAudioVisualApplianceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcAxis1Placement => &["Location", "Axis"],
            Self::IfcAxis2Placement2D => &["Location", "RefDirection"],
            Self::IfcAxis2Placement3D => &["Location", "Axis", "RefDirection"],
            Self::IfcBSplineCurve => &["Degree", "ControlPointsList", "CurveForm", "ClosedCurve", "SelfIntersect"],
            Self::IfcBSplineCurveWithKnots => &["Degree", "ControlPointsList", "CurveForm", "ClosedCurve", "SelfIntersect", "KnotMultiplicities", "Knots", "KnotSpec"],
            Self::IfcBSplineSurface => &["UDegree", "VDegree", "ControlPointsList", "SurfaceForm", "UClosed", "VClosed", "SelfIntersect"],
            Self::IfcBSplineSurfaceWithKnots => &["UDegree", "VDegree", "ControlPointsList", "SurfaceForm", "UClosed", "VClosed", "SelfIntersect", "UMultiplicities", "VMultiplicities", "UKnots", "VKnots", "KnotSpec"],
            Self::IfcBeam => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcBeamStandardCase => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcBeamType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcBearing => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcBearingType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcBlobTexture => &["RepeatS", "RepeatT", "Mode", "TextureTransform", "Parameter", "RasterFormat", "RasterCode"],
            Self::IfcBlock => &["Position", "XLength", "YLength", "ZLength"],
            Self::IfcBoiler => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcBoilerType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcBooleanClippingResult => &["Operator", "FirstOperand", "SecondOperand"],
            Self::IfcBooleanResult => &["Operator", "FirstOperand", "SecondOperand"],
            Self::IfcBoundaryCondition => &["Name"],
            Self::IfcBoundaryCurve => &["Segments", "SelfIntersect"],
            Self::IfcBoundaryEdgeCondition => &["Name", "TranslationalStiffnessByLengthX", "TranslationalStiffnessByLengthY", "TranslationalStiffnessByLengthZ", "RotationalStiffnessByLengthX", "RotationalStiffnessByLengthY", "RotationalStiffnessByLengthZ"],
            Self::IfcBoundaryFaceCondition => &["Name", "TranslationalStiffnessByAreaX", "TranslationalStiffnessByAreaY", "TranslationalStiffnessByAreaZ"],
            Self::IfcBoundaryNodeCondition => &["Name", "TranslationalStiffnessX", "TranslationalStiffnessY", "TranslationalStiffnessZ", "RotationalStiffnessX", "RotationalStiffnessY", "RotationalStiffnessZ"],
            Self::IfcBoundaryNodeConditionWarping => &["Name", "TranslationalStiffnessX", "TranslationalStiffnessY", "TranslationalStiffnessZ", "RotationalStiffnessX", "RotationalStiffnessY", "RotationalStiffnessZ", "WarpingStiffness"],
            Self::IfcBoundedCurve => &[],
            Self::IfcBoundedSurface => &[],
            Self::IfcBoundingBox => &["Corner", "XDim", "YDim", "ZDim"],
            Self::IfcBoxedHalfSpace => &["BaseSurface", "AgreementFlag", "Enclosure"],
            Self::IfcBridge => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "PredefinedType"],
            Self::IfcBridgePart => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "PredefinedType"],
            Self::IfcBuilding => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "ElevationOfRefHeight", "ElevationOfTerrain", "BuildingAddress"],
            Self::IfcBuildingElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcBuildingElementPart => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcBuildingElementPartType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcBuildingElementProxy => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcBuildingElementProxyType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcBuildingElementType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcBuildingStorey => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "Elevation"],
            Self::IfcBuildingSystem => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "LongName"],
            Self::IfcBurner => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcBurnerType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcCShapeProfileDef => &["ProfileType", "ProfileName", "Position", "Depth", "Width", "WallThickness", "Girth", "InternalFilletRadius"],
            Self::IfcCableCarrierFitting => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcCableCarrierFittingType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcCableCarrierSegment => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcCableCarrierSegmentType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcCableFitting => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcCableFittingType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcCableSegment => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcCableSegmentType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcCaissonFoundation => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcCaissonFoundationType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcCartesianPoint => &["Coordinates"],
            Self::IfcCartesianPointList => &[],
            Self::IfcCartesianPointList2D => &["CoordList", "TagList"],
            Self::IfcCartesianPointList3D => &["CoordList", "TagList"],
            Self::IfcCartesianTransformationOperator => &["Axis1", "Axis2", "LocalOrigin", "Scale"],
            Self::IfcCartesianTransformationOperator2D => &["Axis1", "Axis2", "LocalOrigin", "Scale"],
            Self::IfcCartesianTransformationOperator2DnonUniform => &["Axis1", "Axis2", "LocalOrigin", "Scale", "Scale2"],
            Self::IfcCartesianTransformationOperator3D => &["Axis1", "Axis2", "LocalOrigin", "Scale", "Axis3"],
            Self::IfcCartesianTransformationOperator3DnonUniform => &["Axis1", "Axis2", "LocalOrigin", "Scale", "Axis3", "Scale2", "Scale3"],
            Self::IfcCenterLineProfileDef => &["ProfileType", "ProfileName", "Curve", "Thickness"],
            Self::IfcChiller => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcChillerType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcChimney => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcChimneyType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcCircle => &["Position", "Radius"],
            Self::IfcCircleHollowProfileDef => &["ProfileType", "ProfileName", "Position", "Radius", "WallThickness"],
            Self::IfcCircleProfileDef => &["ProfileType", "ProfileName", "Position", "Radius"],
            Self::IfcCircularArcSegment2D => &["StartPoint", "StartDirection", "SegmentLength", "Radius", "IsCCW"],
            Self::IfcCivilElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcCivilElementType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcClassification => &["Source", "Edition", "EditionDate", "Name", "Description", "Location", "ReferenceTokens"],
            Self::IfcClassificationReference => &["Location", "Identification", "Name", "ReferencedSource", "Description", "Sort"],
            Self::IfcClosedShell => &["CfsFaces"],
            Self::IfcCoil => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcCoilType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcColourRgb => &["Name", "Red", "Green", "Blue"],
            Self::IfcColourRgbList => &["ColourList"],
            Self::IfcColourSpecification => &["Name"],
            Self::IfcColumn => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcColumnStandardCase => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcColumnType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcCommunicationsAppliance => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcCommunicationsApplianceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcComplexProperty => &["Name", "Description", "UsageName", "HasProperties"],
            Self::IfcComplexPropertyTemplate => &["GlobalId", "OwnerHistory", "Name", "Description", "UsageName", "TemplateType", "HasPropertyTemplates"],
            Self::IfcCompositeCurve => &["Segments", "SelfIntersect"],
            Self::IfcCompositeCurveOnSurface => &["Segments", "SelfIntersect"],
            Self::IfcCompositeCurveSegment => &["Transition", "SameSense", "ParentCurve"],
            Self::IfcCompositeProfileDef => &["ProfileType", "ProfileName", "Profiles", "Label"],
            Self::IfcCompressor => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcCompressorType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcCondenser => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcCondenserType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcConic => &["Position"],
            Self::IfcConnectedFaceSet => &["CfsFaces"],
            Self::IfcConnectionCurveGeometry => &["CurveOnRelatingElement", "CurveOnRelatedElement"],
            Self::IfcConnectionGeometry => &[],
            Self::IfcConnectionPointEccentricity => &["PointOnRelatingElement", "PointOnRelatedElement", "EccentricityInX", "EccentricityInY", "EccentricityInZ"],
            Self::IfcConnectionPointGeometry => &["PointOnRelatingElement", "PointOnRelatedElement"],
            Self::IfcConnectionSurfaceGeometry => &["SurfaceOnRelatingElement", "SurfaceOnRelatedElement"],
            Self::IfcConnectionVolumeGeometry => &["VolumeOnRelatingElement", "VolumeOnRelatedElement"],
            Self::IfcConstraint => &["Name", "Description", "ConstraintGrade", "ConstraintSource", "CreatingActor", "CreationTime", "UserDefinedGrade"],
            Self::IfcConstructionEquipmentResource => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType"],
            Self::IfcConstructionEquipmentResourceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType"],
            Self::IfcConstructionMaterialResource => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType"],
            Self::IfcConstructionMaterialResourceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType"],
            Self::IfcConstructionProductResource => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType"],
            Self::IfcConstructionProductResourceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType"],
            Self::IfcConstructionResource => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity"],
            Self::IfcConstructionResourceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity"],
            Self::IfcContext => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "Phase", "RepresentationContexts", "UnitsInContext"],
            Self::IfcContextDependentUnit => &["Dimensions", "UnitType", "Name"],
            Self::IfcControl => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification"],
            Self::IfcController => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcControllerType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcConversionBasedUnit => &["Dimensions", "UnitType", "Name", "ConversionFactor"],
            Self::IfcConversionBasedUnitWithOffset => &["Dimensions", "UnitType", "Name", "ConversionFactor", "ConversionOffset"],
            Self::IfcCooledBeam => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcCooledBeamType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcCoolingTower => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcCoolingTowerType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcCoordinateOperation => &["SourceCRS", "TargetCRS"],
            Self::IfcCoordinateReferenceSystem => &["Name", "Description", "GeodeticDatum", "VerticalDatum"],
            Self::IfcCostItem => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "PredefinedType", "CostValues", "CostQuantities"],
            Self::IfcCostSchedule => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "PredefinedType", "Status", "SubmittedOn", "UpdateDate"],
            Self::IfcCostValue => &["Name", "Description", "AppliedValue", "UnitBasis", "ApplicableDate", "FixedUntilDate", "Category", "Condition", "ArithmeticOperator", "Components"],
            Self::IfcCovering => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcCoveringType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcCrewResource => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType"],
            Self::IfcCrewResourceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType"],
            Self::IfcCsgPrimitive3D => &["Position"],
            Self::IfcCsgSolid => &["TreeRootExpression"],
            Self::IfcCurrencyRelationship => &["Name", "Description", "RelatingMonetaryUnit", "RelatedMonetaryUnit", "ExchangeRate", "RateDateTime", "RateSource"],
            Self::IfcCurtainWall => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcCurtainWallType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcCurve => &[],
            Self::IfcCurveBoundedPlane => &["BasisSurface", "OuterBoundary", "InnerBoundaries"],
            Self::IfcCurveBoundedSurface => &["BasisSurface", "Boundaries", "ImplicitOuter"],
            Self::IfcCurveSegment2D => &["StartPoint", "StartDirection", "SegmentLength"],
            Self::IfcCurveStyle => &["Name", "CurveFont", "CurveWidth", "CurveColour", "ModelOrDraughting"],
            Self::IfcCurveStyleFont => &["Name", "PatternList"],
            Self::IfcCurveStyleFontAndScaling => &["Name", "CurveFont", "CurveFontScaling"],
            Self::IfcCurveStyleFontPattern => &["VisibleSegmentLength", "InvisibleSegmentLength"],
            Self::IfcCylindricalSurface => &["Position", "Radius"],
            Self::IfcDamper => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcDamperType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcDeepFoundation => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcDeepFoundationType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcDerivedProfileDef => &["ProfileType", "ProfileName", "ParentProfile", "Operator", "Label"],
            Self::IfcDerivedUnit => &["Elements", "UnitType", "UserDefinedType"],
            Self::IfcDerivedUnitElement => &["Unit", "Exponent"],
            Self::IfcDimensionalExponents => &["LengthExponent", "MassExponent", "TimeExponent", "ElectricCurrentExponent", "ThermodynamicTemperatureExponent", "AmountOfSubstanceExponent", "LuminousIntensityExponent"],
            Self::IfcDirection => &["DirectionRatios"],
            Self::IfcDiscreteAccessory => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcDiscreteAccessoryType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcDistanceExpression => &["DistanceAlong", "OffsetLateral", "OffsetVertical", "OffsetLongitudinal", "AlongHorizontal"],
            Self::IfcDistributionChamberElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcDistributionChamberElementType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcDistributionCircuit => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "PredefinedType"],
            Self::IfcDistributionControlElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcDistributionControlElementType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcDistributionElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcDistributionElementType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcDistributionFlowElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcDistributionFlowElementType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcDistributionPort => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "FlowDirection", "PredefinedType", "SystemType"],
            Self::IfcDistributionSystem => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "PredefinedType"],
            Self::IfcDocumentInformation => &["Identification", "Name", "Description", "Location", "Purpose", "IntendedUse", "Scope", "Revision", "DocumentOwner", "Editors", "CreationTime", "LastRevisionTime", "ElectronicFormat", "ValidFrom", "ValidUntil", "Confidentiality", "Status"],
            Self::IfcDocumentInformationRelationship => &["Name", "Description", "RelatingDocument", "RelatedDocuments", "RelationshipType"],
            Self::IfcDocumentReference => &["Location", "Identification", "Name", "Description", "ReferencedDocument"],
            Self::IfcDoor => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "OverallHeight", "OverallWidth", "PredefinedType", "OperationType", "UserDefinedOperationType"],
            Self::IfcDoorLiningProperties => &["GlobalId", "OwnerHistory", "Name", "Description", "LiningDepth", "LiningThickness", "ThresholdDepth", "ThresholdThickness", "TransomThickness", "TransomOffset", "LiningOffset", "ThresholdOffset", "CasingThickness", "CasingDepth", "ShapeAspectStyle", "LiningToPanelOffsetX", "LiningToPanelOffsetY"],
            Self::IfcDoorPanelProperties => &["GlobalId", "OwnerHistory", "Name", "Description", "PanelDepth", "PanelOperation", "PanelWidth", "PanelPosition", "ShapeAspectStyle"],
            Self::IfcDoorStandardCase => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "OverallHeight", "OverallWidth", "PredefinedType", "OperationType", "UserDefinedOperationType"],
            Self::IfcDoorStyle => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "OperationType", "ConstructionType", "ParameterTakesPrecedence", "Sizeable"],
            Self::IfcDoorType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "OperationType", "ParameterTakesPrecedence", "UserDefinedOperationType"],
            Self::IfcDraughtingPreDefinedColour => &["Name"],
            Self::IfcDraughtingPreDefinedCurveFont => &["Name"],
            Self::IfcDuctFitting => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcDuctFittingType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcDuctSegment => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcDuctSegmentType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcDuctSilencer => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcDuctSilencerType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcEdge => &["EdgeStart", "EdgeEnd"],
            Self::IfcEdgeCurve => &["EdgeStart", "EdgeEnd", "EdgeGeometry", "SameSense"],
            Self::IfcEdgeLoop => &["EdgeList"],
            Self::IfcElectricAppliance => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcElectricApplianceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcElectricDistributionBoard => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcElectricDistributionBoardType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcElectricFlowStorageDevice => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcElectricFlowStorageDeviceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcElectricGenerator => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcElectricGeneratorType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcElectricMotor => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcElectricMotorType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcElectricTimeControl => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcElectricTimeControlType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcElementAssembly => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "AssemblyPlace", "PredefinedType"],
            Self::IfcElementAssemblyType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcElementComponent => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcElementComponentType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcElementQuantity => &["GlobalId", "OwnerHistory", "Name", "Description", "MethodOfMeasurement", "Quantities"],
            Self::IfcElementType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcElementarySurface => &["Position"],
            Self::IfcEllipse => &["Position", "SemiAxis1", "SemiAxis2"],
            Self::IfcEllipseProfileDef => &["ProfileType", "ProfileName", "Position", "SemiAxis1", "SemiAxis2"],
            Self::IfcEnergyConversionDevice => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcEnergyConversionDeviceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcEngine => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcEngineType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcEvaporativeCooler => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcEvaporativeCoolerType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcEvaporator => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcEvaporatorType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcEvent => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "PredefinedType", "EventTriggerType", "UserDefinedEventTriggerType", "EventOccurenceTime"],
            Self::IfcEventTime => &["Name", "DataOrigin", "UserDefinedDataOrigin", "ActualDate", "EarlyDate", "LateDate", "ScheduleDate"],
            Self::IfcEventType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ProcessType", "PredefinedType", "EventTriggerType", "UserDefinedEventTriggerType"],
            Self::IfcExtendedProperties => &["Name", "Description", "Properties"],
            Self::IfcExternalInformation => &[],
            Self::IfcExternalReference => &["Location", "Identification", "Name"],
            Self::IfcExternalReferenceRelationship => &["Name", "Description", "RelatingReference", "RelatedResourceObjects"],
            Self::IfcExternalSpatialElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "PredefinedType"],
            Self::IfcExternalSpatialStructureElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName"],
            Self::IfcExternallyDefinedHatchStyle => &["Location", "Identification", "Name"],
            Self::IfcExternallyDefinedSurfaceStyle => &["Location", "Identification", "Name"],
            Self::IfcExternallyDefinedTextFont => &["Location", "Identification", "Name"],
            Self::IfcExtrudedAreaSolid => &["SweptArea", "Position", "ExtrudedDirection", "Depth"],
            Self::IfcExtrudedAreaSolidTapered => &["SweptArea", "Position", "ExtrudedDirection", "Depth", "EndSweptArea"],
            Self::IfcFace => &["Bounds"],
            Self::IfcFaceBasedSurfaceModel => &["FbsmFaces"],
            Self::IfcFaceBound => &["Bound", "Orientation"],
            Self::IfcFaceOuterBound => &["Bound", "Orientation"],
            Self::IfcFaceSurface => &["Bounds", "FaceSurface", "SameSense"],
            Self::IfcFacetedBrep => &["Outer"],
            Self::IfcFacetedBrepWithVoids => &["Outer", "Voids"],
            Self::IfcFacility => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType"],
            Self::IfcFacilityPart => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType"],
            Self::IfcFailureConnectionCondition => &["Name", "TensionFailureX", "TensionFailureY", "TensionFailureZ", "CompressionFailureX", "CompressionFailureY", "CompressionFailureZ"],
            Self::IfcFan => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcFanType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcFastener => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcFastenerType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcFeatureElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcFeatureElementAddition => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcFeatureElementSubtraction => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcFillAreaStyle => &["Name", "FillStyles", "ModelorDraughting"],
            Self::IfcFillAreaStyleHatching => &["HatchLineAppearance", "StartOfNextHatchLine", "PointOfReferenceHatchLine", "PatternStart", "HatchLineAngle"],
            Self::IfcFillAreaStyleTiles => &["TilingPattern", "Tiles", "TilingScale"],
            Self::IfcFilter => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcFilterType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcFireSuppressionTerminal => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcFireSuppressionTerminalType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcFixedReferenceSweptAreaSolid => &["SweptArea", "Position", "Directrix", "StartParam", "EndParam", "FixedReference"],
            Self::IfcFlowController => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcFlowControllerType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcFlowFitting => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcFlowFittingType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcFlowInstrument => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcFlowInstrumentType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcFlowMeter => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcFlowMeterType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcFlowMovingDevice => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcFlowMovingDeviceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcFlowSegment => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcFlowSegmentType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcFlowStorageDevice => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcFlowStorageDeviceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcFlowTerminal => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcFlowTerminalType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcFlowTreatmentDevice => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcFlowTreatmentDeviceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcFooting => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcFootingType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcFurnishingElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcFurnishingElementType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcFurniture => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcFurnitureType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "AssemblyPlace", "PredefinedType"],
            Self::IfcGeographicElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcGeographicElementType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcGeometricCurveSet => &["Elements"],
            Self::IfcGeometricRepresentationContext => &["ContextIdentifier", "ContextType", "CoordinateSpaceDimension", "Precision", "WorldCoordinateSystem", "TrueNorth"],
            Self::IfcGeometricRepresentationItem => &[],
            Self::IfcGeometricRepresentationSubContext => &["ContextIdentifier", "ContextType", "CoordinateSpaceDimension", "Precision", "WorldCoordinateSystem", "TrueNorth", "ParentContext", "TargetScale", "TargetView", "UserDefinedTargetView"],
            Self::IfcGeometricSet => &["Elements"],
            Self::IfcGrid => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "UAxes", "VAxes", "WAxes", "PredefinedType"],
            Self::IfcGridAxis => &["AxisTag", "AxisCurve", "SameSense"],
            Self::IfcGridPlacement => &["PlacementRelTo", "PlacementLocation", "PlacementRefDirection"],
            Self::IfcGroup => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType"],
            Self::IfcHalfSpaceSolid => &["BaseSurface", "AgreementFlag"],
            Self::IfcHeatExchanger => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcHeatExchangerType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcHumidifier => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcHumidifierType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcIShapeProfileDef => &["ProfileType", "ProfileName", "Position", "OverallWidth", "OverallDepth", "WebThickness", "FlangeThickness", "FilletRadius", "FlangeEdgeRadius", "FlangeSlope"],
            Self::IfcImageTexture => &["RepeatS", "RepeatT", "Mode", "TextureTransform", "Parameter", "URLReference"],
            Self::IfcIndexedColourMap => &["MappedTo", "Opacity", "Colours", "ColourIndex"],
            Self::IfcIndexedPolyCurve => &["Points", "Segments", "SelfIntersect"],
            Self::IfcIndexedPolygonalFace => &["CoordIndex"],
            Self::IfcIndexedPolygonalFaceWithVoids => &["CoordIndex", "InnerCoordIndices"],
            Self::IfcIndexedTextureMap => &["Maps", "MappedTo", "TexCoords"],
            Self::IfcIndexedTriangleTextureMap => &["Maps", "MappedTo", "TexCoords", "TexCoordIndex"],
            Self::IfcInterceptor => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcInterceptorType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcIntersectionCurve => &["Curve3D", "AssociatedGeometry", "MasterRepresentation"],
            Self::IfcInventory => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "Jurisdiction", "ResponsiblePersons", "LastUpdateDate", "CurrentValue", "OriginalValue"],
            Self::IfcIrregularTimeSeries => &["Name", "Description", "StartTime", "EndTime", "TimeSeriesDataType", "DataOrigin", "UserDefinedDataOrigin", "Unit", "Values"],
            Self::IfcIrregularTimeSeriesValue => &["TimeStamp", "ListValues"],
            Self::IfcJunctionBox => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcJunctionBoxType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcLShapeProfileDef => &["ProfileType", "ProfileName", "Position", "Depth", "Width", "Thickness", "FilletRadius", "EdgeRadius", "LegSlope"],
            Self::IfcLaborResource => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType"],
            Self::IfcLaborResourceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType"],
            Self::IfcLagTime => &["Name", "DataOrigin", "UserDefinedDataOrigin", "LagValue", "DurationType"],
            Self::IfcLamp => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcLampType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcLibraryInformation => &["Name", "Version", "Publisher", "VersionDate", "Location", "Description"],
            Self::IfcLibraryReference => &["Location", "Identification", "Name", "Description", "Language", "ReferencedLibrary"],
            Self::IfcLightDistributionData => &["MainPlaneAngle", "SecondaryPlaneAngle", "LuminousIntensity"],
            Self::IfcLightFixture => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcLightFixtureType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcLightIntensityDistribution => &["LightDistributionCurve", "DistributionData"],
            Self::IfcLightSource => &["Name", "LightColour", "AmbientIntensity", "Intensity"],
            Self::IfcLightSourceAmbient => &["Name", "LightColour", "AmbientIntensity", "Intensity"],
            Self::IfcLightSourceDirectional => &["Name", "LightColour", "AmbientIntensity", "Intensity", "Orientation"],
            Self::IfcLightSourceGoniometric => &["Name", "LightColour", "AmbientIntensity", "Intensity", "Position", "ColourAppearance", "ColourTemperature", "LuminousFlux", "LightEmissionSource", "LightDistributionDataSource"],
            Self::IfcLightSourcePositional => &["Name", "LightColour", "AmbientIntensity", "Intensity", "Position", "Radius", "ConstantAttenuation", "DistanceAttenuation", "QuadricAttenuation"],
            Self::IfcLightSourceSpot => &["Name", "LightColour", "AmbientIntensity", "Intensity", "Position", "Radius", "ConstantAttenuation", "DistanceAttenuation", "QuadricAttenuation", "Orientation", "ConcentrationExponent", "SpreadAngle", "BeamWidthAngle"],
            Self::IfcLine => &["Pnt", "Dir"],
            Self::IfcLineSegment2D => &["StartPoint", "StartDirection", "SegmentLength"],
            Self::IfcLinearPlacement => &["PlacementRelTo", "PlacementMeasuredAlong", "Distance", "Orientation", "CartesianPosition"],
            Self::IfcLinearPositioningElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Axis"],
            Self::IfcLocalPlacement => &["PlacementRelTo", "RelativePlacement"],
            Self::IfcLoop => &[],
            Self::IfcManifoldSolidBrep => &["Outer"],
            Self::IfcMapConversion => &["SourceCRS", "TargetCRS", "Eastings", "Northings", "OrthogonalHeight", "XAxisAbscissa", "XAxisOrdinate", "Scale"],
            Self::IfcMappedItem => &["MappingSource", "MappingTarget"],
            Self::IfcMaterial => &["Name", "Description", "Category"],
            Self::IfcMaterialClassificationRelationship => &["MaterialClassifications", "ClassifiedMaterial"],
            Self::IfcMaterialConstituent => &["Name", "Description", "Material", "Fraction", "Category"],
            Self::IfcMaterialConstituentSet => &["Name", "Description", "MaterialConstituents"],
            Self::IfcMaterialDefinition => &[],
            Self::IfcMaterialDefinitionRepresentation => &["Name", "Description", "Representations", "RepresentedMaterial"],
            Self::IfcMaterialLayer => &["Material", "LayerThickness", "IsVentilated", "Name", "Description", "Category", "Priority"],
            Self::IfcMaterialLayerSet => &["MaterialLayers", "LayerSetName", "Description"],
            Self::IfcMaterialLayerSetUsage => &["ForLayerSet", "LayerSetDirection", "DirectionSense", "OffsetFromReferenceLine", "ReferenceExtent"],
            Self::IfcMaterialLayerWithOffsets => &["Material", "LayerThickness", "IsVentilated", "Name", "Description", "Category", "Priority", "OffsetDirection", "OffsetValues"],
            Self::IfcMaterialList => &["Materials"],
            Self::IfcMaterialProfile => &["Name", "Description", "Material", "Profile", "Priority", "Category"],
            Self::IfcMaterialProfileSet => &["Name", "Description", "MaterialProfiles", "CompositeProfile"],
            Self::IfcMaterialProfileSetUsage => &["ForProfileSet", "CardinalPoint", "ReferenceExtent"],
            Self::IfcMaterialProfileSetUsageTapering => &["ForProfileSet", "CardinalPoint", "ReferenceExtent", "ForProfileEndSet", "CardinalEndPoint"],
            Self::IfcMaterialProfileWithOffsets => &["Name", "Description", "Material", "Profile", "Priority", "Category", "OffsetValues"],
            Self::IfcMaterialProperties => &["Name", "Description", "Properties", "Material"],
            Self::IfcMaterialRelationship => &["Name", "Description", "RelatingMaterial", "RelatedMaterials", "Expression"],
            Self::IfcMaterialUsageDefinition => &[],
            Self::IfcMeasureWithUnit => &["ValueComponent", "UnitComponent"],
            Self::IfcMechanicalFastener => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "NominalDiameter", "NominalLength", "PredefinedType"],
            Self::IfcMechanicalFastenerType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "NominalDiameter", "NominalLength"],
            Self::IfcMedicalDevice => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcMedicalDeviceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcMember => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcMemberStandardCase => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcMemberType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcMetric => &["Name", "Description", "ConstraintGrade", "ConstraintSource", "CreatingActor", "CreationTime", "UserDefinedGrade", "Benchmark", "ValueSource", "DataValue", "ReferencePath"],
            Self::IfcMirroredProfileDef => &["ProfileType", "ProfileName", "ParentProfile", "Operator", "Label"],
            Self::IfcMonetaryUnit => &["Currency"],
            Self::IfcMotorConnection => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcMotorConnectionType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcNamedUnit => &["Dimensions", "UnitType"],
            Self::IfcObject => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType"],
            Self::IfcObjectDefinition => &["GlobalId", "OwnerHistory", "Name", "Description"],
            Self::IfcObjectPlacement => &["PlacementRelTo"],
            Self::IfcObjective => &["Name", "Description", "ConstraintGrade", "ConstraintSource", "CreatingActor", "CreationTime", "UserDefinedGrade", "BenchmarkValues", "LogicalAggregator", "ObjectiveQualifier", "UserDefinedQualifier"],
            Self::IfcOccupant => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "TheActor", "PredefinedType"],
            Self::IfcOffsetCurve => &["BasisCurve"],
            Self::IfcOffsetCurve2D => &["BasisCurve", "Distance", "SelfIntersect"],
            Self::IfcOffsetCurve3D => &["BasisCurve", "Distance", "SelfIntersect", "RefDirection"],
            Self::IfcOffsetCurveByDistances => &["BasisCurve", "OffsetValues", "Tag"],
            Self::IfcOpenShell => &["CfsFaces"],
            Self::IfcOpeningElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcOpeningStandardCase => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcOrganization => &["Identification", "Name", "Description", "Roles", "Addresses"],
            Self::IfcOrganizationRelationship => &["Name", "Description", "RelatingOrganization", "RelatedOrganizations"],
            Self::IfcOrientationExpression => &["LateralAxisDirection", "VerticalAxisDirection"],
            Self::IfcOrientedEdge => &["EdgeStart", "EdgeEnd", "EdgeElement", "Orientation"],
            Self::IfcOuterBoundaryCurve => &["Segments", "SelfIntersect"],
            Self::IfcOutlet => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcOutletType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcOwnerHistory => &["OwningUser", "OwningApplication", "State", "ChangeAction", "LastModifiedDate", "LastModifyingUser", "LastModifyingApplication", "CreationDate"],
            Self::IfcParameterizedProfileDef => &["ProfileType", "ProfileName", "Position"],
            Self::IfcPath => &["EdgeList"],
            Self::IfcPcurve => &["BasisSurface", "ReferenceCurve"],
            Self::IfcPerformanceHistory => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LifeCyclePhase", "PredefinedType"],
            Self::IfcPermeableCoveringProperties => &["GlobalId", "OwnerHistory", "Name", "Description", "OperationType", "PanelPosition", "FrameDepth", "FrameThickness", "ShapeAspectStyle"],
            Self::IfcPermit => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "PredefinedType", "Status", "LongDescription"],
            Self::IfcPerson => &["Identification", "FamilyName", "GivenName", "MiddleNames", "PrefixTitles", "SuffixTitles", "Roles", "Addresses"],
            Self::IfcPersonAndOrganization => &["ThePerson", "TheOrganization", "Roles"],
            Self::IfcPhysicalComplexQuantity => &["Name", "Description", "HasQuantities", "Discrimination", "Quality", "Usage"],
            Self::IfcPhysicalQuantity => &["Name", "Description"],
            Self::IfcPhysicalSimpleQuantity => &["Name", "Description", "Unit"],
            Self::IfcPile => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType", "ConstructionType"],
            Self::IfcPileType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcPipeFitting => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcPipeFittingType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcPipeSegment => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcPipeSegmentType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcPixelTexture => &["RepeatS", "RepeatT", "Mode", "TextureTransform", "Parameter", "Width", "Height", "ColourComponents", "Pixel"],
            Self::IfcPlacement => &["Location"],
            Self::IfcPlanarBox => &["SizeInX", "SizeInY", "Placement"],
            Self::IfcPlanarExtent => &["SizeInX", "SizeInY"],
            Self::IfcPlane => &["Position"],
            Self::IfcPlate => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcPlateStandardCase => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcPlateType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcPoint => &[],
            Self::IfcPointOnCurve => &["BasisCurve", "PointParameter"],
            Self::IfcPointOnSurface => &["BasisSurface", "PointParameterU", "PointParameterV"],
            Self::IfcPolyLoop => &["Polygon"],
            Self::IfcPolygonalBoundedHalfSpace => &["BaseSurface", "AgreementFlag", "Position", "PolygonalBoundary"],
            Self::IfcPolygonalFaceSet => &["Coordinates", "Closed", "Faces", "PnIndex"],
            Self::IfcPolyline => &["Points"],
            Self::IfcPort => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation"],
            Self::IfcPositioningElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation"],
            Self::IfcPostalAddress => &["Purpose", "Description", "UserDefinedPurpose", "InternalLocation", "AddressLines", "PostalBox", "Town", "Region", "PostalCode", "Country"],
            Self::IfcPreDefinedColour => &["Name"],
            Self::IfcPreDefinedCurveFont => &["Name"],
            Self::IfcPreDefinedItem => &["Name"],
            Self::IfcPreDefinedProperties => &[],
            Self::IfcPreDefinedPropertySet => &["GlobalId", "OwnerHistory", "Name", "Description"],
            Self::IfcPreDefinedTextFont => &["Name"],
            Self::IfcPresentationItem => &[],
            Self::IfcPresentationLayerAssignment => &["Name", "Description", "AssignedItems", "Identifier"],
            Self::IfcPresentationLayerWithStyle => &["Name", "Description", "AssignedItems", "Identifier", "LayerOn", "LayerFrozen", "LayerBlocked", "LayerStyles"],
            Self::IfcPresentationStyle => &["Name"],
            Self::IfcPresentationStyleAssignment => &["Styles"],
            Self::IfcProcedure => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "PredefinedType"],
            Self::IfcProcedureType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ProcessType", "PredefinedType"],
            Self::IfcProcess => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription"],
            Self::IfcProduct => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation"],
            Self::IfcProductDefinitionShape => &["Name", "Description", "Representations"],
            Self::IfcProductRepresentation => &["Name", "Description", "Representations"],
            Self::IfcProfileDef => &["ProfileType", "ProfileName"],
            Self::IfcProfileProperties => &["Name", "Description", "Properties", "ProfileDefinition"],
            Self::IfcProject => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "Phase", "RepresentationContexts", "UnitsInContext"],
            Self::IfcProjectLibrary => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "Phase", "RepresentationContexts", "UnitsInContext"],
            Self::IfcProjectOrder => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "PredefinedType", "Status", "LongDescription"],
            Self::IfcProjectedCRS => &["Name", "Description", "GeodeticDatum", "VerticalDatum", "MapProjection", "MapZone", "MapUnit"],
            Self::IfcProjectionElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcProperty => &["Name", "Description"],
            Self::IfcPropertyAbstraction => &[],
            Self::IfcPropertyBoundedValue => &["Name", "Description", "UpperBoundValue", "LowerBoundValue", "Unit", "SetPointValue"],
            Self::IfcPropertyDefinition => &["GlobalId", "OwnerHistory", "Name", "Description"],
            Self::IfcPropertyDependencyRelationship => &["Name", "Description", "DependingProperty", "DependantProperty", "Expression"],
            Self::IfcPropertyEnumeratedValue => &["Name", "Description", "EnumerationValues", "EnumerationReference"],
            Self::IfcPropertyEnumeration => &["Name", "EnumerationValues", "Unit"],
            Self::IfcPropertyListValue => &["Name", "Description", "ListValues", "Unit"],
            Self::IfcPropertyReferenceValue => &["Name", "Description", "UsageName", "PropertyReference"],
            Self::IfcPropertySet => &["GlobalId", "OwnerHistory", "Name", "Description", "HasProperties"],
            Self::IfcPropertySetDefinition => &["GlobalId", "OwnerHistory", "Name", "Description"],
            Self::IfcPropertySetTemplate => &["GlobalId", "OwnerHistory", "Name", "Description", "TemplateType", "ApplicableEntity", "HasPropertyTemplates"],
            Self::IfcPropertySingleValue => &["Name", "Description", "NominalValue", "Unit"],
            Self::IfcPropertyTableValue => &["Name", "Description", "DefiningValues", "DefinedValues", "Expression", "DefiningUnit", "DefinedUnit", "CurveInterpolation"],
            Self::IfcPropertyTemplate => &["GlobalId", "OwnerHistory", "Name", "Description"],
            Self::IfcPropertyTemplateDefinition => &["GlobalId", "OwnerHistory", "Name", "Description"],
            Self::IfcProtectiveDevice => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcProtectiveDeviceTrippingUnit => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcProtectiveDeviceTrippingUnitType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcProtectiveDeviceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcProxy => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "ProxyType", "Tag"],
            Self::IfcPump => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcPumpType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcQuantityArea => &["Name", "Description", "Unit", "AreaValue", "Formula"],
            Self::IfcQuantityCount => &["Name", "Description", "Unit", "CountValue", "Formula"],
            Self::IfcQuantityLength => &["Name", "Description", "Unit", "LengthValue", "Formula"],
            Self::IfcQuantitySet => &["GlobalId", "OwnerHistory", "Name", "Description"],
            Self::IfcQuantityTime => &["Name", "Description", "Unit", "TimeValue", "Formula"],
            Self::IfcQuantityVolume => &["Name", "Description", "Unit", "VolumeValue", "Formula"],
            Self::IfcQuantityWeight => &["Name", "Description", "Unit", "WeightValue", "Formula"],
            Self::IfcRailing => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcRailingType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcRamp => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcRampFlight => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcRampFlightType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcRampType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcRationalBSplineCurveWithKnots => &["Degree", "ControlPointsList", "CurveForm", "ClosedCurve", "SelfIntersect", "KnotMultiplicities", "Knots", "KnotSpec", "WeightsData"],
            Self::IfcRationalBSplineSurfaceWithKnots => &["UDegree", "VDegree", "ControlPointsList", "SurfaceForm", "UClosed", "VClosed", "SelfIntersect", "UMultiplicities", "VMultiplicities", "UKnots", "VKnots", "KnotSpec", "WeightsData"],
            Self::IfcRectangleHollowProfileDef => &["ProfileType", "ProfileName", "Position", "XDim", "YDim", "WallThickness", "InnerFilletRadius", "OuterFilletRadius"],
            Self::IfcRectangleProfileDef => &["ProfileType", "ProfileName", "Position", "XDim", "YDim"],
            Self::IfcRectangularPyramid => &["Position", "XLength", "YLength", "Height"],
            Self::IfcRectangularTrimmedSurface => &["BasisSurface", "U1", "V1", "U2", "V2", "Usense", "Vsense"],
            Self::IfcRecurrencePattern => &["RecurrenceType", "DayComponent", "WeekdayComponent", "MonthComponent", "Position", "Interval", "Occurrences", "TimePeriods"],
            Self::IfcReference => &["TypeIdentifier", "AttributeIdentifier", "InstanceName", "ListPositions", "InnerReference"],
            Self::IfcReferent => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "RestartDistance"],
            Self::IfcRegularTimeSeries => &["Name", "Description", "StartTime", "EndTime", "TimeSeriesDataType", "DataOrigin", "UserDefinedDataOrigin", "Unit", "TimeStep", "Values"],
            Self::IfcReinforcementBarProperties => &["TotalCrossSectionArea", "SteelGrade", "BarSurface", "EffectiveDepth", "NominalBarDiameter", "BarCount"],
            Self::IfcReinforcementDefinitionProperties => &["GlobalId", "OwnerHistory", "Name", "Description", "DefinitionType", "ReinforcementSectionDefinitions"],
            Self::IfcReinforcingBar => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "NominalDiameter", "CrossSectionArea", "BarLength", "PredefinedType", "BarSurface"],
            Self::IfcReinforcingBarType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "NominalDiameter", "CrossSectionArea", "BarLength", "BarSurface", "BendingShapeCode", "BendingParameters"],
            Self::IfcReinforcingElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade"],
            Self::IfcReinforcingElementType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcReinforcingMesh => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "MeshLength", "MeshWidth", "LongitudinalBarNominalDiameter", "TransverseBarNominalDiameter", "LongitudinalBarCrossSectionArea", "TransverseBarCrossSectionArea", "LongitudinalBarSpacing", "TransverseBarSpacing", "PredefinedType"],
            Self::IfcReinforcingMeshType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "MeshLength", "MeshWidth", "LongitudinalBarNominalDiameter", "TransverseBarNominalDiameter", "LongitudinalBarCrossSectionArea", "TransverseBarCrossSectionArea", "LongitudinalBarSpacing", "TransverseBarSpacing", "BendingShapeCode", "BendingParameters"],
            Self::IfcRelAggregates => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingObject", "RelatedObjects"],
            Self::IfcRelAssigns => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType"],
            Self::IfcRelAssignsToActor => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingActor", "ActingRole"],
            Self::IfcRelAssignsToControl => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingControl"],
            Self::IfcRelAssignsToGroup => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingGroup"],
            Self::IfcRelAssignsToGroupByFactor => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingGroup", "Factor"],
            Self::IfcRelAssignsToProcess => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingProcess", "QuantityInProcess"],
            Self::IfcRelAssignsToProduct => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingProduct"],
            Self::IfcRelAssignsToResource => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingResource"],
            Self::IfcRelAssociates => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects"],
            Self::IfcRelAssociatesApproval => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingApproval"],
            Self::IfcRelAssociatesClassification => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingClassification"],
            Self::IfcRelAssociatesConstraint => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "Intent", "RelatingConstraint"],
            Self::IfcRelAssociatesDocument => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingDocument"],
            Self::IfcRelAssociatesLibrary => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingLibrary"],
            Self::IfcRelAssociatesMaterial => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingMaterial"],
            Self::IfcRelConnects => &["GlobalId", "OwnerHistory", "Name", "Description"],
            Self::IfcRelConnectsElements => &["GlobalId", "OwnerHistory", "Name", "Description", "ConnectionGeometry", "RelatingElement", "RelatedElement"],
            Self::IfcRelConnectsPathElements => &["GlobalId", "OwnerHistory", "Name", "Description", "ConnectionGeometry", "RelatingElement", "RelatedElement", "RelatingPriorities", "RelatedPriorities", "RelatedConnectionType", "RelatingConnectionType"],
            Self::IfcRelConnectsPortToElement => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingPort", "RelatedElement"],
            Self::IfcRelConnectsPorts => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingPort", "RelatedPort", "RealizingElement"],
            Self::IfcRelConnectsStructuralActivity => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingElement", "RelatedStructuralActivity"],
            Self::IfcRelConnectsStructuralMember => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingStructuralMember", "RelatedStructuralConnection", "AppliedCondition", "AdditionalConditions", "SupportedLength", "ConditionCoordinateSystem"],
            Self::IfcRelConnectsWithEccentricity => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingStructuralMember", "RelatedStructuralConnection", "AppliedCondition", "AdditionalConditions", "SupportedLength", "ConditionCoordinateSystem", "ConnectionConstraint"],
            Self::IfcRelConnectsWithRealizingElements => &["GlobalId", "OwnerHistory", "Name", "Description", "ConnectionGeometry", "RelatingElement", "RelatedElement", "RealizingElements", "ConnectionType"],
            Self::IfcRelContainedInSpatialStructure => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedElements", "RelatingStructure"],
            Self::IfcRelCoversBldgElements => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingBuildingElement", "RelatedCoverings"],
            Self::IfcRelCoversSpaces => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingSpace", "RelatedCoverings"],
            Self::IfcRelDeclares => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingContext", "RelatedDefinitions"],
            Self::IfcRelDecomposes => &["GlobalId", "OwnerHistory", "Name", "Description"],
            Self::IfcRelDefines => &["GlobalId", "OwnerHistory", "Name", "Description"],
            Self::IfcRelDefinesByObject => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingObject"],
            Self::IfcRelDefinesByProperties => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingPropertyDefinition"],
            Self::IfcRelDefinesByTemplate => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedPropertySets", "RelatingTemplate"],
            Self::IfcRelDefinesByType => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingType"],
            Self::IfcRelFillsElement => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingOpeningElement", "RelatedBuildingElement"],
            Self::IfcRelFlowControlElements => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedControlElements", "RelatingFlowElement"],
            Self::IfcRelInterferesElements => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingElement", "RelatedElement", "InterferenceGeometry", "InterferenceType", "ImpliedOrder"],
            Self::IfcRelNests => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingObject", "RelatedObjects"],
            Self::IfcRelPositions => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingPositioningElement", "RelatedProducts"],
            Self::IfcRelProjectsElement => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingElement", "RelatedFeatureElement"],
            Self::IfcRelReferencedInSpatialStructure => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatedElements", "RelatingStructure"],
            Self::IfcRelSequence => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingProcess", "RelatedProcess", "TimeLag", "SequenceType", "UserDefinedSequenceType"],
            Self::IfcRelServicesBuildings => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingSystem", "RelatedBuildings"],
            Self::IfcRelSpaceBoundary => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingSpace", "RelatedBuildingElement", "ConnectionGeometry", "PhysicalOrVirtualBoundary", "InternalOrExternalBoundary"],
            Self::IfcRelSpaceBoundary1stLevel => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingSpace", "RelatedBuildingElement", "ConnectionGeometry", "PhysicalOrVirtualBoundary", "InternalOrExternalBoundary", "ParentBoundary"],
            Self::IfcRelSpaceBoundary2ndLevel => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingSpace", "RelatedBuildingElement", "ConnectionGeometry", "PhysicalOrVirtualBoundary", "InternalOrExternalBoundary", "ParentBoundary", "CorrespondingBoundary"],
            Self::IfcRelVoidsElement => &["GlobalId", "OwnerHistory", "Name", "Description", "RelatingBuildingElement", "RelatedOpeningElement"],
            Self::IfcRelationship => &["GlobalId", "OwnerHistory", "Name", "Description"],
            Self::IfcReparametrisedCompositeCurveSegment => &["Transition", "SameSense", "ParentCurve", "ParamLength"],
            Self::IfcRepresentation => &["ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items"],
            Self::IfcRepresentationContext => &["ContextIdentifier", "ContextType"],
            Self::IfcRepresentationItem => &[],
            Self::IfcRepresentationMap => &["MappingOrigin", "MappedRepresentation"],
            Self::IfcResource => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription"],
            Self::IfcResourceApprovalRelationship => &["Name", "Description", "RelatedResourceObjects", "RelatingApproval"],
            Self::IfcResourceConstraintRelationship => &["Name", "Description", "RelatingConstraint", "RelatedResourceObjects"],
            Self::IfcResourceLevelRelationship => &["Name", "Description"],
            Self::IfcResourceTime => &["Name", "DataOrigin", "UserDefinedDataOrigin", "ScheduleWork", "ScheduleUsage", "ScheduleStart", "ScheduleFinish", "ScheduleContour", "LevelingDelay", "IsOverAllocated", "StatusTime", "ActualWork", "ActualUsage", "ActualStart", "ActualFinish", "RemainingWork", "RemainingUsage", "Completion"],
            Self::IfcRevolvedAreaSolid => &["SweptArea", "Position", "Axis", "Angle"],
            Self::IfcRevolvedAreaSolidTapered => &["SweptArea", "Position", "Axis", "Angle", "EndSweptArea"],
            Self::IfcRightCircularCone => &["Position", "Height", "BottomRadius"],
            Self::IfcRightCircularCylinder => &["Position", "Height", "Radius"],
            Self::IfcRoof => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcRoofType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcRoot => &["GlobalId", "OwnerHistory", "Name", "Description"],
            Self::IfcRoundedRectangleProfileDef => &["ProfileType", "ProfileName", "Position", "XDim", "YDim", "RoundingRadius"],
            Self::IfcSIUnit => &["Dimensions", "UnitType", "Prefix", "Name"],
            Self::IfcSanitaryTerminal => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcSanitaryTerminalType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcSchedulingTime => &["Name", "DataOrigin", "UserDefinedDataOrigin"],
            Self::IfcSeamCurve => &["Curve3D", "AssociatedGeometry", "MasterRepresentation"],
            Self::IfcSectionProperties => &["SectionType", "StartProfile", "EndProfile"],
            Self::IfcSectionReinforcementProperties => &["LongitudinalStartPosition", "LongitudinalEndPosition", "TransversePosition", "ReinforcementRole", "SectionDefinition", "CrossSectionReinforcementDefinitions"],
            Self::IfcSectionedSolid => &["Directrix", "CrossSections"],
            Self::IfcSectionedSolidHorizontal => &["Directrix", "CrossSections", "CrossSectionPositions", "FixedAxisVertical"],
            Self::IfcSectionedSpine => &["SpineCurve", "CrossSections", "CrossSectionPositions"],
            Self::IfcSensor => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcSensorType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcShadingDevice => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcShadingDeviceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcShapeAspect => &["ShapeRepresentations", "Name", "Description", "ProductDefinitional", "PartOfProductDefinitionShape"],
            Self::IfcShapeModel => &["ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items"],
            Self::IfcShapeRepresentation => &["ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items"],
            Self::IfcShellBasedSurfaceModel => &["SbsmBoundary"],
            Self::IfcSimpleProperty => &["Name", "Description"],
            Self::IfcSimplePropertyTemplate => &["GlobalId", "OwnerHistory", "Name", "Description", "TemplateType", "PrimaryMeasureType", "SecondaryMeasureType", "Enumerators", "PrimaryUnit", "SecondaryUnit", "Expression", "AccessState"],
            Self::IfcSite => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "RefLatitude", "RefLongitude", "RefElevation", "LandTitleNumber", "SiteAddress"],
            Self::IfcSlab => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcSlabElementedCase => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcSlabStandardCase => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcSlabType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcSlippageConnectionCondition => &["Name", "SlippageX", "SlippageY", "SlippageZ"],
            Self::IfcSolarDevice => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcSolarDeviceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcSolidModel => &[],
            Self::IfcSpace => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "PredefinedType", "ElevationWithFlooring"],
            Self::IfcSpaceHeater => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcSpaceHeaterType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcSpaceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "LongName"],
            Self::IfcSpatialElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName"],
            Self::IfcSpatialElementType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcSpatialStructureElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType"],
            Self::IfcSpatialStructureElementType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType"],
            Self::IfcSpatialZone => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "PredefinedType"],
            Self::IfcSpatialZoneType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "LongName"],
            Self::IfcSphere => &["Position", "Radius"],
            Self::IfcSphericalSurface => &["Position", "Radius"],
            Self::IfcStackTerminal => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcStackTerminalType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcStair => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcStairFlight => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "NumberOfRisers", "NumberOfTreads", "RiserHeight", "TreadLength", "PredefinedType"],
            Self::IfcStairFlightType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcStairType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcStructuralAction => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad"],
            Self::IfcStructuralActivity => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal"],
            Self::IfcStructuralAnalysisModel => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "OrientationOf2DPlane", "LoadedBy", "HasResults", "SharedPlacement"],
            Self::IfcStructuralConnection => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition"],
            Self::IfcStructuralConnectionCondition => &["Name"],
            Self::IfcStructuralCurveAction => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "ProjectedOrTrue", "PredefinedType"],
            Self::IfcStructuralCurveConnection => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition", "Axis"],
            Self::IfcStructuralCurveMember => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "Axis"],
            Self::IfcStructuralCurveMemberVarying => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "Axis"],
            Self::IfcStructuralCurveReaction => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "PredefinedType"],
            Self::IfcStructuralItem => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation"],
            Self::IfcStructuralLinearAction => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "ProjectedOrTrue", "PredefinedType"],
            Self::IfcStructuralLoad => &["Name"],
            Self::IfcStructuralLoadCase => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "ActionType", "ActionSource", "Coefficient", "Purpose", "SelfWeightCoefficients"],
            Self::IfcStructuralLoadConfiguration => &["Name", "Values", "Locations"],
            Self::IfcStructuralLoadGroup => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "ActionType", "ActionSource", "Coefficient", "Purpose"],
            Self::IfcStructuralLoadLinearForce => &["Name", "LinearForceX", "LinearForceY", "LinearForceZ", "LinearMomentX", "LinearMomentY", "LinearMomentZ"],
            Self::IfcStructuralLoadOrResult => &["Name"],
            Self::IfcStructuralLoadPlanarForce => &["Name", "PlanarForceX", "PlanarForceY", "PlanarForceZ"],
            Self::IfcStructuralLoadSingleDisplacement => &["Name", "DisplacementX", "DisplacementY", "DisplacementZ", "RotationalDisplacementRX", "RotationalDisplacementRY", "RotationalDisplacementRZ"],
            Self::IfcStructuralLoadSingleDisplacementDistortion => &["Name", "DisplacementX", "DisplacementY", "DisplacementZ", "RotationalDisplacementRX", "RotationalDisplacementRY", "RotationalDisplacementRZ", "Distortion"],
            Self::IfcStructuralLoadSingleForce => &["Name", "ForceX", "ForceY", "ForceZ", "MomentX", "MomentY", "MomentZ"],
            Self::IfcStructuralLoadSingleForceWarping => &["Name", "ForceX", "ForceY", "ForceZ", "MomentX", "MomentY", "MomentZ", "WarpingMoment"],
            Self::IfcStructuralLoadStatic => &["Name"],
            Self::IfcStructuralLoadTemperature => &["Name", "DeltaTConstant", "DeltaTY", "DeltaTZ"],
            Self::IfcStructuralMember => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation"],
            Self::IfcStructuralPlanarAction => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "ProjectedOrTrue", "PredefinedType"],
            Self::IfcStructuralPointAction => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad"],
            Self::IfcStructuralPointConnection => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition", "ConditionCoordinateSystem"],
            Self::IfcStructuralPointReaction => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal"],
            Self::IfcStructuralReaction => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal"],
            Self::IfcStructuralResultGroup => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "TheoryType", "ResultForLoadGroup", "IsLinear"],
            Self::IfcStructuralSurfaceAction => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "ProjectedOrTrue", "PredefinedType"],
            Self::IfcStructuralSurfaceConnection => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition"],
            Self::IfcStructuralSurfaceMember => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "Thickness"],
            Self::IfcStructuralSurfaceMemberVarying => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "Thickness"],
            Self::IfcStructuralSurfaceReaction => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "PredefinedType"],
            Self::IfcStyleModel => &["ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items"],
            Self::IfcStyledItem => &["Item", "Styles", "Name"],
            Self::IfcStyledRepresentation => &["ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items"],
            Self::IfcSubContractResource => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType"],
            Self::IfcSubContractResourceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType"],
            Self::IfcSubedge => &["EdgeStart", "EdgeEnd", "ParentEdge"],
            Self::IfcSurface => &[],
            Self::IfcSurfaceCurve => &["Curve3D", "AssociatedGeometry", "MasterRepresentation"],
            Self::IfcSurfaceCurveSweptAreaSolid => &["SweptArea", "Position", "Directrix", "StartParam", "EndParam", "ReferenceSurface"],
            Self::IfcSurfaceFeature => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcSurfaceOfLinearExtrusion => &["SweptCurve", "Position", "ExtrudedDirection", "Depth"],
            Self::IfcSurfaceOfRevolution => &["SweptCurve", "Position", "AxisPosition"],
            Self::IfcSurfaceReinforcementArea => &["Name", "SurfaceReinforcement1", "SurfaceReinforcement2", "ShearReinforcement"],
            Self::IfcSurfaceStyle => &["Name", "Side", "Styles"],
            Self::IfcSurfaceStyleLighting => &["DiffuseTransmissionColour", "DiffuseReflectionColour", "TransmissionColour", "ReflectanceColour"],
            Self::IfcSurfaceStyleRefraction => &["RefractionIndex", "DispersionFactor"],
            Self::IfcSurfaceStyleRendering => &["SurfaceColour", "Transparency", "DiffuseColour", "TransmissionColour", "DiffuseTransmissionColour", "ReflectionColour", "SpecularColour", "SpecularHighlight", "ReflectanceMethod"],
            Self::IfcSurfaceStyleShading => &["SurfaceColour", "Transparency"],
            Self::IfcSurfaceStyleWithTextures => &["Textures"],
            Self::IfcSurfaceTexture => &["RepeatS", "RepeatT", "Mode", "TextureTransform", "Parameter"],
            Self::IfcSweptAreaSolid => &["SweptArea", "Position"],
            Self::IfcSweptDiskSolid => &["Directrix", "Radius", "InnerRadius", "StartParam", "EndParam"],
            Self::IfcSweptDiskSolidPolygonal => &["Directrix", "Radius", "InnerRadius", "StartParam", "EndParam", "FilletRadius"],
            Self::IfcSweptSurface => &["SweptCurve", "Position"],
            Self::IfcSwitchingDevice => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcSwitchingDeviceType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcSystem => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType"],
            Self::IfcSystemFurnitureElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcSystemFurnitureElementType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcTShapeProfileDef => &["ProfileType", "ProfileName", "Position", "Depth", "FlangeWidth", "WebThickness", "FlangeThickness", "FilletRadius", "FlangeEdgeRadius", "WebEdgeRadius", "WebSlope", "FlangeSlope"],
            Self::IfcTable => &["Name", "Rows", "Columns"],
            Self::IfcTableColumn => &["Identifier", "Name", "Description", "Unit", "ReferencePath"],
            Self::IfcTableRow => &["RowCells", "IsHeading"],
            Self::IfcTank => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcTankType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcTask => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Status", "WorkMethod", "IsMilestone", "Priority", "TaskTime", "PredefinedType"],
            Self::IfcTaskTime => &["Name", "DataOrigin", "UserDefinedDataOrigin", "DurationType", "ScheduleDuration", "ScheduleStart", "ScheduleFinish", "EarlyStart", "EarlyFinish", "LateStart", "LateFinish", "FreeFloat", "TotalFloat", "IsCritical", "StatusTime", "ActualDuration", "ActualStart", "ActualFinish", "RemainingTime", "Completion"],
            Self::IfcTaskTimeRecurring => &["Name", "DataOrigin", "UserDefinedDataOrigin", "DurationType", "ScheduleDuration", "ScheduleStart", "ScheduleFinish", "EarlyStart", "EarlyFinish", "LateStart", "LateFinish", "FreeFloat", "TotalFloat", "IsCritical", "StatusTime", "ActualDuration", "ActualStart", "ActualFinish", "RemainingTime", "Completion", "Recurrence"],
            Self::IfcTaskType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ProcessType", "PredefinedType", "WorkMethod"],
            Self::IfcTelecomAddress => &["Purpose", "Description", "UserDefinedPurpose", "TelephoneNumbers", "FacsimileNumbers", "PagerNumber", "ElectronicMailAddresses", "WWWHomePageURL", "MessagingIDs"],
            Self::IfcTendon => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "PredefinedType", "NominalDiameter", "CrossSectionArea", "TensionForce", "PreStress", "FrictionCoefficient", "AnchorageSlip", "MinCurvatureRadius"],
            Self::IfcTendonAnchor => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "PredefinedType"],
            Self::IfcTendonAnchorType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcTendonConduit => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "PredefinedType"],
            Self::IfcTendonConduitType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcTendonType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "NominalDiameter", "CrossSectionArea", "SheathDiameter"],
            Self::IfcTessellatedFaceSet => &["Coordinates"],
            Self::IfcTessellatedItem => &[],
            Self::IfcTextLiteral => &["Literal", "Placement", "Path"],
            Self::IfcTextLiteralWithExtent => &["Literal", "Placement", "Path", "Extent", "BoxAlignment"],
            Self::IfcTextStyle => &["Name", "TextCharacterAppearance", "TextStyle", "TextFontStyle", "ModelOrDraughting"],
            Self::IfcTextStyleFontModel => &["Name", "FontFamily", "FontStyle", "FontVariant", "FontWeight", "FontSize"],
            Self::IfcTextStyleForDefinedFont => &["Colour", "BackgroundColour"],
            Self::IfcTextStyleTextModel => &["TextIndent", "TextAlign", "TextDecoration", "LetterSpacing", "WordSpacing", "TextTransform", "LineHeight"],
            Self::IfcTextureCoordinate => &["Maps"],
            Self::IfcTextureCoordinateGenerator => &["Maps", "Mode", "Parameter"],
            Self::IfcTextureMap => &["Maps", "Vertices", "MappedTo"],
            Self::IfcTextureVertex => &["Coordinates"],
            Self::IfcTextureVertexList => &["TexCoordsList"],
            Self::IfcTimePeriod => &["StartTime", "EndTime"],
            Self::IfcTimeSeries => &["Name", "Description", "StartTime", "EndTime", "TimeSeriesDataType", "DataOrigin", "UserDefinedDataOrigin", "Unit"],
            Self::IfcTimeSeriesValue => &["ListValues"],
            Self::IfcTopologicalRepresentationItem => &[],
            Self::IfcTopologyRepresentation => &["ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items"],
            Self::IfcToroidalSurface => &["Position", "MajorRadius", "MinorRadius"],
            Self::IfcTransformer => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcTransformerType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcTransitionCurveSegment2D => &["StartPoint", "StartDirection", "SegmentLength", "StartRadius", "EndRadius", "IsStartRadiusCCW", "IsEndRadiusCCW", "TransitionCurveType"],
            Self::IfcTransportElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcTransportElementType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcTrapeziumProfileDef => &["ProfileType", "ProfileName", "Position", "BottomXDim", "TopXDim", "YDim", "TopXOffset"],
            Self::IfcTriangulatedFaceSet => &["Coordinates", "Normals", "Closed", "CoordIndex", "PnIndex"],
            Self::IfcTriangulatedIrregularNetwork => &["Coordinates", "Normals", "Closed", "CoordIndex", "PnIndex", "Flags"],
            Self::IfcTrimmedCurve => &["BasisCurve", "Trim1", "Trim2", "SenseAgreement", "MasterRepresentation"],
            Self::IfcTubeBundle => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcTubeBundleType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcTypeObject => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets"],
            Self::IfcTypeProcess => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ProcessType"],
            Self::IfcTypeProduct => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag"],
            Self::IfcTypeResource => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType"],
            Self::IfcUShapeProfileDef => &["ProfileType", "ProfileName", "Position", "Depth", "FlangeWidth", "WebThickness", "FlangeThickness", "FilletRadius", "EdgeRadius", "FlangeSlope"],
            Self::IfcUnitAssignment => &["Units"],
            Self::IfcUnitaryControlElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcUnitaryControlElementType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcUnitaryEquipment => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcUnitaryEquipmentType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcValve => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcValveType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcVector => &["Orientation", "Magnitude"],
            Self::IfcVertex => &[],
            Self::IfcVertexLoop => &["LoopVertex"],
            Self::IfcVertexPoint => &["VertexGeometry"],
            Self::IfcVibrationDamper => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcVibrationDamperType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcVibrationIsolator => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcVibrationIsolatorType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcVirtualElement => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag"],
            Self::IfcVirtualGridIntersection => &["IntersectingAxes", "OffsetDistances"],
            Self::IfcVoidingFeature => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcWall => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcWallElementedCase => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcWallStandardCase => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcWallType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcWasteTerminal => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType"],
            Self::IfcWasteTerminalType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType"],
            Self::IfcWindow => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "OverallHeight", "OverallWidth", "PredefinedType", "PartitioningType", "UserDefinedPartitioningType"],
            Self::IfcWindowLiningProperties => &["GlobalId", "OwnerHistory", "Name", "Description", "LiningDepth", "LiningThickness", "TransomThickness", "MullionThickness", "FirstTransomOffset", "SecondTransomOffset", "FirstMullionOffset", "SecondMullionOffset", "ShapeAspectStyle", "LiningOffset", "LiningToPanelOffsetX", "LiningToPanelOffsetY"],
            Self::IfcWindowPanelProperties => &["GlobalId", "OwnerHistory", "Name", "Description", "OperationType", "PanelPosition", "FrameDepth", "FrameThickness", "ShapeAspectStyle"],
            Self::IfcWindowStandardCase => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "OverallHeight", "OverallWidth", "PredefinedType", "PartitioningType", "UserDefinedPartitioningType"],
            Self::IfcWindowStyle => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ConstructionType", "OperationType", "ParameterTakesPrecedence", "Sizeable"],
            Self::IfcWindowType => &["GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "PartitioningType", "ParameterTakesPrecedence", "UserDefinedPartitioningType"],
            Self::IfcWorkCalendar => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "WorkingTimes", "ExceptionTimes", "PredefinedType"],
            Self::IfcWorkControl => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "CreationDate", "Creators", "Purpose", "Duration", "TotalFloat", "StartTime", "FinishTime"],
            Self::IfcWorkPlan => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "CreationDate", "Creators", "Purpose", "Duration", "TotalFloat", "StartTime", "FinishTime", "PredefinedType"],
            Self::IfcWorkSchedule => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "CreationDate", "Creators", "Purpose", "Duration", "TotalFloat", "StartTime", "FinishTime", "PredefinedType"],
            Self::IfcWorkTime => &["Name", "DataOrigin", "UserDefinedDataOrigin", "RecurrencePattern", "Start", "Finish"],
            Self::IfcZShapeProfileDef => &["ProfileType", "ProfileName", "Position", "Depth", "FlangeWidth", "WebThickness", "FlangeThickness", "FilletRadius", "EdgeRadius"],
            Self::IfcZone => &["GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName"],
            Self::Unknown(_) => &[],
        }
    }

    /// The position of a named attribute, for DecodedEntity::get.
    ///
    /// Case-sensitive: EXPRESS attribute names are PascalCase and the schema's
    /// spelling is the only one that resolves.
    pub fn attribute_index(&self, name: &str) -> Option<usize> {
        self.attribute_names().iter().position(|n| *n == name)
    }

    /// Whether IFC4X2 itself declares this class.
    ///
    /// The enum is one exact-name universe across every supported release;
    /// a variant that only a supplemental (older) schema declares keeps its
    /// name but carries no positional metadata here (its
    /// `attribute_names()` is empty). A per-schema registry that must fail
    /// closed for a class the declared FILE_SCHEMA does not know consults
    /// this rather than the emptiness of the attribute list, which a genuine
    /// zero-attribute class shares (#4203).
    pub fn declared_by_canonical_schema(&self) -> bool {
        !matches!(self, Self::Unknown(_))
    }
}

/// Every entity type this schema defines, in declaration order.
///
/// A slice and not an array: the length is a property of the schema, and
/// baking it into the type would make the next IFC release a breaking
/// change for anyone who names it.
///
/// The enum is exhaustive but not enumerable: the Unknown(u32) variant
/// makes it open, and the CRC32 ids are sparse, so neither from_id nor a
/// range gives a caller the catalog. A consumer that has to reason about the
/// WHOLE schema — mapping every class to some other vocabulary, auditing
/// which ones it covers, generating a table — otherwise has to re-parse
/// the EXPRESS file or scrape this one.
pub(crate) static ALL: &[IfcType] = &[
    IfcType::IfcActionRequest,
    IfcType::IfcActor,
    IfcType::IfcActorRole,
    IfcType::IfcActuator,
    IfcType::IfcActuatorType,
    IfcType::IfcAddress,
    IfcType::IfcAdvancedBrep,
    IfcType::IfcAdvancedBrepWithVoids,
    IfcType::IfcAdvancedFace,
    IfcType::IfcAirTerminal,
    IfcType::IfcAirTerminalBox,
    IfcType::IfcAirTerminalBoxType,
    IfcType::IfcAirTerminalType,
    IfcType::IfcAirToAirHeatRecovery,
    IfcType::IfcAirToAirHeatRecoveryType,
    IfcType::IfcAlarm,
    IfcType::IfcAlarmType,
    IfcType::IfcAlignment,
    IfcType::IfcAlignment2DHorizontal,
    IfcType::IfcAlignment2DHorizontalSegment,
    IfcType::IfcAlignment2DSegment,
    IfcType::IfcAlignment2DVerSegCircularArc,
    IfcType::IfcAlignment2DVerSegLine,
    IfcType::IfcAlignment2DVerSegParabolicArc,
    IfcType::IfcAlignment2DVertical,
    IfcType::IfcAlignment2DVerticalSegment,
    IfcType::IfcAlignmentCurve,
    IfcType::IfcAnnotation,
    IfcType::IfcAnnotationFillArea,
    IfcType::IfcApplication,
    IfcType::IfcAppliedValue,
    IfcType::IfcApproval,
    IfcType::IfcApprovalRelationship,
    IfcType::IfcArbitraryClosedProfileDef,
    IfcType::IfcArbitraryOpenProfileDef,
    IfcType::IfcArbitraryProfileDefWithVoids,
    IfcType::IfcAsset,
    IfcType::IfcAsymmetricIShapeProfileDef,
    IfcType::IfcAudioVisualAppliance,
    IfcType::IfcAudioVisualApplianceType,
    IfcType::IfcAxis1Placement,
    IfcType::IfcAxis2Placement2D,
    IfcType::IfcAxis2Placement3D,
    IfcType::IfcBSplineCurve,
    IfcType::IfcBSplineCurveWithKnots,
    IfcType::IfcBSplineSurface,
    IfcType::IfcBSplineSurfaceWithKnots,
    IfcType::IfcBeam,
    IfcType::IfcBeamStandardCase,
    IfcType::IfcBeamType,
    IfcType::IfcBearing,
    IfcType::IfcBearingType,
    IfcType::IfcBlobTexture,
    IfcType::IfcBlock,
    IfcType::IfcBoiler,
    IfcType::IfcBoilerType,
    IfcType::IfcBooleanClippingResult,
    IfcType::IfcBooleanResult,
    IfcType::IfcBoundaryCondition,
    IfcType::IfcBoundaryCurve,
    IfcType::IfcBoundaryEdgeCondition,
    IfcType::IfcBoundaryFaceCondition,
    IfcType::IfcBoundaryNodeCondition,
    IfcType::IfcBoundaryNodeConditionWarping,
    IfcType::IfcBoundedCurve,
    IfcType::IfcBoundedSurface,
    IfcType::IfcBoundingBox,
    IfcType::IfcBoxedHalfSpace,
    IfcType::IfcBridge,
    IfcType::IfcBridgePart,
    IfcType::IfcBuilding,
    IfcType::IfcBuildingElement,
    IfcType::IfcBuildingElementPart,
    IfcType::IfcBuildingElementPartType,
    IfcType::IfcBuildingElementProxy,
    IfcType::IfcBuildingElementProxyType,
    IfcType::IfcBuildingElementType,
    IfcType::IfcBuildingStorey,
    IfcType::IfcBuildingSystem,
    IfcType::IfcBurner,
    IfcType::IfcBurnerType,
    IfcType::IfcCShapeProfileDef,
    IfcType::IfcCableCarrierFitting,
    IfcType::IfcCableCarrierFittingType,
    IfcType::IfcCableCarrierSegment,
    IfcType::IfcCableCarrierSegmentType,
    IfcType::IfcCableFitting,
    IfcType::IfcCableFittingType,
    IfcType::IfcCableSegment,
    IfcType::IfcCableSegmentType,
    IfcType::IfcCaissonFoundation,
    IfcType::IfcCaissonFoundationType,
    IfcType::IfcCartesianPoint,
    IfcType::IfcCartesianPointList,
    IfcType::IfcCartesianPointList2D,
    IfcType::IfcCartesianPointList3D,
    IfcType::IfcCartesianTransformationOperator,
    IfcType::IfcCartesianTransformationOperator2D,
    IfcType::IfcCartesianTransformationOperator2DnonUniform,
    IfcType::IfcCartesianTransformationOperator3D,
    IfcType::IfcCartesianTransformationOperator3DnonUniform,
    IfcType::IfcCenterLineProfileDef,
    IfcType::IfcChiller,
    IfcType::IfcChillerType,
    IfcType::IfcChimney,
    IfcType::IfcChimneyType,
    IfcType::IfcCircle,
    IfcType::IfcCircleHollowProfileDef,
    IfcType::IfcCircleProfileDef,
    IfcType::IfcCircularArcSegment2D,
    IfcType::IfcCivilElement,
    IfcType::IfcCivilElementType,
    IfcType::IfcClassification,
    IfcType::IfcClassificationReference,
    IfcType::IfcClosedShell,
    IfcType::IfcCoil,
    IfcType::IfcCoilType,
    IfcType::IfcColourRgb,
    IfcType::IfcColourRgbList,
    IfcType::IfcColourSpecification,
    IfcType::IfcColumn,
    IfcType::IfcColumnStandardCase,
    IfcType::IfcColumnType,
    IfcType::IfcCommunicationsAppliance,
    IfcType::IfcCommunicationsApplianceType,
    IfcType::IfcComplexProperty,
    IfcType::IfcComplexPropertyTemplate,
    IfcType::IfcCompositeCurve,
    IfcType::IfcCompositeCurveOnSurface,
    IfcType::IfcCompositeCurveSegment,
    IfcType::IfcCompositeProfileDef,
    IfcType::IfcCompressor,
    IfcType::IfcCompressorType,
    IfcType::IfcCondenser,
    IfcType::IfcCondenserType,
    IfcType::IfcConic,
    IfcType::IfcConnectedFaceSet,
    IfcType::IfcConnectionCurveGeometry,
    IfcType::IfcConnectionGeometry,
    IfcType::IfcConnectionPointEccentricity,
    IfcType::IfcConnectionPointGeometry,
    IfcType::IfcConnectionSurfaceGeometry,
    IfcType::IfcConnectionVolumeGeometry,
    IfcType::IfcConstraint,
    IfcType::IfcConstructionEquipmentResource,
    IfcType::IfcConstructionEquipmentResourceType,
    IfcType::IfcConstructionMaterialResource,
    IfcType::IfcConstructionMaterialResourceType,
    IfcType::IfcConstructionProductResource,
    IfcType::IfcConstructionProductResourceType,
    IfcType::IfcConstructionResource,
    IfcType::IfcConstructionResourceType,
    IfcType::IfcContext,
    IfcType::IfcContextDependentUnit,
    IfcType::IfcControl,
    IfcType::IfcController,
    IfcType::IfcControllerType,
    IfcType::IfcConversionBasedUnit,
    IfcType::IfcConversionBasedUnitWithOffset,
    IfcType::IfcCooledBeam,
    IfcType::IfcCooledBeamType,
    IfcType::IfcCoolingTower,
    IfcType::IfcCoolingTowerType,
    IfcType::IfcCoordinateOperation,
    IfcType::IfcCoordinateReferenceSystem,
    IfcType::IfcCostItem,
    IfcType::IfcCostSchedule,
    IfcType::IfcCostValue,
    IfcType::IfcCovering,
    IfcType::IfcCoveringType,
    IfcType::IfcCrewResource,
    IfcType::IfcCrewResourceType,
    IfcType::IfcCsgPrimitive3D,
    IfcType::IfcCsgSolid,
    IfcType::IfcCurrencyRelationship,
    IfcType::IfcCurtainWall,
    IfcType::IfcCurtainWallType,
    IfcType::IfcCurve,
    IfcType::IfcCurveBoundedPlane,
    IfcType::IfcCurveBoundedSurface,
    IfcType::IfcCurveSegment2D,
    IfcType::IfcCurveStyle,
    IfcType::IfcCurveStyleFont,
    IfcType::IfcCurveStyleFontAndScaling,
    IfcType::IfcCurveStyleFontPattern,
    IfcType::IfcCylindricalSurface,
    IfcType::IfcDamper,
    IfcType::IfcDamperType,
    IfcType::IfcDeepFoundation,
    IfcType::IfcDeepFoundationType,
    IfcType::IfcDerivedProfileDef,
    IfcType::IfcDerivedUnit,
    IfcType::IfcDerivedUnitElement,
    IfcType::IfcDimensionalExponents,
    IfcType::IfcDirection,
    IfcType::IfcDiscreteAccessory,
    IfcType::IfcDiscreteAccessoryType,
    IfcType::IfcDistanceExpression,
    IfcType::IfcDistributionChamberElement,
    IfcType::IfcDistributionChamberElementType,
    IfcType::IfcDistributionCircuit,
    IfcType::IfcDistributionControlElement,
    IfcType::IfcDistributionControlElementType,
    IfcType::IfcDistributionElement,
    IfcType::IfcDistributionElementType,
    IfcType::IfcDistributionFlowElement,
    IfcType::IfcDistributionFlowElementType,
    IfcType::IfcDistributionPort,
    IfcType::IfcDistributionSystem,
    IfcType::IfcDocumentInformation,
    IfcType::IfcDocumentInformationRelationship,
    IfcType::IfcDocumentReference,
    IfcType::IfcDoor,
    IfcType::IfcDoorLiningProperties,
    IfcType::IfcDoorPanelProperties,
    IfcType::IfcDoorStandardCase,
    IfcType::IfcDoorStyle,
    IfcType::IfcDoorType,
    IfcType::IfcDraughtingPreDefinedColour,
    IfcType::IfcDraughtingPreDefinedCurveFont,
    IfcType::IfcDuctFitting,
    IfcType::IfcDuctFittingType,
    IfcType::IfcDuctSegment,
    IfcType::IfcDuctSegmentType,
    IfcType::IfcDuctSilencer,
    IfcType::IfcDuctSilencerType,
    IfcType::IfcEdge,
    IfcType::IfcEdgeCurve,
    IfcType::IfcEdgeLoop,
    IfcType::IfcElectricAppliance,
    IfcType::IfcElectricApplianceType,
    IfcType::IfcElectricDistributionBoard,
    IfcType::IfcElectricDistributionBoardType,
    IfcType::IfcElectricFlowStorageDevice,
    IfcType::IfcElectricFlowStorageDeviceType,
    IfcType::IfcElectricGenerator,
    IfcType::IfcElectricGeneratorType,
    IfcType::IfcElectricMotor,
    IfcType::IfcElectricMotorType,
    IfcType::IfcElectricTimeControl,
    IfcType::IfcElectricTimeControlType,
    IfcType::IfcElement,
    IfcType::IfcElementAssembly,
    IfcType::IfcElementAssemblyType,
    IfcType::IfcElementComponent,
    IfcType::IfcElementComponentType,
    IfcType::IfcElementQuantity,
    IfcType::IfcElementType,
    IfcType::IfcElementarySurface,
    IfcType::IfcEllipse,
    IfcType::IfcEllipseProfileDef,
    IfcType::IfcEnergyConversionDevice,
    IfcType::IfcEnergyConversionDeviceType,
    IfcType::IfcEngine,
    IfcType::IfcEngineType,
    IfcType::IfcEvaporativeCooler,
    IfcType::IfcEvaporativeCoolerType,
    IfcType::IfcEvaporator,
    IfcType::IfcEvaporatorType,
    IfcType::IfcEvent,
    IfcType::IfcEventTime,
    IfcType::IfcEventType,
    IfcType::IfcExtendedProperties,
    IfcType::IfcExternalInformation,
    IfcType::IfcExternalReference,
    IfcType::IfcExternalReferenceRelationship,
    IfcType::IfcExternalSpatialElement,
    IfcType::IfcExternalSpatialStructureElement,
    IfcType::IfcExternallyDefinedHatchStyle,
    IfcType::IfcExternallyDefinedSurfaceStyle,
    IfcType::IfcExternallyDefinedTextFont,
    IfcType::IfcExtrudedAreaSolid,
    IfcType::IfcExtrudedAreaSolidTapered,
    IfcType::IfcFace,
    IfcType::IfcFaceBasedSurfaceModel,
    IfcType::IfcFaceBound,
    IfcType::IfcFaceOuterBound,
    IfcType::IfcFaceSurface,
    IfcType::IfcFacetedBrep,
    IfcType::IfcFacetedBrepWithVoids,
    IfcType::IfcFacility,
    IfcType::IfcFacilityPart,
    IfcType::IfcFailureConnectionCondition,
    IfcType::IfcFan,
    IfcType::IfcFanType,
    IfcType::IfcFastener,
    IfcType::IfcFastenerType,
    IfcType::IfcFeatureElement,
    IfcType::IfcFeatureElementAddition,
    IfcType::IfcFeatureElementSubtraction,
    IfcType::IfcFillAreaStyle,
    IfcType::IfcFillAreaStyleHatching,
    IfcType::IfcFillAreaStyleTiles,
    IfcType::IfcFilter,
    IfcType::IfcFilterType,
    IfcType::IfcFireSuppressionTerminal,
    IfcType::IfcFireSuppressionTerminalType,
    IfcType::IfcFixedReferenceSweptAreaSolid,
    IfcType::IfcFlowController,
    IfcType::IfcFlowControllerType,
    IfcType::IfcFlowFitting,
    IfcType::IfcFlowFittingType,
    IfcType::IfcFlowInstrument,
    IfcType::IfcFlowInstrumentType,
    IfcType::IfcFlowMeter,
    IfcType::IfcFlowMeterType,
    IfcType::IfcFlowMovingDevice,
    IfcType::IfcFlowMovingDeviceType,
    IfcType::IfcFlowSegment,
    IfcType::IfcFlowSegmentType,
    IfcType::IfcFlowStorageDevice,
    IfcType::IfcFlowStorageDeviceType,
    IfcType::IfcFlowTerminal,
    IfcType::IfcFlowTerminalType,
    IfcType::IfcFlowTreatmentDevice,
    IfcType::IfcFlowTreatmentDeviceType,
    IfcType::IfcFooting,
    IfcType::IfcFootingType,
    IfcType::IfcFurnishingElement,
    IfcType::IfcFurnishingElementType,
    IfcType::IfcFurniture,
    IfcType::IfcFurnitureType,
    IfcType::IfcGeographicElement,
    IfcType::IfcGeographicElementType,
    IfcType::IfcGeometricCurveSet,
    IfcType::IfcGeometricRepresentationContext,
    IfcType::IfcGeometricRepresentationItem,
    IfcType::IfcGeometricRepresentationSubContext,
    IfcType::IfcGeometricSet,
    IfcType::IfcGrid,
    IfcType::IfcGridAxis,
    IfcType::IfcGridPlacement,
    IfcType::IfcGroup,
    IfcType::IfcHalfSpaceSolid,
    IfcType::IfcHeatExchanger,
    IfcType::IfcHeatExchangerType,
    IfcType::IfcHumidifier,
    IfcType::IfcHumidifierType,
    IfcType::IfcIShapeProfileDef,
    IfcType::IfcImageTexture,
    IfcType::IfcIndexedColourMap,
    IfcType::IfcIndexedPolyCurve,
    IfcType::IfcIndexedPolygonalFace,
    IfcType::IfcIndexedPolygonalFaceWithVoids,
    IfcType::IfcIndexedTextureMap,
    IfcType::IfcIndexedTriangleTextureMap,
    IfcType::IfcInterceptor,
    IfcType::IfcInterceptorType,
    IfcType::IfcIntersectionCurve,
    IfcType::IfcInventory,
    IfcType::IfcIrregularTimeSeries,
    IfcType::IfcIrregularTimeSeriesValue,
    IfcType::IfcJunctionBox,
    IfcType::IfcJunctionBoxType,
    IfcType::IfcLShapeProfileDef,
    IfcType::IfcLaborResource,
    IfcType::IfcLaborResourceType,
    IfcType::IfcLagTime,
    IfcType::IfcLamp,
    IfcType::IfcLampType,
    IfcType::IfcLibraryInformation,
    IfcType::IfcLibraryReference,
    IfcType::IfcLightDistributionData,
    IfcType::IfcLightFixture,
    IfcType::IfcLightFixtureType,
    IfcType::IfcLightIntensityDistribution,
    IfcType::IfcLightSource,
    IfcType::IfcLightSourceAmbient,
    IfcType::IfcLightSourceDirectional,
    IfcType::IfcLightSourceGoniometric,
    IfcType::IfcLightSourcePositional,
    IfcType::IfcLightSourceSpot,
    IfcType::IfcLine,
    IfcType::IfcLineSegment2D,
    IfcType::IfcLinearPlacement,
    IfcType::IfcLinearPositioningElement,
    IfcType::IfcLocalPlacement,
    IfcType::IfcLoop,
    IfcType::IfcManifoldSolidBrep,
    IfcType::IfcMapConversion,
    IfcType::IfcMappedItem,
    IfcType::IfcMaterial,
    IfcType::IfcMaterialClassificationRelationship,
    IfcType::IfcMaterialConstituent,
    IfcType::IfcMaterialConstituentSet,
    IfcType::IfcMaterialDefinition,
    IfcType::IfcMaterialDefinitionRepresentation,
    IfcType::IfcMaterialLayer,
    IfcType::IfcMaterialLayerSet,
    IfcType::IfcMaterialLayerSetUsage,
    IfcType::IfcMaterialLayerWithOffsets,
    IfcType::IfcMaterialList,
    IfcType::IfcMaterialProfile,
    IfcType::IfcMaterialProfileSet,
    IfcType::IfcMaterialProfileSetUsage,
    IfcType::IfcMaterialProfileSetUsageTapering,
    IfcType::IfcMaterialProfileWithOffsets,
    IfcType::IfcMaterialProperties,
    IfcType::IfcMaterialRelationship,
    IfcType::IfcMaterialUsageDefinition,
    IfcType::IfcMeasureWithUnit,
    IfcType::IfcMechanicalFastener,
    IfcType::IfcMechanicalFastenerType,
    IfcType::IfcMedicalDevice,
    IfcType::IfcMedicalDeviceType,
    IfcType::IfcMember,
    IfcType::IfcMemberStandardCase,
    IfcType::IfcMemberType,
    IfcType::IfcMetric,
    IfcType::IfcMirroredProfileDef,
    IfcType::IfcMonetaryUnit,
    IfcType::IfcMotorConnection,
    IfcType::IfcMotorConnectionType,
    IfcType::IfcNamedUnit,
    IfcType::IfcObject,
    IfcType::IfcObjectDefinition,
    IfcType::IfcObjectPlacement,
    IfcType::IfcObjective,
    IfcType::IfcOccupant,
    IfcType::IfcOffsetCurve,
    IfcType::IfcOffsetCurve2D,
    IfcType::IfcOffsetCurve3D,
    IfcType::IfcOffsetCurveByDistances,
    IfcType::IfcOpenShell,
    IfcType::IfcOpeningElement,
    IfcType::IfcOpeningStandardCase,
    IfcType::IfcOrganization,
    IfcType::IfcOrganizationRelationship,
    IfcType::IfcOrientationExpression,
    IfcType::IfcOrientedEdge,
    IfcType::IfcOuterBoundaryCurve,
    IfcType::IfcOutlet,
    IfcType::IfcOutletType,
    IfcType::IfcOwnerHistory,
    IfcType::IfcParameterizedProfileDef,
    IfcType::IfcPath,
    IfcType::IfcPcurve,
    IfcType::IfcPerformanceHistory,
    IfcType::IfcPermeableCoveringProperties,
    IfcType::IfcPermit,
    IfcType::IfcPerson,
    IfcType::IfcPersonAndOrganization,
    IfcType::IfcPhysicalComplexQuantity,
    IfcType::IfcPhysicalQuantity,
    IfcType::IfcPhysicalSimpleQuantity,
    IfcType::IfcPile,
    IfcType::IfcPileType,
    IfcType::IfcPipeFitting,
    IfcType::IfcPipeFittingType,
    IfcType::IfcPipeSegment,
    IfcType::IfcPipeSegmentType,
    IfcType::IfcPixelTexture,
    IfcType::IfcPlacement,
    IfcType::IfcPlanarBox,
    IfcType::IfcPlanarExtent,
    IfcType::IfcPlane,
    IfcType::IfcPlate,
    IfcType::IfcPlateStandardCase,
    IfcType::IfcPlateType,
    IfcType::IfcPoint,
    IfcType::IfcPointOnCurve,
    IfcType::IfcPointOnSurface,
    IfcType::IfcPolyLoop,
    IfcType::IfcPolygonalBoundedHalfSpace,
    IfcType::IfcPolygonalFaceSet,
    IfcType::IfcPolyline,
    IfcType::IfcPort,
    IfcType::IfcPositioningElement,
    IfcType::IfcPostalAddress,
    IfcType::IfcPreDefinedColour,
    IfcType::IfcPreDefinedCurveFont,
    IfcType::IfcPreDefinedItem,
    IfcType::IfcPreDefinedProperties,
    IfcType::IfcPreDefinedPropertySet,
    IfcType::IfcPreDefinedTextFont,
    IfcType::IfcPresentationItem,
    IfcType::IfcPresentationLayerAssignment,
    IfcType::IfcPresentationLayerWithStyle,
    IfcType::IfcPresentationStyle,
    IfcType::IfcPresentationStyleAssignment,
    IfcType::IfcProcedure,
    IfcType::IfcProcedureType,
    IfcType::IfcProcess,
    IfcType::IfcProduct,
    IfcType::IfcProductDefinitionShape,
    IfcType::IfcProductRepresentation,
    IfcType::IfcProfileDef,
    IfcType::IfcProfileProperties,
    IfcType::IfcProject,
    IfcType::IfcProjectLibrary,
    IfcType::IfcProjectOrder,
    IfcType::IfcProjectedCRS,
    IfcType::IfcProjectionElement,
    IfcType::IfcProperty,
    IfcType::IfcPropertyAbstraction,
    IfcType::IfcPropertyBoundedValue,
    IfcType::IfcPropertyDefinition,
    IfcType::IfcPropertyDependencyRelationship,
    IfcType::IfcPropertyEnumeratedValue,
    IfcType::IfcPropertyEnumeration,
    IfcType::IfcPropertyListValue,
    IfcType::IfcPropertyReferenceValue,
    IfcType::IfcPropertySet,
    IfcType::IfcPropertySetDefinition,
    IfcType::IfcPropertySetTemplate,
    IfcType::IfcPropertySingleValue,
    IfcType::IfcPropertyTableValue,
    IfcType::IfcPropertyTemplate,
    IfcType::IfcPropertyTemplateDefinition,
    IfcType::IfcProtectiveDevice,
    IfcType::IfcProtectiveDeviceTrippingUnit,
    IfcType::IfcProtectiveDeviceTrippingUnitType,
    IfcType::IfcProtectiveDeviceType,
    IfcType::IfcProxy,
    IfcType::IfcPump,
    IfcType::IfcPumpType,
    IfcType::IfcQuantityArea,
    IfcType::IfcQuantityCount,
    IfcType::IfcQuantityLength,
    IfcType::IfcQuantitySet,
    IfcType::IfcQuantityTime,
    IfcType::IfcQuantityVolume,
    IfcType::IfcQuantityWeight,
    IfcType::IfcRailing,
    IfcType::IfcRailingType,
    IfcType::IfcRamp,
    IfcType::IfcRampFlight,
    IfcType::IfcRampFlightType,
    IfcType::IfcRampType,
    IfcType::IfcRationalBSplineCurveWithKnots,
    IfcType::IfcRationalBSplineSurfaceWithKnots,
    IfcType::IfcRectangleHollowProfileDef,
    IfcType::IfcRectangleProfileDef,
    IfcType::IfcRectangularPyramid,
    IfcType::IfcRectangularTrimmedSurface,
    IfcType::IfcRecurrencePattern,
    IfcType::IfcReference,
    IfcType::IfcReferent,
    IfcType::IfcRegularTimeSeries,
    IfcType::IfcReinforcementBarProperties,
    IfcType::IfcReinforcementDefinitionProperties,
    IfcType::IfcReinforcingBar,
    IfcType::IfcReinforcingBarType,
    IfcType::IfcReinforcingElement,
    IfcType::IfcReinforcingElementType,
    IfcType::IfcReinforcingMesh,
    IfcType::IfcReinforcingMeshType,
    IfcType::IfcRelAggregates,
    IfcType::IfcRelAssigns,
    IfcType::IfcRelAssignsToActor,
    IfcType::IfcRelAssignsToControl,
    IfcType::IfcRelAssignsToGroup,
    IfcType::IfcRelAssignsToGroupByFactor,
    IfcType::IfcRelAssignsToProcess,
    IfcType::IfcRelAssignsToProduct,
    IfcType::IfcRelAssignsToResource,
    IfcType::IfcRelAssociates,
    IfcType::IfcRelAssociatesApproval,
    IfcType::IfcRelAssociatesClassification,
    IfcType::IfcRelAssociatesConstraint,
    IfcType::IfcRelAssociatesDocument,
    IfcType::IfcRelAssociatesLibrary,
    IfcType::IfcRelAssociatesMaterial,
    IfcType::IfcRelConnects,
    IfcType::IfcRelConnectsElements,
    IfcType::IfcRelConnectsPathElements,
    IfcType::IfcRelConnectsPortToElement,
    IfcType::IfcRelConnectsPorts,
    IfcType::IfcRelConnectsStructuralActivity,
    IfcType::IfcRelConnectsStructuralMember,
    IfcType::IfcRelConnectsWithEccentricity,
    IfcType::IfcRelConnectsWithRealizingElements,
    IfcType::IfcRelContainedInSpatialStructure,
    IfcType::IfcRelCoversBldgElements,
    IfcType::IfcRelCoversSpaces,
    IfcType::IfcRelDeclares,
    IfcType::IfcRelDecomposes,
    IfcType::IfcRelDefines,
    IfcType::IfcRelDefinesByObject,
    IfcType::IfcRelDefinesByProperties,
    IfcType::IfcRelDefinesByTemplate,
    IfcType::IfcRelDefinesByType,
    IfcType::IfcRelFillsElement,
    IfcType::IfcRelFlowControlElements,
    IfcType::IfcRelInterferesElements,
    IfcType::IfcRelNests,
    IfcType::IfcRelPositions,
    IfcType::IfcRelProjectsElement,
    IfcType::IfcRelReferencedInSpatialStructure,
    IfcType::IfcRelSequence,
    IfcType::IfcRelServicesBuildings,
    IfcType::IfcRelSpaceBoundary,
    IfcType::IfcRelSpaceBoundary1stLevel,
    IfcType::IfcRelSpaceBoundary2ndLevel,
    IfcType::IfcRelVoidsElement,
    IfcType::IfcRelationship,
    IfcType::IfcReparametrisedCompositeCurveSegment,
    IfcType::IfcRepresentation,
    IfcType::IfcRepresentationContext,
    IfcType::IfcRepresentationItem,
    IfcType::IfcRepresentationMap,
    IfcType::IfcResource,
    IfcType::IfcResourceApprovalRelationship,
    IfcType::IfcResourceConstraintRelationship,
    IfcType::IfcResourceLevelRelationship,
    IfcType::IfcResourceTime,
    IfcType::IfcRevolvedAreaSolid,
    IfcType::IfcRevolvedAreaSolidTapered,
    IfcType::IfcRightCircularCone,
    IfcType::IfcRightCircularCylinder,
    IfcType::IfcRoof,
    IfcType::IfcRoofType,
    IfcType::IfcRoot,
    IfcType::IfcRoundedRectangleProfileDef,
    IfcType::IfcSIUnit,
    IfcType::IfcSanitaryTerminal,
    IfcType::IfcSanitaryTerminalType,
    IfcType::IfcSchedulingTime,
    IfcType::IfcSeamCurve,
    IfcType::IfcSectionProperties,
    IfcType::IfcSectionReinforcementProperties,
    IfcType::IfcSectionedSolid,
    IfcType::IfcSectionedSolidHorizontal,
    IfcType::IfcSectionedSpine,
    IfcType::IfcSensor,
    IfcType::IfcSensorType,
    IfcType::IfcShadingDevice,
    IfcType::IfcShadingDeviceType,
    IfcType::IfcShapeAspect,
    IfcType::IfcShapeModel,
    IfcType::IfcShapeRepresentation,
    IfcType::IfcShellBasedSurfaceModel,
    IfcType::IfcSimpleProperty,
    IfcType::IfcSimplePropertyTemplate,
    IfcType::IfcSite,
    IfcType::IfcSlab,
    IfcType::IfcSlabElementedCase,
    IfcType::IfcSlabStandardCase,
    IfcType::IfcSlabType,
    IfcType::IfcSlippageConnectionCondition,
    IfcType::IfcSolarDevice,
    IfcType::IfcSolarDeviceType,
    IfcType::IfcSolidModel,
    IfcType::IfcSpace,
    IfcType::IfcSpaceHeater,
    IfcType::IfcSpaceHeaterType,
    IfcType::IfcSpaceType,
    IfcType::IfcSpatialElement,
    IfcType::IfcSpatialElementType,
    IfcType::IfcSpatialStructureElement,
    IfcType::IfcSpatialStructureElementType,
    IfcType::IfcSpatialZone,
    IfcType::IfcSpatialZoneType,
    IfcType::IfcSphere,
    IfcType::IfcSphericalSurface,
    IfcType::IfcStackTerminal,
    IfcType::IfcStackTerminalType,
    IfcType::IfcStair,
    IfcType::IfcStairFlight,
    IfcType::IfcStairFlightType,
    IfcType::IfcStairType,
    IfcType::IfcStructuralAction,
    IfcType::IfcStructuralActivity,
    IfcType::IfcStructuralAnalysisModel,
    IfcType::IfcStructuralConnection,
    IfcType::IfcStructuralConnectionCondition,
    IfcType::IfcStructuralCurveAction,
    IfcType::IfcStructuralCurveConnection,
    IfcType::IfcStructuralCurveMember,
    IfcType::IfcStructuralCurveMemberVarying,
    IfcType::IfcStructuralCurveReaction,
    IfcType::IfcStructuralItem,
    IfcType::IfcStructuralLinearAction,
    IfcType::IfcStructuralLoad,
    IfcType::IfcStructuralLoadCase,
    IfcType::IfcStructuralLoadConfiguration,
    IfcType::IfcStructuralLoadGroup,
    IfcType::IfcStructuralLoadLinearForce,
    IfcType::IfcStructuralLoadOrResult,
    IfcType::IfcStructuralLoadPlanarForce,
    IfcType::IfcStructuralLoadSingleDisplacement,
    IfcType::IfcStructuralLoadSingleDisplacementDistortion,
    IfcType::IfcStructuralLoadSingleForce,
    IfcType::IfcStructuralLoadSingleForceWarping,
    IfcType::IfcStructuralLoadStatic,
    IfcType::IfcStructuralLoadTemperature,
    IfcType::IfcStructuralMember,
    IfcType::IfcStructuralPlanarAction,
    IfcType::IfcStructuralPointAction,
    IfcType::IfcStructuralPointConnection,
    IfcType::IfcStructuralPointReaction,
    IfcType::IfcStructuralReaction,
    IfcType::IfcStructuralResultGroup,
    IfcType::IfcStructuralSurfaceAction,
    IfcType::IfcStructuralSurfaceConnection,
    IfcType::IfcStructuralSurfaceMember,
    IfcType::IfcStructuralSurfaceMemberVarying,
    IfcType::IfcStructuralSurfaceReaction,
    IfcType::IfcStyleModel,
    IfcType::IfcStyledItem,
    IfcType::IfcStyledRepresentation,
    IfcType::IfcSubContractResource,
    IfcType::IfcSubContractResourceType,
    IfcType::IfcSubedge,
    IfcType::IfcSurface,
    IfcType::IfcSurfaceCurve,
    IfcType::IfcSurfaceCurveSweptAreaSolid,
    IfcType::IfcSurfaceFeature,
    IfcType::IfcSurfaceOfLinearExtrusion,
    IfcType::IfcSurfaceOfRevolution,
    IfcType::IfcSurfaceReinforcementArea,
    IfcType::IfcSurfaceStyle,
    IfcType::IfcSurfaceStyleLighting,
    IfcType::IfcSurfaceStyleRefraction,
    IfcType::IfcSurfaceStyleRendering,
    IfcType::IfcSurfaceStyleShading,
    IfcType::IfcSurfaceStyleWithTextures,
    IfcType::IfcSurfaceTexture,
    IfcType::IfcSweptAreaSolid,
    IfcType::IfcSweptDiskSolid,
    IfcType::IfcSweptDiskSolidPolygonal,
    IfcType::IfcSweptSurface,
    IfcType::IfcSwitchingDevice,
    IfcType::IfcSwitchingDeviceType,
    IfcType::IfcSystem,
    IfcType::IfcSystemFurnitureElement,
    IfcType::IfcSystemFurnitureElementType,
    IfcType::IfcTShapeProfileDef,
    IfcType::IfcTable,
    IfcType::IfcTableColumn,
    IfcType::IfcTableRow,
    IfcType::IfcTank,
    IfcType::IfcTankType,
    IfcType::IfcTask,
    IfcType::IfcTaskTime,
    IfcType::IfcTaskTimeRecurring,
    IfcType::IfcTaskType,
    IfcType::IfcTelecomAddress,
    IfcType::IfcTendon,
    IfcType::IfcTendonAnchor,
    IfcType::IfcTendonAnchorType,
    IfcType::IfcTendonConduit,
    IfcType::IfcTendonConduitType,
    IfcType::IfcTendonType,
    IfcType::IfcTessellatedFaceSet,
    IfcType::IfcTessellatedItem,
    IfcType::IfcTextLiteral,
    IfcType::IfcTextLiteralWithExtent,
    IfcType::IfcTextStyle,
    IfcType::IfcTextStyleFontModel,
    IfcType::IfcTextStyleForDefinedFont,
    IfcType::IfcTextStyleTextModel,
    IfcType::IfcTextureCoordinate,
    IfcType::IfcTextureCoordinateGenerator,
    IfcType::IfcTextureMap,
    IfcType::IfcTextureVertex,
    IfcType::IfcTextureVertexList,
    IfcType::IfcTimePeriod,
    IfcType::IfcTimeSeries,
    IfcType::IfcTimeSeriesValue,
    IfcType::IfcTopologicalRepresentationItem,
    IfcType::IfcTopologyRepresentation,
    IfcType::IfcToroidalSurface,
    IfcType::IfcTransformer,
    IfcType::IfcTransformerType,
    IfcType::IfcTransitionCurveSegment2D,
    IfcType::IfcTransportElement,
    IfcType::IfcTransportElementType,
    IfcType::IfcTrapeziumProfileDef,
    IfcType::IfcTriangulatedFaceSet,
    IfcType::IfcTriangulatedIrregularNetwork,
    IfcType::IfcTrimmedCurve,
    IfcType::IfcTubeBundle,
    IfcType::IfcTubeBundleType,
    IfcType::IfcTypeObject,
    IfcType::IfcTypeProcess,
    IfcType::IfcTypeProduct,
    IfcType::IfcTypeResource,
    IfcType::IfcUShapeProfileDef,
    IfcType::IfcUnitAssignment,
    IfcType::IfcUnitaryControlElement,
    IfcType::IfcUnitaryControlElementType,
    IfcType::IfcUnitaryEquipment,
    IfcType::IfcUnitaryEquipmentType,
    IfcType::IfcValve,
    IfcType::IfcValveType,
    IfcType::IfcVector,
    IfcType::IfcVertex,
    IfcType::IfcVertexLoop,
    IfcType::IfcVertexPoint,
    IfcType::IfcVibrationDamper,
    IfcType::IfcVibrationDamperType,
    IfcType::IfcVibrationIsolator,
    IfcType::IfcVibrationIsolatorType,
    IfcType::IfcVirtualElement,
    IfcType::IfcVirtualGridIntersection,
    IfcType::IfcVoidingFeature,
    IfcType::IfcWall,
    IfcType::IfcWallElementedCase,
    IfcType::IfcWallStandardCase,
    IfcType::IfcWallType,
    IfcType::IfcWasteTerminal,
    IfcType::IfcWasteTerminalType,
    IfcType::IfcWindow,
    IfcType::IfcWindowLiningProperties,
    IfcType::IfcWindowPanelProperties,
    IfcType::IfcWindowStandardCase,
    IfcType::IfcWindowStyle,
    IfcType::IfcWindowType,
    IfcType::IfcWorkCalendar,
    IfcType::IfcWorkControl,
    IfcType::IfcWorkPlan,
    IfcType::IfcWorkSchedule,
    IfcType::IfcWorkTime,
    IfcType::IfcZShapeProfileDef,
    IfcType::IfcZone,
];

impl fmt::Display for IfcType {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(f, "{}", self.name())
    }
}

/// CRC32 hash function for unknown types
fn crc32_hash(s: &str) -> u32 {
    const TABLE: [u32; 256] = [
        0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
        0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
        0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,
        0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
        0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
        0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
        0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,
        0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
        0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,
        0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
        0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,
        0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
        0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,
        0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
        0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
        0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
        0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,
        0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
        0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,
        0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
        0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
        0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
        0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,
        0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
        0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
        0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
        0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,
        0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
        0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,
        0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
        0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,
        0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
        0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,
        0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
        0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
        0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
        0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,
        0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
        0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,
        0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
        0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,
        0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
        0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,
    ];

    let mut crc = 0xffffffffu32;
    for byte in s.bytes() {
        crc = TABLE[((crc ^ byte as u32) & 0xff) as usize] ^ (crc >> 8);
    }
    crc ^ 0xffffffff
}