ifc-lite-core 2.1.6

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
// 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: IFC4X3_DEV_923b0514
//!
//! DO NOT EDIT - This file is auto-generated by @ifc-lite/codegen

use std::fmt;

/// IFC Entity Types
///
/// All 876 entity types from the IFC4X3_DEV_923b0514 schema.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum IfcType {
    // Spatial Structure
    IfcBoxedHalfSpace,
    IfcBridge,
    IfcBridgePart,
    IfcBuilding,
    IfcBuildingElementPart,
    IfcBuildingElementPartType,
    IfcBuildingElementProxy,
    IfcBuildingElementProxyType,
    IfcBuildingStorey,
    IfcBuildingSystem,
    IfcFacility,
    /// Abstract entity
    IfcFacilityPart,
    IfcFacilityPartCommon,
    IfcHalfSpaceSolid,
    IfcMarineFacility,
    IfcMarinePart,
    IfcPolygonalBoundedHalfSpace,
    IfcProject,
    IfcProjectLibrary,
    IfcProjectOrder,
    IfcProjectedCRS,
    IfcProjectionElement,
    IfcRailway,
    IfcRailwayPart,
    IfcRelCoversSpaces,
    IfcRelProjectsElement,
    IfcRelServicesBuildings,
    IfcRelSpaceBoundary,
    IfcRelSpaceBoundary1stLevel,
    IfcRelSpaceBoundary2ndLevel,
    IfcRoad,
    IfcRoadPart,
    IfcSite,
    IfcSpace,
    IfcSpaceHeater,
    IfcSpaceHeaterType,
    IfcSpaceType,
    /// Abstract entity
    IfcSpatialStructureElement,

    // Building Elements
    IfcBeam,
    IfcBeamType,
    IfcColumn,
    IfcColumnType,
    IfcCooledBeam,
    IfcCooledBeamType,
    IfcCurtainWall,
    IfcCurtainWallType,
    IfcSlab,
    IfcSlabType,
    IfcTableColumn,
    IfcWall,
    IfcWallStandardCase,
    IfcWallType,

    // Openings
    IfcDoor,
    IfcDoorLiningProperties,
    IfcDoorPanelProperties,
    IfcDoorType,
    IfcOpeningElement,
    IfcWindow,
    IfcWindowLiningProperties,
    IfcWindowPanelProperties,
    IfcWindowType,

    // MEP
    IfcActuator,
    IfcAirTerminal,
    IfcAirTerminalBox,
    IfcAirToAirHeatRecovery,
    IfcAlarm,
    IfcAudioVisualAppliance,
    IfcBoiler,
    IfcBurner,
    IfcCableCarrierFitting,
    IfcCableCarrierFittingType,
    IfcCableCarrierSegment,
    IfcCableCarrierSegmentType,
    IfcCableFitting,
    IfcCableFittingType,
    IfcCableSegment,
    IfcCableSegmentType,
    IfcChiller,
    IfcCoil,
    IfcCommunicationsAppliance,
    IfcCompressor,
    IfcCondenser,
    IfcController,
    IfcConveyorSegment,
    IfcCoolingTower,
    IfcDamper,
    IfcDistributionBoard,
    IfcDistributionChamberElement,
    IfcDistributionControlElement,
    IfcDistributionElement,
    IfcDistributionFlowElement,
    IfcDuctFitting,
    IfcDuctFittingType,
    IfcDuctSegment,
    IfcDuctSegmentType,
    IfcDuctSilencer,
    IfcDuctSilencerType,
    IfcElectricAppliance,
    IfcElectricDistributionBoard,
    IfcElectricFlowStorageDevice,
    IfcElectricFlowTreatmentDevice,
    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,
    IfcLiquidTerminal,
    IfcMedicalDevice,
    IfcMobileTelecommunicationsAppliance,
    IfcMotorConnection,
    IfcOutlet,
    IfcPipeFitting,
    IfcPipeFittingType,
    IfcPipeSegment,
    IfcPipeSegmentType,
    IfcProtectiveDevice,
    IfcProtectiveDeviceTrippingUnit,
    IfcPump,
    IfcSanitaryTerminal,
    IfcSensor,
    IfcSignal,
    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,
    /// Abstract entity
    IfcDirectrixCurveSweptAreaSolid,
    IfcDirectrixDerivedReferenceSweptAreaSolid,
    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,
    IfcOpenCrossProfileDef,
    /// Abstract entity
    IfcParameterizedProfileDef,
    IfcProfileDef,
    IfcProfileProperties,
    IfcRectangleHollowProfileDef,
    IfcRectangleProfileDef,
    IfcRelAssociatesProfileDef,
    IfcRoundedRectangleProfileDef,
    IfcTrapeziumProfileDef,

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

    // Surfaces
    /// Abstract entity
    IfcBoundedSurface,
    IfcConnectionSurfaceGeometry,
    IfcCylindricalSurface,
    /// Abstract entity
    IfcElementarySurface,
    IfcExternallyDefinedSurfaceStyle,
    IfcFaceBasedSurfaceModel,
    IfcFaceSurface,
    IfcPlane,
    IfcPointOnSurface,
    IfcRectangularTrimmedSurface,
    IfcSectionedSurface,
    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
    IfcRelAdheresToElement,
    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,
    IfcQuantityNumber,
    /// 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,
    /// Abstract entity
    IfcStyleModel,
    IfcStyledItem,
    IfcTextStyle,
    IfcTextStyleFontModel,
    IfcTextStyleForDefinedFont,
    IfcTextStyleTextModel,

    // Core & Common
    IfcBuiltElement,
    IfcBuiltElementType,
    IfcCivilElement,
    IfcCivilElementType,
    IfcConstructionEquipmentResource,
    IfcConstructionEquipmentResourceType,
    IfcConstructionProductResource,
    IfcConstructionProductResourceType,
    /// Abstract entity
    IfcConstructionResource,
    /// Abstract entity
    IfcConstructionResourceType,
    IfcCrewResource,
    IfcCrewResourceType,
    IfcDerivedUnitElement,
    IfcDistributionChamberElementType,
    /// Abstract entity
    IfcDistributionControlElementType,
    IfcDistributionElementType,
    /// Abstract entity
    IfcDistributionFlowElementType,
    IfcEarthworksElement,
    /// 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,
    /// Abstract entity
    IfcGeotechnicalElement,
    IfcLaborResource,
    IfcLaborResourceType,
    IfcNavigationElement,
    IfcNavigationElementType,
    /// 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,
    IfcTrackElement,
    IfcTrackElementType,
    IfcTransportElement,
    IfcTransportElementType,
    IfcTypeObject,
    IfcTypeProduct,
    /// Abstract entity
    IfcTypeResource,
    IfcUnitaryControlElementType,
    IfcVirtualElement,

    // Other
    IfcActionRequest,
    IfcActor,
    IfcActorRole,
    IfcActuatorType,
    /// Abstract entity
    IfcAddress,
    IfcAdvancedFace,
    IfcAirTerminalBoxType,
    IfcAirTerminalType,
    IfcAirToAirHeatRecoveryType,
    IfcAlarmType,
    IfcAlignment,
    IfcAlignmentCant,
    IfcAlignmentCantSegment,
    IfcAlignmentHorizontal,
    IfcAlignmentHorizontalSegment,
    /// Abstract entity
    IfcAlignmentParameterSegment,
    IfcAlignmentSegment,
    IfcAlignmentVertical,
    IfcAlignmentVerticalSegment,
    IfcAnnotation,
    IfcAnnotationFillArea,
    IfcApplication,
    IfcApproval,
    IfcApprovalRelationship,
    IfcAsset,
    IfcAudioVisualApplianceType,
    IfcAxis1Placement,
    IfcAxis2Placement2D,
    IfcAxis2Placement3D,
    IfcBearing,
    IfcBearingType,
    IfcBlobTexture,
    IfcBlock,
    IfcBoilerType,
    IfcBorehole,
    /// Abstract entity
    IfcBoundaryCondition,
    IfcBoundaryEdgeCondition,
    IfcBoundaryFaceCondition,
    IfcBoundaryNodeCondition,
    IfcBoundaryNodeConditionWarping,
    IfcBoundingBox,
    IfcBuiltSystem,
    IfcBurnerType,
    IfcCaissonFoundation,
    IfcCaissonFoundationType,
    IfcCartesianPoint,
    /// Abstract entity
    IfcCartesianPointList,
    IfcCartesianPointList2D,
    IfcCartesianPointList3D,
    /// Abstract entity
    IfcCartesianTransformationOperator,
    IfcCartesianTransformationOperator2D,
    IfcCartesianTransformationOperator2DnonUniform,
    IfcCartesianTransformationOperator3D,
    IfcCartesianTransformationOperator3DnonUniform,
    IfcChillerType,
    IfcChimney,
    IfcChimneyType,
    IfcClassification,
    IfcClassificationReference,
    IfcClosedShell,
    IfcClothoid,
    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,
    IfcConveyorSegmentType,
    IfcCoolingTowerType,
    /// Abstract entity
    IfcCoordinateOperation,
    /// Abstract entity
    IfcCoordinateReferenceSystem,
    IfcCosineSpiral,
    IfcCostItem,
    IfcCostSchedule,
    IfcCourse,
    IfcCourseType,
    IfcCovering,
    IfcCoveringType,
    IfcCurrencyRelationship,
    IfcDamperType,
    IfcDeepFoundation,
    IfcDeepFoundationType,
    IfcDerivedUnit,
    IfcDimensionalExponents,
    IfcDirection,
    IfcDiscreteAccessory,
    IfcDiscreteAccessoryType,
    IfcDistributionBoardType,
    IfcDistributionCircuit,
    IfcDistributionPort,
    IfcDistributionSystem,
    IfcDocumentInformation,
    IfcDocumentInformationRelationship,
    IfcDocumentReference,
    IfcEarthworksCut,
    IfcEarthworksFill,
    IfcEdge,
    IfcEdgeLoop,
    IfcElectricApplianceType,
    IfcElectricDistributionBoardType,
    IfcElectricFlowStorageDeviceType,
    IfcElectricFlowTreatmentDeviceType,
    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,
    IfcFooting,
    IfcFootingType,
    IfcFurniture,
    IfcFurnitureType,
    IfcGeographicCRS,
    IfcGeomodel,
    IfcGeoslice,
    /// Abstract entity
    IfcGeotechnicalAssembly,
    IfcGeotechnicalStratum,
    IfcGrid,
    IfcGridAxis,
    IfcGridPlacement,
    IfcGroup,
    IfcHeatExchangerType,
    IfcHumidifierType,
    IfcImageTexture,
    IfcImpactProtectionDevice,
    IfcImpactProtectionDeviceType,
    IfcIndexedPolygonalFace,
    IfcIndexedPolygonalFaceWithVoids,
    IfcIndexedPolygonalTextureMap,
    /// Abstract entity
    IfcIndexedTextureMap,
    IfcIndexedTriangleTextureMap,
    IfcInterceptorType,
    IfcInventory,
    IfcIrregularTimeSeries,
    IfcJunctionBoxType,
    IfcKerb,
    IfcKerbType,
    IfcLagTime,
    IfcLampType,
    IfcLibraryInformation,
    IfcLibraryReference,
    IfcLightDistributionData,
    IfcLightFixtureType,
    IfcLightIntensityDistribution,
    /// Abstract entity
    IfcLightSource,
    IfcLightSourceAmbient,
    IfcLightSourceDirectional,
    IfcLightSourceGoniometric,
    IfcLightSourcePositional,
    IfcLightSourceSpot,
    IfcLiquidTerminalType,
    IfcLocalPlacement,
    IfcLoop,
    IfcMapConversion,
    IfcMapConversionScaled,
    IfcMappedItem,
    IfcMeasureWithUnit,
    IfcMechanicalFastener,
    IfcMechanicalFastenerType,
    IfcMedicalDeviceType,
    IfcMember,
    IfcMemberType,
    IfcMetric,
    IfcMobileTelecommunicationsApplianceType,
    IfcMonetaryUnit,
    IfcMooringDevice,
    IfcMooringDeviceType,
    IfcMotorConnectionType,
    /// Abstract entity
    IfcNamedUnit,
    IfcOccupant,
    IfcOpenShell,
    IfcOrganization,
    IfcOrganizationRelationship,
    IfcOrientedEdge,
    IfcOutletType,
    IfcOwnerHistory,
    IfcPath,
    IfcPavement,
    IfcPavementType,
    IfcPcurve,
    IfcPerformanceHistory,
    IfcPermeableCoveringProperties,
    IfcPermit,
    IfcPerson,
    IfcPersonAndOrganization,
    IfcPile,
    IfcPileType,
    IfcPixelTexture,
    /// Abstract entity
    IfcPlacement,
    IfcPlanarBox,
    IfcPlanarExtent,
    IfcPlate,
    IfcPlateType,
    /// Abstract entity
    IfcPoint,
    IfcPointByDistanceExpression,
    IfcPolyLoop,
    /// Abstract entity
    IfcPort,
    IfcPostalAddress,
    /// Abstract entity
    IfcPreDefinedItem,
    /// Abstract entity
    IfcPreDefinedProperties,
    /// Abstract entity
    IfcPreDefinedTextFont,
    IfcProcedure,
    IfcProcedureType,
    /// Abstract entity
    IfcProcess,
    IfcProtectiveDeviceTrippingUnitType,
    IfcProtectiveDeviceType,
    IfcPumpType,
    IfcRail,
    IfcRailType,
    IfcRailing,
    IfcRailingType,
    IfcRamp,
    IfcRampFlight,
    IfcRampFlightType,
    IfcRampType,
    IfcRectangularPyramid,
    IfcRecurrencePattern,
    IfcReference,
    IfcReferent,
    IfcRegularTimeSeries,
    IfcReinforcedSoil,
    IfcReinforcementBarProperties,
    IfcReinforcementDefinitionProperties,
    IfcReinforcingBar,
    IfcReinforcingBarType,
    IfcReinforcingMesh,
    IfcReinforcingMeshType,
    IfcRightCircularCone,
    IfcRightCircularCylinder,
    IfcRigidOperation,
    IfcRoof,
    IfcRoofType,
    IfcSIUnit,
    IfcSanitaryTerminalType,
    /// Abstract entity
    IfcSchedulingTime,
    IfcSecondOrderPolynomialSpiral,
    IfcSectionProperties,
    IfcSectionReinforcementProperties,
    IfcSectionedSpine,
    /// Abstract entity
    IfcSegment,
    IfcSensorType,
    IfcSeventhOrderPolynomialSpiral,
    IfcShadingDevice,
    IfcShadingDeviceType,
    IfcSign,
    IfcSignType,
    IfcSignalType,
    IfcSineSpiral,
    IfcSlippageConnectionCondition,
    IfcSolarDeviceType,
    IfcSpatialZone,
    IfcSpatialZoneType,
    IfcSphere,
    /// Abstract entity
    IfcSpiral,
    IfcStackTerminalType,
    IfcStair,
    IfcStairFlight,
    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,
    IfcTextureCoordinateIndices,
    IfcTextureCoordinateIndicesWithVoids,
    IfcTextureMap,
    IfcTextureVertex,
    IfcTextureVertexList,
    IfcThirdOrderPolynomialSpiral,
    IfcTimePeriod,
    /// Abstract entity
    IfcTimeSeries,
    IfcTransformerType,
    /// Abstract entity
    IfcTransportationDevice,
    /// Abstract entity
    IfcTransportationDeviceType,
    IfcTriangulatedIrregularNetwork,
    IfcTubeBundleType,
    /// Abstract entity
    IfcTypeProcess,
    IfcUnitAssignment,
    IfcUnitaryEquipmentType,
    IfcValveType,
    IfcVector,
    IfcVehicle,
    IfcVehicleType,
    IfcVertex,
    IfcVertexLoop,
    IfcVertexPoint,
    IfcVibrationDamper,
    IfcVibrationDamperType,
    IfcVibrationIsolator,
    IfcVibrationIsolatorType,
    IfcVirtualGridIntersection,
    IfcVoidingFeature,
    IfcWasteTerminalType,
    IfcWellKnownText,
    IfcWorkCalendar,
    /// Abstract entity
    IfcWorkControl,
    IfcWorkPlan,
    IfcWorkSchedule,
    IfcWorkTime,
    IfcZone,

    /// Unknown/unrecognized IFC type (stores CRC32 hash)
    Unknown(u32),
}

impl IfcType {
    /// Parse IFC type from string (case-insensitive)
    #[allow(clippy::should_implement_trait)]
    pub fn from_str(s: &str) -> Self {
        let upper = s.to_uppercase();
        match upper.as_str() {
            "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,
            "IFCALIGNMENTCANT" => Self::IfcAlignmentCant,
            "IFCALIGNMENTCANTSEGMENT" => Self::IfcAlignmentCantSegment,
            "IFCALIGNMENTHORIZONTAL" => Self::IfcAlignmentHorizontal,
            "IFCALIGNMENTHORIZONTALSEGMENT" => Self::IfcAlignmentHorizontalSegment,
            "IFCALIGNMENTPARAMETERSEGMENT" => Self::IfcAlignmentParameterSegment,
            "IFCALIGNMENTSEGMENT" => Self::IfcAlignmentSegment,
            "IFCALIGNMENTVERTICAL" => Self::IfcAlignmentVertical,
            "IFCALIGNMENTVERTICALSEGMENT" => Self::IfcAlignmentVerticalSegment,
            "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,
            "IFCAXIS2PLACEMENTLINEAR" => Self::IfcAxis2PlacementLinear,
            "IFCBSPLINECURVE" => Self::IfcBSplineCurve,
            "IFCBSPLINECURVEWITHKNOTS" => Self::IfcBSplineCurveWithKnots,
            "IFCBSPLINESURFACE" => Self::IfcBSplineSurface,
            "IFCBSPLINESURFACEWITHKNOTS" => Self::IfcBSplineSurfaceWithKnots,
            "IFCBEAM" => Self::IfcBeam,
            "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,
            "IFCBOREHOLE" => Self::IfcBorehole,
            "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,
            "IFCBUILDINGELEMENTPART" => Self::IfcBuildingElementPart,
            "IFCBUILDINGELEMENTPARTTYPE" => Self::IfcBuildingElementPartType,
            "IFCBUILDINGELEMENTPROXY" => Self::IfcBuildingElementProxy,
            "IFCBUILDINGELEMENTPROXYTYPE" => Self::IfcBuildingElementProxyType,
            "IFCBUILDINGSTOREY" => Self::IfcBuildingStorey,
            "IFCBUILDINGSYSTEM" => Self::IfcBuildingSystem,
            "IFCBUILTELEMENT" => Self::IfcBuiltElement,
            "IFCBUILTELEMENTTYPE" => Self::IfcBuiltElementType,
            "IFCBUILTSYSTEM" => Self::IfcBuiltSystem,
            "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,
            "IFCCIVILELEMENT" => Self::IfcCivilElement,
            "IFCCIVILELEMENTTYPE" => Self::IfcCivilElementType,
            "IFCCLASSIFICATION" => Self::IfcClassification,
            "IFCCLASSIFICATIONREFERENCE" => Self::IfcClassificationReference,
            "IFCCLOSEDSHELL" => Self::IfcClosedShell,
            "IFCCLOTHOID" => Self::IfcClothoid,
            "IFCCOIL" => Self::IfcCoil,
            "IFCCOILTYPE" => Self::IfcCoilType,
            "IFCCOLOURRGB" => Self::IfcColourRgb,
            "IFCCOLOURRGBLIST" => Self::IfcColourRgbList,
            "IFCCOLOURSPECIFICATION" => Self::IfcColourSpecification,
            "IFCCOLUMN" => Self::IfcColumn,
            "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,
            "IFCCONVEYORSEGMENT" => Self::IfcConveyorSegment,
            "IFCCONVEYORSEGMENTTYPE" => Self::IfcConveyorSegmentType,
            "IFCCOOLEDBEAM" => Self::IfcCooledBeam,
            "IFCCOOLEDBEAMTYPE" => Self::IfcCooledBeamType,
            "IFCCOOLINGTOWER" => Self::IfcCoolingTower,
            "IFCCOOLINGTOWERTYPE" => Self::IfcCoolingTowerType,
            "IFCCOORDINATEOPERATION" => Self::IfcCoordinateOperation,
            "IFCCOORDINATEREFERENCESYSTEM" => Self::IfcCoordinateReferenceSystem,
            "IFCCOSINESPIRAL" => Self::IfcCosineSpiral,
            "IFCCOSTITEM" => Self::IfcCostItem,
            "IFCCOSTSCHEDULE" => Self::IfcCostSchedule,
            "IFCCOSTVALUE" => Self::IfcCostValue,
            "IFCCOURSE" => Self::IfcCourse,
            "IFCCOURSETYPE" => Self::IfcCourseType,
            "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,
            "IFCCURVESEGMENT" => Self::IfcCurveSegment,
            "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,
            "IFCDIRECTRIXCURVESWEPTAREASOLID" => Self::IfcDirectrixCurveSweptAreaSolid,
            "IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID" => {
                Self::IfcDirectrixDerivedReferenceSweptAreaSolid
            }
            "IFCDISCRETEACCESSORY" => Self::IfcDiscreteAccessory,
            "IFCDISCRETEACCESSORYTYPE" => Self::IfcDiscreteAccessoryType,
            "IFCDISTRIBUTIONBOARD" => Self::IfcDistributionBoard,
            "IFCDISTRIBUTIONBOARDTYPE" => Self::IfcDistributionBoardType,
            "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,
            "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,
            "IFCEARTHWORKSCUT" => Self::IfcEarthworksCut,
            "IFCEARTHWORKSELEMENT" => Self::IfcEarthworksElement,
            "IFCEARTHWORKSFILL" => Self::IfcEarthworksFill,
            "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,
            "IFCELECTRICFLOWTREATMENTDEVICE" => Self::IfcElectricFlowTreatmentDevice,
            "IFCELECTRICFLOWTREATMENTDEVICETYPE" => Self::IfcElectricFlowTreatmentDeviceType,
            "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,
            "IFCFACILITYPARTCOMMON" => Self::IfcFacilityPartCommon,
            "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,
            "IFCGEOGRAPHICCRS" => Self::IfcGeographicCRS,
            "IFCGEOGRAPHICELEMENT" => Self::IfcGeographicElement,
            "IFCGEOGRAPHICELEMENTTYPE" => Self::IfcGeographicElementType,
            "IFCGEOMETRICCURVESET" => Self::IfcGeometricCurveSet,
            "IFCGEOMETRICREPRESENTATIONCONTEXT" => Self::IfcGeometricRepresentationContext,
            "IFCGEOMETRICREPRESENTATIONITEM" => Self::IfcGeometricRepresentationItem,
            "IFCGEOMETRICREPRESENTATIONSUBCONTEXT" => Self::IfcGeometricRepresentationSubContext,
            "IFCGEOMETRICSET" => Self::IfcGeometricSet,
            "IFCGEOMODEL" => Self::IfcGeomodel,
            "IFCGEOSLICE" => Self::IfcGeoslice,
            "IFCGEOTECHNICALASSEMBLY" => Self::IfcGeotechnicalAssembly,
            "IFCGEOTECHNICALELEMENT" => Self::IfcGeotechnicalElement,
            "IFCGEOTECHNICALSTRATUM" => Self::IfcGeotechnicalStratum,
            "IFCGRADIENTCURVE" => Self::IfcGradientCurve,
            "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,
            "IFCIMPACTPROTECTIONDEVICE" => Self::IfcImpactProtectionDevice,
            "IFCIMPACTPROTECTIONDEVICETYPE" => Self::IfcImpactProtectionDeviceType,
            "IFCINDEXEDCOLOURMAP" => Self::IfcIndexedColourMap,
            "IFCINDEXEDPOLYCURVE" => Self::IfcIndexedPolyCurve,
            "IFCINDEXEDPOLYGONALFACE" => Self::IfcIndexedPolygonalFace,
            "IFCINDEXEDPOLYGONALFACEWITHVOIDS" => Self::IfcIndexedPolygonalFaceWithVoids,
            "IFCINDEXEDPOLYGONALTEXTUREMAP" => Self::IfcIndexedPolygonalTextureMap,
            "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,
            "IFCKERB" => Self::IfcKerb,
            "IFCKERBTYPE" => Self::IfcKerbType,
            "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,
            "IFCLINEARELEMENT" => Self::IfcLinearElement,
            "IFCLINEARPLACEMENT" => Self::IfcLinearPlacement,
            "IFCLINEARPOSITIONINGELEMENT" => Self::IfcLinearPositioningElement,
            "IFCLIQUIDTERMINAL" => Self::IfcLiquidTerminal,
            "IFCLIQUIDTERMINALTYPE" => Self::IfcLiquidTerminalType,
            "IFCLOCALPLACEMENT" => Self::IfcLocalPlacement,
            "IFCLOOP" => Self::IfcLoop,
            "IFCMANIFOLDSOLIDBREP" => Self::IfcManifoldSolidBrep,
            "IFCMAPCONVERSION" => Self::IfcMapConversion,
            "IFCMAPCONVERSIONSCALED" => Self::IfcMapConversionScaled,
            "IFCMAPPEDITEM" => Self::IfcMappedItem,
            "IFCMARINEFACILITY" => Self::IfcMarineFacility,
            "IFCMARINEPART" => Self::IfcMarinePart,
            "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,
            "IFCMEMBERTYPE" => Self::IfcMemberType,
            "IFCMETRIC" => Self::IfcMetric,
            "IFCMIRROREDPROFILEDEF" => Self::IfcMirroredProfileDef,
            "IFCMOBILETELECOMMUNICATIONSAPPLIANCE" => Self::IfcMobileTelecommunicationsAppliance,
            "IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE" => {
                Self::IfcMobileTelecommunicationsApplianceType
            }
            "IFCMONETARYUNIT" => Self::IfcMonetaryUnit,
            "IFCMOORINGDEVICE" => Self::IfcMooringDevice,
            "IFCMOORINGDEVICETYPE" => Self::IfcMooringDeviceType,
            "IFCMOTORCONNECTION" => Self::IfcMotorConnection,
            "IFCMOTORCONNECTIONTYPE" => Self::IfcMotorConnectionType,
            "IFCNAMEDUNIT" => Self::IfcNamedUnit,
            "IFCNAVIGATIONELEMENT" => Self::IfcNavigationElement,
            "IFCNAVIGATIONELEMENTTYPE" => Self::IfcNavigationElementType,
            "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,
            "IFCOPENCROSSPROFILEDEF" => Self::IfcOpenCrossProfileDef,
            "IFCOPENSHELL" => Self::IfcOpenShell,
            "IFCOPENINGELEMENT" => Self::IfcOpeningElement,
            "IFCORGANIZATION" => Self::IfcOrganization,
            "IFCORGANIZATIONRELATIONSHIP" => Self::IfcOrganizationRelationship,
            "IFCORIENTEDEDGE" => Self::IfcOrientedEdge,
            "IFCOUTERBOUNDARYCURVE" => Self::IfcOuterBoundaryCurve,
            "IFCOUTLET" => Self::IfcOutlet,
            "IFCOUTLETTYPE" => Self::IfcOutletType,
            "IFCOWNERHISTORY" => Self::IfcOwnerHistory,
            "IFCPARAMETERIZEDPROFILEDEF" => Self::IfcParameterizedProfileDef,
            "IFCPATH" => Self::IfcPath,
            "IFCPAVEMENT" => Self::IfcPavement,
            "IFCPAVEMENTTYPE" => Self::IfcPavementType,
            "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,
            "IFCPLATETYPE" => Self::IfcPlateType,
            "IFCPOINT" => Self::IfcPoint,
            "IFCPOINTBYDISTANCEEXPRESSION" => Self::IfcPointByDistanceExpression,
            "IFCPOINTONCURVE" => Self::IfcPointOnCurve,
            "IFCPOINTONSURFACE" => Self::IfcPointOnSurface,
            "IFCPOLYLOOP" => Self::IfcPolyLoop,
            "IFCPOLYGONALBOUNDEDHALFSPACE" => Self::IfcPolygonalBoundedHalfSpace,
            "IFCPOLYGONALFACESET" => Self::IfcPolygonalFaceSet,
            "IFCPOLYLINE" => Self::IfcPolyline,
            "IFCPOLYNOMIALCURVE" => Self::IfcPolynomialCurve,
            "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,
            "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,
            "IFCPUMP" => Self::IfcPump,
            "IFCPUMPTYPE" => Self::IfcPumpType,
            "IFCQUANTITYAREA" => Self::IfcQuantityArea,
            "IFCQUANTITYCOUNT" => Self::IfcQuantityCount,
            "IFCQUANTITYLENGTH" => Self::IfcQuantityLength,
            "IFCQUANTITYNUMBER" => Self::IfcQuantityNumber,
            "IFCQUANTITYSET" => Self::IfcQuantitySet,
            "IFCQUANTITYTIME" => Self::IfcQuantityTime,
            "IFCQUANTITYVOLUME" => Self::IfcQuantityVolume,
            "IFCQUANTITYWEIGHT" => Self::IfcQuantityWeight,
            "IFCRAIL" => Self::IfcRail,
            "IFCRAILTYPE" => Self::IfcRailType,
            "IFCRAILING" => Self::IfcRailing,
            "IFCRAILINGTYPE" => Self::IfcRailingType,
            "IFCRAILWAY" => Self::IfcRailway,
            "IFCRAILWAYPART" => Self::IfcRailwayPart,
            "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,
            "IFCREINFORCEDSOIL" => Self::IfcReinforcedSoil,
            "IFCREINFORCEMENTBARPROPERTIES" => Self::IfcReinforcementBarProperties,
            "IFCREINFORCEMENTDEFINITIONPROPERTIES" => Self::IfcReinforcementDefinitionProperties,
            "IFCREINFORCINGBAR" => Self::IfcReinforcingBar,
            "IFCREINFORCINGBARTYPE" => Self::IfcReinforcingBarType,
            "IFCREINFORCINGELEMENT" => Self::IfcReinforcingElement,
            "IFCREINFORCINGELEMENTTYPE" => Self::IfcReinforcingElementType,
            "IFCREINFORCINGMESH" => Self::IfcReinforcingMesh,
            "IFCREINFORCINGMESHTYPE" => Self::IfcReinforcingMeshType,
            "IFCRELADHERESTOELEMENT" => Self::IfcRelAdheresToElement,
            "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,
            "IFCRELASSOCIATESPROFILEDEF" => Self::IfcRelAssociatesProfileDef,
            "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,
            "IFCRIGIDOPERATION" => Self::IfcRigidOperation,
            "IFCROAD" => Self::IfcRoad,
            "IFCROADPART" => Self::IfcRoadPart,
            "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,
            "IFCSECONDORDERPOLYNOMIALSPIRAL" => Self::IfcSecondOrderPolynomialSpiral,
            "IFCSECTIONPROPERTIES" => Self::IfcSectionProperties,
            "IFCSECTIONREINFORCEMENTPROPERTIES" => Self::IfcSectionReinforcementProperties,
            "IFCSECTIONEDSOLID" => Self::IfcSectionedSolid,
            "IFCSECTIONEDSOLIDHORIZONTAL" => Self::IfcSectionedSolidHorizontal,
            "IFCSECTIONEDSPINE" => Self::IfcSectionedSpine,
            "IFCSECTIONEDSURFACE" => Self::IfcSectionedSurface,
            "IFCSEGMENT" => Self::IfcSegment,
            "IFCSEGMENTEDREFERENCECURVE" => Self::IfcSegmentedReferenceCurve,
            "IFCSENSOR" => Self::IfcSensor,
            "IFCSENSORTYPE" => Self::IfcSensorType,
            "IFCSEVENTHORDERPOLYNOMIALSPIRAL" => Self::IfcSeventhOrderPolynomialSpiral,
            "IFCSHADINGDEVICE" => Self::IfcShadingDevice,
            "IFCSHADINGDEVICETYPE" => Self::IfcShadingDeviceType,
            "IFCSHAPEASPECT" => Self::IfcShapeAspect,
            "IFCSHAPEMODEL" => Self::IfcShapeModel,
            "IFCSHAPEREPRESENTATION" => Self::IfcShapeRepresentation,
            "IFCSHELLBASEDSURFACEMODEL" => Self::IfcShellBasedSurfaceModel,
            "IFCSIGN" => Self::IfcSign,
            "IFCSIGNTYPE" => Self::IfcSignType,
            "IFCSIGNAL" => Self::IfcSignal,
            "IFCSIGNALTYPE" => Self::IfcSignalType,
            "IFCSIMPLEPROPERTY" => Self::IfcSimpleProperty,
            "IFCSIMPLEPROPERTYTEMPLATE" => Self::IfcSimplePropertyTemplate,
            "IFCSINESPIRAL" => Self::IfcSineSpiral,
            "IFCSITE" => Self::IfcSite,
            "IFCSLAB" => Self::IfcSlab,
            "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,
            "IFCSPIRAL" => Self::IfcSpiral,
            "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,
            "IFCTEXTURECOORDINATEINDICES" => Self::IfcTextureCoordinateIndices,
            "IFCTEXTURECOORDINATEINDICESWITHVOIDS" => Self::IfcTextureCoordinateIndicesWithVoids,
            "IFCTEXTUREMAP" => Self::IfcTextureMap,
            "IFCTEXTUREVERTEX" => Self::IfcTextureVertex,
            "IFCTEXTUREVERTEXLIST" => Self::IfcTextureVertexList,
            "IFCTHIRDORDERPOLYNOMIALSPIRAL" => Self::IfcThirdOrderPolynomialSpiral,
            "IFCTIMEPERIOD" => Self::IfcTimePeriod,
            "IFCTIMESERIES" => Self::IfcTimeSeries,
            "IFCTIMESERIESVALUE" => Self::IfcTimeSeriesValue,
            "IFCTOPOLOGICALREPRESENTATIONITEM" => Self::IfcTopologicalRepresentationItem,
            "IFCTOPOLOGYREPRESENTATION" => Self::IfcTopologyRepresentation,
            "IFCTOROIDALSURFACE" => Self::IfcToroidalSurface,
            "IFCTRACKELEMENT" => Self::IfcTrackElement,
            "IFCTRACKELEMENTTYPE" => Self::IfcTrackElementType,
            "IFCTRANSFORMER" => Self::IfcTransformer,
            "IFCTRANSFORMERTYPE" => Self::IfcTransformerType,
            "IFCTRANSPORTELEMENT" => Self::IfcTransportElement,
            "IFCTRANSPORTELEMENTTYPE" => Self::IfcTransportElementType,
            "IFCTRANSPORTATIONDEVICE" => Self::IfcTransportationDevice,
            "IFCTRANSPORTATIONDEVICETYPE" => Self::IfcTransportationDeviceType,
            "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,
            "IFCVEHICLE" => Self::IfcVehicle,
            "IFCVEHICLETYPE" => Self::IfcVehicleType,
            "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,
            "IFCWALLSTANDARDCASE" => Self::IfcWallStandardCase,
            "IFCWALLTYPE" => Self::IfcWallType,
            "IFCWASTETERMINAL" => Self::IfcWasteTerminal,
            "IFCWASTETERMINALTYPE" => Self::IfcWasteTerminalType,
            "IFCWELLKNOWNTEXT" => Self::IfcWellKnownText,
            "IFCWINDOW" => Self::IfcWindow,
            "IFCWINDOWLININGPROPERTIES" => Self::IfcWindowLiningProperties,
            "IFCWINDOWPANELPROPERTIES" => Self::IfcWindowPanelProperties,
            "IFCWINDOWTYPE" => Self::IfcWindowType,
            "IFCWORKCALENDAR" => Self::IfcWorkCalendar,
            "IFCWORKCONTROL" => Self::IfcWorkControl,
            "IFCWORKPLAN" => Self::IfcWorkPlan,
            "IFCWORKSCHEDULE" => Self::IfcWorkSchedule,
            "IFCWORKTIME" => Self::IfcWorkTime,
            "IFCZSHAPEPROFILEDEF" => Self::IfcZShapeProfileDef,
            "IFCZONE" => Self::IfcZone,
            _ => Self::Unknown(crc32_hash(&upper)),
        }
    }

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

    /// 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::IfcAlignmentCant => 4266260250,
            Self::IfcAlignmentCantSegment => 3752311538,
            Self::IfcAlignmentHorizontal => 1545765605,
            Self::IfcAlignmentHorizontalSegment => 536804194,
            Self::IfcAlignmentParameterSegment => 2879124712,
            Self::IfcAlignmentSegment => 317615605,
            Self::IfcAlignmentVertical => 1662888072,
            Self::IfcAlignmentVerticalSegment => 3633395639,
            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::IfcAxis2PlacementLinear => 3425423356,
            Self::IfcBSplineCurve => 1967976161,
            Self::IfcBSplineCurveWithKnots => 2461110595,
            Self::IfcBSplineSurface => 2887950389,
            Self::IfcBSplineSurfaceWithKnots => 167062518,
            Self::IfcBeam => 753842376,
            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::IfcBorehole => 3314249567,
            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::IfcBuildingElementPart => 2979338954,
            Self::IfcBuildingElementPartType => 39481116,
            Self::IfcBuildingElementProxy => 1095909175,
            Self::IfcBuildingElementProxyType => 1909888760,
            Self::IfcBuildingStorey => 3124254112,
            Self::IfcBuildingSystem => 1177604601,
            Self::IfcBuiltElement => 1876633798,
            Self::IfcBuiltElementType => 1626504194,
            Self::IfcBuiltSystem => 3862327254,
            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::IfcCivilElement => 1677625105,
            Self::IfcCivilElementType => 3893394355,
            Self::IfcClassification => 747523909,
            Self::IfcClassificationReference => 647927063,
            Self::IfcClosedShell => 2205249479,
            Self::IfcClothoid => 3497074424,
            Self::IfcCoil => 639361253,
            Self::IfcCoilType => 2301859152,
            Self::IfcColourRgb => 776857604,
            Self::IfcColourRgbList => 3285139300,
            Self::IfcColourSpecification => 3264961684,
            Self::IfcColumn => 843113511,
            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::IfcConveyorSegment => 3460952963,
            Self::IfcConveyorSegmentType => 2940368186,
            Self::IfcCooledBeam => 4136498852,
            Self::IfcCooledBeamType => 335055490,
            Self::IfcCoolingTower => 3640358203,
            Self::IfcCoolingTowerType => 2954562838,
            Self::IfcCoordinateOperation => 1785450214,
            Self::IfcCoordinateReferenceSystem => 1466758467,
            Self::IfcCosineSpiral => 2000195564,
            Self::IfcCostItem => 3895139033,
            Self::IfcCostSchedule => 1419761937,
            Self::IfcCostValue => 602808272,
            Self::IfcCourse => 1502416096,
            Self::IfcCourseType => 4189326743,
            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::IfcCurveSegment => 4212018352,
            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::IfcDirectrixCurveSweptAreaSolid => 593015953,
            Self::IfcDirectrixDerivedReferenceSweptAreaSolid => 4234616927,
            Self::IfcDiscreteAccessory => 1335981549,
            Self::IfcDiscreteAccessoryType => 2635815018,
            Self::IfcDistributionBoard => 3693000487,
            Self::IfcDistributionBoardType => 479945903,
            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::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::IfcEarthworksCut => 3071239417,
            Self::IfcEarthworksElement => 1077100507,
            Self::IfcEarthworksFill => 3376911765,
            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::IfcElectricFlowTreatmentDevice => 24726584,
            Self::IfcElectricFlowTreatmentDeviceType => 2142170206,
            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::IfcFacilityPartCommon => 4228831410,
            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::IfcGeographicCRS => 917726184,
            Self::IfcGeographicElement => 3493046030,
            Self::IfcGeographicElementType => 4095422895,
            Self::IfcGeometricCurveSet => 987898635,
            Self::IfcGeometricRepresentationContext => 3448662350,
            Self::IfcGeometricRepresentationItem => 2453401579,
            Self::IfcGeometricRepresentationSubContext => 4142052618,
            Self::IfcGeometricSet => 3590301190,
            Self::IfcGeomodel => 2680139844,
            Self::IfcGeoslice => 1971632696,
            Self::IfcGeotechnicalAssembly => 2713699986,
            Self::IfcGeotechnicalElement => 4230923436,
            Self::IfcGeotechnicalStratum => 1594536857,
            Self::IfcGradientCurve => 2898700619,
            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::IfcImpactProtectionDevice => 2568555532,
            Self::IfcImpactProtectionDeviceType => 3948183225,
            Self::IfcIndexedColourMap => 3570813810,
            Self::IfcIndexedPolyCurve => 2571569899,
            Self::IfcIndexedPolygonalFace => 178912537,
            Self::IfcIndexedPolygonalFaceWithVoids => 2294589976,
            Self::IfcIndexedPolygonalTextureMap => 3465909080,
            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::IfcKerb => 2696325953,
            Self::IfcKerbType => 679976338,
            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::IfcLinearElement => 2176059722,
            Self::IfcLinearPlacement => 388784114,
            Self::IfcLinearPositioningElement => 1154579445,
            Self::IfcLiquidTerminal => 1638804497,
            Self::IfcLiquidTerminalType => 1770583370,
            Self::IfcLocalPlacement => 2624227202,
            Self::IfcLoop => 1008929658,
            Self::IfcManifoldSolidBrep => 1425443689,
            Self::IfcMapConversion => 3057273783,
            Self::IfcMapConversionScaled => 4105526436,
            Self::IfcMappedItem => 2347385850,
            Self::IfcMarineFacility => 525669439,
            Self::IfcMarinePart => 976884017,
            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::IfcMemberType => 3181161470,
            Self::IfcMetric => 3368373690,
            Self::IfcMirroredProfileDef => 2998442950,
            Self::IfcMobileTelecommunicationsAppliance => 2078563270,
            Self::IfcMobileTelecommunicationsApplianceType => 1950438474,
            Self::IfcMonetaryUnit => 2706619895,
            Self::IfcMooringDevice => 234836483,
            Self::IfcMooringDeviceType => 710110818,
            Self::IfcMotorConnection => 2474470126,
            Self::IfcMotorConnectionType => 977012517,
            Self::IfcNamedUnit => 1918398963,
            Self::IfcNavigationElement => 2182337498,
            Self::IfcNavigationElementType => 506776471,
            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::IfcOpenCrossProfileDef => 182550632,
            Self::IfcOpenShell => 2665983363,
            Self::IfcOpeningElement => 3588315303,
            Self::IfcOrganization => 4251960020,
            Self::IfcOrganizationRelationship => 1411181986,
            Self::IfcOrientedEdge => 1029017970,
            Self::IfcOuterBoundaryCurve => 144952367,
            Self::IfcOutlet => 3694346114,
            Self::IfcOutletType => 2837617999,
            Self::IfcOwnerHistory => 1207048766,
            Self::IfcParameterizedProfileDef => 2529465313,
            Self::IfcPath => 2519244187,
            Self::IfcPavement => 1383356374,
            Self::IfcPavementType => 514975943,
            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::IfcPlateType => 4017108033,
            Self::IfcPoint => 2067069095,
            Self::IfcPointByDistanceExpression => 2165702409,
            Self::IfcPointOnCurve => 4022376103,
            Self::IfcPointOnSurface => 1423911732,
            Self::IfcPolyLoop => 2924175390,
            Self::IfcPolygonalBoundedHalfSpace => 2775532180,
            Self::IfcPolygonalFaceSet => 2839578677,
            Self::IfcPolyline => 3724593414,
            Self::IfcPolynomialCurve => 3381221214,
            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::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::IfcPump => 90941305,
            Self::IfcPumpType => 2250791053,
            Self::IfcQuantityArea => 2044713172,
            Self::IfcQuantityCount => 2093928680,
            Self::IfcQuantityLength => 931644368,
            Self::IfcQuantityNumber => 2691318326,
            Self::IfcQuantitySet => 2090586900,
            Self::IfcQuantityTime => 3252649465,
            Self::IfcQuantityVolume => 2405470396,
            Self::IfcQuantityWeight => 825690147,
            Self::IfcRail => 3290496277,
            Self::IfcRailType => 1763565496,
            Self::IfcRailing => 2262370178,
            Self::IfcRailingType => 2893384427,
            Self::IfcRailway => 3992365140,
            Self::IfcRailwayPart => 1891881377,
            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::IfcReinforcedSoil => 3798194928,
            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::IfcRelAdheresToElement => 3818125796,
            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::IfcRelAssociatesProfileDef => 1033248425,
            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::IfcRigidOperation => 1794013214,
            Self::IfcRoad => 146592293,
            Self::IfcRoadPart => 550521510,
            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::IfcSecondOrderPolynomialSpiral => 3649235739,
            Self::IfcSectionProperties => 2042790032,
            Self::IfcSectionReinforcementProperties => 4165799628,
            Self::IfcSectionedSolid => 1862484736,
            Self::IfcSectionedSolidHorizontal => 1290935644,
            Self::IfcSectionedSpine => 1509187699,
            Self::IfcSectionedSurface => 1356537516,
            Self::IfcSegment => 823603102,
            Self::IfcSegmentedReferenceCurve => 544395925,
            Self::IfcSensor => 4086658281,
            Self::IfcSensorType => 1783015770,
            Self::IfcSeventhOrderPolynomialSpiral => 1027922057,
            Self::IfcShadingDevice => 1329646415,
            Self::IfcShadingDeviceType => 4074543187,
            Self::IfcShapeAspect => 867548509,
            Self::IfcShapeModel => 3982875396,
            Self::IfcShapeRepresentation => 4240577450,
            Self::IfcShellBasedSurfaceModel => 4124623270,
            Self::IfcSign => 33720170,
            Self::IfcSignType => 3599934289,
            Self::IfcSignal => 991950508,
            Self::IfcSignalType => 1894708472,
            Self::IfcSimpleProperty => 3692461612,
            Self::IfcSimplePropertyTemplate => 3663146110,
            Self::IfcSineSpiral => 42703149,
            Self::IfcSite => 4097777520,
            Self::IfcSlab => 1529196076,
            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::IfcSpiral => 2735484536,
            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::IfcTextureCoordinateIndices => 222769930,
            Self::IfcTextureCoordinateIndicesWithVoids => 1010789467,
            Self::IfcTextureMap => 2552916305,
            Self::IfcTextureVertex => 1210645708,
            Self::IfcTextureVertexList => 3611470254,
            Self::IfcThirdOrderPolynomialSpiral => 782932809,
            Self::IfcTimePeriod => 1199560280,
            Self::IfcTimeSeries => 3101149627,
            Self::IfcTimeSeriesValue => 581633288,
            Self::IfcTopologicalRepresentationItem => 1377556343,
            Self::IfcTopologyRepresentation => 1735638870,
            Self::IfcToroidalSurface => 1935646853,
            Self::IfcTrackElement => 3425753595,
            Self::IfcTrackElementType => 618700268,
            Self::IfcTransformer => 3825984169,
            Self::IfcTransformerType => 1692211062,
            Self::IfcTransportElement => 1620046519,
            Self::IfcTransportElementType => 2097647324,
            Self::IfcTransportationDevice => 1953115116,
            Self::IfcTransportationDeviceType => 3665877780,
            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::IfcVehicle => 840318589,
            Self::IfcVehicleType => 3651464721,
            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::IfcWallStandardCase => 3512223829,
            Self::IfcWallType => 1898987631,
            Self::IfcWasteTerminal => 4237592921,
            Self::IfcWasteTerminalType => 1133259667,
            Self::IfcWellKnownText => 1175146630,
            Self::IfcWindow => 3304561284,
            Self::IfcWindowLiningProperties => 336235671,
            Self::IfcWindowPanelProperties => 512836454,
            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(id) => *id,
        }
    }

    /// Get string representation (uppercase)
    pub fn as_str(&self) -> &'static 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::IfcAlignmentCant => "IFCALIGNMENTCANT",
            Self::IfcAlignmentCantSegment => "IFCALIGNMENTCANTSEGMENT",
            Self::IfcAlignmentHorizontal => "IFCALIGNMENTHORIZONTAL",
            Self::IfcAlignmentHorizontalSegment => "IFCALIGNMENTHORIZONTALSEGMENT",
            Self::IfcAlignmentParameterSegment => "IFCALIGNMENTPARAMETERSEGMENT",
            Self::IfcAlignmentSegment => "IFCALIGNMENTSEGMENT",
            Self::IfcAlignmentVertical => "IFCALIGNMENTVERTICAL",
            Self::IfcAlignmentVerticalSegment => "IFCALIGNMENTVERTICALSEGMENT",
            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::IfcAxis2PlacementLinear => "IFCAXIS2PLACEMENTLINEAR",
            Self::IfcBSplineCurve => "IFCBSPLINECURVE",
            Self::IfcBSplineCurveWithKnots => "IFCBSPLINECURVEWITHKNOTS",
            Self::IfcBSplineSurface => "IFCBSPLINESURFACE",
            Self::IfcBSplineSurfaceWithKnots => "IFCBSPLINESURFACEWITHKNOTS",
            Self::IfcBeam => "IFCBEAM",
            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::IfcBorehole => "IFCBOREHOLE",
            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::IfcBuildingElementPart => "IFCBUILDINGELEMENTPART",
            Self::IfcBuildingElementPartType => "IFCBUILDINGELEMENTPARTTYPE",
            Self::IfcBuildingElementProxy => "IFCBUILDINGELEMENTPROXY",
            Self::IfcBuildingElementProxyType => "IFCBUILDINGELEMENTPROXYTYPE",
            Self::IfcBuildingStorey => "IFCBUILDINGSTOREY",
            Self::IfcBuildingSystem => "IFCBUILDINGSYSTEM",
            Self::IfcBuiltElement => "IFCBUILTELEMENT",
            Self::IfcBuiltElementType => "IFCBUILTELEMENTTYPE",
            Self::IfcBuiltSystem => "IFCBUILTSYSTEM",
            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::IfcCivilElement => "IFCCIVILELEMENT",
            Self::IfcCivilElementType => "IFCCIVILELEMENTTYPE",
            Self::IfcClassification => "IFCCLASSIFICATION",
            Self::IfcClassificationReference => "IFCCLASSIFICATIONREFERENCE",
            Self::IfcClosedShell => "IFCCLOSEDSHELL",
            Self::IfcClothoid => "IFCCLOTHOID",
            Self::IfcCoil => "IFCCOIL",
            Self::IfcCoilType => "IFCCOILTYPE",
            Self::IfcColourRgb => "IFCCOLOURRGB",
            Self::IfcColourRgbList => "IFCCOLOURRGBLIST",
            Self::IfcColourSpecification => "IFCCOLOURSPECIFICATION",
            Self::IfcColumn => "IFCCOLUMN",
            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::IfcConveyorSegment => "IFCCONVEYORSEGMENT",
            Self::IfcConveyorSegmentType => "IFCCONVEYORSEGMENTTYPE",
            Self::IfcCooledBeam => "IFCCOOLEDBEAM",
            Self::IfcCooledBeamType => "IFCCOOLEDBEAMTYPE",
            Self::IfcCoolingTower => "IFCCOOLINGTOWER",
            Self::IfcCoolingTowerType => "IFCCOOLINGTOWERTYPE",
            Self::IfcCoordinateOperation => "IFCCOORDINATEOPERATION",
            Self::IfcCoordinateReferenceSystem => "IFCCOORDINATEREFERENCESYSTEM",
            Self::IfcCosineSpiral => "IFCCOSINESPIRAL",
            Self::IfcCostItem => "IFCCOSTITEM",
            Self::IfcCostSchedule => "IFCCOSTSCHEDULE",
            Self::IfcCostValue => "IFCCOSTVALUE",
            Self::IfcCourse => "IFCCOURSE",
            Self::IfcCourseType => "IFCCOURSETYPE",
            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::IfcCurveSegment => "IFCCURVESEGMENT",
            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::IfcDirectrixCurveSweptAreaSolid => "IFCDIRECTRIXCURVESWEPTAREASOLID",
            Self::IfcDirectrixDerivedReferenceSweptAreaSolid => {
                "IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID"
            }
            Self::IfcDiscreteAccessory => "IFCDISCRETEACCESSORY",
            Self::IfcDiscreteAccessoryType => "IFCDISCRETEACCESSORYTYPE",
            Self::IfcDistributionBoard => "IFCDISTRIBUTIONBOARD",
            Self::IfcDistributionBoardType => "IFCDISTRIBUTIONBOARDTYPE",
            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::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::IfcEarthworksCut => "IFCEARTHWORKSCUT",
            Self::IfcEarthworksElement => "IFCEARTHWORKSELEMENT",
            Self::IfcEarthworksFill => "IFCEARTHWORKSFILL",
            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::IfcElectricFlowTreatmentDevice => "IFCELECTRICFLOWTREATMENTDEVICE",
            Self::IfcElectricFlowTreatmentDeviceType => "IFCELECTRICFLOWTREATMENTDEVICETYPE",
            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::IfcFacilityPartCommon => "IFCFACILITYPARTCOMMON",
            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::IfcGeographicCRS => "IFCGEOGRAPHICCRS",
            Self::IfcGeographicElement => "IFCGEOGRAPHICELEMENT",
            Self::IfcGeographicElementType => "IFCGEOGRAPHICELEMENTTYPE",
            Self::IfcGeometricCurveSet => "IFCGEOMETRICCURVESET",
            Self::IfcGeometricRepresentationContext => "IFCGEOMETRICREPRESENTATIONCONTEXT",
            Self::IfcGeometricRepresentationItem => "IFCGEOMETRICREPRESENTATIONITEM",
            Self::IfcGeometricRepresentationSubContext => "IFCGEOMETRICREPRESENTATIONSUBCONTEXT",
            Self::IfcGeometricSet => "IFCGEOMETRICSET",
            Self::IfcGeomodel => "IFCGEOMODEL",
            Self::IfcGeoslice => "IFCGEOSLICE",
            Self::IfcGeotechnicalAssembly => "IFCGEOTECHNICALASSEMBLY",
            Self::IfcGeotechnicalElement => "IFCGEOTECHNICALELEMENT",
            Self::IfcGeotechnicalStratum => "IFCGEOTECHNICALSTRATUM",
            Self::IfcGradientCurve => "IFCGRADIENTCURVE",
            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::IfcImpactProtectionDevice => "IFCIMPACTPROTECTIONDEVICE",
            Self::IfcImpactProtectionDeviceType => "IFCIMPACTPROTECTIONDEVICETYPE",
            Self::IfcIndexedColourMap => "IFCINDEXEDCOLOURMAP",
            Self::IfcIndexedPolyCurve => "IFCINDEXEDPOLYCURVE",
            Self::IfcIndexedPolygonalFace => "IFCINDEXEDPOLYGONALFACE",
            Self::IfcIndexedPolygonalFaceWithVoids => "IFCINDEXEDPOLYGONALFACEWITHVOIDS",
            Self::IfcIndexedPolygonalTextureMap => "IFCINDEXEDPOLYGONALTEXTUREMAP",
            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::IfcKerb => "IFCKERB",
            Self::IfcKerbType => "IFCKERBTYPE",
            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::IfcLinearElement => "IFCLINEARELEMENT",
            Self::IfcLinearPlacement => "IFCLINEARPLACEMENT",
            Self::IfcLinearPositioningElement => "IFCLINEARPOSITIONINGELEMENT",
            Self::IfcLiquidTerminal => "IFCLIQUIDTERMINAL",
            Self::IfcLiquidTerminalType => "IFCLIQUIDTERMINALTYPE",
            Self::IfcLocalPlacement => "IFCLOCALPLACEMENT",
            Self::IfcLoop => "IFCLOOP",
            Self::IfcManifoldSolidBrep => "IFCMANIFOLDSOLIDBREP",
            Self::IfcMapConversion => "IFCMAPCONVERSION",
            Self::IfcMapConversionScaled => "IFCMAPCONVERSIONSCALED",
            Self::IfcMappedItem => "IFCMAPPEDITEM",
            Self::IfcMarineFacility => "IFCMARINEFACILITY",
            Self::IfcMarinePart => "IFCMARINEPART",
            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::IfcMemberType => "IFCMEMBERTYPE",
            Self::IfcMetric => "IFCMETRIC",
            Self::IfcMirroredProfileDef => "IFCMIRROREDPROFILEDEF",
            Self::IfcMobileTelecommunicationsAppliance => "IFCMOBILETELECOMMUNICATIONSAPPLIANCE",
            Self::IfcMobileTelecommunicationsApplianceType => {
                "IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE"
            }
            Self::IfcMonetaryUnit => "IFCMONETARYUNIT",
            Self::IfcMooringDevice => "IFCMOORINGDEVICE",
            Self::IfcMooringDeviceType => "IFCMOORINGDEVICETYPE",
            Self::IfcMotorConnection => "IFCMOTORCONNECTION",
            Self::IfcMotorConnectionType => "IFCMOTORCONNECTIONTYPE",
            Self::IfcNamedUnit => "IFCNAMEDUNIT",
            Self::IfcNavigationElement => "IFCNAVIGATIONELEMENT",
            Self::IfcNavigationElementType => "IFCNAVIGATIONELEMENTTYPE",
            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::IfcOpenCrossProfileDef => "IFCOPENCROSSPROFILEDEF",
            Self::IfcOpenShell => "IFCOPENSHELL",
            Self::IfcOpeningElement => "IFCOPENINGELEMENT",
            Self::IfcOrganization => "IFCORGANIZATION",
            Self::IfcOrganizationRelationship => "IFCORGANIZATIONRELATIONSHIP",
            Self::IfcOrientedEdge => "IFCORIENTEDEDGE",
            Self::IfcOuterBoundaryCurve => "IFCOUTERBOUNDARYCURVE",
            Self::IfcOutlet => "IFCOUTLET",
            Self::IfcOutletType => "IFCOUTLETTYPE",
            Self::IfcOwnerHistory => "IFCOWNERHISTORY",
            Self::IfcParameterizedProfileDef => "IFCPARAMETERIZEDPROFILEDEF",
            Self::IfcPath => "IFCPATH",
            Self::IfcPavement => "IFCPAVEMENT",
            Self::IfcPavementType => "IFCPAVEMENTTYPE",
            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::IfcPlateType => "IFCPLATETYPE",
            Self::IfcPoint => "IFCPOINT",
            Self::IfcPointByDistanceExpression => "IFCPOINTBYDISTANCEEXPRESSION",
            Self::IfcPointOnCurve => "IFCPOINTONCURVE",
            Self::IfcPointOnSurface => "IFCPOINTONSURFACE",
            Self::IfcPolyLoop => "IFCPOLYLOOP",
            Self::IfcPolygonalBoundedHalfSpace => "IFCPOLYGONALBOUNDEDHALFSPACE",
            Self::IfcPolygonalFaceSet => "IFCPOLYGONALFACESET",
            Self::IfcPolyline => "IFCPOLYLINE",
            Self::IfcPolynomialCurve => "IFCPOLYNOMIALCURVE",
            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::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::IfcPump => "IFCPUMP",
            Self::IfcPumpType => "IFCPUMPTYPE",
            Self::IfcQuantityArea => "IFCQUANTITYAREA",
            Self::IfcQuantityCount => "IFCQUANTITYCOUNT",
            Self::IfcQuantityLength => "IFCQUANTITYLENGTH",
            Self::IfcQuantityNumber => "IFCQUANTITYNUMBER",
            Self::IfcQuantitySet => "IFCQUANTITYSET",
            Self::IfcQuantityTime => "IFCQUANTITYTIME",
            Self::IfcQuantityVolume => "IFCQUANTITYVOLUME",
            Self::IfcQuantityWeight => "IFCQUANTITYWEIGHT",
            Self::IfcRail => "IFCRAIL",
            Self::IfcRailType => "IFCRAILTYPE",
            Self::IfcRailing => "IFCRAILING",
            Self::IfcRailingType => "IFCRAILINGTYPE",
            Self::IfcRailway => "IFCRAILWAY",
            Self::IfcRailwayPart => "IFCRAILWAYPART",
            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::IfcReinforcedSoil => "IFCREINFORCEDSOIL",
            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::IfcRelAdheresToElement => "IFCRELADHERESTOELEMENT",
            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::IfcRelAssociatesProfileDef => "IFCRELASSOCIATESPROFILEDEF",
            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::IfcRigidOperation => "IFCRIGIDOPERATION",
            Self::IfcRoad => "IFCROAD",
            Self::IfcRoadPart => "IFCROADPART",
            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::IfcSecondOrderPolynomialSpiral => "IFCSECONDORDERPOLYNOMIALSPIRAL",
            Self::IfcSectionProperties => "IFCSECTIONPROPERTIES",
            Self::IfcSectionReinforcementProperties => "IFCSECTIONREINFORCEMENTPROPERTIES",
            Self::IfcSectionedSolid => "IFCSECTIONEDSOLID",
            Self::IfcSectionedSolidHorizontal => "IFCSECTIONEDSOLIDHORIZONTAL",
            Self::IfcSectionedSpine => "IFCSECTIONEDSPINE",
            Self::IfcSectionedSurface => "IFCSECTIONEDSURFACE",
            Self::IfcSegment => "IFCSEGMENT",
            Self::IfcSegmentedReferenceCurve => "IFCSEGMENTEDREFERENCECURVE",
            Self::IfcSensor => "IFCSENSOR",
            Self::IfcSensorType => "IFCSENSORTYPE",
            Self::IfcSeventhOrderPolynomialSpiral => "IFCSEVENTHORDERPOLYNOMIALSPIRAL",
            Self::IfcShadingDevice => "IFCSHADINGDEVICE",
            Self::IfcShadingDeviceType => "IFCSHADINGDEVICETYPE",
            Self::IfcShapeAspect => "IFCSHAPEASPECT",
            Self::IfcShapeModel => "IFCSHAPEMODEL",
            Self::IfcShapeRepresentation => "IFCSHAPEREPRESENTATION",
            Self::IfcShellBasedSurfaceModel => "IFCSHELLBASEDSURFACEMODEL",
            Self::IfcSign => "IFCSIGN",
            Self::IfcSignType => "IFCSIGNTYPE",
            Self::IfcSignal => "IFCSIGNAL",
            Self::IfcSignalType => "IFCSIGNALTYPE",
            Self::IfcSimpleProperty => "IFCSIMPLEPROPERTY",
            Self::IfcSimplePropertyTemplate => "IFCSIMPLEPROPERTYTEMPLATE",
            Self::IfcSineSpiral => "IFCSINESPIRAL",
            Self::IfcSite => "IFCSITE",
            Self::IfcSlab => "IFCSLAB",
            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::IfcSpiral => "IFCSPIRAL",
            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::IfcTextureCoordinateIndices => "IFCTEXTURECOORDINATEINDICES",
            Self::IfcTextureCoordinateIndicesWithVoids => "IFCTEXTURECOORDINATEINDICESWITHVOIDS",
            Self::IfcTextureMap => "IFCTEXTUREMAP",
            Self::IfcTextureVertex => "IFCTEXTUREVERTEX",
            Self::IfcTextureVertexList => "IFCTEXTUREVERTEXLIST",
            Self::IfcThirdOrderPolynomialSpiral => "IFCTHIRDORDERPOLYNOMIALSPIRAL",
            Self::IfcTimePeriod => "IFCTIMEPERIOD",
            Self::IfcTimeSeries => "IFCTIMESERIES",
            Self::IfcTimeSeriesValue => "IFCTIMESERIESVALUE",
            Self::IfcTopologicalRepresentationItem => "IFCTOPOLOGICALREPRESENTATIONITEM",
            Self::IfcTopologyRepresentation => "IFCTOPOLOGYREPRESENTATION",
            Self::IfcToroidalSurface => "IFCTOROIDALSURFACE",
            Self::IfcTrackElement => "IFCTRACKELEMENT",
            Self::IfcTrackElementType => "IFCTRACKELEMENTTYPE",
            Self::IfcTransformer => "IFCTRANSFORMER",
            Self::IfcTransformerType => "IFCTRANSFORMERTYPE",
            Self::IfcTransportElement => "IFCTRANSPORTELEMENT",
            Self::IfcTransportElementType => "IFCTRANSPORTELEMENTTYPE",
            Self::IfcTransportationDevice => "IFCTRANSPORTATIONDEVICE",
            Self::IfcTransportationDeviceType => "IFCTRANSPORTATIONDEVICETYPE",
            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::IfcVehicle => "IFCVEHICLE",
            Self::IfcVehicleType => "IFCVEHICLETYPE",
            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::IfcWallStandardCase => "IFCWALLSTANDARDCASE",
            Self::IfcWallType => "IFCWALLTYPE",
            Self::IfcWasteTerminal => "IFCWASTETERMINAL",
            Self::IfcWasteTerminalType => "IFCWASTETERMINALTYPE",
            Self::IfcWellKnownText => "IFCWELLKNOWNTEXT",
            Self::IfcWindow => "IFCWINDOW",
            Self::IfcWindowLiningProperties => "IFCWINDOWLININGPROPERTIES",
            Self::IfcWindowPanelProperties => "IFCWINDOWPANELPROPERTIES",
            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",
        }
    }

    /// Get display name (PascalCase)
    pub fn name(&self) -> &'static 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::IfcAlignmentCant => "IfcAlignmentCant",
            Self::IfcAlignmentCantSegment => "IfcAlignmentCantSegment",
            Self::IfcAlignmentHorizontal => "IfcAlignmentHorizontal",
            Self::IfcAlignmentHorizontalSegment => "IfcAlignmentHorizontalSegment",
            Self::IfcAlignmentParameterSegment => "IfcAlignmentParameterSegment",
            Self::IfcAlignmentSegment => "IfcAlignmentSegment",
            Self::IfcAlignmentVertical => "IfcAlignmentVertical",
            Self::IfcAlignmentVerticalSegment => "IfcAlignmentVerticalSegment",
            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::IfcAxis2PlacementLinear => "IfcAxis2PlacementLinear",
            Self::IfcBSplineCurve => "IfcBSplineCurve",
            Self::IfcBSplineCurveWithKnots => "IfcBSplineCurveWithKnots",
            Self::IfcBSplineSurface => "IfcBSplineSurface",
            Self::IfcBSplineSurfaceWithKnots => "IfcBSplineSurfaceWithKnots",
            Self::IfcBeam => "IfcBeam",
            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::IfcBorehole => "IfcBorehole",
            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::IfcBuildingElementPart => "IfcBuildingElementPart",
            Self::IfcBuildingElementPartType => "IfcBuildingElementPartType",
            Self::IfcBuildingElementProxy => "IfcBuildingElementProxy",
            Self::IfcBuildingElementProxyType => "IfcBuildingElementProxyType",
            Self::IfcBuildingStorey => "IfcBuildingStorey",
            Self::IfcBuildingSystem => "IfcBuildingSystem",
            Self::IfcBuiltElement => "IfcBuiltElement",
            Self::IfcBuiltElementType => "IfcBuiltElementType",
            Self::IfcBuiltSystem => "IfcBuiltSystem",
            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::IfcCivilElement => "IfcCivilElement",
            Self::IfcCivilElementType => "IfcCivilElementType",
            Self::IfcClassification => "IfcClassification",
            Self::IfcClassificationReference => "IfcClassificationReference",
            Self::IfcClosedShell => "IfcClosedShell",
            Self::IfcClothoid => "IfcClothoid",
            Self::IfcCoil => "IfcCoil",
            Self::IfcCoilType => "IfcCoilType",
            Self::IfcColourRgb => "IfcColourRgb",
            Self::IfcColourRgbList => "IfcColourRgbList",
            Self::IfcColourSpecification => "IfcColourSpecification",
            Self::IfcColumn => "IfcColumn",
            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::IfcConveyorSegment => "IfcConveyorSegment",
            Self::IfcConveyorSegmentType => "IfcConveyorSegmentType",
            Self::IfcCooledBeam => "IfcCooledBeam",
            Self::IfcCooledBeamType => "IfcCooledBeamType",
            Self::IfcCoolingTower => "IfcCoolingTower",
            Self::IfcCoolingTowerType => "IfcCoolingTowerType",
            Self::IfcCoordinateOperation => "IfcCoordinateOperation",
            Self::IfcCoordinateReferenceSystem => "IfcCoordinateReferenceSystem",
            Self::IfcCosineSpiral => "IfcCosineSpiral",
            Self::IfcCostItem => "IfcCostItem",
            Self::IfcCostSchedule => "IfcCostSchedule",
            Self::IfcCostValue => "IfcCostValue",
            Self::IfcCourse => "IfcCourse",
            Self::IfcCourseType => "IfcCourseType",
            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::IfcCurveSegment => "IfcCurveSegment",
            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::IfcDirectrixCurveSweptAreaSolid => "IfcDirectrixCurveSweptAreaSolid",
            Self::IfcDirectrixDerivedReferenceSweptAreaSolid => {
                "IfcDirectrixDerivedReferenceSweptAreaSolid"
            }
            Self::IfcDiscreteAccessory => "IfcDiscreteAccessory",
            Self::IfcDiscreteAccessoryType => "IfcDiscreteAccessoryType",
            Self::IfcDistributionBoard => "IfcDistributionBoard",
            Self::IfcDistributionBoardType => "IfcDistributionBoardType",
            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::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::IfcEarthworksCut => "IfcEarthworksCut",
            Self::IfcEarthworksElement => "IfcEarthworksElement",
            Self::IfcEarthworksFill => "IfcEarthworksFill",
            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::IfcElectricFlowTreatmentDevice => "IfcElectricFlowTreatmentDevice",
            Self::IfcElectricFlowTreatmentDeviceType => "IfcElectricFlowTreatmentDeviceType",
            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::IfcFacilityPartCommon => "IfcFacilityPartCommon",
            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::IfcGeographicCRS => "IfcGeographicCRS",
            Self::IfcGeographicElement => "IfcGeographicElement",
            Self::IfcGeographicElementType => "IfcGeographicElementType",
            Self::IfcGeometricCurveSet => "IfcGeometricCurveSet",
            Self::IfcGeometricRepresentationContext => "IfcGeometricRepresentationContext",
            Self::IfcGeometricRepresentationItem => "IfcGeometricRepresentationItem",
            Self::IfcGeometricRepresentationSubContext => "IfcGeometricRepresentationSubContext",
            Self::IfcGeometricSet => "IfcGeometricSet",
            Self::IfcGeomodel => "IfcGeomodel",
            Self::IfcGeoslice => "IfcGeoslice",
            Self::IfcGeotechnicalAssembly => "IfcGeotechnicalAssembly",
            Self::IfcGeotechnicalElement => "IfcGeotechnicalElement",
            Self::IfcGeotechnicalStratum => "IfcGeotechnicalStratum",
            Self::IfcGradientCurve => "IfcGradientCurve",
            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::IfcImpactProtectionDevice => "IfcImpactProtectionDevice",
            Self::IfcImpactProtectionDeviceType => "IfcImpactProtectionDeviceType",
            Self::IfcIndexedColourMap => "IfcIndexedColourMap",
            Self::IfcIndexedPolyCurve => "IfcIndexedPolyCurve",
            Self::IfcIndexedPolygonalFace => "IfcIndexedPolygonalFace",
            Self::IfcIndexedPolygonalFaceWithVoids => "IfcIndexedPolygonalFaceWithVoids",
            Self::IfcIndexedPolygonalTextureMap => "IfcIndexedPolygonalTextureMap",
            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::IfcKerb => "IfcKerb",
            Self::IfcKerbType => "IfcKerbType",
            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::IfcLinearElement => "IfcLinearElement",
            Self::IfcLinearPlacement => "IfcLinearPlacement",
            Self::IfcLinearPositioningElement => "IfcLinearPositioningElement",
            Self::IfcLiquidTerminal => "IfcLiquidTerminal",
            Self::IfcLiquidTerminalType => "IfcLiquidTerminalType",
            Self::IfcLocalPlacement => "IfcLocalPlacement",
            Self::IfcLoop => "IfcLoop",
            Self::IfcManifoldSolidBrep => "IfcManifoldSolidBrep",
            Self::IfcMapConversion => "IfcMapConversion",
            Self::IfcMapConversionScaled => "IfcMapConversionScaled",
            Self::IfcMappedItem => "IfcMappedItem",
            Self::IfcMarineFacility => "IfcMarineFacility",
            Self::IfcMarinePart => "IfcMarinePart",
            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::IfcMemberType => "IfcMemberType",
            Self::IfcMetric => "IfcMetric",
            Self::IfcMirroredProfileDef => "IfcMirroredProfileDef",
            Self::IfcMobileTelecommunicationsAppliance => "IfcMobileTelecommunicationsAppliance",
            Self::IfcMobileTelecommunicationsApplianceType => {
                "IfcMobileTelecommunicationsApplianceType"
            }
            Self::IfcMonetaryUnit => "IfcMonetaryUnit",
            Self::IfcMooringDevice => "IfcMooringDevice",
            Self::IfcMooringDeviceType => "IfcMooringDeviceType",
            Self::IfcMotorConnection => "IfcMotorConnection",
            Self::IfcMotorConnectionType => "IfcMotorConnectionType",
            Self::IfcNamedUnit => "IfcNamedUnit",
            Self::IfcNavigationElement => "IfcNavigationElement",
            Self::IfcNavigationElementType => "IfcNavigationElementType",
            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::IfcOpenCrossProfileDef => "IfcOpenCrossProfileDef",
            Self::IfcOpenShell => "IfcOpenShell",
            Self::IfcOpeningElement => "IfcOpeningElement",
            Self::IfcOrganization => "IfcOrganization",
            Self::IfcOrganizationRelationship => "IfcOrganizationRelationship",
            Self::IfcOrientedEdge => "IfcOrientedEdge",
            Self::IfcOuterBoundaryCurve => "IfcOuterBoundaryCurve",
            Self::IfcOutlet => "IfcOutlet",
            Self::IfcOutletType => "IfcOutletType",
            Self::IfcOwnerHistory => "IfcOwnerHistory",
            Self::IfcParameterizedProfileDef => "IfcParameterizedProfileDef",
            Self::IfcPath => "IfcPath",
            Self::IfcPavement => "IfcPavement",
            Self::IfcPavementType => "IfcPavementType",
            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::IfcPlateType => "IfcPlateType",
            Self::IfcPoint => "IfcPoint",
            Self::IfcPointByDistanceExpression => "IfcPointByDistanceExpression",
            Self::IfcPointOnCurve => "IfcPointOnCurve",
            Self::IfcPointOnSurface => "IfcPointOnSurface",
            Self::IfcPolyLoop => "IfcPolyLoop",
            Self::IfcPolygonalBoundedHalfSpace => "IfcPolygonalBoundedHalfSpace",
            Self::IfcPolygonalFaceSet => "IfcPolygonalFaceSet",
            Self::IfcPolyline => "IfcPolyline",
            Self::IfcPolynomialCurve => "IfcPolynomialCurve",
            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::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::IfcPump => "IfcPump",
            Self::IfcPumpType => "IfcPumpType",
            Self::IfcQuantityArea => "IfcQuantityArea",
            Self::IfcQuantityCount => "IfcQuantityCount",
            Self::IfcQuantityLength => "IfcQuantityLength",
            Self::IfcQuantityNumber => "IfcQuantityNumber",
            Self::IfcQuantitySet => "IfcQuantitySet",
            Self::IfcQuantityTime => "IfcQuantityTime",
            Self::IfcQuantityVolume => "IfcQuantityVolume",
            Self::IfcQuantityWeight => "IfcQuantityWeight",
            Self::IfcRail => "IfcRail",
            Self::IfcRailType => "IfcRailType",
            Self::IfcRailing => "IfcRailing",
            Self::IfcRailingType => "IfcRailingType",
            Self::IfcRailway => "IfcRailway",
            Self::IfcRailwayPart => "IfcRailwayPart",
            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::IfcReinforcedSoil => "IfcReinforcedSoil",
            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::IfcRelAdheresToElement => "IfcRelAdheresToElement",
            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::IfcRelAssociatesProfileDef => "IfcRelAssociatesProfileDef",
            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::IfcRigidOperation => "IfcRigidOperation",
            Self::IfcRoad => "IfcRoad",
            Self::IfcRoadPart => "IfcRoadPart",
            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::IfcSecondOrderPolynomialSpiral => "IfcSecondOrderPolynomialSpiral",
            Self::IfcSectionProperties => "IfcSectionProperties",
            Self::IfcSectionReinforcementProperties => "IfcSectionReinforcementProperties",
            Self::IfcSectionedSolid => "IfcSectionedSolid",
            Self::IfcSectionedSolidHorizontal => "IfcSectionedSolidHorizontal",
            Self::IfcSectionedSpine => "IfcSectionedSpine",
            Self::IfcSectionedSurface => "IfcSectionedSurface",
            Self::IfcSegment => "IfcSegment",
            Self::IfcSegmentedReferenceCurve => "IfcSegmentedReferenceCurve",
            Self::IfcSensor => "IfcSensor",
            Self::IfcSensorType => "IfcSensorType",
            Self::IfcSeventhOrderPolynomialSpiral => "IfcSeventhOrderPolynomialSpiral",
            Self::IfcShadingDevice => "IfcShadingDevice",
            Self::IfcShadingDeviceType => "IfcShadingDeviceType",
            Self::IfcShapeAspect => "IfcShapeAspect",
            Self::IfcShapeModel => "IfcShapeModel",
            Self::IfcShapeRepresentation => "IfcShapeRepresentation",
            Self::IfcShellBasedSurfaceModel => "IfcShellBasedSurfaceModel",
            Self::IfcSign => "IfcSign",
            Self::IfcSignType => "IfcSignType",
            Self::IfcSignal => "IfcSignal",
            Self::IfcSignalType => "IfcSignalType",
            Self::IfcSimpleProperty => "IfcSimpleProperty",
            Self::IfcSimplePropertyTemplate => "IfcSimplePropertyTemplate",
            Self::IfcSineSpiral => "IfcSineSpiral",
            Self::IfcSite => "IfcSite",
            Self::IfcSlab => "IfcSlab",
            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::IfcSpiral => "IfcSpiral",
            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::IfcTextureCoordinateIndices => "IfcTextureCoordinateIndices",
            Self::IfcTextureCoordinateIndicesWithVoids => "IfcTextureCoordinateIndicesWithVoids",
            Self::IfcTextureMap => "IfcTextureMap",
            Self::IfcTextureVertex => "IfcTextureVertex",
            Self::IfcTextureVertexList => "IfcTextureVertexList",
            Self::IfcThirdOrderPolynomialSpiral => "IfcThirdOrderPolynomialSpiral",
            Self::IfcTimePeriod => "IfcTimePeriod",
            Self::IfcTimeSeries => "IfcTimeSeries",
            Self::IfcTimeSeriesValue => "IfcTimeSeriesValue",
            Self::IfcTopologicalRepresentationItem => "IfcTopologicalRepresentationItem",
            Self::IfcTopologyRepresentation => "IfcTopologyRepresentation",
            Self::IfcToroidalSurface => "IfcToroidalSurface",
            Self::IfcTrackElement => "IfcTrackElement",
            Self::IfcTrackElementType => "IfcTrackElementType",
            Self::IfcTransformer => "IfcTransformer",
            Self::IfcTransformerType => "IfcTransformerType",
            Self::IfcTransportElement => "IfcTransportElement",
            Self::IfcTransportElementType => "IfcTransportElementType",
            Self::IfcTransportationDevice => "IfcTransportationDevice",
            Self::IfcTransportationDeviceType => "IfcTransportationDeviceType",
            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::IfcVehicle => "IfcVehicle",
            Self::IfcVehicleType => "IfcVehicleType",
            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::IfcWallStandardCase => "IfcWallStandardCase",
            Self::IfcWallType => "IfcWallType",
            Self::IfcWasteTerminal => "IfcWasteTerminal",
            Self::IfcWasteTerminalType => "IfcWasteTerminalType",
            Self::IfcWellKnownText => "IfcWellKnownText",
            Self::IfcWindow => "IfcWindow",
            Self::IfcWindowLiningProperties => "IfcWindowLiningProperties",
            Self::IfcWindowPanelProperties => "IfcWindowPanelProperties",
            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",
        }
    }

    /// 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::IfcAlignmentCant => Some(Self::IfcLinearElement),
            Self::IfcAlignmentCantSegment => Some(Self::IfcAlignmentParameterSegment),
            Self::IfcAlignmentHorizontal => Some(Self::IfcLinearElement),
            Self::IfcAlignmentHorizontalSegment => Some(Self::IfcAlignmentParameterSegment),
            Self::IfcAlignmentSegment => Some(Self::IfcLinearElement),
            Self::IfcAlignmentVertical => Some(Self::IfcLinearElement),
            Self::IfcAlignmentVerticalSegment => Some(Self::IfcAlignmentParameterSegment),
            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::IfcAxis2PlacementLinear => 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::IfcBuiltElement),
            Self::IfcBeamType => Some(Self::IfcBuiltElementType),
            Self::IfcBearing => Some(Self::IfcBuiltElement),
            Self::IfcBearingType => Some(Self::IfcBuiltElementType),
            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::IfcBorehole => Some(Self::IfcGeotechnicalAssembly),
            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::IfcBuildingElementPart => Some(Self::IfcElementComponent),
            Self::IfcBuildingElementPartType => Some(Self::IfcElementComponentType),
            Self::IfcBuildingElementProxy => Some(Self::IfcBuiltElement),
            Self::IfcBuildingElementProxyType => Some(Self::IfcBuiltElementType),
            Self::IfcBuildingStorey => Some(Self::IfcSpatialStructureElement),
            Self::IfcBuildingSystem => Some(Self::IfcSystem),
            Self::IfcBuiltElement => Some(Self::IfcElement),
            Self::IfcBuiltElementType => Some(Self::IfcElementType),
            Self::IfcBuiltSystem => 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::IfcBuiltElement),
            Self::IfcChimneyType => Some(Self::IfcBuiltElementType),
            Self::IfcCircle => Some(Self::IfcConic),
            Self::IfcCircleHollowProfileDef => Some(Self::IfcCircleProfileDef),
            Self::IfcCircleProfileDef => Some(Self::IfcParameterizedProfileDef),
            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::IfcClothoid => Some(Self::IfcSpiral),
            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::IfcBuiltElement),
            Self::IfcColumnType => Some(Self::IfcBuiltElementType),
            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::IfcSegment),
            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::IfcConveyorSegment => Some(Self::IfcFlowSegment),
            Self::IfcConveyorSegmentType => Some(Self::IfcFlowSegmentType),
            Self::IfcCooledBeam => Some(Self::IfcEnergyConversionDevice),
            Self::IfcCooledBeamType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcCoolingTower => Some(Self::IfcEnergyConversionDevice),
            Self::IfcCoolingTowerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcCosineSpiral => Some(Self::IfcSpiral),
            Self::IfcCostItem => Some(Self::IfcControl),
            Self::IfcCostSchedule => Some(Self::IfcControl),
            Self::IfcCostValue => Some(Self::IfcAppliedValue),
            Self::IfcCourse => Some(Self::IfcBuiltElement),
            Self::IfcCourseType => Some(Self::IfcBuiltElementType),
            Self::IfcCovering => Some(Self::IfcBuiltElement),
            Self::IfcCoveringType => Some(Self::IfcBuiltElementType),
            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::IfcBuiltElement),
            Self::IfcCurtainWallType => Some(Self::IfcBuiltElementType),
            Self::IfcCurve => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcCurveBoundedPlane => Some(Self::IfcBoundedSurface),
            Self::IfcCurveBoundedSurface => Some(Self::IfcBoundedSurface),
            Self::IfcCurveSegment => Some(Self::IfcSegment),
            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::IfcBuiltElement),
            Self::IfcDeepFoundationType => Some(Self::IfcBuiltElementType),
            Self::IfcDerivedProfileDef => Some(Self::IfcProfileDef),
            Self::IfcDirection => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcDirectrixCurveSweptAreaSolid => Some(Self::IfcSweptAreaSolid),
            Self::IfcDirectrixDerivedReferenceSweptAreaSolid => {
                Some(Self::IfcFixedReferenceSweptAreaSolid)
            }
            Self::IfcDiscreteAccessory => Some(Self::IfcElementComponent),
            Self::IfcDiscreteAccessoryType => Some(Self::IfcElementComponentType),
            Self::IfcDistributionBoard => Some(Self::IfcFlowController),
            Self::IfcDistributionBoardType => Some(Self::IfcFlowControllerType),
            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::IfcBuiltElement),
            Self::IfcDoorLiningProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcDoorPanelProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcDoorType => Some(Self::IfcBuiltElementType),
            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::IfcEarthworksCut => Some(Self::IfcFeatureElementSubtraction),
            Self::IfcEarthworksElement => Some(Self::IfcBuiltElement),
            Self::IfcEarthworksFill => Some(Self::IfcEarthworksElement),
            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::IfcElectricFlowTreatmentDevice => Some(Self::IfcFlowTreatmentDevice),
            Self::IfcElectricFlowTreatmentDeviceType => Some(Self::IfcFlowTreatmentDeviceType),
            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::IfcFacilityPartCommon => Some(Self::IfcFacilityPart),
            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::IfcDirectrixCurveSweptAreaSolid),
            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::IfcBuiltElement),
            Self::IfcFootingType => Some(Self::IfcBuiltElementType),
            Self::IfcFurnishingElement => Some(Self::IfcElement),
            Self::IfcFurnishingElementType => Some(Self::IfcElementType),
            Self::IfcFurniture => Some(Self::IfcFurnishingElement),
            Self::IfcFurnitureType => Some(Self::IfcFurnishingElementType),
            Self::IfcGeographicCRS => Some(Self::IfcCoordinateReferenceSystem),
            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::IfcGeomodel => Some(Self::IfcGeotechnicalAssembly),
            Self::IfcGeoslice => Some(Self::IfcGeotechnicalAssembly),
            Self::IfcGeotechnicalAssembly => Some(Self::IfcGeotechnicalElement),
            Self::IfcGeotechnicalElement => Some(Self::IfcElement),
            Self::IfcGeotechnicalStratum => Some(Self::IfcGeotechnicalElement),
            Self::IfcGradientCurve => Some(Self::IfcCompositeCurve),
            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::IfcImpactProtectionDevice => Some(Self::IfcElementComponent),
            Self::IfcImpactProtectionDeviceType => Some(Self::IfcElementComponentType),
            Self::IfcIndexedColourMap => Some(Self::IfcPresentationItem),
            Self::IfcIndexedPolyCurve => Some(Self::IfcBoundedCurve),
            Self::IfcIndexedPolygonalFace => Some(Self::IfcTessellatedItem),
            Self::IfcIndexedPolygonalFaceWithVoids => Some(Self::IfcIndexedPolygonalFace),
            Self::IfcIndexedPolygonalTextureMap => Some(Self::IfcIndexedTextureMap),
            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::IfcKerb => Some(Self::IfcBuiltElement),
            Self::IfcKerbType => Some(Self::IfcBuiltElementType),
            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::IfcLinearElement => Some(Self::IfcProduct),
            Self::IfcLinearPlacement => Some(Self::IfcObjectPlacement),
            Self::IfcLinearPositioningElement => Some(Self::IfcPositioningElement),
            Self::IfcLiquidTerminal => Some(Self::IfcFlowTerminal),
            Self::IfcLiquidTerminalType => Some(Self::IfcFlowTerminalType),
            Self::IfcLocalPlacement => Some(Self::IfcObjectPlacement),
            Self::IfcLoop => Some(Self::IfcTopologicalRepresentationItem),
            Self::IfcManifoldSolidBrep => Some(Self::IfcSolidModel),
            Self::IfcMapConversion => Some(Self::IfcCoordinateOperation),
            Self::IfcMapConversionScaled => Some(Self::IfcMapConversion),
            Self::IfcMappedItem => Some(Self::IfcRepresentationItem),
            Self::IfcMarineFacility => Some(Self::IfcFacility),
            Self::IfcMarinePart => Some(Self::IfcFacilityPart),
            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::IfcBuiltElement),
            Self::IfcMemberType => Some(Self::IfcBuiltElementType),
            Self::IfcMetric => Some(Self::IfcConstraint),
            Self::IfcMirroredProfileDef => Some(Self::IfcDerivedProfileDef),
            Self::IfcMobileTelecommunicationsAppliance => Some(Self::IfcFlowTerminal),
            Self::IfcMobileTelecommunicationsApplianceType => Some(Self::IfcFlowTerminalType),
            Self::IfcMooringDevice => Some(Self::IfcBuiltElement),
            Self::IfcMooringDeviceType => Some(Self::IfcBuiltElementType),
            Self::IfcMotorConnection => Some(Self::IfcEnergyConversionDevice),
            Self::IfcMotorConnectionType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcNavigationElement => Some(Self::IfcBuiltElement),
            Self::IfcNavigationElementType => Some(Self::IfcBuiltElementType),
            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::IfcOpenCrossProfileDef => Some(Self::IfcProfileDef),
            Self::IfcOpenShell => Some(Self::IfcConnectedFaceSet),
            Self::IfcOpeningElement => Some(Self::IfcFeatureElementSubtraction),
            Self::IfcOrganizationRelationship => Some(Self::IfcResourceLevelRelationship),
            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::IfcPavement => Some(Self::IfcBuiltElement),
            Self::IfcPavementType => Some(Self::IfcBuiltElementType),
            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::IfcBuiltElement),
            Self::IfcPlateType => Some(Self::IfcBuiltElementType),
            Self::IfcPoint => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcPointByDistanceExpression => Some(Self::IfcPoint),
            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::IfcPolynomialCurve => Some(Self::IfcCurve),
            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::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::IfcQuantityNumber => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcQuantitySet => Some(Self::IfcPropertySetDefinition),
            Self::IfcQuantityTime => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcQuantityVolume => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcQuantityWeight => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcRail => Some(Self::IfcBuiltElement),
            Self::IfcRailType => Some(Self::IfcBuiltElementType),
            Self::IfcRailing => Some(Self::IfcBuiltElement),
            Self::IfcRailingType => Some(Self::IfcBuiltElementType),
            Self::IfcRailway => Some(Self::IfcFacility),
            Self::IfcRailwayPart => Some(Self::IfcFacilityPart),
            Self::IfcRamp => Some(Self::IfcBuiltElement),
            Self::IfcRampFlight => Some(Self::IfcBuiltElement),
            Self::IfcRampFlightType => Some(Self::IfcBuiltElementType),
            Self::IfcRampType => Some(Self::IfcBuiltElementType),
            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::IfcReinforcedSoil => Some(Self::IfcEarthworksElement),
            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::IfcRelAdheresToElement => Some(Self::IfcRelDecomposes),
            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::IfcRelAssociatesProfileDef => 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::IfcRigidOperation => Some(Self::IfcCoordinateOperation),
            Self::IfcRoad => Some(Self::IfcFacility),
            Self::IfcRoadPart => Some(Self::IfcFacilityPart),
            Self::IfcRoof => Some(Self::IfcBuiltElement),
            Self::IfcRoofType => Some(Self::IfcBuiltElementType),
            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::IfcSecondOrderPolynomialSpiral => Some(Self::IfcSpiral),
            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::IfcSectionedSurface => Some(Self::IfcSurface),
            Self::IfcSegment => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcSegmentedReferenceCurve => Some(Self::IfcCompositeCurve),
            Self::IfcSensor => Some(Self::IfcDistributionControlElement),
            Self::IfcSensorType => Some(Self::IfcDistributionControlElementType),
            Self::IfcSeventhOrderPolynomialSpiral => Some(Self::IfcSpiral),
            Self::IfcShadingDevice => Some(Self::IfcBuiltElement),
            Self::IfcShadingDeviceType => Some(Self::IfcBuiltElementType),
            Self::IfcShapeModel => Some(Self::IfcRepresentation),
            Self::IfcShapeRepresentation => Some(Self::IfcShapeModel),
            Self::IfcShellBasedSurfaceModel => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcSign => Some(Self::IfcElementComponent),
            Self::IfcSignType => Some(Self::IfcElementComponentType),
            Self::IfcSignal => Some(Self::IfcFlowTerminal),
            Self::IfcSignalType => Some(Self::IfcFlowTerminalType),
            Self::IfcSimpleProperty => Some(Self::IfcProperty),
            Self::IfcSimplePropertyTemplate => Some(Self::IfcPropertyTemplate),
            Self::IfcSineSpiral => Some(Self::IfcSpiral),
            Self::IfcSite => Some(Self::IfcSpatialStructureElement),
            Self::IfcSlab => Some(Self::IfcBuiltElement),
            Self::IfcSlabType => Some(Self::IfcBuiltElementType),
            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::IfcSpiral => Some(Self::IfcCurve),
            Self::IfcStackTerminal => Some(Self::IfcFlowTerminal),
            Self::IfcStackTerminalType => Some(Self::IfcFlowTerminalType),
            Self::IfcStair => Some(Self::IfcBuiltElement),
            Self::IfcStairFlight => Some(Self::IfcBuiltElement),
            Self::IfcStairFlightType => Some(Self::IfcBuiltElementType),
            Self::IfcStairType => Some(Self::IfcBuiltElementType),
            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::IfcDirectrixCurveSweptAreaSolid),
            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::IfcTextureCoordinateIndicesWithVoids => Some(Self::IfcTextureCoordinateIndices),
            Self::IfcTextureMap => Some(Self::IfcTextureCoordinate),
            Self::IfcTextureVertex => Some(Self::IfcPresentationItem),
            Self::IfcTextureVertexList => Some(Self::IfcPresentationItem),
            Self::IfcThirdOrderPolynomialSpiral => Some(Self::IfcSpiral),
            Self::IfcTopologicalRepresentationItem => Some(Self::IfcRepresentationItem),
            Self::IfcTopologyRepresentation => Some(Self::IfcShapeModel),
            Self::IfcToroidalSurface => Some(Self::IfcElementarySurface),
            Self::IfcTrackElement => Some(Self::IfcBuiltElement),
            Self::IfcTrackElementType => Some(Self::IfcBuiltElementType),
            Self::IfcTransformer => Some(Self::IfcEnergyConversionDevice),
            Self::IfcTransformerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcTransportElement => Some(Self::IfcTransportationDevice),
            Self::IfcTransportElementType => Some(Self::IfcTransportationDeviceType),
            Self::IfcTransportationDevice => Some(Self::IfcElement),
            Self::IfcTransportationDeviceType => 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::IfcVehicle => Some(Self::IfcTransportationDevice),
            Self::IfcVehicleType => Some(Self::IfcTransportationDeviceType),
            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::IfcBuiltElement),
            Self::IfcWallStandardCase => Some(Self::IfcWall),
            Self::IfcWallType => Some(Self::IfcBuiltElementType),
            Self::IfcWasteTerminal => Some(Self::IfcFlowTerminal),
            Self::IfcWasteTerminalType => Some(Self::IfcFlowTerminalType),
            Self::IfcWindow => Some(Self::IfcBuiltElement),
            Self::IfcWindowLiningProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcWindowPanelProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcWindowType => Some(Self::IfcBuiltElementType),
            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);
        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::IfcAlignmentParameterSegment => true,
            Self::IfcBSplineCurve => true,
            Self::IfcBSplineSurface => true,
            Self::IfcBoundaryCondition => true,
            Self::IfcBoundedCurve => true,
            Self::IfcBoundedSurface => 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::IfcDirectrixCurveSweptAreaSolid => 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::IfcFacilityPart => 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::IfcGeotechnicalAssembly => true,
            Self::IfcGeotechnicalElement => 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::IfcSegment => true,
            Self::IfcShapeModel => true,
            Self::IfcSimpleProperty => true,
            Self::IfcSolidModel => true,
            Self::IfcSpatialElement => true,
            Self::IfcSpatialElementType => true,
            Self::IfcSpatialStructureElement => true,
            Self::IfcSpatialStructureElementType => true,
            Self::IfcSpiral => 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::IfcTransportationDevice => true,
            Self::IfcTransportationDeviceType => true,
            Self::IfcTypeProcess => true,
            Self::IfcTypeResource => true,
            Self::IfcWorkControl => true,
            _ => false,
        }
    }
}

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

// ===== MANUALLY ADDED HELPER FUNCTION =====

/// Check if a type name (UPPERCASE STEP string) represents an IfcProduct subtype
/// that can bear geometry (has ObjectPlacement + Representation attributes).
///
/// Uses a whitelist of known IfcProduct subtypes rather than a broad blacklist,
/// to avoid sending non-product entities (IfcDimensionalExponents, IfcSurfaceStyleRendering,
/// IfcGeometricRepresentationSubContext, etc.) to geometry processing.
pub fn has_geometry_by_name(type_name: &str) -> bool {
    match type_name {
        // Building elements (IfcBuildingElement / IfcBuiltElement subtypes)
        "IFCBEAM" | "IFCBEAMSTANDARDCASE"
        | "IFCBUILDINGELEMENT" | "IFCBUILDINGELEMENTPART" | "IFCBUILDINGELEMENTPROXY"
        | "IFCBUILTELEMENT"
        | "IFCCHIMNEY"
        | "IFCCOLUMN" | "IFCCOLUMNSTANDARDCASE"
        | "IFCCOVERING"
        | "IFCCURTAINWALL"
        | "IFCDOOR" | "IFCDOORSTANDARDCASE"
        | "IFCFOOTING"
        | "IFCMEMBER" | "IFCMEMBERSTANDARDCASE"
        | "IFCPILE"
        | "IFCPLATE" | "IFCPLATESTANDARDCASE"
        | "IFCRAILING"
        | "IFCRAMP" | "IFCRAMPFLIGHT"
        | "IFCROOF"
        | "IFCSHADINGDEVICE"
        | "IFCSLAB" | "IFCSLABSTANDARDCASE" | "IFCSLABELEMENTEDCASE"
        | "IFCSTAIR" | "IFCSTAIRFLIGHT"
        | "IFCWALL" | "IFCWALLSTANDARDCASE" | "IFCWALLELEMENTEDCASE"
        | "IFCWINDOW" | "IFCWINDOWSTANDARDCASE"
        // Furnishing elements
        | "IFCFURNISHINGELEMENT" | "IFCFURNITURE" | "IFCSYSTEMFURNITUREELEMENT"
        // Distribution / MEP elements
        | "IFCDISTRIBUTIONELEMENT" | "IFCDISTRIBUTIONFLOWELEMENT" | "IFCDISTRIBUTIONCONTROLELEMENT"
        | "IFCFLOWSEGMENT" | "IFCFLOWFITTING" | "IFCFLOWTERMINAL"
        | "IFCFLOWCONTROLLER" | "IFCFLOWMOVINGDEVICE" | "IFCFLOWSTORAGEDEVICE"
        | "IFCFLOWTREATMENTDEVICE" | "IFCENERGYCONVERSIONDEVICE"
        | "IFCDUCTSEGMENT" | "IFCDUCTFITTING" | "IFCDUCTSILENCER"
        | "IFCPIPESEGMENT" | "IFCPIPEFITTING"
        | "IFCCABLESEGMENT" | "IFCCABLECARRIERSEGMENT" | "IFCCABLECARRIERFITTING" | "IFCCABLEFITTING"
        // Specific MEP device types
        | "IFCAIRTERMINAL" | "IFCAIRTERMINALBOX" | "IFCBOILER" | "IFCBURNER"
        | "IFCCHILLER" | "IFCCOIL" | "IFCCOMPRESSOR" | "IFCCONDENSER"
        | "IFCCOOLEDBEAM" | "IFCCOOLINGTOWER"
        | "IFCELECTRICAPPLIANCE" | "IFCELECTRICDISTRIBUTIONBOARD"
        | "IFCELECTRICFLOWSTORAGEDEVICE" | "IFCELECTRICGENERATOR" | "IFCELECTRICMOTOR"
        | "IFCEVAPORATIVECOOLER" | "IFCEVAPORATOR"
        | "IFCFAN" | "IFCFILTER" | "IFCFIRESUPPRESSIONTERMINAL" | "IFCFLOWMETER"
        | "IFCHEATEXCHANGER" | "IFCHUMIDIFIER"
        | "IFCINTERCEPTOR" | "IFCJUNCTIONBOX"
        | "IFCLAMP" | "IFCLIGHTFIXTURE"
        | "IFCMEDICALDEVICE" | "IFCMOTORCONNECTION" | "IFCOUTLET"
        | "IFCPROTECTIVEDEVICE" | "IFCPROTECTIVEDEVICETRIPPINGUNIT"
        | "IFCPUMP"
        | "IFCSANITARYTERMINAL" | "IFCSENSOR"
        | "IFCSPACEHEATER"
        | "IFCSTACKTERMINAL" | "IFCSWITCHINGDEVICE"
        | "IFCTANK" | "IFCTRANSFORMER" | "IFCTUBEBUNDLE"
        | "IFCUNITARYCONTROLELEMENT" | "IFCUNITARYEQUIPMENT"
        | "IFCVALVE" | "IFCVIBRATIONISOLATOR"
        | "IFCWASTETERMINAL"
        // Spatial elements with geometry
        | "IFCSPACE" | "IFCOPENINGELEMENT" | "IFCOPENINGSTANDARDCASE" | "IFCSITE"
        // Other IfcProduct subtypes
        | "IFCPROXY" | "IFCPRODUCT" | "IFCANNOTATION"
        | "IFCTRANSPORTELEMENT" | "IFCVIRTUALELEMENT"
        | "IFCELEMENTASSEMBLY"
        | "IFCDISCRETEACCESSORY" | "IFCMECHANICALFASTENER" | "IFCFASTENER"
        | "IFCCIVILELEMENT" | "IFCGEOGRAPHICELEMENT"
        | "IFCFEATUREELEMENT" | "IFCFEATUREELEMENTSUBTRACTION" | "IFCFEATUREELEMENTADDITION"
        | "IFCSURFACEFEATURE"
        // IFC4X3 infrastructure additions
        | "IFCBEARING" | "IFCCOURSE" | "IFCDEEPFOUNDATION"
        | "IFCEARTHWORKSCUT" | "IFCEARTHWORKSELEMENT" | "IFCEARTHWORKSFILL"
        | "IFCKERB" | "IFCPAVEMENT" | "IFCRAIL" | "IFCSLEEPER" | "IFCTRACKELEMENT"
        | "IFCNAVIGATIONELEMENT" | "IFCSIGN" | "IFCSIGNAL"
        // IFC2X3 legacy
        | "IFCEQUIPMENTELEMENT" | "IFCELECTRICALDISTRIBUTIONPOINT"
        => true,
        // Reinforcement types (many variants: IfcReinforcingBar, IfcReinforcingMesh, etc.)
        _ => type_name.contains("REINFORC"),
    }
}

/// 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, 0xdd0d7cd9,
        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,
        0xcdd706b3, 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
}