IFC4X2_types[184] = new type_declaration(strings[274], 184, new aggregation_type(aggregation_type::array_type, 1, 2, new simple_type(simple_type::real_type)));
IFC4X2_types[187] = new enumeration_type(strings[275], 187, {strings[276],strings[277]});
IFC4X2_types[192] = new type_declaration(strings[278], 192, new aggregation_type(aggregation_type::list_type, 3, 4, new simple_type(simple_type::integer_type)));
IFC4X2_types[7] = new entity(strings[1589], false, 7, (entity*) 0);
IFC4X2_types[12] = new entity(strings[1590], true, 12, (entity*) 0);
IFC4X2_types[46] = new entity(strings[1591], false, 46, (entity*) 0);
IFC4X2_types[47] = new entity(strings[1592], false, 47, (entity*) 0);
IFC4X2_types[49] = new entity(strings[1593], false, 49, (entity*) 0);
IFC4X2_types[89] = new entity(strings[1594], true, 89, (entity*) 0);
IFC4X2_types[91] = new entity(strings[1595], false, 91, (entity*) IFC4X2_types[89]);
IFC4X2_types[92] = new entity(strings[1596], false, 92, (entity*) IFC4X2_types[89]);
IFC4X2_types[93] = new entity(strings[1597], false, 93, (entity*) IFC4X2_types[89]);
IFC4X2_types[94] = new entity(strings[1598], false, 94, (entity*) IFC4X2_types[93]);
IFC4X2_types[202] = new entity(strings[1599], true, 202, (entity*) 0);
IFC4X2_types[204] = new entity(strings[1600], false, 204, (entity*) IFC4X2_types[202]);
IFC4X2_types[205] = new entity(strings[1601], false, 205, (entity*) IFC4X2_types[202]);
IFC4X2_types[207] = new entity(strings[1602], false, 207, (entity*) IFC4X2_types[202]);
IFC4X2_types[208] = new entity(strings[1603], true, 208, (entity*) 0);
IFC4X2_types[236] = new entity(strings[1604], true, 236, (entity*) 0);
IFC4X2_types[237] = new entity(strings[1605], true, 237, (entity*) 0);
IFC4X2_types[243] = new entity(strings[1606], false, 243, (entity*) IFC4X2_types[47]);
IFC4X2_types[287] = new entity(strings[1607], false, 287, (entity*) 0);
IFC4X2_types[288] = new entity(strings[1608], false, 288, (entity*) 0);
IFC4X2_types[291] = new entity(strings[1609], false, 291, (entity*) 0);
IFC4X2_types[402] = new entity(strings[1610], true, 402, (entity*) 0);
IFC4X2_types[406] = new entity(strings[1611], true, 406, (entity*) 0);
IFC4X2_types[403] = new entity(strings[1612], false, 403, (entity*) IFC4X2_types[406]);
IFC4X2_types[404] = new entity(strings[1613], false, 404, (entity*) IFC4X2_types[406]);
IFC4X2_types[405] = new entity(strings[1614], false, 405, (entity*) IFC4X2_types[406]);
IFC4X2_types[490] = new entity(strings[1615], false, 490, (entity*) 0);
IFC4X2_types[526] = new entity(strings[1616], false, 526, (entity*) 0);
IFC4X2_types[546] = new entity(strings[1617], false, 546, (entity*) IFC4X2_types[402]);
IFC4X2_types[547] = new entity(strings[1618], false, 547, (entity*) IFC4X2_types[406]);
IFC4X2_types[550] = new entity(strings[1619], false, 550, (entity*) 0);
IFC4X2_types[556] = new entity(strings[1620], false, 556, (entity*) 0);
IFC4X2_types[584] = new entity(strings[1621], false, 584, (entity*) IFC4X2_types[236]);
IFC4X2_types[591] = new entity(strings[1622], false, 591, (entity*) 0);
IFC4X2_types[594] = new entity(strings[1623], true, 594, (entity*) 0);
IFC4X2_types[596] = new entity(strings[1624], false, 596, (entity*) IFC4X2_types[594]);
IFC4X2_types[597] = new entity(strings[1625], false, 597, (entity*) IFC4X2_types[594]);
IFC4X2_types[599] = new entity(strings[1626], false, 599, (entity*) IFC4X2_types[596]);
IFC4X2_types[600] = new entity(strings[1627], false, 600, (entity*) 0);
IFC4X2_types[601] = new entity(strings[1628], false, 601, (entity*) IFC4X2_types[594]);
IFC4X2_types[602] = new entity(strings[1629], false, 602, (entity*) IFC4X2_types[594]);
IFC4X2_types[605] = new entity(strings[1630], false, 605, (entity*) IFC4X2_types[601]);
IFC4X2_types[609] = new entity(strings[1631], true, 609, (entity*) 0);
IFC4X2_types[611] = new entity(strings[1632], false, 611, (entity*) 0);
IFC4X2_types[622] = new entity(strings[1633], false, 622, (entity*) IFC4X2_types[208]);
IFC4X2_types[636] = new entity(strings[1634], false, 636, (entity*) 0);
IFC4X2_types[641] = new entity(strings[1635], true, 641, (entity*) 0);
IFC4X2_types[650] = new entity(strings[1636], true, 650, (entity*) 0);
IFC4X2_types[648] = new entity(strings[1637], false, 648, (entity*) IFC4X2_types[208]);
IFC4X2_types[663] = new entity(strings[1638], false, 663, (entity*) 0);
IFC4X2_types[671] = new entity(strings[1639], false, 671, (entity*) 0);
IFC4X2_types[682] = new entity(strings[1640], false, 682, (entity*) 0);
IFC4X2_types[683] = new entity(strings[1641], false, 683, (entity*) 0);
IFC4X2_types[687] = new entity(strings[1642], true, 687, (entity*) 0);
IFC4X2_types[688] = new entity(strings[1643], true, 688, (entity*) IFC4X2_types[687]);
IFC4X2_types[724] = new entity(strings[1644], false, 724, (entity*) IFC4X2_types[12]);
IFC4X2_types[734] = new entity(strings[1645], true, 734, (entity*) 0);
IFC4X2_types[735] = new entity(strings[1646], false, 735, (entity*) 0);
IFC4X2_types[736] = new entity(strings[1647], false, 736, (entity*) IFC4X2_types[735]);
IFC4X2_types[737] = new entity(strings[1648], true, 737, (entity*) 0);
IFC4X2_types[738] = new entity(strings[1649], false, 738, (entity*) 0);
IFC4X2_types[748] = new entity(strings[1650], true, 748, (entity*) 0);
IFC4X2_types[751] = new entity(strings[1651], false, 751, (entity*) 0);
IFC4X2_types[755] = new entity(strings[1652], false, 755, (entity*) IFC4X2_types[237]);
IFC4X2_types[763] = new entity(strings[1653], true, 763, (entity*) 0);
IFC4X2_types[768] = new entity(strings[1654], false, 768, (entity*) IFC4X2_types[763]);
IFC4X2_types[791] = new entity(strings[1655], false, 791, (entity*) IFC4X2_types[688]);
IFC4X2_types[792] = new entity(strings[1656], false, 792, (entity*) IFC4X2_types[688]);
IFC4X2_types[793] = new entity(strings[1657], false, 793, (entity*) IFC4X2_types[688]);
IFC4X2_types[795] = new entity(strings[1658], false, 795, (entity*) IFC4X2_types[688]);
IFC4X2_types[796] = new entity(strings[1659], false, 796, (entity*) IFC4X2_types[688]);
IFC4X2_types[797] = new entity(strings[1660], false, 797, (entity*) IFC4X2_types[688]);
IFC4X2_types[816] = new entity(strings[1661], false, 816, (entity*) 0);
IFC4X2_types[818] = new entity(strings[1662], false, 818, (entity*) 0);
IFC4X2_types[885] = new entity(strings[1663], true, 885, (entity*) 0);
IFC4X2_types[886] = new entity(strings[1664], true, 886, (entity*) 0);
IFC4X2_types[887] = new entity(strings[1665], true, 887, (entity*) 0);
IFC4X2_types[888] = new entity(strings[1666], false, 888, (entity*) 0);
IFC4X2_types[892] = new entity(strings[1667], true, 892, (entity*) 0);
IFC4X2_types[904] = new entity(strings[1668], true, 904, (entity*) 0);
IFC4X2_types[943] = new entity(strings[1669], false, 943, (entity*) IFC4X2_types[641]);
IFC4X2_types[913] = new entity(strings[1670], true, 913, (entity*) 0);
IFC4X2_types[931] = new entity(strings[1671], false, 931, (entity*) 0);
IFC4X2_types[932] = new entity(strings[1672], true, 932, (entity*) IFC4X2_types[885]);
IFC4X2_types[933] = new entity(strings[1673], false, 933, (entity*) IFC4X2_types[932]);
IFC4X2_types[997] = new entity(strings[1674], true, 997, (entity*) 0);
IFC4X2_types[1007] = new entity(strings[1675], true, 1007, (entity*) 0);
IFC4X2_types[1009] = new entity(strings[1676], false, 1009, (entity*) IFC4X2_types[1007]);
IFC4X2_types[1012] = new entity(strings[1677], true, 1012, (entity*) IFC4X2_types[1007]);
IFC4X2_types[1018] = new entity(strings[1678], true, 1018, (entity*) IFC4X2_types[1012]);
IFC4X2_types[1019] = new entity(strings[1679], false, 1019, (entity*) IFC4X2_types[1018]);
IFC4X2_types[1037] = new entity(strings[1680], true, 1037, (entity*) IFC4X2_types[885]);
IFC4X2_types[1035] = new entity(strings[1681], false, 1035, (entity*) IFC4X2_types[887]);
IFC4X2_types[1036] = new entity(strings[1682], false, 1036, (entity*) IFC4X2_types[1037]);
IFC4X2_types[1050] = new entity(strings[1683], false, 1050, (entity*) IFC4X2_types[1012]);
IFC4X2_types[1052] = new entity(strings[1684], false, 1052, (entity*) IFC4X2_types[737]);
IFC4X2_types[1054] = new entity(strings[1685], false, 1054, (entity*) IFC4X2_types[734]);
IFC4X2_types[1055] = new entity(strings[1686], false, 1055, (entity*) IFC4X2_types[734]);
IFC4X2_types[1057] = new entity(strings[1687], false, 1057, (entity*) IFC4X2_types[734]);
IFC4X2_types[1058] = new entity(strings[1688], false, 1058, (entity*) IFC4X2_types[734]);
IFC4X2_types[1059] = new entity(strings[1689], true, 1059, (entity*) IFC4X2_types[734]);
IFC4X2_types[1071] = new entity(strings[1690], false, 1071, (entity*) 0);
IFC4X2_types[1072] = new entity(strings[1691], false, 1072, (entity*) 0);
IFC4X2_types[1073] = new entity(strings[1692], false, 1073, (entity*) 0);
IFC4X2_types[1079] = new entity(strings[1693], false, 1079, (entity*) IFC4X2_types[913]);
IFC4X2_types[1080] = new entity(strings[1694], false, 1080, (entity*) IFC4X2_types[1079]);
IFC4X2_types[1083] = new entity(strings[1695], false, 1083, (entity*) IFC4X2_types[12]);
IFC4X2_types[1105] = new entity(strings[1696], false, 1105, (entity*) IFC4X2_types[737]);
IFC4X2_types[1107] = new entity(strings[1697], false, 1107, (entity*) IFC4X2_types[734]);
IFC4X2_types[1108] = new entity(strings[1698], false, 1108, (entity*) IFC4X2_types[734]);
IFC4X2_types[1110] = new entity(strings[1699], true, 1110, (entity*) IFC4X2_types[734]);
IFC4X2_types[1111] = new entity(strings[1700], false, 1111, (entity*) IFC4X2_types[1110]);
IFC4X2_types[1112] = new entity(strings[1701], false, 1112, (entity*) IFC4X2_types[1110]);
IFC4X2_types[1113] = new entity(strings[1702], false, 1113, (entity*) IFC4X2_types[734]);
IFC4X2_types[1114] = new entity(strings[1703], false, 1114, (entity*) IFC4X2_types[734]);
IFC4X2_types[1124] = new entity(strings[1704], false, 1124, (entity*) 0);
IFC4X2_types[1125] = new entity(strings[1705], true, 1125, (entity*) 0);
IFC4X2_types[1127] = new entity(strings[1706], false, 1127, (entity*) 0);
IFC4X2_types[1129] = new entity(strings[1707], true, 1129, (entity*) IFC4X2_types[887]);
IFC4X2_types[1130] = new entity(strings[1708], false, 1130, (entity*) IFC4X2_types[932]);
IFC4X2_types[1164] = new entity(strings[1709], false, 1164, (entity*) 0);
IFC4X2_types[1175] = new entity(strings[1710], false, 1175, (entity*) IFC4X2_types[1129]);
IFC4X2_types[1177] = new entity(strings[1711], false, 1177, (entity*) IFC4X2_types[1175]);
IFC4X2_types[1185] = new entity(strings[1712], false, 1185, (entity*) 0);
IFC4X2_types[1220] = new entity(strings[1713], false, 1220, (entity*) IFC4X2_types[913]);
IFC4X2_types[8] = new select_type(strings[1714], 8, {IFC4X2_types[663],IFC4X2_types[682],IFC4X2_types[683]});
IFC4X2_types[54] = new type_declaration(strings[1715], 54, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4X2_types[720])));
IFC4X2_types[77] = new select_type(strings[1716], 77, {IFC4X2_types[545],IFC4X2_types[705]});
IFC4X2_types[98] = new type_declaration(strings[1717], 98, new named_type(IFC4X2_types[534]));
IFC4X2_types[285] = new select_type(strings[1718], 285, {IFC4X2_types[0],IFC4X2_types[1],IFC4X2_types[43],IFC4X2_types[55],IFC4X2_types[192],IFC4X2_types[259],IFC4X2_types[331],IFC4X2_types[344],IFC4X2_types[351],IFC4X2_types[352],IFC4X2_types[353],IFC4X2_types[367],IFC4X2_types[371],IFC4X2_types[386],IFC4X2_types[470],IFC4X2_types[471],IFC4X2_types[500],IFC4X2_types[501],IFC4X2_types[506],IFC4X2_types[514],IFC4X2_types[516],IFC4X2_types[524],IFC4X2_types[528],IFC4X2_types[532],IFC4X2_types[564],IFC4X2_types[565],IFC4X2_types[568],IFC4X2_types[569],IFC4X2_types[578],IFC4X2_types[579],IFC4X2_types[581],IFC4X2_types[582],IFC4X2_types[586],IFC4X2_types[587],IFC4X2_types[589],IFC4X2_types[625],IFC4X2_types[626],IFC4X2_types[627],IFC4X2_types[629],IFC4X2_types[632],IFC4X2_types[633],IFC4X2_types[634],IFC4X2_types[635],IFC4X2_types[684],IFC4X2_types[703],IFC4X2_types[725],IFC4X2_types[740],IFC4X2_types[798],IFC4X2_types[905],IFC4X2_types[906],IFC4X2_types[907],IFC4X2_types[919],IFC4X2_types[915],IFC4X2_types[934],IFC4X2_types[958],IFC4X2_types[959],IFC4X2_types[960],IFC4X2_types[961],IFC4X2_types[976],IFC4X2_types[1084],IFC4X2_types[1085],IFC4X2_types[1115],IFC4X2_types[1116],IFC4X2_types[1117],IFC4X2_types[1118],IFC4X2_types[1119],IFC4X2_types[1132],IFC4X2_types[1172],IFC4X2_types[1189],IFC4X2_types[1195],IFC4X2_types[1196]});
IFC4X2_types[543] = new select_type(strings[1719], 543, {IFC4X2_types[885],IFC4X2_types[887]});
IFC4X2_types[548] = new select_type(strings[1720], 548, {IFC4X2_types[546],IFC4X2_types[547]});
IFC4X2_types[551] = new select_type(strings[1721], 551, {IFC4X2_types[406],IFC4X2_types[556]});
IFC4X2_types[570] = new type_declaration(strings[1722], 570, new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[720])));
IFC4X2_types[608] = new select_type(strings[1723], 608, {IFC4X2_types[594],IFC4X2_types[600],IFC4X2_types[609]});
IFC4X2_types[643] = new type_declaration(strings[1724], 643, new named_type(IFC4X2_types[808]));
IFC4X2_types[651] = new select_type(strings[1725], 651, {IFC4X2_types[12],IFC4X2_types[47],IFC4X2_types[406],IFC4X2_types[594],IFC4X2_types[663],IFC4X2_types[682],IFC4X2_types[683],IFC4X2_types[1071],IFC4X2_types[1125]});
IFC4X2_types[723] = new type_declaration(strings[1726], 723, new named_type(IFC4X2_types[808]));
IFC4X2_types[923] = new select_type(strings[1727], 923, {IFC4X2_types[54],IFC4X2_types[570]});
IFC4X2_types[940] = new select_type(strings[1728], 940, {IFC4X2_types[78],IFC4X2_types[84],IFC4X2_types[278],IFC4X2_types[279],IFC4X2_types[343],IFC4X2_types[505],IFC4X2_types[515],IFC4X2_types[534],IFC4X2_types[574],IFC4X2_types[720],IFC4X2_types[811],IFC4X2_types[1097],IFC4X2_types[1121],IFC4X2_types[1128]});
IFC4X2_types[945] = new select_type(strings[1729], 945, {IFC4X2_types[290],IFC4X2_types[545],IFC4X2_types[643],IFC4X2_types[721],IFC4X2_types[723],IFC4X2_types[808]});
IFC4X2_types[978] = new select_type(strings[1730], 978, {IFC4X2_types[977],IFC4X2_types[979]});
IFC4X2_types[1034] = new select_type(strings[1731], 1034, {IFC4X2_types[737],IFC4X2_types[738]});
IFC4X2_types[1053] = new select_type(strings[1732], 1053, {IFC4X2_types[404],IFC4X2_types[1054],IFC4X2_types[1055],IFC4X2_types[1057],IFC4X2_types[1058]});
IFC4X2_types[1157] = new select_type(strings[1733], 1157, {IFC4X2_types[287],IFC4X2_types[636],IFC4X2_types[641]});
IFC4X2_types[50] = new entity(strings[1734], false, 50, (entity*) IFC4X2_types[892]);
IFC4X2_types[51] = new entity(strings[1735], false, 51, (entity*) IFC4X2_types[751]);
IFC4X2_types[52] = new entity(strings[1736], false, 52, (entity*) IFC4X2_types[751]);
IFC4X2_types[53] = new entity(strings[1737], false, 53, (entity*) IFC4X2_types[51]);
IFC4X2_types[79] = new entity(strings[1738], false, 79, (entity*) IFC4X2_types[1059]);
IFC4X2_types[150] = new entity(strings[1739], false, 150, (entity*) IFC4X2_types[52]);
IFC4X2_types[164] = new entity(strings[1740], false, 164, (entity*) IFC4X2_types[402]);
IFC4X2_types[165] = new entity(strings[1741], false, 165, (entity*) IFC4X2_types[406]);
IFC4X2_types[175] = new entity(strings[1742], false, 175, (entity*) IFC4X2_types[734]);
IFC4X2_types[176] = new entity(strings[1743], true, 176, (entity*) IFC4X2_types[734]);
IFC4X2_types[191] = new entity(strings[1744], false, 191, (entity*) IFC4X2_types[751]);
IFC4X2_types[200] = new entity(strings[1745], false, 200, (entity*) IFC4X2_types[1129]);
IFC4X2_types[201] = new entity(strings[1746], false, 201, (entity*) IFC4X2_types[202]);
IFC4X2_types[203] = new entity(strings[1747], false, 203, (entity*) IFC4X2_types[204]);
IFC4X2_types[223] = new entity(strings[1748], false, 223, (entity*) IFC4X2_types[641]);
IFC4X2_types[228] = new entity(strings[1749], false, 228, (entity*) IFC4X2_types[641]);
IFC4X2_types[229] = new entity(strings[1750], false, 229, (entity*) IFC4X2_types[228]);
IFC4X2_types[255] = new entity(strings[1751], false, 255, (entity*) IFC4X2_types[892]);
IFC4X2_types[268] = new entity(strings[1752], false, 268, (entity*) IFC4X2_types[737]);
IFC4X2_types[269] = new entity(strings[1753], false, 269, (entity*) IFC4X2_types[734]);
IFC4X2_types[270] = new entity(strings[1754], false, 270, (entity*) IFC4X2_types[734]);
IFC4X2_types[271] = new entity(strings[1755], false, 271, (entity*) IFC4X2_types[734]);
IFC4X2_types[286] = new entity(strings[1756], false, 286, (entity*) IFC4X2_types[751]);
IFC4X2_types[314] = new entity(strings[1757], false, 314, (entity*) IFC4X2_types[402]);
IFC4X2_types[315] = new entity(strings[1758], false, 315, (entity*) IFC4X2_types[892]);
IFC4X2_types[316] = new entity(strings[1759], false, 316, (entity*) IFC4X2_types[406]);
IFC4X2_types[345] = new entity(strings[1760], false, 345, (entity*) IFC4X2_types[1129]);
IFC4X2_types[346] = new entity(strings[1761], false, 346, (entity*) IFC4X2_types[345]);
IFC4X2_types[397] = new entity(strings[1762], false, 397, (entity*) IFC4X2_types[913]);
IFC4X2_types[401] = new entity(strings[1763], true, 401, (entity*) IFC4X2_types[763]);
IFC4X2_types[407] = new entity(strings[1764], false, 407, (entity*) IFC4X2_types[892]);
IFC4X2_types[413] = new entity(strings[1765], false, 413, (entity*) IFC4X2_types[1129]);
IFC4X2_types[415] = new entity(strings[1766], false, 415, (entity*) IFC4X2_types[1129]);
IFC4X2_types[416] = new entity(strings[1767], false, 416, (entity*) IFC4X2_types[415]);
IFC4X2_types[417] = new entity(strings[1768], false, 417, (entity*) IFC4X2_types[413]);
IFC4X2_types[422] = new entity(strings[1769], false, 422, (entity*) IFC4X2_types[997]);
IFC4X2_types[432] = new entity(strings[1770], false, 432, (entity*) IFC4X2_types[737]);
IFC4X2_types[482] = new entity(strings[1771], false, 482, (entity*) IFC4X2_types[886]);
IFC4X2_types[483] = new entity(strings[1772], true, 483, (entity*) IFC4X2_types[887]);
IFC4X2_types[484] = new entity(strings[1773], false, 484, (entity*) IFC4X2_types[482]);
IFC4X2_types[485] = new entity(strings[1774], false, 485, (entity*) IFC4X2_types[483]);
IFC4X2_types[491] = new entity(strings[1775], false, 491, (entity*) IFC4X2_types[650]);
IFC4X2_types[495] = new entity(strings[1776], false, 495, (entity*) IFC4X2_types[483]);
IFC4X2_types[507] = new entity(strings[1777], false, 507, (entity*) IFC4X2_types[1059]);
IFC4X2_types[508] = new entity(strings[1778], false, 508, (entity*) IFC4X2_types[734]);
IFC4X2_types[512] = new entity(strings[1779], true, 512, (entity*) IFC4X2_types[1110]);
IFC4X2_types[513] = new entity(strings[1780], false, 513, (entity*) IFC4X2_types[512]);
IFC4X2_types[525] = new entity(strings[1781], false, 525, (entity*) IFC4X2_types[1125]);
IFC4X2_types[538] = new entity(strings[1782], false, 538, (entity*) IFC4X2_types[913]);
IFC4X2_types[557] = new entity(strings[1783], true, 557, (entity*) IFC4X2_types[483]);
IFC4X2_types[558] = new entity(strings[1784], false, 558, (entity*) IFC4X2_types[557]);
IFC4X2_types[559] = new entity(strings[1785], false, 559, (entity*) IFC4X2_types[557]);
IFC4X2_types[560] = new entity(strings[1786], false, 560, (entity*) IFC4X2_types[557]);
IFC4X2_types[561] = new entity(strings[1787], false, 561, (entity*) IFC4X2_types[557]);
IFC4X2_types[562] = new entity(strings[1788], false, 562, (entity*) IFC4X2_types[561]);
IFC4X2_types[566] = new entity(strings[1789], false, 566, (entity*) IFC4X2_types[650]);
IFC4X2_types[573] = new entity(strings[1790], false, 573, (entity*) IFC4X2_types[650]);
IFC4X2_types[576] = new entity(strings[1791], false, 576, (entity*) IFC4X2_types[1129]);
IFC4X2_types[585] = new entity(strings[1792], false, 585, (entity*) IFC4X2_types[887]);
IFC4X2_types[590] = new entity(strings[1793], false, 590, (entity*) IFC4X2_types[594]);
IFC4X2_types[592] = new entity(strings[1794], false, 592, (entity*) IFC4X2_types[594]);
IFC4X2_types[593] = new entity(strings[1795], false, 593, (entity*) IFC4X2_types[594]);
IFC4X2_types[595] = new entity(strings[1796], false, 595, (entity*) IFC4X2_types[748]);
IFC4X2_types[598] = new entity(strings[1797], false, 598, (entity*) IFC4X2_types[609]);
IFC4X2_types[603] = new entity(strings[1798], false, 603, (entity*) IFC4X2_types[609]);
IFC4X2_types[604] = new entity(strings[1799], false, 604, (entity*) IFC4X2_types[603]);
IFC4X2_types[606] = new entity(strings[1800], false, 606, (entity*) IFC4X2_types[401]);
IFC4X2_types[607] = new entity(strings[1801], false, 607, (entity*) IFC4X2_types[892]);
IFC4X2_types[624] = new entity(strings[1802], false, 624, (entity*) IFC4X2_types[286]);
IFC4X2_types[647] = new entity(strings[1803], true, 647, (entity*) IFC4X2_types[904]);
IFC4X2_types[662] = new entity(strings[1804], false, 662, (entity*) IFC4X2_types[200]);
IFC4X2_types[664] = new entity(strings[1805], false, 664, (entity*) IFC4X2_types[892]);
IFC4X2_types[665] = new entity(strings[1806], false, 665, (entity*) IFC4X2_types[483]);
IFC4X2_types[666] = new entity(strings[1807], false, 666, (entity*) IFC4X2_types[345]);
IFC4X2_types[672] = new entity(strings[1808], true, 672, (entity*) IFC4X2_types[751]);
IFC4X2_types[674] = new entity(strings[1809], false, 674, (entity*) IFC4X2_types[1129]);
IFC4X2_types[685] = new entity(strings[1810], false, 685, (entity*) IFC4X2_types[687]);
IFC4X2_types[699] = new entity(strings[1811], false, 699, (entity*) IFC4X2_types[1059]);
IFC4X2_types[700] = new entity(strings[1812], true, 700, (entity*) IFC4X2_types[483]);
IFC4X2_types[702] = new entity(strings[1813], false, 702, (entity*) IFC4X2_types[483]);
IFC4X2_types[710] = new entity(strings[1814], true, 710, (entity*) IFC4X2_types[483]);
IFC4X2_types[711] = new entity(strings[1815], false, 711, (entity*) IFC4X2_types[710]);
IFC4X2_types[712] = new entity(strings[1816], false, 712, (entity*) IFC4X2_types[710]);
IFC4X2_types[717] = new entity(strings[1817], false, 717, (entity*) IFC4X2_types[576]);
IFC4X2_types[714] = new entity(strings[1818], false, 714, (entity*) IFC4X2_types[495]);
IFC4X2_types[728] = new entity(strings[1819], true, 728, (entity*) IFC4X2_types[734]);
IFC4X2_types[729] = new entity(strings[1820], true, 729, (entity*) IFC4X2_types[763]);
IFC4X2_types[731] = new entity(strings[1821], true, 731, (entity*) IFC4X2_types[728]);
IFC4X2_types[747] = new entity(strings[1822], false, 747, (entity*) IFC4X2_types[748]);
IFC4X2_types[752] = new entity(strings[1823], false, 752, (entity*) IFC4X2_types[401]);
IFC4X2_types[762] = new entity(strings[1824], true, 762, (entity*) IFC4X2_types[763]);
IFC4X2_types[765] = new entity(strings[1825], true, 765, (entity*) IFC4X2_types[904]);
IFC4X2_types[766] = new entity(strings[1826], false, 766, (entity*) IFC4X2_types[892]);
IFC4X2_types[772] = new entity(strings[1827], true, 772, (entity*) IFC4X2_types[765]);
IFC4X2_types[780] = new entity(strings[1828], true, 780, (entity*) IFC4X2_types[765]);
IFC4X2_types[794] = new entity(strings[1829], true, 794, (entity*) IFC4X2_types[772]);
IFC4X2_types[813] = new entity(strings[1830], false, 813, (entity*) IFC4X2_types[672]);
IFC4X2_types[822] = new entity(strings[1831], false, 822, (entity*) IFC4X2_types[1125]);
IFC4X2_types[823] = new entity(strings[1832], false, 823, (entity*) IFC4X2_types[729]);
IFC4X2_types[851] = new entity(strings[1833], true, 851, (entity*) IFC4X2_types[904]);
IFC4X2_types[890] = new entity(strings[1834], false, 890, (entity*) IFC4X2_types[892]);
IFC4X2_types[891] = new entity(strings[1835], false, 891, (entity*) IFC4X2_types[892]);
IFC4X2_types[895] = new entity(strings[1836], false, 895, (entity*) IFC4X2_types[913]);
IFC4X2_types[909] = new entity(strings[1837], false, 909, (entity*) IFC4X2_types[813]);
IFC4X2_types[920] = new entity(strings[1838], false, 920, (entity*) IFC4X2_types[729]);
IFC4X2_types[921] = new entity(strings[1839], false, 921, (entity*) IFC4X2_types[729]);
IFC4X2_types[918] = new entity(strings[1840], false, 918, (entity*) IFC4X2_types[483]);
IFC4X2_types[936] = new entity(strings[1841], false, 936, (entity*) IFC4X2_types[483]);
IFC4X2_types[937] = new entity(strings[1842], true, 937, (entity*) IFC4X2_types[762]);
IFC4X2_types[951] = new entity(strings[1843], false, 951, (entity*) IFC4X2_types[997]);
IFC4X2_types[956] = new entity(strings[1844], true, 956, (entity*) IFC4X2_types[483]);
IFC4X2_types[1011] = new entity(strings[1845], false, 1011, (entity*) IFC4X2_types[1018]);
IFC4X2_types[1013] = new entity(strings[1846], false, 1013, (entity*) IFC4X2_types[1018]);
IFC4X2_types[1014] = new entity(strings[1847], false, 1014, (entity*) IFC4X2_types[1018]);
IFC4X2_types[1015] = new entity(strings[1848], false, 1015, (entity*) IFC4X2_types[1014]);
IFC4X2_types[1016] = new entity(strings[1849], false, 1016, (entity*) IFC4X2_types[1018]);
IFC4X2_types[1017] = new entity(strings[1850], false, 1017, (entity*) IFC4X2_types[1016]);
IFC4X2_types[1041] = new entity(strings[1851], false, 1041, (entity*) IFC4X2_types[345]);
IFC4X2_types[1042] = new entity(strings[1852], true, 1042, (entity*) IFC4X2_types[483]);
IFC4X2_types[1056] = new entity(strings[1853], false, 1056, (entity*) IFC4X2_types[1057]);
IFC4X2_types[1060] = new entity(strings[1854], true, 1060, (entity*) IFC4X2_types[956]);
IFC4X2_types[1061] = new entity(strings[1855], false, 1061, (entity*) IFC4X2_types[956]);
IFC4X2_types[1062] = new entity(strings[1856], false, 1062, (entity*) IFC4X2_types[1061]);
IFC4X2_types[1063] = new entity(strings[1857], true, 1063, (entity*) IFC4X2_types[1042]);
IFC4X2_types[1149] = new entity(strings[1858], false, 1149, (entity*) IFC4X2_types[672]);
IFC4X2_types[1096] = new entity(strings[1859], true, 1096, (entity*) IFC4X2_types[483]);
IFC4X2_types[1102] = new entity(strings[1860], false, 1102, (entity*) IFC4X2_types[483]);
IFC4X2_types[1103] = new entity(strings[1861], false, 1103, (entity*) IFC4X2_types[1102]);
IFC4X2_types[1106] = new entity(strings[1862], false, 1106, (entity*) IFC4X2_types[731]);
IFC4X2_types[1143] = new entity(strings[1863], false, 1143, (entity*) IFC4X2_types[672]);
IFC4X2_types[1153] = new entity(strings[1864], false, 1153, (entity*) IFC4X2_types[647]);
IFC4X2_types[1154] = new entity(strings[1865], true, 1154, (entity*) IFC4X2_types[1153]);
IFC4X2_types[1155] = new entity(strings[1866], false, 1155, (entity*) IFC4X2_types[1153]);
IFC4X2_types[1156] = new entity(strings[1867], true, 1156, (entity*) IFC4X2_types[1153]);
IFC4X2_types[1167] = new entity(strings[1868], false, 1167, (entity*) IFC4X2_types[672]);
IFC4X2_types[1173] = new entity(strings[1869], false, 1173, (entity*) IFC4X2_types[483]);
IFC4X2_types[1176] = new entity(strings[1870], false, 1176, (entity*) IFC4X2_types[576]);
IFC4X2_types[1207] = new entity(strings[1871], false, 1207, (entity*) IFC4X2_types[1155]);
IFC4X2_types[1222] = new entity(strings[1872], false, 1222, (entity*) IFC4X2_types[672]);
IFC4X2_types[166] = new select_type(strings[1873], 166, {IFC4X2_types[164],IFC4X2_types[165]});
IFC4X2_types[167] = new select_type(strings[1874], 167, {IFC4X2_types[164],IFC4X2_types[165]});
IFC4X2_types[238] = new select_type(strings[1875], 238, {IFC4X2_types[237],IFC4X2_types[482]});
IFC4X2_types[284] = new select_type(strings[1876], 284, {IFC4X2_types[647],IFC4X2_types[765]});
IFC4X2_types[317] = new select_type(strings[1877], 317, {IFC4X2_types[314],IFC4X2_types[316]});
IFC4X2_types[496] = new select_type(strings[1878], 496, {IFC4X2_types[721],IFC4X2_types[1173]});
IFC4X2_types[610] = new select_type(strings[1879], 610, {IFC4X2_types[40],IFC4X2_types[56],IFC4X2_types[184],IFC4X2_types[222],IFC4X2_types[244],IFC4X2_types[290],IFC4X2_types[354],IFC4X2_types[545],IFC4X2_types[580],IFC4X2_types[588],IFC4X2_types[642],IFC4X2_types[643],IFC4X2_types[645],IFC4X2_types[673],IFC4X2_types[705],IFC4X2_types[721],IFC4X2_types[722],IFC4X2_types[723],IFC4X2_types[808],IFC4X2_types[955],IFC4X2_types[1120],IFC4X2_types[1122],IFC4X2_types[1188]});
IFC4X2_types[713] = new select_type(strings[1880], 713, {IFC4X2_types[710],IFC4X2_types[1177]});
IFC4X2_types[739] = new select_type(strings[1881], 739, {IFC4X2_types[268],IFC4X2_types[432],IFC4X2_types[644],IFC4X2_types[1052],IFC4X2_types[1105]});
IFC4X2_types[749] = new select_type(strings[1882], 749, {IFC4X2_types[747],IFC4X2_types[888]});
IFC4X2_types[774] = new type_declaration(strings[1883], 774, new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[772])));
IFC4X2_types[893] = new select_type(strings[1884], 893, {IFC4X2_types[7],IFC4X2_types[47],IFC4X2_types[49],IFC4X2_types[208],IFC4X2_types[223],IFC4X2_types[228],IFC4X2_types[402],IFC4X2_types[406],IFC4X2_types[594],IFC4X2_types[663],IFC4X2_types[682],IFC4X2_types[683],IFC4X2_types[687],IFC4X2_types[751],IFC4X2_types[763],IFC4X2_types[931],IFC4X2_types[1125]});
IFC4X2_types[1101] = new select_type(strings[1885], 1101, {IFC4X2_types[405],IFC4X2_types[731]});
IFC4X2_types[1168] = new select_type(strings[1886], 1168, {IFC4X2_types[285],IFC4X2_types[610],IFC4X2_types[940]});
IFC4X2_types[16] = new entity(strings[1887], false, 16, (entity*) IFC4X2_types[417]);
IFC4X2_types[30] = new entity(strings[1888], false, 30, (entity*) IFC4X2_types[483]);
IFC4X2_types[32] = new entity(strings[1889], true, 32, (entity*) IFC4X2_types[483]);
IFC4X2_types[36] = new entity(strings[1890], false, 36, (entity*) IFC4X2_types[483]);
IFC4X2_types[37] = new entity(strings[1891], true, 37, (entity*) IFC4X2_types[32]);
IFC4X2_types[45] = new entity(strings[1892], false, 45, (entity*) IFC4X2_types[483]);
IFC4X2_types[60] = new entity(strings[1893], false, 60, (entity*) IFC4X2_types[672]);
IFC4X2_types[64] = new entity(strings[1894], false, 64, (entity*) IFC4X2_types[700]);
IFC4X2_types[66] = new entity(strings[1895], false, 66, (entity*) IFC4X2_types[700]);
IFC4X2_types[67] = new entity(strings[1896], false, 67, (entity*) IFC4X2_types[700]);
IFC4X2_types[88] = new entity(strings[1897], false, 88, (entity*) IFC4X2_types[483]);
IFC4X2_types[96] = new entity(strings[1898], true, 96, (entity*) IFC4X2_types[1042]);
IFC4X2_types[97] = new entity(strings[1899], false, 97, (entity*) IFC4X2_types[483]);
IFC4X2_types[99] = new entity(strings[1900], false, 99, (entity*) IFC4X2_types[495]);
IFC4X2_types[254] = new entity(strings[1901], false, 254, (entity*) IFC4X2_types[672]);
IFC4X2_types[141] = new entity(strings[1902], false, 141, (entity*) IFC4X2_types[710]);
IFC4X2_types[142] = new entity(strings[1903], true, 142, (entity*) IFC4X2_types[483]);
IFC4X2_types[143] = new entity(strings[1904], false, 143, (entity*) IFC4X2_types[142]);
IFC4X2_types[144] = new entity(strings[1905], false, 144, (entity*) IFC4X2_types[142]);
IFC4X2_types[145] = new entity(strings[1906], true, 145, (entity*) IFC4X2_types[483]);
IFC4X2_types[146] = new entity(strings[1907], false, 146, (entity*) IFC4X2_types[145]);
IFC4X2_types[147] = new entity(strings[1908], false, 147, (entity*) IFC4X2_types[146]);
IFC4X2_types[148] = new entity(strings[1909], false, 148, (entity*) IFC4X2_types[145]);
IFC4X2_types[149] = new entity(strings[1910], false, 149, (entity*) IFC4X2_types[148]);
IFC4X2_types[160] = new entity(strings[1911], false, 160, (entity*) IFC4X2_types[672]);
IFC4X2_types[168] = new entity(strings[1912], false, 168, (entity*) IFC4X2_types[200]);
IFC4X2_types[174] = new entity(strings[1913], false, 174, (entity*) IFC4X2_types[176]);
IFC4X2_types[185] = new entity(strings[1914], false, 185, (entity*) IFC4X2_types[762]);
IFC4X2_types[190] = new entity(strings[1915], false, 190, (entity*) IFC4X2_types[483]);
IFC4X2_types[220] = new entity(strings[1916], true, 220, (entity*) IFC4X2_types[1156]);
IFC4X2_types[221] = new entity(strings[1917], true, 221, (entity*) IFC4X2_types[647]);
IFC4X2_types[249] = new entity(strings[1918], false, 249, (entity*) IFC4X2_types[220]);
IFC4X2_types[251] = new entity(strings[1919], true, 251, (entity*) IFC4X2_types[483]);
IFC4X2_types[253] = new entity(strings[1920], false, 253, (entity*) IFC4X2_types[956]);
IFC4X2_types[260] = new entity(strings[1921], true, 260, (entity*) IFC4X2_types[483]);
IFC4X2_types[261] = new entity(strings[1922], false, 261, (entity*) IFC4X2_types[96]);
IFC4X2_types[262] = new entity(strings[1923], false, 262, (entity*) IFC4X2_types[96]);
IFC4X2_types[293] = new entity(strings[1924], false, 293, (entity*) IFC4X2_types[483]);
IFC4X2_types[298] = new entity(strings[1925], false, 298, (entity*) IFC4X2_types[483]);
IFC4X2_types[325] = new entity(strings[1926], false, 325, (entity*) IFC4X2_types[1155]);
IFC4X2_types[347] = new entity(strings[1927], false, 347, (entity*) IFC4X2_types[576]);
IFC4X2_types[380] = new entity(strings[1928], false, 380, (entity*) IFC4X2_types[794]);
IFC4X2_types[381] = new entity(strings[1929], true, 381, (entity*) IFC4X2_types[1155]);
IFC4X2_types[373] = new entity(strings[1930], true, 373, (entity*) IFC4X2_types[1042]);
IFC4X2_types[383] = new entity(strings[1931], false, 383, (entity*) IFC4X2_types[672]);
IFC4X2_types[399] = new entity(strings[1932], false, 399, (entity*) IFC4X2_types[1154]);
IFC4X2_types[411] = new entity(strings[1933], false, 411, (entity*) IFC4X2_types[1060]);
IFC4X2_types[412] = new entity(strings[1934], false, 412, (entity*) IFC4X2_types[411]);
IFC4X2_types[414] = new entity(strings[1935], false, 414, (entity*) IFC4X2_types[483]);
IFC4X2_types[433] = new entity(strings[1936], false, 433, (entity*) IFC4X2_types[483]);
IFC4X2_types[434] = new entity(strings[1937], false, 434, (entity*) IFC4X2_types[483]);
IFC4X2_types[442] = new entity(strings[1938], false, 442, (entity*) IFC4X2_types[1060]);
IFC4X2_types[473] = new entity(strings[1939], false, 473, (entity*) IFC4X2_types[381]);
IFC4X2_types[475] = new entity(strings[1940], false, 475, (entity*) IFC4X2_types[473]);
IFC4X2_types[478] = new entity(strings[1941], false, 478, (entity*) IFC4X2_types[381]);
IFC4X2_types[480] = new entity(strings[1942], false, 480, (entity*) IFC4X2_types[485]);
IFC4X2_types[527] = new entity(strings[1943], false, 527, (entity*) IFC4X2_types[672]);
IFC4X2_types[510] = new entity(strings[1944], false, 510, (entity*) IFC4X2_types[1096]);
IFC4X2_types[511] = new entity(strings[1945], false, 511, (entity*) IFC4X2_types[510]);
IFC4X2_types[577] = new entity(strings[1946], false, 577, (entity*) IFC4X2_types[672]);
IFC4X2_types[536] = new entity(strings[1947], false, 536, (entity*) IFC4X2_types[220]);
IFC4X2_types[563] = new entity(strings[1948], false, 563, (entity*) IFC4X2_types[260]);
IFC4X2_types[583] = new entity(strings[1949], true, 583, (entity*) IFC4X2_types[956]);
IFC4X2_types[646] = new entity(strings[1950], true, 646, (entity*) IFC4X2_types[647]);
IFC4X2_types[655] = new entity(strings[1951], true, 655, (entity*) IFC4X2_types[260]);
IFC4X2_types[656] = new entity(strings[1952], false, 656, (entity*) IFC4X2_types[655]);
IFC4X2_types[657] = new entity(strings[1953], false, 657, (entity*) IFC4X2_types[655]);
IFC4X2_types[658] = new entity(strings[1954], false, 658, (entity*) IFC4X2_types[655]);
IFC4X2_types[675] = new entity(strings[1955], false, 675, (entity*) IFC4X2_types[260]);
IFC4X2_types[701] = new entity(strings[1956], false, 701, (entity*) IFC4X2_types[702]);
IFC4X2_types[704] = new entity(strings[1957], false, 704, (entity*) IFC4X2_types[373]);
IFC4X2_types[726] = new entity(strings[1958], true, 726, (entity*) IFC4X2_types[728]);
IFC4X2_types[727] = new entity(strings[1959], true, 727, (entity*) IFC4X2_types[728]);
IFC4X2_types[730] = new entity(strings[1960], true, 730, (entity*) IFC4X2_types[772]);
IFC4X2_types[742] = new entity(strings[1961], false, 742, (entity*) IFC4X2_types[1154]);
IFC4X2_types[744] = new entity(strings[1962], true, 744, (entity*) IFC4X2_types[646]);
IFC4X2_types[746] = new entity(strings[1963], true, 746, (entity*) IFC4X2_types[646]);
IFC4X2_types[754] = new entity(strings[1964], false, 754, (entity*) IFC4X2_types[221]);
IFC4X2_types[759] = new entity(strings[1965], false, 759, (entity*) IFC4X2_types[221]);
IFC4X2_types[764] = new entity(strings[1966], false, 764, (entity*) IFC4X2_types[937]);
IFC4X2_types[767] = new entity(strings[1967], false, 767, (entity*) IFC4X2_types[937]);
IFC4X2_types[769] = new entity(strings[1968], false, 769, (entity*) IFC4X2_types[937]);
IFC4X2_types[770] = new entity(strings[1969], false, 770, (entity*) IFC4X2_types[937]);
IFC4X2_types[771] = new entity(strings[1970], false, 771, (entity*) IFC4X2_types[772]);
IFC4X2_types[775] = new entity(strings[1971], false, 775, (entity*) IFC4X2_types[780]);
IFC4X2_types[777] = new entity(strings[1972], false, 777, (entity*) IFC4X2_types[937]);
IFC4X2_types[778] = new entity(strings[1973], false, 778, (entity*) IFC4X2_types[937]);
IFC4X2_types[779] = new entity(strings[1974], true, 779, (entity*) IFC4X2_types[780]);
IFC4X2_types[787] = new entity(strings[1975], false, 787, (entity*) IFC4X2_types[746]);
IFC4X2_types[812] = new entity(strings[1976], false, 812, (entity*) IFC4X2_types[813]);
IFC4X2_types[814] = new entity(strings[1977], false, 814, (entity*) IFC4X2_types[251]);
IFC4X2_types[815] = new entity(strings[1978], false, 815, (entity*) IFC4X2_types[96]);
IFC4X2_types[824] = new entity(strings[1979], false, 824, (entity*) IFC4X2_types[730]);
IFC4X2_types[836] = new entity(strings[1980], true, 836, (entity*) IFC4X2_types[851]);
IFC4X2_types[837] = new entity(strings[1981], false, 837, (entity*) IFC4X2_types[836]);
IFC4X2_types[838] = new entity(strings[1982], false, 838, (entity*) IFC4X2_types[836]);
IFC4X2_types[839] = new entity(strings[1983], false, 839, (entity*) IFC4X2_types[836]);
IFC4X2_types[840] = new entity(strings[1984], false, 840, (entity*) IFC4X2_types[839]);
IFC4X2_types[841] = new entity(strings[1985], false, 841, (entity*) IFC4X2_types[836]);
IFC4X2_types[842] = new entity(strings[1986], false, 842, (entity*) IFC4X2_types[836]);
IFC4X2_types[843] = new entity(strings[1987], false, 843, (entity*) IFC4X2_types[836]);
IFC4X2_types[844] = new entity(strings[1988], true, 844, (entity*) IFC4X2_types[851]);
IFC4X2_types[845] = new entity(strings[1989], false, 845, (entity*) IFC4X2_types[844]);
IFC4X2_types[846] = new entity(strings[1990], false, 846, (entity*) IFC4X2_types[844]);
IFC4X2_types[847] = new entity(strings[1991], false, 847, (entity*) IFC4X2_types[844]);
IFC4X2_types[848] = new entity(strings[1992], false, 848, (entity*) IFC4X2_types[844]);
IFC4X2_types[849] = new entity(strings[1993], false, 849, (entity*) IFC4X2_types[844]);
IFC4X2_types[850] = new entity(strings[1994], false, 850, (entity*) IFC4X2_types[844]);
IFC4X2_types[852] = new entity(strings[1995], true, 852, (entity*) IFC4X2_types[851]);
IFC4X2_types[853] = new entity(strings[1996], false, 853, (entity*) IFC4X2_types[852]);
IFC4X2_types[854] = new entity(strings[1997], false, 854, (entity*) IFC4X2_types[853]);
IFC4X2_types[856] = new entity(strings[1998], false, 856, (entity*) IFC4X2_types[852]);
IFC4X2_types[855] = new entity(strings[1999], false, 855, (entity*) IFC4X2_types[852]);
IFC4X2_types[857] = new entity(strings[2000], false, 857, (entity*) IFC4X2_types[852]);
IFC4X2_types[858] = new entity(strings[2001], false, 858, (entity*) IFC4X2_types[852]);
IFC4X2_types[859] = new entity(strings[2002], false, 859, (entity*) IFC4X2_types[858]);
IFC4X2_types[860] = new entity(strings[2003], false, 860, (entity*) IFC4X2_types[853]);
IFC4X2_types[861] = new entity(strings[2004], false, 861, (entity*) IFC4X2_types[852]);
IFC4X2_types[862] = new entity(strings[2005], false, 862, (entity*) IFC4X2_types[852]);
IFC4X2_types[863] = new entity(strings[2006], false, 863, (entity*) IFC4X2_types[852]);
IFC4X2_types[864] = new entity(strings[2007], false, 864, (entity*) IFC4X2_types[851]);
IFC4X2_types[865] = new entity(strings[2008], true, 865, (entity*) IFC4X2_types[851]);
IFC4X2_types[866] = new entity(strings[2009], true, 866, (entity*) IFC4X2_types[851]);
IFC4X2_types[867] = new entity(strings[2010], false, 867, (entity*) IFC4X2_types[866]);
IFC4X2_types[868] = new entity(strings[2011], false, 868, (entity*) IFC4X2_types[866]);
IFC4X2_types[869] = new entity(strings[2012], false, 869, (entity*) IFC4X2_types[866]);
IFC4X2_types[870] = new entity(strings[2013], false, 870, (entity*) IFC4X2_types[866]);
IFC4X2_types[871] = new entity(strings[2014], false, 871, (entity*) IFC4X2_types[852]);
IFC4X2_types[872] = new entity(strings[2015], false, 872, (entity*) IFC4X2_types[852]);
IFC4X2_types[873] = new entity(strings[2016], false, 873, (entity*) IFC4X2_types[852]);
IFC4X2_types[874] = new entity(strings[2017], false, 874, (entity*) IFC4X2_types[865]);
IFC4X2_types[875] = new entity(strings[2018], false, 875, (entity*) IFC4X2_types[852]);
IFC4X2_types[876] = new entity(strings[2019], false, 876, (entity*) IFC4X2_types[865]);
IFC4X2_types[877] = new entity(strings[2020], false, 877, (entity*) IFC4X2_types[852]);
IFC4X2_types[878] = new entity(strings[2021], false, 878, (entity*) IFC4X2_types[852]);
IFC4X2_types[879] = new entity(strings[2022], false, 879, (entity*) IFC4X2_types[852]);
IFC4X2_types[880] = new entity(strings[2023], false, 880, (entity*) IFC4X2_types[852]);
IFC4X2_types[881] = new entity(strings[2024], false, 881, (entity*) IFC4X2_types[880]);
IFC4X2_types[882] = new entity(strings[2025], false, 882, (entity*) IFC4X2_types[881]);
IFC4X2_types[883] = new entity(strings[2026], false, 883, (entity*) IFC4X2_types[865]);
IFC4X2_types[884] = new entity(strings[2027], false, 884, (entity*) IFC4X2_types[190]);
IFC4X2_types[889] = new entity(strings[2028], true, 889, (entity*) IFC4X2_types[646]);
IFC4X2_types[896] = new entity(strings[2029], false, 896, (entity*) IFC4X2_types[1060]);
IFC4X2_types[897] = new entity(strings[2030], false, 897, (entity*) IFC4X2_types[896]);
IFC4X2_types[898] = new entity(strings[2031], false, 898, (entity*) IFC4X2_types[251]);
IFC4X2_types[899] = new entity(strings[2032], false, 899, (entity*) IFC4X2_types[251]);
IFC4X2_types[916] = new entity(strings[2033], true, 916, (entity*) IFC4X2_types[956]);
IFC4X2_types[917] = new entity(strings[2034], false, 917, (entity*) IFC4X2_types[916]);
IFC4X2_types[938] = new entity(strings[2035], false, 938, (entity*) IFC4X2_types[779]);
IFC4X2_types[969] = new entity(strings[2036], true, 969, (entity*) IFC4X2_types[746]);
IFC4X2_types[970] = new entity(strings[2037], true, 970, (entity*) IFC4X2_types[1155]);
IFC4X2_types[971] = new entity(strings[2038], true, 971, (entity*) IFC4X2_types[969]);
IFC4X2_types[972] = new entity(strings[2039], true, 972, (entity*) IFC4X2_types[970]);
IFC4X2_types[973] = new entity(strings[2040], false, 973, (entity*) IFC4X2_types[969]);
IFC4X2_types[974] = new entity(strings[2041], false, 974, (entity*) IFC4X2_types[970]);
IFC4X2_types[980] = new entity(strings[2042], false, 980, (entity*) IFC4X2_types[251]);
IFC4X2_types[981] = new entity(strings[2043], false, 981, (entity*) IFC4X2_types[373]);
IFC4X2_types[993] = new entity(strings[2044], true, 993, (entity*) IFC4X2_types[746]);
IFC4X2_types[1005] = new entity(strings[2045], true, 1005, (entity*) IFC4X2_types[746]);
IFC4X2_types[1020] = new entity(strings[2046], true, 1020, (entity*) IFC4X2_types[1005]);
IFC4X2_types[1025] = new entity(strings[2047], true, 1025, (entity*) IFC4X2_types[993]);
IFC4X2_types[1030] = new entity(strings[2048], false, 1030, (entity*) IFC4X2_types[1020]);
IFC4X2_types[1032] = new entity(strings[2049], false, 1032, (entity*) IFC4X2_types[1030]);
IFC4X2_types[1033] = new entity(strings[2050], false, 1033, (entity*) IFC4X2_types[1025]);
IFC4X2_types[1039] = new entity(strings[2051], false, 1039, (entity*) IFC4X2_types[220]);
IFC4X2_types[1043] = new entity(strings[2052], false, 1043, (entity*) IFC4X2_types[260]);
IFC4X2_types[1044] = new entity(strings[2053], false, 1044, (entity*) IFC4X2_types[1060]);
IFC4X2_types[1047] = new entity(strings[2054], false, 1047, (entity*) IFC4X2_types[1063]);
IFC4X2_types[1048] = new entity(strings[2055], false, 1048, (entity*) IFC4X2_types[1063]);
IFC4X2_types[1069] = new entity(strings[2056], false, 1069, (entity*) IFC4X2_types[473]);
IFC4X2_types[1077] = new entity(strings[2057], false, 1077, (entity*) IFC4X2_types[744]);
IFC4X2_types[1081] = new entity(strings[2058], false, 1081, (entity*) IFC4X2_types[1154]);
IFC4X2_types[1095] = new entity(strings[2059], true, 1095, (entity*) IFC4X2_types[1096]);
IFC4X2_types[1131] = new entity(strings[2060], false, 1131, (entity*) IFC4X2_types[373]);
IFC4X2_types[1141] = new entity(strings[2061], false, 1141, (entity*) IFC4X2_types[381]);
IFC4X2_types[1144] = new entity(strings[2062], false, 1144, (entity*) IFC4X2_types[1095]);
IFC4X2_types[1145] = new entity(strings[2063], false, 1145, (entity*) IFC4X2_types[1144]);
IFC4X2_types[1202] = new entity(strings[2064], false, 1202, (entity*) IFC4X2_types[730]);
IFC4X2_types[1205] = new entity(strings[2065], false, 1205, (entity*) IFC4X2_types[730]);
IFC4X2_types[48] = new select_type(strings[2066], 48, {IFC4X2_types[611],IFC4X2_types[818],IFC4X2_types[1168]});
IFC4X2_types[65] = new select_type(strings[2067], 65, {IFC4X2_types[66],IFC4X2_types[67]});
IFC4X2_types[86] = new select_type(strings[2068], 86, {IFC4X2_types[88],IFC4X2_types[251],IFC4X2_types[495],IFC4X2_types[956],IFC4X2_types[1095]});
IFC4X2_types[172] = new select_type(strings[2069], 172, {IFC4X2_types[176],IFC4X2_types[726]});
IFC4X2_types[173] = new select_type(strings[2070], 173, {IFC4X2_types[174],IFC4X2_types[643]});
IFC4X2_types[252] = new select_type(strings[2071], 252, {IFC4X2_types[88],IFC4X2_types[251]});
IFC4X2_types[272] = new select_type(strings[2072], 272, {IFC4X2_types[269],IFC4X2_types[727]});
IFC4X2_types[435] = new select_type(strings[2073], 435, {IFC4X2_types[172],IFC4X2_types[403],IFC4X2_types[433],IFC4X2_types[434]});
IFC4X2_types[486] = new select_type(strings[2074], 486, {IFC4X2_types[260],IFC4X2_types[710],IFC4X2_types[1042]});
IFC4X2_types[492] = new select_type(strings[2075], 492, {IFC4X2_types[293],IFC4X2_types[1185]});
IFC4X2_types[623] = new select_type(strings[2076], 623, {IFC4X2_types[47],IFC4X2_types[611],IFC4X2_types[818],IFC4X2_types[1071],IFC4X2_types[1125],IFC4X2_types[1168]});
IFC4X2_types[745] = new select_type(strings[2077], 745, {IFC4X2_types[744],IFC4X2_types[1154]});
IFC4X2_types[750] = new select_type(strings[2078], 750, {IFC4X2_types[746],IFC4X2_types[1155]});
IFC4X2_types[773] = new select_type(strings[2079], 773, {IFC4X2_types[772],IFC4X2_types[774]});
IFC4X2_types[894] = new select_type(strings[2080], 894, {IFC4X2_types[889],IFC4X2_types[1156]});
IFC4X2_types[935] = new select_type(strings[2081], 935, {IFC4X2_types[168],IFC4X2_types[662]});
IFC4X2_types[957] = new select_type(strings[2082], 957, {IFC4X2_types[168],IFC4X2_types[956]});
IFC4X2_types[1049] = new select_type(strings[2083], 1049, {IFC4X2_types[414],IFC4X2_types[417],IFC4X2_types[1042]});
IFC4X2_types[1148] = new select_type(strings[2084], 1148, {IFC4X2_types[141],IFC4X2_types[673]});
IFC4X2_types[1174] = new select_type(strings[2085], 1174, {IFC4X2_types[293],IFC4X2_types[1173]});
IFC4X2_types[6] = new entity(strings[2086], false, 6, (entity*) IFC4X2_types[646]);
IFC4X2_types[14] = new entity(strings[2087], false, 14, (entity*) IFC4X2_types[583]);
IFC4X2_types[15] = new entity(strings[2088], false, 15, (entity*) IFC4X2_types[14]);
IFC4X2_types[31] = new entity(strings[2089], false, 31, (entity*) IFC4X2_types[32]);
IFC4X2_types[33] = new entity(strings[2090], false, 33, (entity*) IFC4X2_types[37]);
IFC4X2_types[34] = new entity(strings[2091], false, 34, (entity*) IFC4X2_types[37]);
IFC4X2_types[35] = new entity(strings[2092], false, 35, (entity*) IFC4X2_types[37]);
IFC4X2_types[44] = new entity(strings[2093], false, 44, (entity*) IFC4X2_types[746]);
IFC4X2_types[107] = new entity(strings[2094], true, 107, (entity*) IFC4X2_types[96]);
IFC4X2_types[109] = new entity(strings[2095], false, 109, (entity*) IFC4X2_types[107]);
IFC4X2_types[80] = new entity(strings[2096], false, 80, (entity*) IFC4X2_types[251]);
IFC4X2_types[85] = new entity(strings[2097], false, 85, (entity*) IFC4X2_types[88]);
IFC4X2_types[95] = new entity(strings[2098], true, 95, (entity*) IFC4X2_types[260]);
IFC4X2_types[118] = new entity(strings[2099], true, 118, (entity*) IFC4X2_types[381]);
IFC4X2_types[156] = new entity(strings[2100], false, 156, (entity*) IFC4X2_types[118]);
IFC4X2_types[159] = new entity(strings[2101], false, 159, (entity*) IFC4X2_types[160]);
IFC4X2_types[163] = new entity(strings[2102], false, 163, (entity*) IFC4X2_types[381]);
IFC4X2_types[179] = new entity(strings[2103], false, 179, (entity*) IFC4X2_types[118]);
IFC4X2_types[186] = new entity(strings[2104], false, 186, (entity*) IFC4X2_types[779]);
IFC4X2_types[188] = new entity(strings[2105], false, 188, (entity*) IFC4X2_types[95]);
IFC4X2_types[189] = new entity(strings[2106], false, 189, (entity*) IFC4X2_types[188]);
IFC4X2_types[199] = new entity(strings[2107], true, 199, (entity*) IFC4X2_types[260]);
IFC4X2_types[211] = new entity(strings[2108], false, 211, (entity*) IFC4X2_types[220]);
IFC4X2_types[214] = new entity(strings[2109], false, 214, (entity*) IFC4X2_types[220]);
IFC4X2_types[217] = new entity(strings[2110], false, 217, (entity*) IFC4X2_types[220]);
IFC4X2_types[219] = new entity(strings[2111], true, 219, (entity*) IFC4X2_types[889]);
IFC4X2_types[224] = new entity(strings[2112], true, 224, (entity*) IFC4X2_types[646]);
IFC4X2_types[239] = new entity(strings[2113], false, 239, (entity*) IFC4X2_types[224]);
IFC4X2_types[241] = new entity(strings[2114], false, 241, (entity*) IFC4X2_types[224]);
IFC4X2_types[246] = new entity(strings[2115], false, 246, (entity*) IFC4X2_types[118]);
IFC4X2_types[248] = new entity(strings[2116], false, 248, (entity*) IFC4X2_types[219]);
IFC4X2_types[257] = new entity(strings[2117], false, 257, (entity*) IFC4X2_types[118]);
IFC4X2_types[267] = new entity(strings[2118], true, 267, (entity*) IFC4X2_types[95]);
IFC4X2_types[273] = new entity(strings[2119], false, 273, (entity*) IFC4X2_types[373]);
IFC4X2_types[283] = new entity(strings[2120], false, 283, (entity*) IFC4X2_types[118]);
IFC4X2_types[306] = new entity(strings[2121], false, 306, (entity*) IFC4X2_types[381]);
IFC4X2_types[308] = new entity(strings[2122], true, 308, (entity*) IFC4X2_types[306]);
IFC4X2_types[320] = new entity(strings[2123], false, 320, (entity*) IFC4X2_types[730]);
IFC4X2_types[323] = new entity(strings[2124], false, 323, (entity*) IFC4X2_types[730]);
IFC4X2_types[328] = new entity(strings[2125], false, 328, (entity*) IFC4X2_types[118]);
IFC4X2_types[332] = new entity(strings[2126], false, 332, (entity*) IFC4X2_types[726]);
IFC4X2_types[333] = new entity(strings[2127], false, 333, (entity*) IFC4X2_types[727]);
IFC4X2_types[372] = new entity(strings[2128], true, 372, (entity*) IFC4X2_types[746]);
IFC4X2_types[374] = new entity(strings[2129], false, 374, (entity*) IFC4X2_types[372]);
IFC4X2_types[375] = new entity(strings[2130], false, 375, (entity*) IFC4X2_types[381]);
IFC4X2_types[377] = new entity(strings[2131], true, 377, (entity*) IFC4X2_types[372]);
IFC4X2_types[378] = new entity(strings[2132], true, 378, (entity*) IFC4X2_types[381]);
IFC4X2_types[382] = new entity(strings[2133], false, 382, (entity*) IFC4X2_types[199]);
IFC4X2_types[385] = new entity(strings[2134], true, 385, (entity*) IFC4X2_types[308]);
IFC4X2_types[388] = new entity(strings[2135], false, 388, (entity*) IFC4X2_types[385]);
IFC4X2_types[391] = new entity(strings[2136], false, 391, (entity*) IFC4X2_types[385]);
IFC4X2_types[394] = new entity(strings[2137], false, 394, (entity*) IFC4X2_types[385]);
IFC4X2_types[396] = new entity(strings[2138], false, 396, (entity*) IFC4X2_types[744]);
IFC4X2_types[410] = new entity(strings[2139], true, 410, (entity*) IFC4X2_types[969]);
IFC4X2_types[418] = new entity(strings[2140], false, 418, (entity*) IFC4X2_types[583]);
IFC4X2_types[419] = new entity(strings[2141], false, 419, (entity*) IFC4X2_types[418]);
IFC4X2_types[420] = new entity(strings[2142], false, 420, (entity*) IFC4X2_types[971]);
IFC4X2_types[421] = new entity(strings[2143], false, 421, (entity*) IFC4X2_types[971]);
IFC4X2_types[426] = new entity(strings[2144], false, 426, (entity*) IFC4X2_types[377]);
IFC4X2_types[427] = new entity(strings[2145], false, 427, (entity*) IFC4X2_types[378]);
IFC4X2_types[429] = new entity(strings[2146], true, 429, (entity*) IFC4X2_types[372]);
IFC4X2_types[430] = new entity(strings[2147], true, 430, (entity*) IFC4X2_types[429]);
IFC4X2_types[431] = new entity(strings[2148], true, 431, (entity*) IFC4X2_types[429]);
IFC4X2_types[444] = new entity(strings[2149], true, 444, (entity*) IFC4X2_types[308]);
IFC4X2_types[447] = new entity(strings[2150], true, 447, (entity*) IFC4X2_types[308]);
IFC4X2_types[452] = new entity(strings[2151], false, 452, (entity*) IFC4X2_types[444]);
IFC4X2_types[455] = new entity(strings[2152], true, 455, (entity*) IFC4X2_types[308]);
IFC4X2_types[457] = new entity(strings[2153], true, 457, (entity*) IFC4X2_types[308]);
IFC4X2_types[459] = new entity(strings[2154], true, 459, (entity*) IFC4X2_types[308]);
IFC4X2_types[461] = new entity(strings[2155], true, 461, (entity*) IFC4X2_types[308]);
IFC4X2_types[463] = new entity(strings[2156], true, 463, (entity*) IFC4X2_types[308]);
IFC4X2_types[468] = new entity(strings[2157], false, 468, (entity*) IFC4X2_types[118]);
IFC4X2_types[472] = new entity(strings[2158], false, 472, (entity*) IFC4X2_types[372]);
IFC4X2_types[474] = new entity(strings[2159], false, 474, (entity*) IFC4X2_types[472]);
IFC4X2_types[477] = new entity(strings[2160], false, 477, (entity*) IFC4X2_types[372]);
IFC4X2_types[494] = new entity(strings[2161], false, 494, (entity*) IFC4X2_types[646]);
IFC4X2_types[498] = new entity(strings[2162], false, 498, (entity*) IFC4X2_types[385]);
IFC4X2_types[503] = new entity(strings[2163], false, 503, (entity*) IFC4X2_types[385]);
IFC4X2_types[509] = new entity(strings[2164], false, 509, (entity*) IFC4X2_types[95]);
IFC4X2_types[518] = new entity(strings[2165], false, 518, (entity*) IFC4X2_types[463]);
IFC4X2_types[521] = new entity(strings[2166], false, 521, (entity*) IFC4X2_types[1043]);
IFC4X2_types[522] = new entity(strings[2167], false, 522, (entity*) IFC4X2_types[494]);
IFC4X2_types[530] = new entity(strings[2168], false, 530, (entity*) IFC4X2_types[447]);
IFC4X2_types[535] = new entity(strings[2169], false, 535, (entity*) IFC4X2_types[219]);
IFC4X2_types[540] = new entity(strings[2170], false, 540, (entity*) IFC4X2_types[461]);
IFC4X2_types[554] = new entity(strings[2171], false, 554, (entity*) IFC4X2_types[461]);
IFC4X2_types[571] = new entity(strings[2172], false, 571, (entity*) IFC4X2_types[267]);
IFC4X2_types[612] = new entity(strings[2173], false, 612, (entity*) IFC4X2_types[377]);
IFC4X2_types[613] = new entity(strings[2174], false, 613, (entity*) IFC4X2_types[378]);
IFC4X2_types[616] = new entity(strings[2175], false, 616, (entity*) IFC4X2_types[461]);
IFC4X2_types[620] = new entity(strings[2176], false, 620, (entity*) IFC4X2_types[118]);
IFC4X2_types[639] = new entity(strings[2177], false, 639, (entity*) IFC4X2_types[385]);
IFC4X2_types[653] = new entity(strings[2178], false, 653, (entity*) IFC4X2_types[6]);
IFC4X2_types[659] = new entity(strings[2179], false, 659, (entity*) IFC4X2_types[431]);
IFC4X2_types[661] = new entity(strings[2180], false, 661, (entity*) IFC4X2_types[659]);
IFC4X2_types[669] = new entity(strings[2181], false, 669, (entity*) IFC4X2_types[461]);
IFC4X2_types[676] = new entity(strings[2182], false, 676, (entity*) IFC4X2_types[224]);
IFC4X2_types[679] = new entity(strings[2183], false, 679, (entity*) IFC4X2_types[730]);
IFC4X2_types[680] = new entity(strings[2184], false, 680, (entity*) IFC4X2_types[224]);
IFC4X2_types[691] = new entity(strings[2185], false, 691, (entity*) IFC4X2_types[283]);
IFC4X2_types[694] = new entity(strings[2186], false, 694, (entity*) IFC4X2_types[447]);
IFC4X2_types[697] = new entity(strings[2187], false, 697, (entity*) IFC4X2_types[457]);
IFC4X2_types[708] = new entity(strings[2188], false, 708, (entity*) IFC4X2_types[118]);
IFC4X2_types[715] = new entity(strings[2189], false, 715, (entity*) IFC4X2_types[1095]);
IFC4X2_types[716] = new entity(strings[2190], false, 716, (entity*) IFC4X2_types[95]);
IFC4X2_types[718] = new entity(strings[2191], true, 718, (entity*) IFC4X2_types[746]);
IFC4X2_types[719] = new entity(strings[2192], true, 719, (entity*) IFC4X2_types[746]);
IFC4X2_types[741] = new entity(strings[2193], false, 741, (entity*) IFC4X2_types[744]);
IFC4X2_types[760] = new entity(strings[2194], false, 760, (entity*) IFC4X2_types[224]);
IFC4X2_types[757] = new entity(strings[2195], false, 757, (entity*) IFC4X2_types[430]);
IFC4X2_types[785] = new entity(strings[2196], false, 785, (entity*) IFC4X2_types[444]);
IFC4X2_types[789] = new entity(strings[2197], false, 789, (entity*) IFC4X2_types[455]);
IFC4X2_types[800] = new entity(strings[2198], false, 800, (entity*) IFC4X2_types[118]);
IFC4X2_types[804] = new entity(strings[2199], false, 804, (entity*) IFC4X2_types[118]);
IFC4X2_types[806] = new entity(strings[2200], false, 806, (entity*) IFC4X2_types[118]);
IFC4X2_types[810] = new entity(strings[2201], false, 810, (entity*) IFC4X2_types[109]);
IFC4X2_types[819] = new entity(strings[2202], false, 819, (entity*) IFC4X2_types[719]);
IFC4X2_types[830] = new entity(strings[2203], true, 830, (entity*) IFC4X2_types[377]);
IFC4X2_types[831] = new entity(strings[2204], true, 831, (entity*) IFC4X2_types[378]);
IFC4X2_types[832] = new entity(strings[2205], false, 832, (entity*) IFC4X2_types[830]);
IFC4X2_types[833] = new entity(strings[2206], false, 833, (entity*) IFC4X2_types[831]);
IFC4X2_types[835] = new entity(strings[2207], false, 835, (entity*) IFC4X2_types[865]);
IFC4X2_types[902] = new entity(strings[2208], false, 902, (entity*) IFC4X2_types[118]);
IFC4X2_types[911] = new entity(strings[2209], false, 911, (entity*) IFC4X2_types[461]);
IFC4X2_types[914] = new entity(strings[2210], false, 914, (entity*) IFC4X2_types[1043]);
IFC4X2_types[929] = new entity(strings[2211], false, 929, (entity*) IFC4X2_types[118]);
IFC4X2_types[942] = new entity(strings[2212], false, 942, (entity*) IFC4X2_types[971]);
IFC4X2_types[949] = new entity(strings[2213], false, 949, (entity*) IFC4X2_types[118]);
IFC4X2_types[953] = new entity(strings[2214], false, 953, (entity*) IFC4X2_types[385]);
IFC4X2_types[962] = new entity(strings[2215], false, 962, (entity*) IFC4X2_types[971]);
IFC4X2_types[965] = new entity(strings[2216], false, 965, (entity*) IFC4X2_types[461]);
IFC4X2_types[967] = new entity(strings[2217], false, 967, (entity*) IFC4X2_types[972]);
IFC4X2_types[983] = new entity(strings[2218], false, 983, (entity*) IFC4X2_types[461]);
IFC4X2_types[987] = new entity(strings[2219], false, 987, (entity*) IFC4X2_types[118]);
IFC4X2_types[989] = new entity(strings[2220], false, 989, (entity*) IFC4X2_types[118]);
IFC4X2_types[992] = new entity(strings[2221], true, 992, (entity*) IFC4X2_types[993]);
IFC4X2_types[996] = new entity(strings[2222], true, 996, (entity*) IFC4X2_types[1005]);
IFC4X2_types[998] = new entity(strings[2223], false, 998, (entity*) IFC4X2_types[992]);
IFC4X2_types[1000] = new entity(strings[2224], false, 1000, (entity*) IFC4X2_types[996]);
IFC4X2_types[1001] = new entity(strings[2225], false, 1001, (entity*) IFC4X2_types[1020]);
IFC4X2_types[1003] = new entity(strings[2226], false, 1003, (entity*) IFC4X2_types[1001]);
IFC4X2_types[1004] = new entity(strings[2227], false, 1004, (entity*) IFC4X2_types[1025]);
IFC4X2_types[1006] = new entity(strings[2228], false, 1006, (entity*) IFC4X2_types[998]);
IFC4X2_types[1010] = new entity(strings[2229], false, 1010, (entity*) IFC4X2_types[494]);
IFC4X2_types[1022] = new entity(strings[2230], false, 1022, (entity*) IFC4X2_types[992]);
IFC4X2_types[1023] = new entity(strings[2231], false, 1023, (entity*) IFC4X2_types[996]);
IFC4X2_types[1024] = new entity(strings[2232], false, 1024, (entity*) IFC4X2_types[1025]);
IFC4X2_types[1026] = new entity(strings[2233], false, 1026, (entity*) IFC4X2_types[494]);
IFC4X2_types[1027] = new entity(strings[2234], false, 1027, (entity*) IFC4X2_types[992]);
IFC4X2_types[1029] = new entity(strings[2235], false, 1029, (entity*) IFC4X2_types[996]);
IFC4X2_types[1038] = new entity(strings[2236], false, 1038, (entity*) IFC4X2_types[219]);
IFC4X2_types[1045] = new entity(strings[2237], false, 1045, (entity*) IFC4X2_types[429]);
IFC4X2_types[1065] = new entity(strings[2238], false, 1065, (entity*) IFC4X2_types[444]);
IFC4X2_types[1067] = new entity(strings[2239], false, 1067, (entity*) IFC4X2_types[494]);
IFC4X2_types[1068] = new entity(strings[2240], false, 1068, (entity*) IFC4X2_types[472]);
IFC4X2_types[1075] = new entity(strings[2241], false, 1075, (entity*) IFC4X2_types[459]);
IFC4X2_types[1086] = new entity(strings[2242], false, 1086, (entity*) IFC4X2_types[830]);
IFC4X2_types[1087] = new entity(strings[2243], false, 1087, (entity*) IFC4X2_types[830]);
IFC4X2_types[1088] = new entity(strings[2244], false, 1088, (entity*) IFC4X2_types[831]);
IFC4X2_types[1090] = new entity(strings[2245], false, 1090, (entity*) IFC4X2_types[830]);
IFC4X2_types[1091] = new entity(strings[2246], false, 1091, (entity*) IFC4X2_types[831]);
IFC4X2_types[1093] = new entity(strings[2247], false, 1093, (entity*) IFC4X2_types[831]);
IFC4X2_types[1134] = new entity(strings[2248], false, 1134, (entity*) IFC4X2_types[385]);
IFC4X2_types[1137] = new entity(strings[2249], false, 1137, (entity*) IFC4X2_types[267]);
IFC4X2_types[1140] = new entity(strings[2250], false, 1140, (entity*) IFC4X2_types[372]);
IFC4X2_types[1146] = new entity(strings[2251], false, 1146, (entity*) IFC4X2_types[95]);
IFC4X2_types[1151] = new entity(strings[2252], false, 1151, (entity*) IFC4X2_types[385]);
IFC4X2_types[1162] = new entity(strings[2253], false, 1162, (entity*) IFC4X2_types[385]);
IFC4X2_types[1170] = new entity(strings[2254], false, 1170, (entity*) IFC4X2_types[444]);
IFC4X2_types[1178] = new entity(strings[2255], false, 1178, (entity*) IFC4X2_types[377]);
IFC4X2_types[1179] = new entity(strings[2256], false, 1179, (entity*) IFC4X2_types[378]);
IFC4X2_types[1181] = new entity(strings[2257], false, 1181, (entity*) IFC4X2_types[377]);
IFC4X2_types[1182] = new entity(strings[2258], false, 1182, (entity*) IFC4X2_types[378]);
IFC4X2_types[1184] = new entity(strings[2259], false, 1184, (entity*) IFC4X2_types[372]);
IFC4X2_types[1186] = new entity(strings[2260], false, 1186, (entity*) IFC4X2_types[431]);
IFC4X2_types[1193] = new entity(strings[2261], false, 1193, (entity*) IFC4X2_types[118]);
IFC4X2_types[1199] = new entity(strings[2262], false, 1199, (entity*) IFC4X2_types[461]);
IFC4X2_types[1210] = new entity(strings[2263], false, 1210, (entity*) IFC4X2_types[118]);
IFC4X2_types[1213] = new entity(strings[2264], false, 1213, (entity*) IFC4X2_types[224]);
IFC4X2_types[1215] = new entity(strings[2265], true, 1215, (entity*) IFC4X2_types[224]);
IFC4X2_types[1216] = new entity(strings[2266], false, 1216, (entity*) IFC4X2_types[1215]);
IFC4X2_types[1218] = new entity(strings[2267], false, 1218, (entity*) IFC4X2_types[1215]);
IFC4X2_types[1221] = new entity(strings[2268], false, 1221, (entity*) IFC4X2_types[1067]);
IFC4X2_types[263] = new select_type(strings[2269], 263, {IFC4X2_types[270],IFC4X2_types[272]});
IFC4X2_types[265] = new select_type(strings[2270], 265, {IFC4X2_types[189],IFC4X2_types[675],IFC4X2_types[1043]});
IFC4X2_types[266] = new select_type(strings[2271], 266, {IFC4X2_types[95],IFC4X2_types[346]});
IFC4X2_types[994] = new select_type(strings[2272], 994, {IFC4X2_types[372],IFC4X2_types[1005]});
IFC4X2_types[2] = new entity(strings[2273], false, 2, (entity*) IFC4X2_types[224]);
IFC4X2_types[19] = new entity(strings[2274], false, 19, (entity*) IFC4X2_types[444]);
IFC4X2_types[21] = new entity(strings[2275], false, 21, (entity*) IFC4X2_types[461]);
IFC4X2_types[24] = new entity(strings[2276], false, 24, (entity*) IFC4X2_types[385]);
IFC4X2_types[38] = new entity(strings[2277], false, 38, (entity*) IFC4X2_types[95]);
IFC4X2_types[59] = new entity(strings[2278], false, 59, (entity*) IFC4X2_types[494]);
IFC4X2_types[62] = new entity(strings[2279], false, 62, (entity*) IFC4X2_types[461]);
IFC4X2_types[104] = new entity(strings[2280], true, 104, (entity*) IFC4X2_types[95]);
IFC4X2_types[106] = new entity(strings[2281], false, 106, (entity*) IFC4X2_types[104]);
IFC4X2_types[70] = new entity(strings[2282], false, 70, (entity*) IFC4X2_types[118]);
IFC4X2_types[73] = new entity(strings[2283], false, 73, (entity*) IFC4X2_types[118]);
IFC4X2_types[82] = new entity(strings[2284], false, 82, (entity*) IFC4X2_types[385]);
IFC4X2_types[90] = new entity(strings[2285], false, 90, (entity*) IFC4X2_types[189]);
IFC4X2_types[100] = new entity(strings[2286], false, 100, (entity*) IFC4X2_types[420]);
IFC4X2_types[101] = new entity(strings[2287], false, 101, (entity*) IFC4X2_types[421]);
IFC4X2_types[110] = new entity(strings[2288], false, 110, (entity*) IFC4X2_types[420]);
IFC4X2_types[111] = new entity(strings[2289], true, 111, (entity*) IFC4X2_types[372]);
IFC4X2_types[112] = new entity(strings[2290], false, 112, (entity*) IFC4X2_types[377]);
IFC4X2_types[113] = new entity(strings[2291], false, 113, (entity*) IFC4X2_types[378]);
IFC4X2_types[115] = new entity(strings[2292], false, 115, (entity*) IFC4X2_types[111]);
IFC4X2_types[116] = new entity(strings[2293], false, 116, (entity*) IFC4X2_types[118]);
IFC4X2_types[119] = new entity(strings[2294], false, 119, (entity*) IFC4X2_types[421]);
IFC4X2_types[120] = new entity(strings[2295], false, 120, (entity*) IFC4X2_types[1067]);
IFC4X2_types[123] = new entity(strings[2296], false, 123, (entity*) IFC4X2_types[385]);
IFC4X2_types[126] = new entity(strings[2297], false, 126, (entity*) IFC4X2_types[447]);
IFC4X2_types[129] = new entity(strings[2298], false, 129, (entity*) IFC4X2_types[457]);
IFC4X2_types[132] = new entity(strings[2299], false, 132, (entity*) IFC4X2_types[447]);
IFC4X2_types[135] = new entity(strings[2300], false, 135, (entity*) IFC4X2_types[457]);
IFC4X2_types[138] = new entity(strings[2301], false, 138, (entity*) IFC4X2_types[283]);
IFC4X2_types[153] = new entity(strings[2302], false, 153, (entity*) IFC4X2_types[385]);
IFC4X2_types[155] = new entity(strings[2303], false, 155, (entity*) IFC4X2_types[111]);
IFC4X2_types[158] = new entity(strings[2304], false, 158, (entity*) IFC4X2_types[199]);
IFC4X2_types[161] = new entity(strings[2305], false, 161, (entity*) IFC4X2_types[267]);
IFC4X2_types[162] = new entity(strings[2306], false, 162, (entity*) IFC4X2_types[372]);
IFC4X2_types[170] = new entity(strings[2307], false, 170, (entity*) IFC4X2_types[385]);
IFC4X2_types[177] = new entity(strings[2308], false, 177, (entity*) IFC4X2_types[111]);
IFC4X2_types[178] = new entity(strings[2309], false, 178, (entity*) IFC4X2_types[177]);
IFC4X2_types[182] = new entity(strings[2310], false, 182, (entity*) IFC4X2_types[461]);
IFC4X2_types[194] = new entity(strings[2311], false, 194, (entity*) IFC4X2_types[455]);
IFC4X2_types[197] = new entity(strings[2312], false, 197, (entity*) IFC4X2_types[385]);
IFC4X2_types[210] = new entity(strings[2313], false, 210, (entity*) IFC4X2_types[219]);
IFC4X2_types[213] = new entity(strings[2314], false, 213, (entity*) IFC4X2_types[219]);
IFC4X2_types[216] = new entity(strings[2315], false, 216, (entity*) IFC4X2_types[219]);
IFC4X2_types[231] = new entity(strings[2316], false, 231, (entity*) IFC4X2_types[385]);
IFC4X2_types[234] = new entity(strings[2317], false, 234, (entity*) IFC4X2_types[385]);
IFC4X2_types[245] = new entity(strings[2318], false, 245, (entity*) IFC4X2_types[111]);
IFC4X2_types[256] = new entity(strings[2319], false, 256, (entity*) IFC4X2_types[111]);
IFC4X2_types[275] = new entity(strings[2320], false, 275, (entity*) IFC4X2_types[444]);
IFC4X2_types[282] = new entity(strings[2321], false, 282, (entity*) IFC4X2_types[111]);
IFC4X2_types[295] = new entity(strings[2322], false, 295, (entity*) IFC4X2_types[377]);
IFC4X2_types[296] = new entity(strings[2323], false, 296, (entity*) IFC4X2_types[378]);
IFC4X2_types[300] = new entity(strings[2324], false, 300, (entity*) IFC4X2_types[308]);
IFC4X2_types[304] = new entity(strings[2325], true, 304, (entity*) IFC4X2_types[306]);
IFC4X2_types[305] = new entity(strings[2326], false, 305, (entity*) IFC4X2_types[372]);
IFC4X2_types[307] = new entity(strings[2327], false, 307, (entity*) IFC4X2_types[305]);
IFC4X2_types[309] = new entity(strings[2328], false, 309, (entity*) IFC4X2_types[718]);
IFC4X2_types[311] = new entity(strings[2329], false, 311, (entity*) IFC4X2_types[1067]);
IFC4X2_types[319] = new entity(strings[2330], false, 319, (entity*) IFC4X2_types[111]);
IFC4X2_types[324] = new entity(strings[2331], false, 324, (entity*) IFC4X2_types[319]);
IFC4X2_types[335] = new entity(strings[2332], false, 335, (entity*) IFC4X2_types[447]);
IFC4X2_types[338] = new entity(strings[2333], false, 338, (entity*) IFC4X2_types[457]);
IFC4X2_types[341] = new entity(strings[2334], false, 341, (entity*) IFC4X2_types[463]);
IFC4X2_types[349] = new entity(strings[2335], false, 349, (entity*) IFC4X2_types[461]);
IFC4X2_types[356] = new entity(strings[2336], false, 356, (entity*) IFC4X2_types[444]);
IFC4X2_types[359] = new entity(strings[2337], false, 359, (entity*) IFC4X2_types[459]);
IFC4X2_types[362] = new entity(strings[2338], false, 362, (entity*) IFC4X2_types[385]);
IFC4X2_types[365] = new entity(strings[2339], false, 365, (entity*) IFC4X2_types[385]);
IFC4X2_types[369] = new entity(strings[2340], false, 369, (entity*) IFC4X2_types[444]);
IFC4X2_types[384] = new entity(strings[2341], false, 384, (entity*) IFC4X2_types[307]);
IFC4X2_types[387] = new entity(strings[2342], false, 387, (entity*) IFC4X2_types[384]);
IFC4X2_types[390] = new entity(strings[2343], false, 390, (entity*) IFC4X2_types[384]);
IFC4X2_types[393] = new entity(strings[2344], false, 393, (entity*) IFC4X2_types[384]);
IFC4X2_types[408] = new entity(strings[2345], false, 408, (entity*) IFC4X2_types[410]);
IFC4X2_types[424] = new entity(strings[2346], false, 424, (entity*) IFC4X2_types[455]);
IFC4X2_types[437] = new entity(strings[2347], false, 437, (entity*) IFC4X2_types[463]);
IFC4X2_types[440] = new entity(strings[2348], false, 440, (entity*) IFC4X2_types[461]);
IFC4X2_types[443] = new entity(strings[2349], false, 443, (entity*) IFC4X2_types[307]);
IFC4X2_types[446] = new entity(strings[2350], false, 446, (entity*) IFC4X2_types[307]);
IFC4X2_types[449] = new entity(strings[2351], false, 449, (entity*) IFC4X2_types[304]);
IFC4X2_types[451] = new entity(strings[2352], false, 451, (entity*) IFC4X2_types[443]);
IFC4X2_types[454] = new entity(strings[2353], false, 454, (entity*) IFC4X2_types[307]);
IFC4X2_types[456] = new entity(strings[2354], false, 456, (entity*) IFC4X2_types[307]);
IFC4X2_types[458] = new entity(strings[2355], false, 458, (entity*) IFC4X2_types[307]);
IFC4X2_types[460] = new entity(strings[2356], false, 460, (entity*) IFC4X2_types[307]);
IFC4X2_types[462] = new entity(strings[2357], false, 462, (entity*) IFC4X2_types[307]);
IFC4X2_types[467] = new entity(strings[2358], false, 467, (entity*) IFC4X2_types[111]);
IFC4X2_types[489] = new entity(strings[2359], false, 489, (entity*) IFC4X2_types[719]);
IFC4X2_types[497] = new entity(strings[2360], false, 497, (entity*) IFC4X2_types[384]);
IFC4X2_types[502] = new entity(strings[2361], false, 502, (entity*) IFC4X2_types[384]);
IFC4X2_types[517] = new entity(strings[2362], false, 517, (entity*) IFC4X2_types[462]);
IFC4X2_types[529] = new entity(strings[2363], false, 529, (entity*) IFC4X2_types[446]);
IFC4X2_types[539] = new entity(strings[2364], false, 539, (entity*) IFC4X2_types[460]);
IFC4X2_types[553] = new entity(strings[2365], false, 553, (entity*) IFC4X2_types[460]);
IFC4X2_types[567] = new entity(strings[2366], false, 567, (entity*) IFC4X2_types[719]);
IFC4X2_types[615] = new entity(strings[2367], false, 615, (entity*) IFC4X2_types[460]);
IFC4X2_types[618] = new entity(strings[2368], false, 618, (entity*) IFC4X2_types[111]);
IFC4X2_types[619] = new entity(strings[2369], false, 619, (entity*) IFC4X2_types[618]);
IFC4X2_types[638] = new entity(strings[2370], false, 638, (entity*) IFC4X2_types[384]);
IFC4X2_types[667] = new entity(strings[2371], false, 667, (entity*) IFC4X2_types[90]);
IFC4X2_types[668] = new entity(strings[2372], false, 668, (entity*) IFC4X2_types[460]);
IFC4X2_types[689] = new entity(strings[2373], false, 689, (entity*) IFC4X2_types[282]);
IFC4X2_types[693] = new entity(strings[2374], false, 693, (entity*) IFC4X2_types[446]);
IFC4X2_types[696] = new entity(strings[2375], false, 696, (entity*) IFC4X2_types[456]);
IFC4X2_types[706] = new entity(strings[2376], false, 706, (entity*) IFC4X2_types[111]);
IFC4X2_types[707] = new entity(strings[2377], false, 707, (entity*) IFC4X2_types[706]);
IFC4X2_types[781] = new entity(strings[2378], false, 781, (entity*) IFC4X2_types[443]);
IFC4X2_types[783] = new entity(strings[2379], false, 783, (entity*) IFC4X2_types[304]);
IFC4X2_types[788] = new entity(strings[2380], false, 788, (entity*) IFC4X2_types[454]);
IFC4X2_types[799] = new entity(strings[2381], false, 799, (entity*) IFC4X2_types[111]);
IFC4X2_types[802] = new entity(strings[2382], false, 802, (entity*) IFC4X2_types[111]);
IFC4X2_types[803] = new entity(strings[2383], false, 803, (entity*) IFC4X2_types[111]);
IFC4X2_types[809] = new entity(strings[2384], false, 809, (entity*) IFC4X2_types[106]);
IFC4X2_types[825] = new entity(strings[2385], false, 825, (entity*) IFC4X2_types[830]);
IFC4X2_types[828] = new entity(strings[2386], false, 828, (entity*) IFC4X2_types[831]);
IFC4X2_types[901] = new entity(strings[2387], false, 901, (entity*) IFC4X2_types[111]);
IFC4X2_types[910] = new entity(strings[2388], false, 910, (entity*) IFC4X2_types[460]);
IFC4X2_types[925] = new entity(strings[2389], false, 925, (entity*) IFC4X2_types[304]);
IFC4X2_types[928] = new entity(strings[2390], false, 928, (entity*) IFC4X2_types[111]);
IFC4X2_types[946] = new entity(strings[2391], false, 946, (entity*) IFC4X2_types[111]);
IFC4X2_types[947] = new entity(strings[2392], false, 947, (entity*) IFC4X2_types[946]);
IFC4X2_types[948] = new entity(strings[2393], false, 948, (entity*) IFC4X2_types[946]);
IFC4X2_types[952] = new entity(strings[2394], false, 952, (entity*) IFC4X2_types[384]);
IFC4X2_types[964] = new entity(strings[2395], false, 964, (entity*) IFC4X2_types[460]);
IFC4X2_types[982] = new entity(strings[2396], false, 982, (entity*) IFC4X2_types[460]);
IFC4X2_types[985] = new entity(strings[2397], false, 985, (entity*) IFC4X2_types[111]);
IFC4X2_types[986] = new entity(strings[2398], false, 986, (entity*) IFC4X2_types[111]);
IFC4X2_types[995] = new entity(strings[2399], false, 995, (entity*) IFC4X2_types[1067]);
IFC4X2_types[1008] = new entity(strings[2400], false, 1008, (entity*) IFC4X2_types[1010]);
IFC4X2_types[1021] = new entity(strings[2401], false, 1021, (entity*) IFC4X2_types[1027]);
IFC4X2_types[1064] = new entity(strings[2402], false, 1064, (entity*) IFC4X2_types[443]);
IFC4X2_types[1074] = new entity(strings[2403], false, 1074, (entity*) IFC4X2_types[458]);
IFC4X2_types[1133] = new entity(strings[2404], false, 1133, (entity*) IFC4X2_types[384]);
IFC4X2_types[1150] = new entity(strings[2405], false, 1150, (entity*) IFC4X2_types[384]);
IFC4X2_types[1159] = new entity(strings[2406], false, 1159, (entity*) IFC4X2_types[304]);
IFC4X2_types[1161] = new entity(strings[2407], false, 1161, (entity*) IFC4X2_types[384]);
IFC4X2_types[1169] = new entity(strings[2408], false, 1169, (entity*) IFC4X2_types[443]);
IFC4X2_types[1190] = new entity(strings[2409], false, 1190, (entity*) IFC4X2_types[111]);
IFC4X2_types[1191] = new entity(strings[2410], false, 1191, (entity*) IFC4X2_types[1190]);
IFC4X2_types[1192] = new entity(strings[2411], false, 1192, (entity*) IFC4X2_types[1190]);
IFC4X2_types[1198] = new entity(strings[2412], false, 1198, (entity*) IFC4X2_types[460]);
IFC4X2_types[1201] = new entity(strings[2413], false, 1201, (entity*) IFC4X2_types[111]);
IFC4X2_types[1206] = new entity(strings[2414], false, 1206, (entity*) IFC4X2_types[1201]);
IFC4X2_types[963] = new select_type(strings[2415], 963, {IFC4X2_types[408],IFC4X2_types[962]});
IFC4X2_types[10] = new entity(strings[2416], false, 10, (entity*) IFC4X2_types[304]);
IFC4X2_types[17] = new entity(strings[2417], false, 17, (entity*) IFC4X2_types[460]);
IFC4X2_types[18] = new entity(strings[2418], false, 18, (entity*) IFC4X2_types[443]);
IFC4X2_types[23] = new entity(strings[2419], false, 23, (entity*) IFC4X2_types[384]);
IFC4X2_types[27] = new entity(strings[2420], false, 27, (entity*) IFC4X2_types[304]);
IFC4X2_types[29] = new entity(strings[2421], false, 29, (entity*) IFC4X2_types[567]);
IFC4X2_types[61] = new entity(strings[2422], false, 61, (entity*) IFC4X2_types[460]);
IFC4X2_types[68] = new entity(strings[2423], false, 68, (entity*) IFC4X2_types[111]);
IFC4X2_types[69] = new entity(strings[2424], false, 69, (entity*) IFC4X2_types[68]);
IFC4X2_types[72] = new entity(strings[2425], false, 72, (entity*) IFC4X2_types[111]);
IFC4X2_types[81] = new entity(strings[2426], false, 81, (entity*) IFC4X2_types[384]);
IFC4X2_types[122] = new entity(strings[2427], false, 122, (entity*) IFC4X2_types[384]);
IFC4X2_types[125] = new entity(strings[2428], false, 125, (entity*) IFC4X2_types[446]);
IFC4X2_types[128] = new entity(strings[2429], false, 128, (entity*) IFC4X2_types[456]);
IFC4X2_types[131] = new entity(strings[2430], false, 131, (entity*) IFC4X2_types[446]);
IFC4X2_types[134] = new entity(strings[2431], false, 134, (entity*) IFC4X2_types[456]);
IFC4X2_types[137] = new entity(strings[2432], false, 137, (entity*) IFC4X2_types[282]);
IFC4X2_types[152] = new entity(strings[2433], false, 152, (entity*) IFC4X2_types[384]);
IFC4X2_types[169] = new entity(strings[2434], false, 169, (entity*) IFC4X2_types[384]);
IFC4X2_types[181] = new entity(strings[2435], false, 181, (entity*) IFC4X2_types[460]);
IFC4X2_types[193] = new entity(strings[2436], false, 193, (entity*) IFC4X2_types[454]);
IFC4X2_types[196] = new entity(strings[2437], false, 196, (entity*) IFC4X2_types[384]);
IFC4X2_types[226] = new entity(strings[2438], false, 226, (entity*) IFC4X2_types[304]);
IFC4X2_types[230] = new entity(strings[2439], false, 230, (entity*) IFC4X2_types[384]);
IFC4X2_types[233] = new entity(strings[2440], false, 233, (entity*) IFC4X2_types[384]);
IFC4X2_types[274] = new entity(strings[2441], false, 274, (entity*) IFC4X2_types[443]);
IFC4X2_types[299] = new entity(strings[2442], false, 299, (entity*) IFC4X2_types[307]);
IFC4X2_types[302] = new entity(strings[2443], false, 302, (entity*) IFC4X2_types[311]);
IFC4X2_types[303] = new entity(strings[2444], false, 303, (entity*) IFC4X2_types[305]);
IFC4X2_types[334] = new entity(strings[2445], false, 334, (entity*) IFC4X2_types[446]);
IFC4X2_types[337] = new entity(strings[2446], false, 337, (entity*) IFC4X2_types[456]);
IFC4X2_types[340] = new entity(strings[2447], false, 340, (entity*) IFC4X2_types[462]);
IFC4X2_types[348] = new entity(strings[2448], false, 348, (entity*) IFC4X2_types[460]);
IFC4X2_types[355] = new entity(strings[2449], false, 355, (entity*) IFC4X2_types[443]);
IFC4X2_types[358] = new entity(strings[2450], false, 358, (entity*) IFC4X2_types[458]);
IFC4X2_types[361] = new entity(strings[2451], false, 361, (entity*) IFC4X2_types[384]);
IFC4X2_types[364] = new entity(strings[2452], false, 364, (entity*) IFC4X2_types[384]);
IFC4X2_types[368] = new entity(strings[2453], false, 368, (entity*) IFC4X2_types[443]);
IFC4X2_types[423] = new entity(strings[2454], false, 423, (entity*) IFC4X2_types[454]);
IFC4X2_types[436] = new entity(strings[2455], false, 436, (entity*) IFC4X2_types[462]);
IFC4X2_types[439] = new entity(strings[2456], false, 439, (entity*) IFC4X2_types[460]);
IFC4X2_types[448] = new entity(strings[2457], false, 448, (entity*) IFC4X2_types[303]);
IFC4X2_types[782] = new entity(strings[2458], false, 782, (entity*) IFC4X2_types[303]);
IFC4X2_types[924] = new entity(strings[2459], false, 924, (entity*) IFC4X2_types[303]);
IFC4X2_types[1158] = new entity(strings[2460], false, 1158, (entity*) IFC4X2_types[303]);
IFC4X2_types[9] = new entity(strings[2461], false, 9, (entity*) IFC4X2_types[303]);
IFC4X2_types[26] = new entity(strings[2462], false, 26, (entity*) IFC4X2_types[303]);
IFC4X2_types[225] = new entity(strings[2463], false, 225, (entity*) IFC4X2_types[303]);
((entity*)IFC4X2_types[2])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[3]), true),new attribute(strings[2465], new named_type(IFC4X2_types[534]), true),new attribute(strings[2466], new named_type(IFC4X2_types[1097]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[6])->set_attributes({new attribute(strings[2467], new named_type(IFC4X2_types[8]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[7])->set_attributes({new attribute(strings[2468], new named_type(IFC4X2_types[900]), false),new attribute(strings[2469], new named_type(IFC4X2_types[534]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true)}, {false,false,false});
((entity*)IFC4X2_types[9])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[11]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[10])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[11]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[12])->set_attributes({new attribute(strings[2471], new named_type(IFC4X2_types[13]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2472], new named_type(IFC4X2_types[534]), true)}, {false,false,false});
((entity*)IFC4X2_types[15])->set_attributes({new attribute(strings[2473], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[168])), false)}, {false,false});
((entity*)IFC4X2_types[17])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[22]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[18])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[20]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[19])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[20]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[21])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[22]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[23])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[25]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[24])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[25]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[26])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[28]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[27])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[28]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[29])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[39]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[30])->set_attributes({new attribute(strings[2474], new named_type(IFC4X2_types[545]), true),new attribute(strings[2475], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[31])), false)}, {false,false});
((entity*)IFC4X2_types[31])->set_attributes({new attribute(strings[2476], new named_type(IFC4X2_types[267]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[32])->set_attributes({new attribute(strings[2477], new named_type(IFC4X2_types[84]), true),new attribute(strings[2478], new named_type(IFC4X2_types[534]), true),new attribute(strings[2479], new named_type(IFC4X2_types[534]), true)}, {false,false,false});
((entity*)IFC4X2_types[33])->set_attributes({new attribute(strings[2480], new named_type(IFC4X2_types[721]), false),new attribute(strings[2481], new named_type(IFC4X2_types[84]), false)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[35])->set_attributes({new attribute(strings[2482], new named_type(IFC4X2_types[721]), false),new attribute(strings[2481], new named_type(IFC4X2_types[84]), false)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[36])->set_attributes({new attribute(strings[2475], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[37])), false)}, {false});
((entity*)IFC4X2_types[37])->set_attributes({new attribute(strings[2474], new named_type(IFC4X2_types[545]), false),new attribute(strings[2483], new named_type(IFC4X2_types[721]), false),new attribute(strings[2484], new named_type(IFC4X2_types[545]), false),new attribute(strings[2485], new named_type(IFC4X2_types[808]), false)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[38])->set_attributes({new attribute(strings[2486], new named_type(IFC4X2_types[30]), false),new attribute(strings[2487], new named_type(IFC4X2_types[36]), true),new attribute(strings[2488], new named_type(IFC4X2_types[534]), true)}, {false,false,false});
((entity*)IFC4X2_types[45])->set_attributes({new attribute(strings[2489], new named_type(IFC4X2_types[260]), false),new attribute(strings[2490], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[260])), true)}, {false,false});
((entity*)IFC4X2_types[46])->set_attributes({new attribute(strings[2491], new named_type(IFC4X2_types[663]), false),new attribute(strings[2492], new named_type(IFC4X2_types[534]), false),new attribute(strings[2493], new named_type(IFC4X2_types[534]), false),new attribute(strings[2494], new named_type(IFC4X2_types[505]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[47])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2496], new named_type(IFC4X2_types[48]), true),new attribute(strings[2497], new named_type(IFC4X2_types[611]), true),new attribute(strings[2498], new named_type(IFC4X2_types[278]), true),new attribute(strings[2499], new named_type(IFC4X2_types[278]), true),new attribute(strings[2500], new named_type(IFC4X2_types[534]), true),new attribute(strings[2501], new named_type(IFC4X2_types[534]), true),new attribute(strings[2502], new named_type(IFC4X2_types[57]), true),new attribute(strings[2503], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[47])), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[49])->set_attributes({new attribute(strings[2504], new named_type(IFC4X2_types[505]), true),new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2505], new named_type(IFC4X2_types[279]), true),new attribute(strings[2465], new named_type(IFC4X2_types[534]), true),new attribute(strings[2506], new named_type(IFC4X2_types[534]), true),new attribute(strings[2507], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2508], new named_type(IFC4X2_types[8]), true),new attribute(strings[2509], new named_type(IFC4X2_types[8]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[50])->set_attributes({new attribute(strings[2510], new named_type(IFC4X2_types[49]), false),new attribute(strings[2511], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[49])), false)}, {false,false,false,false});
((entity*)IFC4X2_types[51])->set_attributes({new attribute(strings[2512], new named_type(IFC4X2_types[260]), false)}, {false,false,false});
((entity*)IFC4X2_types[52])->set_attributes({new attribute(strings[2513], new named_type(IFC4X2_types[95]), false)}, {false,false,false});
((entity*)IFC4X2_types[53])->set_attributes({new attribute(strings[2514], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[260])), false)}, {false,false,false,false});
((entity*)IFC4X2_types[59])->set_attributes({new attribute(strings[2515], new named_type(IFC4X2_types[505]), true),new attribute(strings[2516], new named_type(IFC4X2_types[243]), true),new attribute(strings[2517], new named_type(IFC4X2_types[243]), true),new attribute(strings[2518], new named_type(IFC4X2_types[243]), true),new attribute(strings[2519], new named_type(IFC4X2_types[8]), true),new attribute(strings[2520], new named_type(IFC4X2_types[8]), true),new attribute(strings[2521], new named_type(IFC4X2_types[682]), true),new attribute(strings[2522], new named_type(IFC4X2_types[278]), true),new attribute(strings[2523], new named_type(IFC4X2_types[243]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[60])->set_attributes({new attribute(strings[2524], new named_type(IFC4X2_types[721]), false),new attribute(strings[2525], new named_type(IFC4X2_types[721]), false),new attribute(strings[2526], new named_type(IFC4X2_types[721]), false),new attribute(strings[2527], new named_type(IFC4X2_types[721]), false),new attribute(strings[2528], new named_type(IFC4X2_types[642]), true),new attribute(strings[2529], new named_type(IFC4X2_types[721]), false),new attribute(strings[2530], new named_type(IFC4X2_types[721]), true),new attribute(strings[2531], new named_type(IFC4X2_types[642]), true),new attribute(strings[2532], new named_type(IFC4X2_types[642]), true),new attribute(strings[2533], new named_type(IFC4X2_types[705]), true),new attribute(strings[2534], new named_type(IFC4X2_types[642]), true),new attribute(strings[2535], new named_type(IFC4X2_types[705]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[61])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[63]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[62])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[63]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[64])->set_attributes({new attribute(strings[2536], new named_type(IFC4X2_types[293]), true)}, {false,false});
((entity*)IFC4X2_types[66])->set_attributes({new attribute(strings[2537], new named_type(IFC4X2_types[293]), true)}, {false,false});
((entity*)IFC4X2_types[67])->set_attributes({new attribute(strings[2536], new named_type(IFC4X2_types[293]), true),new attribute(strings[2537], new named_type(IFC4X2_types[293]), true)}, {false,false,false});
((entity*)IFC4X2_types[104])->set_attributes({new attribute(strings[2538], new named_type(IFC4X2_types[515]), false),new attribute(strings[2539], new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[141])), false),new attribute(strings[2540], new named_type(IFC4X2_types[105]), false),new attribute(strings[2541], new named_type(IFC4X2_types[574]), false),new attribute(strings[2542], new named_type(IFC4X2_types[574]), false)}, {false,false,false,false,false});
((entity*)IFC4X2_types[106])->set_attributes({new attribute(strings[2543], new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[515])), false),new attribute(strings[2544], new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[673])), false),new attribute(strings[2545], new named_type(IFC4X2_types[533]), false)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[107])->set_attributes({new attribute(strings[2546], new named_type(IFC4X2_types[515]), false),new attribute(strings[2547], new named_type(IFC4X2_types[515]), false),new attribute(strings[2539], new aggregation_type(aggregation_type::list_type, 2, -1, new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[141]))), false),new attribute(strings[2548], new named_type(IFC4X2_types[108]), false),new attribute(strings[2549], new named_type(IFC4X2_types[574]), false),new attribute(strings[2550], new named_type(IFC4X2_types[574]), false),new attribute(strings[2542], new named_type(IFC4X2_types[574]), false)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[109])->set_attributes({new attribute(strings[2551], new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[515])), false),new attribute(strings[2552], new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[515])), false),new attribute(strings[2553], new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[673])), false),new attribute(strings[2554], new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[673])), false),new attribute(strings[2545], new named_type(IFC4X2_types[533]), false)}, {false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[68])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[71]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[70])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[71]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[72])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[75]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[73])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[75]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[79])->set_attributes({new attribute(strings[2555], new named_type(IFC4X2_types[505]), false),new attribute(strings[2556], new named_type(IFC4X2_types[78]), false)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[80])->set_attributes({new attribute(strings[2557], new named_type(IFC4X2_types[721]), false),new attribute(strings[2558], new named_type(IFC4X2_types[721]), false),new attribute(strings[2559], new named_type(IFC4X2_types[721]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[81])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[83]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[82])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[83]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[88])->set_attributes({new attribute(strings[2560], new named_type(IFC4X2_types[87]), false),new attribute(strings[2561], new named_type(IFC4X2_types[86]), false),new attribute(strings[2562], new named_type(IFC4X2_types[86]), false)}, {false,false,false});
((entity*)IFC4X2_types[89])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true)}, {false});
((entity*)IFC4X2_types[91])->set_attributes({new attribute(strings[2563], new named_type(IFC4X2_types[631]), true),new attribute(strings[2564], new named_type(IFC4X2_types[631]), true),new attribute(strings[2565], new named_type(IFC4X2_types[631]), true),new attribute(strings[2566], new named_type(IFC4X2_types[628]), true),new attribute(strings[2567], new named_type(IFC4X2_types[628]), true),new attribute(strings[2568], new named_type(IFC4X2_types[628]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[92])->set_attributes({new attribute(strings[2569], new named_type(IFC4X2_types[630]), true),new attribute(strings[2570], new named_type(IFC4X2_types[630]), true),new attribute(strings[2571], new named_type(IFC4X2_types[630]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[93])->set_attributes({new attribute(strings[2572], new named_type(IFC4X2_types[1139]), true),new attribute(strings[2573], new named_type(IFC4X2_types[1139]), true),new attribute(strings[2574], new named_type(IFC4X2_types[1139]), true),new attribute(strings[2575], new named_type(IFC4X2_types[908]), true),new attribute(strings[2576], new named_type(IFC4X2_types[908]), true),new attribute(strings[2577], new named_type(IFC4X2_types[908]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[94])->set_attributes({new attribute(strings[2578], new named_type(IFC4X2_types[1197]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[97])->set_attributes({new attribute(strings[2579], new named_type(IFC4X2_types[141]), false),new attribute(strings[2580], new named_type(IFC4X2_types[721]), false),new attribute(strings[2581], new named_type(IFC4X2_types[721]), false),new attribute(strings[2582], new named_type(IFC4X2_types[721]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[99])->set_attributes({new attribute(strings[2583], new named_type(IFC4X2_types[97]), false)}, {false,false,false});
((entity*)IFC4X2_types[100])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[103]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[101])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[102]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[110])->set_attributes({new attribute(strings[2584], new named_type(IFC4X2_types[545]), true),new attribute(strings[2585], new named_type(IFC4X2_types[545]), true),new attribute(strings[2586], new named_type(IFC4X2_types[724]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[119])->set_attributes({new attribute(strings[2587], new named_type(IFC4X2_types[545]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[120])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[121]), true),new attribute(strings[2588], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[122])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[124]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[123])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[124]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[254])->set_attributes({new attribute(strings[2589], new named_type(IFC4X2_types[721]), false),new attribute(strings[2590], new named_type(IFC4X2_types[721]), false),new attribute(strings[2591], new named_type(IFC4X2_types[721]), false),new attribute(strings[2592], new named_type(IFC4X2_types[721]), false),new attribute(strings[2593], new named_type(IFC4X2_types[642]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[125])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[127]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[126])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[127]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[128])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[130]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[129])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[130]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[131])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[133]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[132])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[133]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[134])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[136]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[135])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[136]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[137])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[139]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[138])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[139]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[141])->set_attributes({new attribute(strings[2594], new aggregation_type(aggregation_type::list_type, 1, 3, new named_type(IFC4X2_types[545])), false)}, {false});
((entity*)IFC4X2_types[143])->set_attributes({new attribute(strings[2595], new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4X2_types[545]))), false),new attribute(strings[2596], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[534])), true)}, {false,false});
((entity*)IFC4X2_types[144])->set_attributes({new attribute(strings[2595], new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4X2_types[545]))), false),new attribute(strings[2596], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[534])), true)}, {false,false});
((entity*)IFC4X2_types[145])->set_attributes({new attribute(strings[2597], new named_type(IFC4X2_types[293]), true),new attribute(strings[2598], new named_type(IFC4X2_types[293]), true),new attribute(strings[2599], new named_type(IFC4X2_types[141]), false),new attribute(strings[2600], new named_type(IFC4X2_types[811]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[147])->set_attributes({new attribute(strings[2601], new named_type(IFC4X2_types[811]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[148])->set_attributes({new attribute(strings[2602], new named_type(IFC4X2_types[293]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[149])->set_attributes({new attribute(strings[2601], new named_type(IFC4X2_types[811]), true),new attribute(strings[2603], new named_type(IFC4X2_types[811]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[150])->set_attributes({new attribute(strings[2604], new named_type(IFC4X2_types[721]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[152])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[154]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[153])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[154]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[155])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[157]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[156])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[157]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[158])->set_attributes({new attribute(strings[2480], new named_type(IFC4X2_types[721]), false)}, {false,false});
((entity*)IFC4X2_types[159])->set_attributes({new attribute(strings[2591], new named_type(IFC4X2_types[721]), false)}, {false,false,false,false,false});
((entity*)IFC4X2_types[160])->set_attributes({new attribute(strings[2480], new named_type(IFC4X2_types[721]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[161])->set_attributes({new attribute(strings[2480], new named_type(IFC4X2_types[721]), false),new attribute(strings[2605], new named_type(IFC4X2_types[84]), false)}, {false,false,false,false,false});
((entity*)IFC4X2_types[164])->set_attributes({new attribute(strings[2606], new named_type(IFC4X2_types[534]), true),new attribute(strings[2607], new named_type(IFC4X2_types[534]), true),new attribute(strings[2608], new named_type(IFC4X2_types[278]), true),new attribute(strings[2495], new named_type(IFC4X2_types[534]), false),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2609], new named_type(IFC4X2_types[1166]), true),new attribute(strings[2610], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[505])), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[165])->set_attributes({new attribute(strings[2611], new named_type(IFC4X2_types[166]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2612], new named_type(IFC4X2_types[505]), true)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[169])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[171]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[170])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[171]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[174])->set_attributes({new attribute(strings[2613], new named_type(IFC4X2_types[643]), false),new attribute(strings[2614], new named_type(IFC4X2_types[643]), false),new attribute(strings[2615], new named_type(IFC4X2_types[643]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[175])->set_attributes({new attribute(strings[2616], new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4X2_types[643]))), false)}, {false});
((entity*)IFC4X2_types[176])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true)}, {false});
((entity*)IFC4X2_types[177])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[180]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[179])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[180]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[181])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[183]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[182])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[183]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[185])->set_attributes({new attribute(strings[2617], new named_type(IFC4X2_types[505]), false),new attribute(strings[2618], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[762])), false)}, {false,false,false,false});
((entity*)IFC4X2_types[186])->set_attributes({new attribute(strings[2617], new named_type(IFC4X2_types[534]), true),new attribute(strings[2619], new named_type(IFC4X2_types[187]), true),new attribute(strings[2620], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[779])), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[188])->set_attributes({new attribute(strings[2475], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[190])), false),new attribute(strings[2542], new named_type(IFC4X2_types[574]), false)}, {false,false});
((entity*)IFC4X2_types[190])->set_attributes({new attribute(strings[2621], new named_type(IFC4X2_types[1136]), false),new attribute(strings[2622], new named_type(IFC4X2_types[84]), false),new attribute(strings[2623], new named_type(IFC4X2_types[260]), false)}, {false,false,false});
((entity*)IFC4X2_types[191])->set_attributes({new attribute(strings[2624], new aggregation_type(aggregation_type::set_type, 2, -1, new named_type(IFC4X2_types[751])), false),new attribute(strings[2625], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[193])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[195]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[194])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[195]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[196])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[198]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[197])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[198]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[199])->set_attributes({new attribute(strings[2626], new named_type(IFC4X2_types[65]), false)}, {false});
((entity*)IFC4X2_types[200])->set_attributes({new attribute(strings[2627], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[413])), false)}, {false});
((entity*)IFC4X2_types[201])->set_attributes({new attribute(strings[2628], new named_type(IFC4X2_types[266]), false),new attribute(strings[2629], new named_type(IFC4X2_types[266]), true)}, {false,false});
((entity*)IFC4X2_types[203])->set_attributes({new attribute(strings[2630], new named_type(IFC4X2_types[545]), true),new attribute(strings[2631], new named_type(IFC4X2_types[545]), true),new attribute(strings[2632], new named_type(IFC4X2_types[545]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[204])->set_attributes({new attribute(strings[2633], new named_type(IFC4X2_types[713]), false),new attribute(strings[2634], new named_type(IFC4X2_types[713]), true)}, {false,false});
((entity*)IFC4X2_types[205])->set_attributes({new attribute(strings[2635], new named_type(IFC4X2_types[1049]), false),new attribute(strings[2636], new named_type(IFC4X2_types[1049]), true)}, {false,false});
((entity*)IFC4X2_types[207])->set_attributes({new attribute(strings[2637], new named_type(IFC4X2_types[957]), false),new attribute(strings[2638], new named_type(IFC4X2_types[957]), true)}, {false,false});
((entity*)IFC4X2_types[208])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), false),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2639], new named_type(IFC4X2_types[209]), false),new attribute(strings[2640], new named_type(IFC4X2_types[534]), true),new attribute(strings[2641], new named_type(IFC4X2_types[8]), true),new attribute(strings[2642], new named_type(IFC4X2_types[279]), true),new attribute(strings[2643], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[210])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[212]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[211])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[212]), false)}, {false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[213])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[215]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[214])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[215]), false)}, {false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[216])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[218]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[217])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[218]), false)}, {false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[219])->set_attributes({new attribute(strings[2644], new named_type(IFC4X2_types[895]), true),new attribute(strings[2645], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[47])), true),new attribute(strings[2646], new named_type(IFC4X2_types[687]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[220])->set_attributes({new attribute(strings[2645], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[47])), true),new attribute(strings[2646], new named_type(IFC4X2_types[687]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[221])->set_attributes({new attribute(strings[2647], new named_type(IFC4X2_types[534]), true),new attribute(strings[2588], new named_type(IFC4X2_types[534]), true),new attribute(strings[2648], new named_type(IFC4X2_types[534]), true),new attribute(strings[2649], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[886])), true),new attribute(strings[2650], new named_type(IFC4X2_types[1164]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[223])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), false)}, {false,false,false});
((entity*)IFC4X2_types[224])->set_attributes({new attribute(strings[2515], new named_type(IFC4X2_types[505]), true)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[225])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[227]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[226])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[227]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[228])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), false),new attribute(strings[2651], new named_type(IFC4X2_types[611]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[229])->set_attributes({new attribute(strings[2652], new named_type(IFC4X2_types[811]), false)}, {false,false,false,false,false});
((entity*)IFC4X2_types[230])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[232]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[231])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[232]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[233])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[235]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[234])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[235]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[236])->set_attributes({new attribute(strings[2653], new named_type(IFC4X2_types[238]), false),new attribute(strings[2654], new named_type(IFC4X2_types[237]), false)}, {false,false});
((entity*)IFC4X2_types[237])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), false),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2655], new named_type(IFC4X2_types[505]), true),new attribute(strings[2656], new named_type(IFC4X2_types[505]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[239])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[240]), true),new attribute(strings[2657], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[243])), true),new attribute(strings[2658], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[687])), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[241])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[242]), true),new attribute(strings[2465], new named_type(IFC4X2_types[534]), true),new attribute(strings[2659], new named_type(IFC4X2_types[279]), true),new attribute(strings[2660], new named_type(IFC4X2_types[279]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[245])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[247]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[246])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[247]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[248])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[250]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[249])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[250]), false)}, {false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[251])->set_attributes({new attribute(strings[2626], new named_type(IFC4X2_types[67]), false)}, {false});
((entity*)IFC4X2_types[253])->set_attributes({new attribute(strings[2661], new named_type(IFC4X2_types[252]), false)}, {false});
((entity*)IFC4X2_types[255])->set_attributes({new attribute(strings[2662], new named_type(IFC4X2_types[636]), false),new attribute(strings[2663], new named_type(IFC4X2_types[636]), false),new attribute(strings[2664], new named_type(IFC4X2_types[723]), false),new attribute(strings[2665], new named_type(IFC4X2_types[279]), true),new attribute(strings[2666], new named_type(IFC4X2_types[546]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[256])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[258]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[257])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[258]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[261])->set_attributes({new attribute(strings[2667], new named_type(IFC4X2_types[704]), false),new attribute(strings[2489], new named_type(IFC4X2_types[260]), false),new attribute(strings[2490], new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC4X2_types[260])), false)}, {false,false,false});
((entity*)IFC4X2_types[262])->set_attributes({new attribute(strings[2667], new named_type(IFC4X2_types[1042]), false),new attribute(strings[2668], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[90])), false),new attribute(strings[2669], new named_type(IFC4X2_types[84]), false)}, {false,false,false});
((entity*)IFC4X2_types[267])->set_attributes({new attribute(strings[2670], new named_type(IFC4X2_types[141]), false),new attribute(strings[2671], new named_type(IFC4X2_types[705]), false),new attribute(strings[2672], new named_type(IFC4X2_types[721]), false)}, {false,false,false});
((entity*)IFC4X2_types[268])->set_attributes({new attribute(strings[2673], new named_type(IFC4X2_types[263]), true),new attribute(strings[2674], new named_type(IFC4X2_types[945]), true),new attribute(strings[2675], new named_type(IFC4X2_types[172]), true),new attribute(strings[2676], new named_type(IFC4X2_types[84]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[269])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[2677], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[271])), false)}, {false,false});
((entity*)IFC4X2_types[270])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[2673], new named_type(IFC4X2_types[272]), false),new attribute(strings[2678], new named_type(IFC4X2_types[723]), false)}, {false,false,false});
((entity*)IFC4X2_types[271])->set_attributes({new attribute(strings[2679], new named_type(IFC4X2_types[545]), false),new attribute(strings[2680], new named_type(IFC4X2_types[721]), false)}, {false,false});
((entity*)IFC4X2_types[273])->set_attributes({new attribute(strings[2480], new named_type(IFC4X2_types[721]), false)}, {false,false});
((entity*)IFC4X2_types[274])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[276]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[275])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[276]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[286])->set_attributes({new attribute(strings[2681], new named_type(IFC4X2_types[751]), false),new attribute(strings[2560], new named_type(IFC4X2_types[146]), false),new attribute(strings[2625], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[287])->set_attributes({new attribute(strings[2682], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[288])), false),new attribute(strings[2683], new named_type(IFC4X2_types[289]), false),new attribute(strings[2684], new named_type(IFC4X2_types[534]), true)}, {false,false,false});
((entity*)IFC4X2_types[288])->set_attributes({new attribute(strings[2685], new named_type(IFC4X2_types[641]), false),new attribute(strings[2686], new simple_type(simple_type::integer_type), false)}, {false,false});
((entity*)IFC4X2_types[291])->set_attributes({new attribute(strings[2687], new simple_type(simple_type::integer_type), false),new attribute(strings[2688], new simple_type(simple_type::integer_type), false),new attribute(strings[2689], new simple_type(simple_type::integer_type), false),new attribute(strings[2690], new simple_type(simple_type::integer_type), false),new attribute(strings[2691], new simple_type(simple_type::integer_type), false),new attribute(strings[2692], new simple_type(simple_type::integer_type), false),new attribute(strings[2693], new simple_type(simple_type::integer_type), false)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[293])->set_attributes({new attribute(strings[2694], new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4X2_types[811])), false)}, {false});
((entity*)IFC4X2_types[295])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[297]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[296])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[297]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[298])->set_attributes({new attribute(strings[2695], new named_type(IFC4X2_types[545]), false),new attribute(strings[2696], new named_type(IFC4X2_types[545]), true),new attribute(strings[2697], new named_type(IFC4X2_types[545]), true),new attribute(strings[2698], new named_type(IFC4X2_types[545]), true),new attribute(strings[2699], new named_type(IFC4X2_types[84]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[299])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[301]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[300])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[301]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[309])->set_attributes({new attribute(strings[2700], new named_type(IFC4X2_types[445]), true),new attribute(strings[2464], new named_type(IFC4X2_types[310]), true),new attribute(strings[2701], new named_type(IFC4X2_types[312]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[311])->set_attributes({new attribute(strings[2588], new named_type(IFC4X2_types[534]), true),new attribute(strings[2464], new named_type(IFC4X2_types[312]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[314])->set_attributes({new attribute(strings[2515], new named_type(IFC4X2_types[505]), false),new attribute(strings[2495], new named_type(IFC4X2_types[534]), false),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2609], new named_type(IFC4X2_types[1166]), true),new attribute(strings[2471], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2702], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2703], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2704], new named_type(IFC4X2_types[534]), true),new attribute(strings[2705], new named_type(IFC4X2_types[8]), true),new attribute(strings[2706], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[8])), true),new attribute(strings[2642], new named_type(IFC4X2_types[279]), true),new attribute(strings[2707], new named_type(IFC4X2_types[279]), true),new attribute(strings[2708], new named_type(IFC4X2_types[505]), true),new attribute(strings[2709], new named_type(IFC4X2_types[278]), true),new attribute(strings[2710], new named_type(IFC4X2_types[278]), true),new attribute(strings[2711], new named_type(IFC4X2_types[313]), true),new attribute(strings[2465], new named_type(IFC4X2_types[318]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[315])->set_attributes({new attribute(strings[2712], new named_type(IFC4X2_types[314]), false),new attribute(strings[2713], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[314])), false),new attribute(strings[2714], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[316])->set_attributes({new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2715], new named_type(IFC4X2_types[314]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[319])->set_attributes({new attribute(strings[2716], new named_type(IFC4X2_types[721]), true),new attribute(strings[2717], new named_type(IFC4X2_types[721]), true),new attribute(strings[2464], new named_type(IFC4X2_types[329]), true),new attribute(strings[2718], new named_type(IFC4X2_types[330]), true),new attribute(strings[2719], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[320])->set_attributes({new attribute(strings[2720], new named_type(IFC4X2_types[721]), true),new attribute(strings[2721], new named_type(IFC4X2_types[642]), true),new attribute(strings[2722], new named_type(IFC4X2_types[721]), true),new attribute(strings[2723], new named_type(IFC4X2_types[642]), true),new attribute(strings[2724], new named_type(IFC4X2_types[642]), true),new attribute(strings[2725], new named_type(IFC4X2_types[545]), true),new attribute(strings[2726], new named_type(IFC4X2_types[545]), true),new attribute(strings[2727], new named_type(IFC4X2_types[545]), true),new attribute(strings[2728], new named_type(IFC4X2_types[721]), true),new attribute(strings[2729], new named_type(IFC4X2_types[721]), true),new attribute(strings[2730], new named_type(IFC4X2_types[931]), true),new attribute(strings[2731], new named_type(IFC4X2_types[545]), true),new attribute(strings[2732], new named_type(IFC4X2_types[545]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[323])->set_attributes({new attribute(strings[2733], new named_type(IFC4X2_types[721]), true),new attribute(strings[2734], new named_type(IFC4X2_types[321]), false),new attribute(strings[2735], new named_type(IFC4X2_types[643]), true),new attribute(strings[2736], new named_type(IFC4X2_types[322]), false),new attribute(strings[2730], new named_type(IFC4X2_types[931]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[325])->set_attributes({new attribute(strings[2718], new named_type(IFC4X2_types[327]), false),new attribute(strings[2737], new named_type(IFC4X2_types[326]), false),new attribute(strings[2738], new named_type(IFC4X2_types[84]), false),new attribute(strings[2739], new named_type(IFC4X2_types[84]), false)}, {false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[328])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[329]), false),new attribute(strings[2718], new named_type(IFC4X2_types[330]), false),new attribute(strings[2738], new named_type(IFC4X2_types[84]), true),new attribute(strings[2719], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[334])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[336]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[335])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[336]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[337])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[339]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[338])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[339]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[340])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[342]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[341])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[342]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[345])->set_attributes({new attribute(strings[2740], new named_type(IFC4X2_types[1175]), false),new attribute(strings[2741], new named_type(IFC4X2_types[1175]), false)}, {false,false});
((entity*)IFC4X2_types[346])->set_attributes({new attribute(strings[2742], new named_type(IFC4X2_types[260]), false),new attribute(strings[2622], new named_type(IFC4X2_types[84]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[347])->set_attributes({new attribute(strings[2743], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[666])), false)}, {false});
((entity*)IFC4X2_types[348])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[350]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[349])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[350]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[355])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[357]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[356])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[357]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[358])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[360]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[359])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[360]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[361])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[363]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[362])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[363]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[364])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[366]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[365])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[366]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[368])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[370]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[369])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[370]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[372])->set_attributes({new attribute(strings[2488], new named_type(IFC4X2_types[505]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[374])->set_attributes({new attribute(strings[2744], new named_type(IFC4X2_types[58]), true),new attribute(strings[2464], new named_type(IFC4X2_types[376]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[375])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[376]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[380])->set_attributes({new attribute(strings[2745], new named_type(IFC4X2_types[534]), true),new attribute(strings[2746], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[687])), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[381])->set_attributes({new attribute(strings[2747], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[373])->set_attributes({new attribute(strings[2626], new named_type(IFC4X2_types[67]), false)}, {false});
((entity*)IFC4X2_types[382])->set_attributes({new attribute(strings[2748], new named_type(IFC4X2_types[721]), false),new attribute(strings[2749], new named_type(IFC4X2_types[721]), false)}, {false,false,false});
((entity*)IFC4X2_types[383])->set_attributes({new attribute(strings[2748], new named_type(IFC4X2_types[721]), false),new attribute(strings[2749], new named_type(IFC4X2_types[721]), false)}, {false,false,false,false,false});
((entity*)IFC4X2_types[387])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[389]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[388])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[389]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[390])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[392]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[391])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[392]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[393])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[395]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[394])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[395]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[396])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[400]), true),new attribute(strings[2750], new named_type(IFC4X2_types[398]), true),new attribute(strings[2751], new named_type(IFC4X2_types[534]), true),new attribute(strings[2752], new named_type(IFC4X2_types[397]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[397])->set_attributes({new attribute(strings[2753], new named_type(IFC4X2_types[279]), true),new attribute(strings[2754], new named_type(IFC4X2_types[279]), true),new attribute(strings[2755], new named_type(IFC4X2_types[279]), true),new attribute(strings[2756], new named_type(IFC4X2_types[279]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[399])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[400]), false),new attribute(strings[2750], new named_type(IFC4X2_types[398]), false),new attribute(strings[2751], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[401])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[505]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2757], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[762])), false)}, {false,false,false});
((entity*)IFC4X2_types[406])->set_attributes({new attribute(strings[2609], new named_type(IFC4X2_types[1166]), true),new attribute(strings[2515], new named_type(IFC4X2_types[505]), true),new attribute(strings[2495], new named_type(IFC4X2_types[534]), true)}, {false,false,false});
((entity*)IFC4X2_types[407])->set_attributes({new attribute(strings[2758], new named_type(IFC4X2_types[406]), false),new attribute(strings[2759], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[893])), false)}, {false,false,false,false});
((entity*)IFC4X2_types[408])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[409]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[411])->set_attributes({new attribute(strings[2760], new named_type(IFC4X2_types[293]), false),new attribute(strings[2589], new named_type(IFC4X2_types[721]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[412])->set_attributes({new attribute(strings[2761], new named_type(IFC4X2_types[751]), false)}, {false,false,false,false,false});
((entity*)IFC4X2_types[413])->set_attributes({new attribute(strings[2762], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[415])), false)}, {false});
((entity*)IFC4X2_types[414])->set_attributes({new attribute(strings[2763], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[200])), false)}, {false});
((entity*)IFC4X2_types[415])->set_attributes({new attribute(strings[2764], new named_type(IFC4X2_types[576]), false),new attribute(strings[2765], new named_type(IFC4X2_types[84]), false)}, {false,false});
((entity*)IFC4X2_types[417])->set_attributes({new attribute(strings[2766], new named_type(IFC4X2_types[1042]), false),new attribute(strings[2622], new named_type(IFC4X2_types[84]), false)}, {false,false,false});
((entity*)IFC4X2_types[419])->set_attributes({new attribute(strings[2473], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[168])), false)}, {false,false});
((entity*)IFC4X2_types[422])->set_attributes({new attribute(strings[2767], new named_type(IFC4X2_types[470]), true),new attribute(strings[2768], new named_type(IFC4X2_types[470]), true),new attribute(strings[2769], new named_type(IFC4X2_types[470]), true),new attribute(strings[2770], new named_type(IFC4X2_types[470]), true),new attribute(strings[2771], new named_type(IFC4X2_types[470]), true),new attribute(strings[2772], new named_type(IFC4X2_types[470]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[423])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[425]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[424])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[425]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[426])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[428]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[427])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[428]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[432])->set_attributes({new attribute(strings[2773], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[435])), false),new attribute(strings[2774], new named_type(IFC4X2_types[84]), true)}, {false,false,false});
((entity*)IFC4X2_types[433])->set_attributes({new attribute(strings[2775], new named_type(IFC4X2_types[268]), false),new attribute(strings[2776], new named_type(IFC4X2_types[496]), false),new attribute(strings[2777], new named_type(IFC4X2_types[141]), true),new attribute(strings[2778], new named_type(IFC4X2_types[141]), true),new attribute(strings[2779], new named_type(IFC4X2_types[705]), false)}, {false,false,false,false,false});
((entity*)IFC4X2_types[434])->set_attributes({new attribute(strings[2780], new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4X2_types[1173])), false),new attribute(strings[2781], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[1035])), false),new attribute(strings[2782], new named_type(IFC4X2_types[723]), false)}, {false,false,false});
((entity*)IFC4X2_types[436])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[438]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[437])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[438]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[439])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[441]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[440])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[441]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[442])->set_attributes({new attribute(strings[2783], new named_type(IFC4X2_types[260]), false),new attribute(strings[2784], new named_type(IFC4X2_types[673]), true),new attribute(strings[2785], new named_type(IFC4X2_types[673]), true),new attribute(strings[2786], new named_type(IFC4X2_types[293]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[474])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[476]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[475])->set_attributes({new attribute(strings[2744], new named_type(IFC4X2_types[58]), false),new attribute(strings[2464], new named_type(IFC4X2_types[476]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[477])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[479]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[478])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[479]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[482])->set_attributes({new attribute(strings[2787], new named_type(IFC4X2_types[292]), false),new attribute(strings[2788], new named_type(IFC4X2_types[811]), true),new attribute(strings[2789], new named_type(IFC4X2_types[65]), false),new attribute(strings[2790], new named_type(IFC4X2_types[293]), true)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[484])->set_attributes({new attribute(strings[2791], new named_type(IFC4X2_types[482]), false),new attribute(strings[2792], new named_type(IFC4X2_types[723]), true),new attribute(strings[2793], new named_type(IFC4X2_types[481]), false),new attribute(strings[2794], new named_type(IFC4X2_types[534]), true)}, {false,false,true,true,true,true,false,false,false,false});
((entity*)IFC4X2_types[485])->set_attributes({new attribute(strings[2682], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[486])), false)}, {false});
((entity*)IFC4X2_types[489])->set_attributes({new attribute(strings[2795], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[490])), false),new attribute(strings[2796], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[490])), false),new attribute(strings[2797], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[490])), true),new attribute(strings[2464], new named_type(IFC4X2_types[493]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[490])->set_attributes({new attribute(strings[2798], new named_type(IFC4X2_types[534]), true),new attribute(strings[2799], new named_type(IFC4X2_types[260]), false),new attribute(strings[2622], new named_type(IFC4X2_types[84]), false)}, {false,false,false});
((entity*)IFC4X2_types[491])->set_attributes({new attribute(strings[2800], new named_type(IFC4X2_types[1185]), false),new attribute(strings[2801], new named_type(IFC4X2_types[492]), true)}, {false,false,false});
((entity*)IFC4X2_types[495])->set_attributes({new attribute(strings[2802], new named_type(IFC4X2_types[1042]), false),new attribute(strings[2803], new named_type(IFC4X2_types[84]), false)}, {false,false});
((entity*)IFC4X2_types[497])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[499]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[498])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[499]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[502])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[504]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[503])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[504]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[527])->set_attributes({new attribute(strings[2717], new named_type(IFC4X2_types[721]), false),new attribute(strings[2525], new named_type(IFC4X2_types[721]), false),new attribute(strings[2526], new named_type(IFC4X2_types[721]), false),new attribute(strings[2804], new named_type(IFC4X2_types[721]), false),new attribute(strings[2805], new named_type(IFC4X2_types[642]), true),new attribute(strings[2806], new named_type(IFC4X2_types[642]), true),new attribute(strings[2807], new named_type(IFC4X2_types[705]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[507])->set_attributes({new attribute(strings[2808], new named_type(IFC4X2_types[1166]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[508])->set_attributes({new attribute(strings[2809], new named_type(IFC4X2_types[1095]), false),new attribute(strings[2810], new named_type(IFC4X2_types[643]), true),new attribute(strings[2811], new named_type(IFC4X2_types[175]), false),new attribute(strings[2812], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[720])), false)}, {false,false,false,false});
((entity*)IFC4X2_types[509])->set_attributes({new attribute(strings[2813], new named_type(IFC4X2_types[142]), false),new attribute(strings[2475], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[923])), true),new attribute(strings[2542], new named_type(IFC4X2_types[84]), true)}, {false,false,false});
((entity*)IFC4X2_types[510])->set_attributes({new attribute(strings[2814], new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4X2_types[720])), false)}, {false});
((entity*)IFC4X2_types[511])->set_attributes({new attribute(strings[2815], new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4X2_types[720]))), false)}, {false,false});
((entity*)IFC4X2_types[512])->set_attributes({new attribute(strings[2809], new named_type(IFC4X2_types[1095]), false),new attribute(strings[2816], new named_type(IFC4X2_types[1114]), false)}, {false,false,false});
((entity*)IFC4X2_types[513])->set_attributes({new attribute(strings[2817], new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4X2_types[720]))), true)}, {false,false,false,false});
((entity*)IFC4X2_types[517])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[519]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[518])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[519]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[522])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[523]), true),new attribute(strings[2818], new named_type(IFC4X2_types[8]), true),new attribute(strings[2819], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[682])), true),new attribute(strings[2820], new named_type(IFC4X2_types[278]), true),new attribute(strings[2517], new named_type(IFC4X2_types[243]), true),new attribute(strings[2516], new named_type(IFC4X2_types[243]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[525])->set_attributes({new attribute(strings[2821], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[526])), false)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[526])->set_attributes({new attribute(strings[2822], new named_type(IFC4X2_types[279]), false),new attribute(strings[2823], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1168])), false)}, {false,false});
((entity*)IFC4X2_types[529])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[531]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[530])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[531]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[577])->set_attributes({new attribute(strings[2589], new named_type(IFC4X2_types[721]), false),new attribute(strings[2590], new named_type(IFC4X2_types[721]), true),new attribute(strings[2604], new named_type(IFC4X2_types[721]), false),new attribute(strings[2805], new named_type(IFC4X2_types[642]), true),new attribute(strings[2824], new named_type(IFC4X2_types[642]), true),new attribute(strings[2825], new named_type(IFC4X2_types[705]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[535])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[537]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[536])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[537]), false)}, {false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[538])->set_attributes({new attribute(strings[2826], new named_type(IFC4X2_types[1123]), false),new attribute(strings[2827], new named_type(IFC4X2_types[1078]), false)}, {false,false,false,false,false});
((entity*)IFC4X2_types[539])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[541]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[540])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[541]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[546])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), false),new attribute(strings[2492], new named_type(IFC4X2_types[534]), true),new attribute(strings[2828], new named_type(IFC4X2_types[8]), true),new attribute(strings[2829], new named_type(IFC4X2_types[279]), true),new attribute(strings[2609], new named_type(IFC4X2_types[1166]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[547])->set_attributes({new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2830], new named_type(IFC4X2_types[542]), true),new attribute(strings[2831], new named_type(IFC4X2_types[546]), true)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[550])->set_attributes({new attribute(strings[2832], new named_type(IFC4X2_types[705]), false),new attribute(strings[2833], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[705])), false),new attribute(strings[2834], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[579])), false)}, {false,false,false});
((entity*)IFC4X2_types[553])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[555]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[554])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[555]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[556])->set_attributes({new attribute(strings[2835], new named_type(IFC4X2_types[549]), false),new attribute(strings[2836], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[550])), false)}, {false,false});
((entity*)IFC4X2_types[557])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[2837], new named_type(IFC4X2_types[174]), false),new attribute(strings[2838], new named_type(IFC4X2_types[643]), true),new attribute(strings[2839], new named_type(IFC4X2_types[643]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[559])->set_attributes({new attribute(strings[2765], new named_type(IFC4X2_types[293]), false)}, {false,false,false,false,false});
((entity*)IFC4X2_types[560])->set_attributes({new attribute(strings[2626], new named_type(IFC4X2_types[67]), false),new attribute(strings[2840], new named_type(IFC4X2_types[174]), true),new attribute(strings[2841], new named_type(IFC4X2_types[1120]), false),new attribute(strings[2842], new named_type(IFC4X2_types[578]), false),new attribute(strings[2843], new named_type(IFC4X2_types[552]), false),new attribute(strings[2844], new named_type(IFC4X2_types[551]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[561])->set_attributes({new attribute(strings[2626], new named_type(IFC4X2_types[141]), false),new attribute(strings[2480], new named_type(IFC4X2_types[721]), false),new attribute(strings[2845], new named_type(IFC4X2_types[811]), false),new attribute(strings[2846], new named_type(IFC4X2_types[811]), false),new attribute(strings[2847], new named_type(IFC4X2_types[811]), false)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[562])->set_attributes({new attribute(strings[2765], new named_type(IFC4X2_types[293]), false),new attribute(strings[2848], new named_type(IFC4X2_types[811]), true),new attribute(strings[2849], new named_type(IFC4X2_types[722]), false),new attribute(strings[2850], new named_type(IFC4X2_types[722]), false)}, {false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[563])->set_attributes({new attribute(strings[2851], new named_type(IFC4X2_types[141]), false),new attribute(strings[2852], new named_type(IFC4X2_types[1173]), false)}, {false,false});
((entity*)IFC4X2_types[566])->set_attributes({new attribute(strings[2853], new named_type(IFC4X2_types[260]), false),new attribute(strings[2854], new named_type(IFC4X2_types[298]), false),new attribute(strings[2765], new named_type(IFC4X2_types[665]), true),new attribute(strings[2855], new named_type(IFC4X2_types[67]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[567])->set_attributes({new attribute(strings[2536], new named_type(IFC4X2_types[260]), false)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[573])->set_attributes({new attribute(strings[2856], new named_type(IFC4X2_types[65]), false)}, {false,false});
((entity*)IFC4X2_types[583])->set_attributes({new attribute(strings[2857], new named_type(IFC4X2_types[168]), false)}, {false});
((entity*)IFC4X2_types[584])->set_attributes({new attribute(strings[2858], new named_type(IFC4X2_types[545]), false),new attribute(strings[2859], new named_type(IFC4X2_types[545]), false),new attribute(strings[2860], new named_type(IFC4X2_types[545]), false),new attribute(strings[2861], new named_type(IFC4X2_types[811]), true),new attribute(strings[2862], new named_type(IFC4X2_types[811]), true),new attribute(strings[2600], new named_type(IFC4X2_types[811]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[585])->set_attributes({new attribute(strings[2863], new named_type(IFC4X2_types[888]), false),new attribute(strings[2864], new named_type(IFC4X2_types[145]), false)}, {false,false});
((entity*)IFC4X2_types[590])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), false),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2500], new named_type(IFC4X2_types[534]), true)}, {false,false,false});
((entity*)IFC4X2_types[591])->set_attributes({new attribute(strings[2865], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[167])), false),new attribute(strings[2866], new named_type(IFC4X2_types[590]), false)}, {false,false});
((entity*)IFC4X2_types[592])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2867], new named_type(IFC4X2_types[590]), false),new attribute(strings[2868], new named_type(IFC4X2_types[643]), true),new attribute(strings[2500], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[593])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2869], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[592])), true)}, {false,false,false});
((entity*)IFC4X2_types[595])->set_attributes({new attribute(strings[2870], new named_type(IFC4X2_types[590]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[596])->set_attributes({new attribute(strings[2867], new named_type(IFC4X2_types[590]), true),new attribute(strings[2871], new named_type(IFC4X2_types[642]), false),new attribute(strings[2872], new named_type(IFC4X2_types[574]), true),new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2500], new named_type(IFC4X2_types[534]), true),new attribute(strings[2873], new named_type(IFC4X2_types[515]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[597])->set_attributes({new attribute(strings[2874], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[596])), false),new attribute(strings[2875], new named_type(IFC4X2_types[534]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true)}, {false,false,false});
((entity*)IFC4X2_types[598])->set_attributes({new attribute(strings[2876], new named_type(IFC4X2_types[597]), false),new attribute(strings[2877], new named_type(IFC4X2_types[544]), false),new attribute(strings[2878], new named_type(IFC4X2_types[294]), false),new attribute(strings[2879], new named_type(IFC4X2_types[545]), false),new attribute(strings[2880], new named_type(IFC4X2_types[721]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[599])->set_attributes({new attribute(strings[2881], new named_type(IFC4X2_types[544]), false),new attribute(strings[2882], new aggregation_type(aggregation_type::array_type, 1, 2, new named_type(IFC4X2_types[545])), false)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[600])->set_attributes({new attribute(strings[2883], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[590])), false)}, {false});
((entity*)IFC4X2_types[601])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2867], new named_type(IFC4X2_types[590]), true),new attribute(strings[2884], new named_type(IFC4X2_types[751]), false),new attribute(strings[2873], new named_type(IFC4X2_types[515]), true),new attribute(strings[2500], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[602])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2885], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[601])), false),new attribute(strings[2886], new named_type(IFC4X2_types[191]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[603])->set_attributes({new attribute(strings[2887], new named_type(IFC4X2_types[602]), false),new attribute(strings[2888], new named_type(IFC4X2_types[140]), true),new attribute(strings[2880], new named_type(IFC4X2_types[721]), true)}, {false,false,false});
((entity*)IFC4X2_types[604])->set_attributes({new attribute(strings[2889], new named_type(IFC4X2_types[602]), false),new attribute(strings[2890], new named_type(IFC4X2_types[140]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[605])->set_attributes({new attribute(strings[2882], new aggregation_type(aggregation_type::array_type, 1, 2, new named_type(IFC4X2_types[545])), false)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[606])->set_attributes({new attribute(strings[2867], new named_type(IFC4X2_types[594]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[607])->set_attributes({new attribute(strings[2891], new named_type(IFC4X2_types[590]), false),new attribute(strings[2892], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[590])), false),new attribute(strings[2893], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[611])->set_attributes({new attribute(strings[2894], new named_type(IFC4X2_types[1168]), false),new attribute(strings[2895], new named_type(IFC4X2_types[1157]), false)}, {false,false});
((entity*)IFC4X2_types[612])->set_attributes({new attribute(strings[2896], new named_type(IFC4X2_types[721]), true),new attribute(strings[2897], new named_type(IFC4X2_types[721]), true),new attribute(strings[2464], new named_type(IFC4X2_types[614]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[613])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[614]), false),new attribute(strings[2896], new named_type(IFC4X2_types[721]), true),new attribute(strings[2897], new named_type(IFC4X2_types[721]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[615])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[617]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[616])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[617]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[618])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[621]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[620])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[621]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[622])->set_attributes({new attribute(strings[2898], new named_type(IFC4X2_types[76]), false),new attribute(strings[2899], new named_type(IFC4X2_types[534]), true),new attribute(strings[2900], new named_type(IFC4X2_types[623]), true),new attribute(strings[2901], new named_type(IFC4X2_types[818]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[636])->set_attributes({new attribute(strings[2902], new named_type(IFC4X2_types[534]), false)}, {false});
((entity*)IFC4X2_types[638])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[640]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[639])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[640]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[641])->set_attributes({new attribute(strings[2903], new named_type(IFC4X2_types[291]), false),new attribute(strings[2683], new named_type(IFC4X2_types[1165]), false)}, {false,false});
((entity*)IFC4X2_types[646])->set_attributes({new attribute(strings[2647], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[650])->set_attributes({new attribute(strings[2904], new named_type(IFC4X2_types[650]), true)}, {false});
((entity*)IFC4X2_types[648])->set_attributes({new attribute(strings[2905], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[208])), true),new attribute(strings[2906], new named_type(IFC4X2_types[575]), true),new attribute(strings[2907], new named_type(IFC4X2_types[649]), false),new attribute(strings[2908], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[653])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[654]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[655])->set_attributes({new attribute(strings[2909], new named_type(IFC4X2_types[260]), false)}, {false});
((entity*)IFC4X2_types[656])->set_attributes({new attribute(strings[2854], new named_type(IFC4X2_types[545]), false),new attribute(strings[2542], new named_type(IFC4X2_types[574]), false)}, {false,false,false});
((entity*)IFC4X2_types[657])->set_attributes({new attribute(strings[2854], new named_type(IFC4X2_types[545]), false),new attribute(strings[2542], new named_type(IFC4X2_types[574]), false),new attribute(strings[2537], new named_type(IFC4X2_types[293]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[658])->set_attributes({new attribute(strings[2882], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[298])), false),new attribute(strings[2488], new named_type(IFC4X2_types[534]), true)}, {false,false,false});
((entity*)IFC4X2_types[663])->set_attributes({new attribute(strings[2515], new named_type(IFC4X2_types[505]), true),new attribute(strings[2495], new named_type(IFC4X2_types[534]), false),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2910], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[7])), true),new attribute(strings[2911], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[12])), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[664])->set_attributes({new attribute(strings[2912], new named_type(IFC4X2_types[663]), false),new attribute(strings[2913], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[663])), false)}, {false,false,false,false});
((entity*)IFC4X2_types[665])->set_attributes({new attribute(strings[2914], new named_type(IFC4X2_types[293]), false),new attribute(strings[2915], new named_type(IFC4X2_types[293]), false)}, {false,false});
((entity*)IFC4X2_types[666])->set_attributes({new attribute(strings[2916], new named_type(IFC4X2_types[345]), false),new attribute(strings[2765], new named_type(IFC4X2_types[84]), false)}, {true,true,false,false});
((entity*)IFC4X2_types[668])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[670]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[669])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[670]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[671])->set_attributes({new attribute(strings[2917], new named_type(IFC4X2_types[683]), false),new attribute(strings[2918], new named_type(IFC4X2_types[46]), false),new attribute(strings[2919], new named_type(IFC4X2_types[991]), true),new attribute(strings[2920], new named_type(IFC4X2_types[151]), true),new attribute(strings[2921], new named_type(IFC4X2_types[1128]), true),new attribute(strings[2922], new named_type(IFC4X2_types[683]), true),new attribute(strings[2923], new named_type(IFC4X2_types[46]), true),new attribute(strings[2924], new named_type(IFC4X2_types[1128]), false)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[672])->set_attributes({new attribute(strings[2626], new named_type(IFC4X2_types[66]), true)}, {false,false,false});
((entity*)IFC4X2_types[674])->set_attributes({new attribute(strings[2743], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[666])), false)}, {false});
((entity*)IFC4X2_types[675])->set_attributes({new attribute(strings[2667], new named_type(IFC4X2_types[1042]), false),new attribute(strings[2925], new named_type(IFC4X2_types[260]), false)}, {false,false});
((entity*)IFC4X2_types[676])->set_attributes({new attribute(strings[2926], new named_type(IFC4X2_types[534]), false),new attribute(strings[2464], new named_type(IFC4X2_types[677]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[679])->set_attributes({new attribute(strings[2718], new named_type(IFC4X2_types[678]), false),new attribute(strings[2736], new named_type(IFC4X2_types[1204]), false),new attribute(strings[2927], new named_type(IFC4X2_types[721]), true),new attribute(strings[2928], new named_type(IFC4X2_types[721]), true),new attribute(strings[2730], new named_type(IFC4X2_types[931]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[680])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[681]), true),new attribute(strings[2465], new named_type(IFC4X2_types[534]), true),new attribute(strings[2466], new named_type(IFC4X2_types[1097]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[682])->set_attributes({new attribute(strings[2515], new named_type(IFC4X2_types[505]), true),new attribute(strings[2929], new named_type(IFC4X2_types[534]), true),new attribute(strings[2930], new named_type(IFC4X2_types[534]), true),new attribute(strings[2931], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[534])), true),new attribute(strings[2932], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[534])), true),new attribute(strings[2933], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[534])), true),new attribute(strings[2910], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[7])), true),new attribute(strings[2911], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[12])), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[683])->set_attributes({new attribute(strings[2934], new named_type(IFC4X2_types[682]), false),new attribute(strings[2935], new named_type(IFC4X2_types[663]), false),new attribute(strings[2910], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[7])), true)}, {false,false,false});
((entity*)IFC4X2_types[685])->set_attributes({new attribute(strings[2936], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[687])), false),new attribute(strings[2937], new named_type(IFC4X2_types[534]), false),new attribute(strings[2938], new named_type(IFC4X2_types[534]), true),new attribute(strings[2644], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[687])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), false),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true)}, {false,false});
((entity*)IFC4X2_types[688])->set_attributes({new attribute(strings[2685], new named_type(IFC4X2_types[641]), true)}, {false,false,false});
((entity*)IFC4X2_types[689])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[692]), true),new attribute(strings[2737], new named_type(IFC4X2_types[690]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[691])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[692]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[693])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[695]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[694])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[695]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[696])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[698]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[697])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[698]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[699])->set_attributes({new attribute(strings[2590], new named_type(IFC4X2_types[515]), false),new attribute(strings[2939], new named_type(IFC4X2_types[515]), false),new attribute(strings[2940], new named_type(IFC4X2_types[515]), false),new attribute(strings[2941], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[78])), false)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[700])->set_attributes({new attribute(strings[2609], new named_type(IFC4X2_types[141]), false)}, {false});
((entity*)IFC4X2_types[701])->set_attributes({new attribute(strings[2942], new named_type(IFC4X2_types[65]), false)}, {false,false,false});
((entity*)IFC4X2_types[702])->set_attributes({new attribute(strings[2943], new named_type(IFC4X2_types[545]), false),new attribute(strings[2944], new named_type(IFC4X2_types[545]), false)}, {false,false});
((entity*)IFC4X2_types[711])->set_attributes({new attribute(strings[2909], new named_type(IFC4X2_types[260]), false),new attribute(strings[2945], new named_type(IFC4X2_types[673]), false)}, {false,false});
((entity*)IFC4X2_types[712])->set_attributes({new attribute(strings[2667], new named_type(IFC4X2_types[1042]), false),new attribute(strings[2946], new named_type(IFC4X2_types[673]), false),new attribute(strings[2947], new named_type(IFC4X2_types[673]), false)}, {false,false,false});
((entity*)IFC4X2_types[717])->set_attributes({new attribute(strings[2948], new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4X2_types[141])), false)}, {false});
((entity*)IFC4X2_types[714])->set_attributes({new attribute(strings[2626], new named_type(IFC4X2_types[67]), false),new attribute(strings[2949], new named_type(IFC4X2_types[95]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[715])->set_attributes({new attribute(strings[2950], new named_type(IFC4X2_types[84]), true),new attribute(strings[2951], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[510])), false),new attribute(strings[2952], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[720])), true)}, {false,false,false,false});
((entity*)IFC4X2_types[716])->set_attributes({new attribute(strings[2813], new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[141])), false)}, {false});
((entity*)IFC4X2_types[724])->set_attributes({new attribute(strings[2953], new named_type(IFC4X2_types[534]), true),new attribute(strings[2954], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[534])), true),new attribute(strings[2955], new named_type(IFC4X2_types[534]), true),new attribute(strings[2956], new named_type(IFC4X2_types[534]), true),new attribute(strings[2957], new named_type(IFC4X2_types[534]), true),new attribute(strings[2958], new named_type(IFC4X2_types[534]), true),new attribute(strings[2959], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[735])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), false),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2960], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[543])), false),new attribute(strings[2504], new named_type(IFC4X2_types[505]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[736])->set_attributes({new attribute(strings[2961], new named_type(IFC4X2_types[574]), false),new attribute(strings[2962], new named_type(IFC4X2_types[574]), false),new attribute(strings[2963], new named_type(IFC4X2_types[574]), false),new attribute(strings[2964], new aggregation_type(aggregation_type::set_type, 0, -1, new named_type(IFC4X2_types[737])), false)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[737])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true)}, {false});
((entity*)IFC4X2_types[738])->set_attributes({new attribute(strings[2965], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[739])), false)}, {false});
((entity*)IFC4X2_types[741])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[743]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[742])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[743]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[744])->set_attributes({new attribute(strings[2515], new named_type(IFC4X2_types[505]), true),new attribute(strings[2466], new named_type(IFC4X2_types[1097]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[746])->set_attributes({new attribute(strings[2966], new named_type(IFC4X2_types[650]), true),new attribute(strings[2967], new named_type(IFC4X2_types[748]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[748])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2968], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[885])), false)}, {false,false,false});
((entity*)IFC4X2_types[751])->set_attributes({new attribute(strings[2969], new named_type(IFC4X2_types[753]), false),new attribute(strings[2970], new named_type(IFC4X2_types[534]), true)}, {false,false});
((entity*)IFC4X2_types[752])->set_attributes({new attribute(strings[2971], new named_type(IFC4X2_types[751]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[760])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[761]), true),new attribute(strings[2465], new named_type(IFC4X2_types[534]), true),new attribute(strings[2466], new named_type(IFC4X2_types[1097]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[755])->set_attributes({new attribute(strings[2972], new named_type(IFC4X2_types[505]), true),new attribute(strings[2973], new named_type(IFC4X2_types[505]), true),new attribute(strings[2974], new named_type(IFC4X2_types[641]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[757])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[758]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[762])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[505]), false),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true)}, {false,false});
((entity*)IFC4X2_types[764])->set_attributes({new attribute(strings[2975], new named_type(IFC4X2_types[1168]), true),new attribute(strings[2976], new named_type(IFC4X2_types[1168]), true),new attribute(strings[2685], new named_type(IFC4X2_types[1157]), true),new attribute(strings[2977], new named_type(IFC4X2_types[1168]), true)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[766])->set_attributes({new attribute(strings[2978], new named_type(IFC4X2_types[762]), false),new attribute(strings[2979], new named_type(IFC4X2_types[762]), false),new attribute(strings[2893], new named_type(IFC4X2_types[1097]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[767])->set_attributes({new attribute(strings[2980], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1168])), true),new attribute(strings[2981], new named_type(IFC4X2_types[768]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[768])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), false),new attribute(strings[2980], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1168])), false),new attribute(strings[2685], new named_type(IFC4X2_types[1157]), true)}, {false,false,false});
((entity*)IFC4X2_types[769])->set_attributes({new attribute(strings[2823], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1168])), true),new attribute(strings[2685], new named_type(IFC4X2_types[1157]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[770])->set_attributes({new attribute(strings[2617], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2982], new named_type(IFC4X2_types[651]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[771])->set_attributes({new attribute(strings[2618], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[762])), false)}, {false,false,false,false,false});
((entity*)IFC4X2_types[775])->set_attributes({new attribute(strings[2619], new named_type(IFC4X2_types[776]), true),new attribute(strings[2983], new named_type(IFC4X2_types[505]), true),new attribute(strings[2620], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[779])), false)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[777])->set_attributes({new attribute(strings[2984], new named_type(IFC4X2_types[1168]), true),new attribute(strings[2685], new named_type(IFC4X2_types[1157]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[778])->set_attributes({new attribute(strings[2985], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1168])), true),new attribute(strings[2986], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1168])), true),new attribute(strings[2893], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2987], new named_type(IFC4X2_types[1157]), true),new attribute(strings[2988], new named_type(IFC4X2_types[1157]), true),new attribute(strings[2989], new named_type(IFC4X2_types[264]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[781])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[786]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[782])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[784]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[783])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[784]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[785])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[786]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[787])->set_attributes({new attribute(strings[2990], new named_type(IFC4X2_types[652]), false),new attribute(strings[2488], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[788])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[790]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[789])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[790]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[791])->set_attributes({new attribute(strings[2991], new named_type(IFC4X2_types[56]), false),new attribute(strings[2992], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[792])->set_attributes({new attribute(strings[2993], new named_type(IFC4X2_types[244]), false),new attribute(strings[2992], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[793])->set_attributes({new attribute(strings[2994], new named_type(IFC4X2_types[545]), false),new attribute(strings[2992], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[795])->set_attributes({new attribute(strings[2995], new named_type(IFC4X2_types[1122]), false),new attribute(strings[2992], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[796])->set_attributes({new attribute(strings[2996], new named_type(IFC4X2_types[1188]), false),new attribute(strings[2992], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[797])->set_attributes({new attribute(strings[2997], new named_type(IFC4X2_types[588]), false),new attribute(strings[2992], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[799])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[801]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[800])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[801]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[802])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[807]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[803])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[805]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[804])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[805]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[806])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[807]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[809])->set_attributes({new attribute(strings[2998], new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[811])), false)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[810])->set_attributes({new attribute(strings[2998], new aggregation_type(aggregation_type::list_type, 2, -1, new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[811]))), false)}, {false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[812])->set_attributes({new attribute(strings[2591], new named_type(IFC4X2_types[721]), false),new attribute(strings[2999], new named_type(IFC4X2_types[642]), true),new attribute(strings[3000], new named_type(IFC4X2_types[642]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[813])->set_attributes({new attribute(strings[2580], new named_type(IFC4X2_types[721]), false),new attribute(strings[2581], new named_type(IFC4X2_types[721]), false)}, {false,false,false,false,false});
((entity*)IFC4X2_types[814])->set_attributes({new attribute(strings[2557], new named_type(IFC4X2_types[721]), false),new attribute(strings[2558], new named_type(IFC4X2_types[721]), false),new attribute(strings[2939], new named_type(IFC4X2_types[721]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[815])->set_attributes({new attribute(strings[2667], new named_type(IFC4X2_types[1042]), false),new attribute(strings[3001], new named_type(IFC4X2_types[673]), false),new attribute(strings[3002], new named_type(IFC4X2_types[673]), false),new attribute(strings[3003], new named_type(IFC4X2_types[673]), false),new attribute(strings[3004], new named_type(IFC4X2_types[673]), false),new attribute(strings[3005], new named_type(IFC4X2_types[84]), false),new attribute(strings[3006], new named_type(IFC4X2_types[84]), false)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[816])->set_attributes({new attribute(strings[3007], new named_type(IFC4X2_types[817]), false),new attribute(strings[3008], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[280])), true),new attribute(strings[3009], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[281])), true),new attribute(strings[3010], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[637])), true),new attribute(strings[2626], new named_type(IFC4X2_types[515]), true),new attribute(strings[3011], new named_type(IFC4X2_types[515]), true),new attribute(strings[3012], new named_type(IFC4X2_types[515]), true),new attribute(strings[3013], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1124])), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[818])->set_attributes({new attribute(strings[3014], new named_type(IFC4X2_types[505]), true),new attribute(strings[3015], new named_type(IFC4X2_types[505]), true),new attribute(strings[3016], new named_type(IFC4X2_types[534]), true),new attribute(strings[3017], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[515])), true),new attribute(strings[3018], new named_type(IFC4X2_types[818]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[819])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[820]), true),new attribute(strings[3019], new named_type(IFC4X2_types[545]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[822])->set_attributes({new attribute(strings[3020], new named_type(IFC4X2_types[1122]), false),new attribute(strings[2821], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1127])), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[823])->set_attributes({new attribute(strings[3021], new named_type(IFC4X2_types[56]), false),new attribute(strings[3022], new named_type(IFC4X2_types[534]), false),new attribute(strings[3023], new named_type(IFC4X2_types[827]), true),new attribute(strings[3024], new named_type(IFC4X2_types[545]), true),new attribute(strings[3025], new named_type(IFC4X2_types[721]), true),new attribute(strings[3026], new named_type(IFC4X2_types[244]), true)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[824])->set_attributes({new attribute(strings[3027], new named_type(IFC4X2_types[534]), true),new attribute(strings[3028], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[921])), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[825])->set_attributes({new attribute(strings[2896], new named_type(IFC4X2_types[721]), true),new attribute(strings[3029], new named_type(IFC4X2_types[56]), true),new attribute(strings[3030], new named_type(IFC4X2_types[721]), true),new attribute(strings[2464], new named_type(IFC4X2_types[829]), true),new attribute(strings[3023], new named_type(IFC4X2_types[827]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[828])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[829]), false),new attribute(strings[2896], new named_type(IFC4X2_types[721]), true),new attribute(strings[3029], new named_type(IFC4X2_types[56]), true),new attribute(strings[3030], new named_type(IFC4X2_types[721]), true),new attribute(strings[3023], new named_type(IFC4X2_types[827]), true),new attribute(strings[3031], new named_type(IFC4X2_types[534]), true),new attribute(strings[3032], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[77])), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[830])->set_attributes({new attribute(strings[3022], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[832])->set_attributes({new attribute(strings[3033], new named_type(IFC4X2_types[721]), true),new attribute(strings[3034], new named_type(IFC4X2_types[721]), true),new attribute(strings[3035], new named_type(IFC4X2_types[721]), true),new attribute(strings[3036], new named_type(IFC4X2_types[721]), true),new attribute(strings[3037], new named_type(IFC4X2_types[56]), true),new attribute(strings[3038], new named_type(IFC4X2_types[56]), true),new attribute(strings[3039], new named_type(IFC4X2_types[721]), true),new attribute(strings[3040], new named_type(IFC4X2_types[721]), true),new attribute(strings[2464], new named_type(IFC4X2_types[834]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[833])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[834]), false),new attribute(strings[3033], new named_type(IFC4X2_types[721]), true),new attribute(strings[3034], new named_type(IFC4X2_types[721]), true),new attribute(strings[3035], new named_type(IFC4X2_types[721]), true),new attribute(strings[3036], new named_type(IFC4X2_types[721]), true),new attribute(strings[3037], new named_type(IFC4X2_types[56]), true),new attribute(strings[3038], new named_type(IFC4X2_types[56]), true),new attribute(strings[3039], new named_type(IFC4X2_types[721]), true),new attribute(strings[3040], new named_type(IFC4X2_types[721]), true),new attribute(strings[3031], new named_type(IFC4X2_types[534]), true),new attribute(strings[3032], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[77])), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[835])->set_attributes({new attribute(strings[3041], new named_type(IFC4X2_types[647]), false),new attribute(strings[3042], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[647])), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[836])->set_attributes({new attribute(strings[3042], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[647])), false),new attribute(strings[3043], new named_type(IFC4X2_types[652]), true)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[837])->set_attributes({new attribute(strings[3044], new named_type(IFC4X2_types[6]), false),new attribute(strings[3045], new named_type(IFC4X2_types[7]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[838])->set_attributes({new attribute(strings[3046], new named_type(IFC4X2_types[224]), false)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[839])->set_attributes({new attribute(strings[3047], new named_type(IFC4X2_types[494]), false)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[840])->set_attributes({new attribute(strings[3048], new named_type(IFC4X2_types[808]), false)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[841])->set_attributes({new attribute(strings[3049], new named_type(IFC4X2_types[745]), false),new attribute(strings[3050], new named_type(IFC4X2_types[611]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[842])->set_attributes({new attribute(strings[3051], new named_type(IFC4X2_types[750]), false)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[843])->set_attributes({new attribute(strings[3052], new named_type(IFC4X2_types[894]), false)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[844])->set_attributes({new attribute(strings[3042], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[284])), false)}, {false,false,false,false,false});
((entity*)IFC4X2_types[845])->set_attributes({new attribute(strings[2510], new named_type(IFC4X2_types[49]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[846])->set_attributes({new attribute(strings[3053], new named_type(IFC4X2_types[167]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[847])->set_attributes({new attribute(strings[3054], new named_type(IFC4X2_types[534]), true),new attribute(strings[3055], new named_type(IFC4X2_types[208]), false)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[848])->set_attributes({new attribute(strings[2712], new named_type(IFC4X2_types[317]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[849])->set_attributes({new attribute(strings[3056], new named_type(IFC4X2_types[548]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[850])->set_attributes({new attribute(strings[2891], new named_type(IFC4X2_types[608]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[853])->set_attributes({new attribute(strings[3057], new named_type(IFC4X2_types[202]), true),new attribute(strings[3058], new named_type(IFC4X2_types[372]), false),new attribute(strings[3059], new named_type(IFC4X2_types[372]), false)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[854])->set_attributes({new attribute(strings[3060], new aggregation_type(aggregation_type::list_type, 0, -1, new named_type(IFC4X2_types[515])), false),new attribute(strings[3061], new aggregation_type(aggregation_type::list_type, 0, -1, new named_type(IFC4X2_types[515])), false),new attribute(strings[3062], new named_type(IFC4X2_types[206]), false),new attribute(strings[3063], new named_type(IFC4X2_types[206]), false)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[856])->set_attributes({new attribute(strings[3064], new named_type(IFC4X2_types[718]), false),new attribute(strings[3059], new named_type(IFC4X2_types[305]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[855])->set_attributes({new attribute(strings[3064], new named_type(IFC4X2_types[718]), false),new attribute(strings[3065], new named_type(IFC4X2_types[718]), false),new attribute(strings[3066], new named_type(IFC4X2_types[372]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[857])->set_attributes({new attribute(strings[3058], new named_type(IFC4X2_types[994]), false),new attribute(strings[3067], new named_type(IFC4X2_types[993]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[858])->set_attributes({new attribute(strings[3068], new named_type(IFC4X2_types[1020]), false),new attribute(strings[3069], new named_type(IFC4X2_types[996]), false),new attribute(strings[3070], new named_type(IFC4X2_types[89]), true),new attribute(strings[3071], new named_type(IFC4X2_types[997]), true),new attribute(strings[3072], new named_type(IFC4X2_types[545]), true),new attribute(strings[3073], new named_type(IFC4X2_types[67]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[859])->set_attributes({new attribute(strings[3074], new named_type(IFC4X2_types[202]), false)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[860])->set_attributes({new attribute(strings[3075], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[372])), false),new attribute(strings[3076], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[861])->set_attributes({new attribute(strings[3077], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[746])), false),new attribute(strings[3078], new named_type(IFC4X2_types[969]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[862])->set_attributes({new attribute(strings[3079], new named_type(IFC4X2_types[372]), false),new attribute(strings[3080], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[245])), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[863])->set_attributes({new attribute(strings[3081], new named_type(IFC4X2_types[962]), false),new attribute(strings[3080], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[245])), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[864])->set_attributes({new attribute(strings[3082], new named_type(IFC4X2_types[221]), false),new attribute(strings[3083], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[284])), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[867])->set_attributes({new attribute(strings[3042], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[646])), false),new attribute(strings[3041], new named_type(IFC4X2_types[646]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[868])->set_attributes({new attribute(strings[3042], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[647])), false),new attribute(strings[3084], new named_type(IFC4X2_types[773]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[869])->set_attributes({new attribute(strings[3085], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[772])), false),new attribute(strings[3086], new named_type(IFC4X2_types[775]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[870])->set_attributes({new attribute(strings[3042], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[646])), false),new attribute(strings[3087], new named_type(IFC4X2_types[1153]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[871])->set_attributes({new attribute(strings[3088], new named_type(IFC4X2_types[659]), false),new attribute(strings[3089], new named_type(IFC4X2_types[372]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[872])->set_attributes({new attribute(strings[3090], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[303])), false),new attribute(strings[3091], new named_type(IFC4X2_types[307]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[873])->set_attributes({new attribute(strings[3058], new named_type(IFC4X2_types[372]), false),new attribute(strings[3059], new named_type(IFC4X2_types[372]), false),new attribute(strings[3092], new named_type(IFC4X2_types[202]), true),new attribute(strings[3093], new named_type(IFC4X2_types[505]), true),new attribute(strings[3094], new simple_type(simple_type::logical_type), false)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[874])->set_attributes({new attribute(strings[3041], new named_type(IFC4X2_types[647]), false),new attribute(strings[3042], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[647])), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[875])->set_attributes({new attribute(strings[3095], new named_type(IFC4X2_types[719]), false),new attribute(strings[3096], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[746])), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[876])->set_attributes({new attribute(strings[3058], new named_type(IFC4X2_types[372]), false),new attribute(strings[3097], new named_type(IFC4X2_types[430]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[877])->set_attributes({new attribute(strings[3077], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[746])), false),new attribute(strings[3078], new named_type(IFC4X2_types[969]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[878])->set_attributes({new attribute(strings[3049], new named_type(IFC4X2_types[744]), false),new attribute(strings[3098], new named_type(IFC4X2_types[744]), false),new attribute(strings[3099], new named_type(IFC4X2_types[538]), true),new attribute(strings[3100], new named_type(IFC4X2_types[927]), true),new attribute(strings[3101], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[879])->set_attributes({new attribute(strings[3102], new named_type(IFC4X2_types[1067]), false),new attribute(strings[3103], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[969])), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[880])->set_attributes({new attribute(strings[3081], new named_type(IFC4X2_types[963]), false),new attribute(strings[3089], new named_type(IFC4X2_types[372]), false),new attribute(strings[3057], new named_type(IFC4X2_types[202]), true),new attribute(strings[3104], new named_type(IFC4X2_types[686]), false),new attribute(strings[3105], new named_type(IFC4X2_types[520]), false)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[881])->set_attributes({new attribute(strings[3106], new named_type(IFC4X2_types[881]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[882])->set_attributes({new attribute(strings[3107], new named_type(IFC4X2_types[882]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[883])->set_attributes({new attribute(strings[3079], new named_type(IFC4X2_types[372]), false),new attribute(strings[3108], new named_type(IFC4X2_types[431]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[884])->set_attributes({new attribute(strings[3109], new named_type(IFC4X2_types[673]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[885])->set_attributes({new attribute(strings[3110], new named_type(IFC4X2_types[886]), false),new attribute(strings[3111], new named_type(IFC4X2_types[534]), true),new attribute(strings[3112], new named_type(IFC4X2_types[534]), true),new attribute(strings[3113], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[887])), false)}, {false,false,false,false});
((entity*)IFC4X2_types[886])->set_attributes({new attribute(strings[3114], new named_type(IFC4X2_types[534]), true),new attribute(strings[3115], new named_type(IFC4X2_types[534]), true)}, {false,false});
((entity*)IFC4X2_types[888])->set_attributes({new attribute(strings[3116], new named_type(IFC4X2_types[65]), false),new attribute(strings[3117], new named_type(IFC4X2_types[885]), false)}, {false,false});
((entity*)IFC4X2_types[889])->set_attributes({new attribute(strings[2515], new named_type(IFC4X2_types[505]), true),new attribute(strings[2466], new named_type(IFC4X2_types[1097]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[890])->set_attributes({new attribute(strings[2759], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[893])), false),new attribute(strings[2510], new named_type(IFC4X2_types[49]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[891])->set_attributes({new attribute(strings[3055], new named_type(IFC4X2_types[208]), false),new attribute(strings[2759], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[893])), false)}, {false,false,false,false});
((entity*)IFC4X2_types[892])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true)}, {false,false});
((entity*)IFC4X2_types[895])->set_attributes({new attribute(strings[3118], new named_type(IFC4X2_types[343]), true),new attribute(strings[3119], new named_type(IFC4X2_types[723]), true),new attribute(strings[3120], new named_type(IFC4X2_types[279]), true),new attribute(strings[3121], new named_type(IFC4X2_types[279]), true),new attribute(strings[3122], new named_type(IFC4X2_types[534]), true),new attribute(strings[3123], new named_type(IFC4X2_types[343]), true),new attribute(strings[3124], new named_type(IFC4X2_types[84]), true),new attribute(strings[3125], new named_type(IFC4X2_types[279]), true),new attribute(strings[3126], new named_type(IFC4X2_types[343]), true),new attribute(strings[3127], new named_type(IFC4X2_types[723]), true),new attribute(strings[3128], new named_type(IFC4X2_types[279]), true),new attribute(strings[3129], new named_type(IFC4X2_types[279]), true),new attribute(strings[3130], new named_type(IFC4X2_types[343]), true),new attribute(strings[3131], new named_type(IFC4X2_types[723]), true),new attribute(strings[3132], new named_type(IFC4X2_types[723]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[896])->set_attributes({new attribute(strings[2536], new named_type(IFC4X2_types[64]), false),new attribute(strings[3133], new named_type(IFC4X2_types[705]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[897])->set_attributes({new attribute(strings[2761], new named_type(IFC4X2_types[751]), false)}, {false,false,false,false,false});
((entity*)IFC4X2_types[898])->set_attributes({new attribute(strings[2939], new named_type(IFC4X2_types[721]), false),new attribute(strings[3134], new named_type(IFC4X2_types[721]), false)}, {false,false,false});
((entity*)IFC4X2_types[899])->set_attributes({new attribute(strings[2939], new named_type(IFC4X2_types[721]), false),new attribute(strings[2480], new named_type(IFC4X2_types[721]), false)}, {false,false,false});
((entity*)IFC4X2_types[901])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[903]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[902])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[903]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[904])->set_attributes({new attribute(strings[3135], new named_type(IFC4X2_types[487]), false),new attribute(strings[3136], new named_type(IFC4X2_types[671]), true),new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[909])->set_attributes({new attribute(strings[3137], new named_type(IFC4X2_types[721]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[943])->set_attributes({new attribute(strings[3138], new named_type(IFC4X2_types[941]), true),new attribute(strings[2495], new named_type(IFC4X2_types[944]), false)}, {true,false,false,false});
((entity*)IFC4X2_types[910])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[912]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[911])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[912]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[913])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[3139], new named_type(IFC4X2_types[277]), true),new attribute(strings[3140], new named_type(IFC4X2_types[534]), true)}, {false,false,false});
((entity*)IFC4X2_types[920])->set_attributes({new attribute(strings[3141], new named_type(IFC4X2_types[922]), false),new attribute(strings[3142], new named_type(IFC4X2_types[751]), false),new attribute(strings[3143], new named_type(IFC4X2_types[751]), true)}, {false,false,false});
((entity*)IFC4X2_types[921])->set_attributes({new attribute(strings[3144], new named_type(IFC4X2_types[545]), false),new attribute(strings[3145], new named_type(IFC4X2_types[545]), false),new attribute(strings[3146], new named_type(IFC4X2_types[545]), true),new attribute(strings[3147], new named_type(IFC4X2_types[826]), false),new attribute(strings[3148], new named_type(IFC4X2_types[920]), false),new attribute(strings[3149], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[823])), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[916])->set_attributes({new attribute(strings[2783], new named_type(IFC4X2_types[260]), false),new attribute(strings[3150], new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[751])), false)}, {false,false});
((entity*)IFC4X2_types[917])->set_attributes({new attribute(strings[3151], new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[298])), false),new attribute(strings[3152], new named_type(IFC4X2_types[84]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[918])->set_attributes({new attribute(strings[3153], new named_type(IFC4X2_types[188]), false),new attribute(strings[3150], new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[751])), false),new attribute(strings[3151], new aggregation_type(aggregation_type::list_type, 2, -1, new named_type(IFC4X2_types[67])), false)}, {false,false,false});
((entity*)IFC4X2_types[924])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[926]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[925])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[926]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[928])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[930]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[929])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[930]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[931])->set_attributes({new attribute(strings[3154], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[932])), false),new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[3155], new named_type(IFC4X2_types[574]), false),new attribute(strings[3156], new named_type(IFC4X2_types[749]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[936])->set_attributes({new attribute(strings[3157], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[935])), false)}, {false});
((entity*)IFC4X2_types[938])->set_attributes({new attribute(strings[2619], new named_type(IFC4X2_types[939]), true),new attribute(strings[3158], new named_type(IFC4X2_types[534]), true),new attribute(strings[3159], new named_type(IFC4X2_types[534]), true),new attribute(strings[3160], new named_type(IFC4X2_types[768]), true),new attribute(strings[3161], new named_type(IFC4X2_types[1157]), true),new attribute(strings[3162], new named_type(IFC4X2_types[1157]), true),new attribute(strings[2893], new named_type(IFC4X2_types[534]), true),new attribute(strings[3163], new named_type(IFC4X2_types[991]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[942])->set_attributes({new attribute(strings[3164], new named_type(IFC4X2_types[192]), true),new attribute(strings[3165], new named_type(IFC4X2_types[192]), true),new attribute(strings[3166], new named_type(IFC4X2_types[545]), true),new attribute(strings[3167], new named_type(IFC4X2_types[534]), true),new attribute(strings[3168], new named_type(IFC4X2_types[724]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[946])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[950]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[949])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[950]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[951])->set_attributes({new attribute(strings[3169], new named_type(IFC4X2_types[545]), true),new attribute(strings[3170], new named_type(IFC4X2_types[545]), true),new attribute(strings[3171], new named_type(IFC4X2_types[545]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[952])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[954]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[953])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[954]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[962])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[968]), true),new attribute(strings[3172], new named_type(IFC4X2_types[545]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[964])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[966]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[965])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[966]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[967])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[968]), false),new attribute(strings[2588], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[969])->set_attributes({new attribute(strings[2588], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[970])->set_attributes({new attribute(strings[2747], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[971])->set_attributes({new attribute(strings[3173], new named_type(IFC4X2_types[379]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[973])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[975]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[974])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[975]), false),new attribute(strings[2588], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[980])->set_attributes({new attribute(strings[2480], new named_type(IFC4X2_types[721]), false)}, {false,false});
((entity*)IFC4X2_types[981])->set_attributes({new attribute(strings[2480], new named_type(IFC4X2_types[721]), false)}, {false,false});
((entity*)IFC4X2_types[982])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[984]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[983])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[984]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[985])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[990]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[986])->set_attributes({new attribute(strings[3174], new named_type(IFC4X2_types[515]), true),new attribute(strings[3175], new named_type(IFC4X2_types[515]), true),new attribute(strings[3176], new named_type(IFC4X2_types[721]), true),new attribute(strings[3177], new named_type(IFC4X2_types[721]), true),new attribute(strings[2464], new named_type(IFC4X2_types[988]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[987])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[988]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[989])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[990]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[992])->set_attributes({new attribute(strings[3178], new named_type(IFC4X2_types[84]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[993])->set_attributes({new attribute(strings[3179], new named_type(IFC4X2_types[1007]), false),new attribute(strings[3180], new named_type(IFC4X2_types[488]), false)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[995])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[41]), false),new attribute(strings[3181], new named_type(IFC4X2_types[67]), true),new attribute(strings[3182], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[1010])), true),new attribute(strings[3183], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[1026])), true),new attribute(strings[3184], new named_type(IFC4X2_types[650]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[996])->set_attributes({new attribute(strings[3070], new named_type(IFC4X2_types[89]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[997])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true)}, {false});
((entity*)IFC4X2_types[998])->set_attributes({new attribute(strings[3185], new named_type(IFC4X2_types[756]), true),new attribute(strings[2464], new named_type(IFC4X2_types[999]), false)}, {false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1000])->set_attributes({new attribute(strings[2536], new named_type(IFC4X2_types[293]), false)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1001])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1002]), false),new attribute(strings[2536], new named_type(IFC4X2_types[293]), false)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1007])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true)}, {false});
((entity*)IFC4X2_types[1008])->set_attributes({new attribute(strings[3186], new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4X2_types[808])), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1009])->set_attributes({new attribute(strings[2821], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1012])), false),new attribute(strings[3187], new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 1, 2, new named_type(IFC4X2_types[545]))), true)}, {false,false,false});
((entity*)IFC4X2_types[1010])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[572]), false),new attribute(strings[3188], new named_type(IFC4X2_types[5]), false),new attribute(strings[3189], new named_type(IFC4X2_types[4]), false),new attribute(strings[3190], new named_type(IFC4X2_types[808]), true),new attribute(strings[2471], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1011])->set_attributes({new attribute(strings[3191], new named_type(IFC4X2_types[564]), true),new attribute(strings[3192], new named_type(IFC4X2_types[564]), true),new attribute(strings[3193], new named_type(IFC4X2_types[564]), true),new attribute(strings[3194], new named_type(IFC4X2_types[565]), true),new attribute(strings[3195], new named_type(IFC4X2_types[565]), true),new attribute(strings[3196], new named_type(IFC4X2_types[565]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1013])->set_attributes({new attribute(strings[3197], new named_type(IFC4X2_types[703]), true),new attribute(strings[3198], new named_type(IFC4X2_types[703]), true),new attribute(strings[3199], new named_type(IFC4X2_types[703]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[1014])->set_attributes({new attribute(strings[3200], new named_type(IFC4X2_types[545]), true),new attribute(strings[3201], new named_type(IFC4X2_types[545]), true),new attribute(strings[3202], new named_type(IFC4X2_types[545]), true),new attribute(strings[3203], new named_type(IFC4X2_types[705]), true),new attribute(strings[3204], new named_type(IFC4X2_types[705]), true),new attribute(strings[3205], new named_type(IFC4X2_types[705]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1015])->set_attributes({new attribute(strings[3206], new named_type(IFC4X2_types[259]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1016])->set_attributes({new attribute(strings[3207], new named_type(IFC4X2_types[470]), true),new attribute(strings[3208], new named_type(IFC4X2_types[470]), true),new attribute(strings[3209], new named_type(IFC4X2_types[470]), true),new attribute(strings[3210], new named_type(IFC4X2_types[1132]), true),new attribute(strings[3211], new named_type(IFC4X2_types[1132]), true),new attribute(strings[3212], new named_type(IFC4X2_types[1132]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1017])->set_attributes({new attribute(strings[3213], new named_type(IFC4X2_types[1196]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1019])->set_attributes({new attribute(strings[3214], new named_type(IFC4X2_types[1120]), true),new attribute(strings[3215], new named_type(IFC4X2_types[1120]), true),new attribute(strings[3216], new named_type(IFC4X2_types[1120]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[1026])->set_attributes({new attribute(strings[3217], new named_type(IFC4X2_types[42]), false),new attribute(strings[3218], new named_type(IFC4X2_types[1010]), true),new attribute(strings[3219], new named_type(IFC4X2_types[84]), false)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1027])->set_attributes({new attribute(strings[3185], new named_type(IFC4X2_types[756]), true),new attribute(strings[2464], new named_type(IFC4X2_types[1028]), false)}, {false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1030])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1031]), false),new attribute(strings[2604], new named_type(IFC4X2_types[721]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1035])->set_attributes({new attribute(strings[3220], new named_type(IFC4X2_types[887]), true),new attribute(strings[2965], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[1034])), false),new attribute(strings[2495], new named_type(IFC4X2_types[534]), true)}, {false,false,false});
((entity*)IFC4X2_types[1043])->set_attributes({new attribute(strings[3222], new named_type(IFC4X2_types[260]), false),new attribute(strings[3223], new aggregation_type(aggregation_type::list_type, 1, 2, new named_type(IFC4X2_types[675])), false),new attribute(strings[3224], new named_type(IFC4X2_types[732]), false)}, {false,false,false});
((entity*)IFC4X2_types[1044])->set_attributes({new attribute(strings[2783], new named_type(IFC4X2_types[260]), false),new attribute(strings[2784], new named_type(IFC4X2_types[673]), true),new attribute(strings[2785], new named_type(IFC4X2_types[673]), true),new attribute(strings[3225], new named_type(IFC4X2_types[1042]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[1045])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1046]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1047])->set_attributes({new attribute(strings[2760], new named_type(IFC4X2_types[293]), false),new attribute(strings[2589], new named_type(IFC4X2_types[545]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[1048])->set_attributes({new attribute(strings[3226], new named_type(IFC4X2_types[64]), false)}, {false,false,false});
((entity*)IFC4X2_types[1050])->set_attributes({new attribute(strings[3227], new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4X2_types[545])), true),new attribute(strings[3228], new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4X2_types[545])), true),new attribute(strings[3229], new named_type(IFC4X2_types[808]), true)}, {false,false,false,false});
((entity*)IFC4X2_types[1052])->set_attributes({new attribute(strings[3230], new named_type(IFC4X2_types[1051]), false),new attribute(strings[2965], new aggregation_type(aggregation_type::set_type, 1, 5, new named_type(IFC4X2_types[1053])), false)}, {false,false,false});
((entity*)IFC4X2_types[1054])->set_attributes({new attribute(strings[3231], new named_type(IFC4X2_types[174]), false),new attribute(strings[3232], new named_type(IFC4X2_types[174]), false),new attribute(strings[3233], new named_type(IFC4X2_types[174]), false),new attribute(strings[3234], new named_type(IFC4X2_types[174]), false)}, {false,false,false,false});
((entity*)IFC4X2_types[1055])->set_attributes({new attribute(strings[3235], new named_type(IFC4X2_types[811]), true),new attribute(strings[3236], new named_type(IFC4X2_types[811]), true)}, {false,false});
((entity*)IFC4X2_types[1056])->set_attributes({new attribute(strings[3237], new named_type(IFC4X2_types[173]), true),new attribute(strings[3233], new named_type(IFC4X2_types[173]), true),new attribute(strings[3231], new named_type(IFC4X2_types[173]), true),new attribute(strings[3238], new named_type(IFC4X2_types[173]), true),new attribute(strings[3239], new named_type(IFC4X2_types[173]), true),new attribute(strings[3240], new named_type(IFC4X2_types[978]), true),new attribute(strings[3241], new named_type(IFC4X2_types[821]), false)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1057])->set_attributes({new attribute(strings[3242], new named_type(IFC4X2_types[174]), false),new attribute(strings[3243], new named_type(IFC4X2_types[643]), true)}, {false,false});
((entity*)IFC4X2_types[1058])->set_attributes({new attribute(strings[3244], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1059])), false)}, {false});
((entity*)IFC4X2_types[1059])->set_attributes({new attribute(strings[3245], new named_type(IFC4X2_types[84]), false),new attribute(strings[3246], new named_type(IFC4X2_types[84]), false),new attribute(strings[3247], new named_type(IFC4X2_types[505]), true),new attribute(strings[3248], new named_type(IFC4X2_types[146]), true),new attribute(strings[3249], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[505])), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[1060])->set_attributes({new attribute(strings[3250], new named_type(IFC4X2_types[751]), false),new attribute(strings[2626], new named_type(IFC4X2_types[67]), true)}, {false,false});
((entity*)IFC4X2_types[1061])->set_attributes({new attribute(strings[2783], new named_type(IFC4X2_types[260]), false),new attribute(strings[2480], new named_type(IFC4X2_types[721]), false),new attribute(strings[3251], new named_type(IFC4X2_types[721]), true),new attribute(strings[2784], new named_type(IFC4X2_types[673]), true),new attribute(strings[2785], new named_type(IFC4X2_types[673]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[1062])->set_attributes({new attribute(strings[2805], new named_type(IFC4X2_types[721]), true)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[1063])->set_attributes({new attribute(strings[3252], new named_type(IFC4X2_types[751]), false),new attribute(strings[2626], new named_type(IFC4X2_types[67]), true)}, {false,false});
((entity*)IFC4X2_types[1064])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1066]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1065])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1066]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1068])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1070]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1069])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1070]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1149])->set_attributes({new attribute(strings[2589], new named_type(IFC4X2_types[721]), false),new attribute(strings[3253], new named_type(IFC4X2_types[721]), false),new attribute(strings[2526], new named_type(IFC4X2_types[721]), false),new attribute(strings[2804], new named_type(IFC4X2_types[721]), false),new attribute(strings[2805], new named_type(IFC4X2_types[642]), true),new attribute(strings[2806], new named_type(IFC4X2_types[642]), true),new attribute(strings[3254], new named_type(IFC4X2_types[642]), true),new attribute(strings[3255], new named_type(IFC4X2_types[705]), true),new attribute(strings[2807], new named_type(IFC4X2_types[705]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1071])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[3256], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1073])), true),new attribute(strings[3257], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1072])), true)}, {false,false,false});
((entity*)IFC4X2_types[1072])->set_attributes({new attribute(strings[2504], new named_type(IFC4X2_types[505]), true),new attribute(strings[2495], new named_type(IFC4X2_types[534]), true),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[2685], new named_type(IFC4X2_types[1157]), true),new attribute(strings[2901], new named_type(IFC4X2_types[818]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[1073])->set_attributes({new attribute(strings[3258], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1168])), true),new attribute(strings[3259], new named_type(IFC4X2_types[84]), true)}, {false,false});
((entity*)IFC4X2_types[1074])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1076]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1075])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1076]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1077])->set_attributes({new attribute(strings[2465], new named_type(IFC4X2_types[534]), true),new attribute(strings[3260], new named_type(IFC4X2_types[534]), true),new attribute(strings[3261], new named_type(IFC4X2_types[84]), false),new attribute(strings[2873], new named_type(IFC4X2_types[515]), true),new attribute(strings[3262], new named_type(IFC4X2_types[1079]), true),new attribute(strings[2464], new named_type(IFC4X2_types[1082]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1079])->set_attributes({new attribute(strings[2827], new named_type(IFC4X2_types[1078]), true),new attribute(strings[3263], new named_type(IFC4X2_types[343]), true),new attribute(strings[3120], new named_type(IFC4X2_types[279]), true),new attribute(strings[3121], new named_type(IFC4X2_types[279]), true),new attribute(strings[3264], new named_type(IFC4X2_types[279]), true),new attribute(strings[3265], new named_type(IFC4X2_types[279]), true),new attribute(strings[3266], new named_type(IFC4X2_types[279]), true),new attribute(strings[3267], new named_type(IFC4X2_types[279]), true),new attribute(strings[3268], new named_type(IFC4X2_types[343]), true),new attribute(strings[3269], new named_type(IFC4X2_types[343]), true),new attribute(strings[3270], new named_type(IFC4X2_types[84]), true),new attribute(strings[3125], new named_type(IFC4X2_types[279]), true),new attribute(strings[3271], new named_type(IFC4X2_types[343]), true),new attribute(strings[3128], new named_type(IFC4X2_types[279]), true),new attribute(strings[3129], new named_type(IFC4X2_types[279]), true),new attribute(strings[3272], new named_type(IFC4X2_types[343]), true),new attribute(strings[3132], new named_type(IFC4X2_types[723]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1080])->set_attributes({new attribute(strings[3273], new named_type(IFC4X2_types[816]), false)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1081])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1082]), false),new attribute(strings[3260], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1083])->set_attributes({new attribute(strings[3274], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[534])), true),new attribute(strings[3275], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[534])), true),new attribute(strings[3276], new named_type(IFC4X2_types[534]), true),new attribute(strings[3277], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[534])), true),new attribute(strings[3278], new named_type(IFC4X2_types[1166]), true),new attribute(strings[3279], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1166])), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1086])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1094]), true),new attribute(strings[2896], new named_type(IFC4X2_types[721]), true),new attribute(strings[3029], new named_type(IFC4X2_types[56]), true),new attribute(strings[3280], new named_type(IFC4X2_types[470]), true),new attribute(strings[3281], new named_type(IFC4X2_types[740]), true),new attribute(strings[3282], new named_type(IFC4X2_types[643]), true),new attribute(strings[3283], new named_type(IFC4X2_types[721]), true),new attribute(strings[3284], new named_type(IFC4X2_types[721]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1087])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1089]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1088])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1089]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1090])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1092]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1091])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1092]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1093])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1094]), false),new attribute(strings[2896], new named_type(IFC4X2_types[721]), true),new attribute(strings[3029], new named_type(IFC4X2_types[56]), true),new attribute(strings[3285], new named_type(IFC4X2_types[721]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1095])->set_attributes({new attribute(strings[2594], new named_type(IFC4X2_types[144]), false)}, {false});
((entity*)IFC4X2_types[1102])->set_attributes({new attribute(strings[3286], new named_type(IFC4X2_types[733]), false),new attribute(strings[2942], new named_type(IFC4X2_types[65]), false),new attribute(strings[3287], new named_type(IFC4X2_types[1104]), false)}, {false,false,false});
((entity*)IFC4X2_types[1103])->set_attributes({new attribute(strings[3288], new named_type(IFC4X2_types[702]), false),new attribute(strings[3289], new named_type(IFC4X2_types[98]), false)}, {false,false,false,false,false});
((entity*)IFC4X2_types[1105])->set_attributes({new attribute(strings[3290], new named_type(IFC4X2_types[1107]), true),new attribute(strings[3291], new named_type(IFC4X2_types[1108]), true),new attribute(strings[3292], new named_type(IFC4X2_types[1101]), false),new attribute(strings[2676], new named_type(IFC4X2_types[84]), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[1106])->set_attributes({new attribute(strings[3293], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1100])), false),new attribute(strings[3294], new named_type(IFC4X2_types[464]), true),new attribute(strings[3295], new named_type(IFC4X2_types[465]), true),new attribute(strings[3296], new named_type(IFC4X2_types[466]), true),new attribute(strings[3297], new named_type(IFC4X2_types[945]), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[1107])->set_attributes({new attribute(strings[3298], new named_type(IFC4X2_types[172]), false),new attribute(strings[3299], new named_type(IFC4X2_types[172]), true)}, {false,false});
((entity*)IFC4X2_types[1108])->set_attributes({new attribute(strings[3300], new named_type(IFC4X2_types[945]), true),new attribute(strings[3301], new named_type(IFC4X2_types[1098]), true),new attribute(strings[3302], new named_type(IFC4X2_types[1099]), true),new attribute(strings[3303], new named_type(IFC4X2_types[945]), true),new attribute(strings[3304], new named_type(IFC4X2_types[945]), true),new attribute(strings[3305], new named_type(IFC4X2_types[1109]), true),new attribute(strings[3306], new named_type(IFC4X2_types[945]), true)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1110])->set_attributes({new attribute(strings[3307], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1059])), false)}, {false});
((entity*)IFC4X2_types[1111])->set_attributes({new attribute(strings[3247], new named_type(IFC4X2_types[534]), false),new attribute(strings[3249], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[811])), true)}, {false,false,false});
((entity*)IFC4X2_types[1112])->set_attributes({new attribute(strings[3308], new aggregation_type(aggregation_type::list_type, 3, -1, new named_type(IFC4X2_types[1113])), false),new attribute(strings[2809], new named_type(IFC4X2_types[413]), false)}, {false,false,false});
((entity*)IFC4X2_types[1113])->set_attributes({new attribute(strings[2594], new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4X2_types[673])), false)}, {false});
((entity*)IFC4X2_types[1114])->set_attributes({new attribute(strings[3309], new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4X2_types[673]))), false)}, {false});
((entity*)IFC4X2_types[1124])->set_attributes({new attribute(strings[3310], new named_type(IFC4X2_types[1121]), false),new attribute(strings[3311], new named_type(IFC4X2_types[1121]), false)}, {false,false});
((entity*)IFC4X2_types[1125])->set_attributes({new attribute(strings[2495], new named_type(IFC4X2_types[534]), false),new attribute(strings[2470], new named_type(IFC4X2_types[1097]), true),new attribute(strings[3310], new named_type(IFC4X2_types[279]), false),new attribute(strings[3311], new named_type(IFC4X2_types[279]), false),new attribute(strings[3312], new named_type(IFC4X2_types[1126]), false),new attribute(strings[3139], new named_type(IFC4X2_types[277]), false),new attribute(strings[3140], new named_type(IFC4X2_types[534]), true),new attribute(strings[2685], new named_type(IFC4X2_types[1157]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1127])->set_attributes({new attribute(strings[2823], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[1168])), false)}, {false});
((entity*)IFC4X2_types[1131])->set_attributes({new attribute(strings[3313], new named_type(IFC4X2_types[721]), false),new attribute(strings[3314], new named_type(IFC4X2_types[721]), false)}, {false,false,false});
((entity*)IFC4X2_types[1133])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1135]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1134])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1135]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1137])->set_attributes({new attribute(strings[3315], new named_type(IFC4X2_types[721]), true),new attribute(strings[3316], new named_type(IFC4X2_types[721]), true),new attribute(strings[3317], new named_type(IFC4X2_types[84]), false),new attribute(strings[3318], new named_type(IFC4X2_types[84]), false),new attribute(strings[3319], new named_type(IFC4X2_types[1138]), false)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1140])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1142]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1141])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1142]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1143])->set_attributes({new attribute(strings[3320], new named_type(IFC4X2_types[721]), false),new attribute(strings[3321], new named_type(IFC4X2_types[721]), false),new attribute(strings[2581], new named_type(IFC4X2_types[721]), false),new attribute(strings[3322], new named_type(IFC4X2_types[545]), false)}, {false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1144])->set_attributes({new attribute(strings[3323], new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4X2_types[673]))), true),new attribute(strings[2950], new named_type(IFC4X2_types[84]), true),new attribute(strings[2814], new aggregation_type(aggregation_type::list_type, 1, -1, new aggregation_type(aggregation_type::list_type, 3, 3, new named_type(IFC4X2_types[720]))), false),new attribute(strings[2952], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[720])), true)}, {false,false,false,false,false});
((entity*)IFC4X2_types[1145])->set_attributes({new attribute(strings[3324], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[515])), false)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[1146])->set_attributes({new attribute(strings[2909], new named_type(IFC4X2_types[260]), false),new attribute(strings[3325], new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC4X2_types[1148])), false),new attribute(strings[3326], new aggregation_type(aggregation_type::set_type, 1, 2, new named_type(IFC4X2_types[1148])), false),new attribute(strings[3327], new named_type(IFC4X2_types[84]), false),new attribute(strings[3224], new named_type(IFC4X2_types[1147]), false)}, {false,false,false,false,false});
((entity*)IFC4X2_types[1150])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1152]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1151])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1152]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1153])->set_attributes({new attribute(strings[3328], new named_type(IFC4X2_types[505]), true),new attribute(strings[3329], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[772])), true)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[1154])->set_attributes({new attribute(strings[2515], new named_type(IFC4X2_types[505]), true),new attribute(strings[2466], new named_type(IFC4X2_types[1097]), true),new attribute(strings[3330], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1155])->set_attributes({new attribute(strings[3331], new aggregation_type(aggregation_type::list_type, 1, -1, new named_type(IFC4X2_types[888])), true),new attribute(strings[2488], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1156])->set_attributes({new attribute(strings[2515], new named_type(IFC4X2_types[505]), true),new attribute(strings[2466], new named_type(IFC4X2_types[1097]), true),new attribute(strings[3332], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1167])->set_attributes({new attribute(strings[2589], new named_type(IFC4X2_types[721]), false),new attribute(strings[3253], new named_type(IFC4X2_types[721]), false),new attribute(strings[2526], new named_type(IFC4X2_types[721]), false),new attribute(strings[2804], new named_type(IFC4X2_types[721]), false),new attribute(strings[2805], new named_type(IFC4X2_types[642]), true),new attribute(strings[2824], new named_type(IFC4X2_types[642]), true),new attribute(strings[2807], new named_type(IFC4X2_types[705]), true)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1164])->set_attributes({new attribute(strings[3333], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[1157])), false)}, {false});
((entity*)IFC4X2_types[1158])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1160]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1159])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1160]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1161])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1163]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1162])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1163]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1169])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1171]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1170])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1171]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1173])->set_attributes({new attribute(strings[2765], new named_type(IFC4X2_types[293]), false),new attribute(strings[3334], new named_type(IFC4X2_types[545]), false)}, {false,false});
((entity*)IFC4X2_types[1185])->set_attributes({new attribute(strings[3337], new aggregation_type(aggregation_type::list_type, 2, 2, new named_type(IFC4X2_types[490])), false),new attribute(strings[3338], new aggregation_type(aggregation_type::list_type, 2, 3, new named_type(IFC4X2_types[545])), false)}, {false,false});
((entity*)IFC4X2_types[1186])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1187]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1190])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1194]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1193])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1194]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1198])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1200]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1199])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1200]), false)}, {false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1201])->set_attributes({new attribute(strings[2716], new named_type(IFC4X2_types[721]), true),new attribute(strings[2717], new named_type(IFC4X2_types[721]), true),new attribute(strings[2464], new named_type(IFC4X2_types[1211]), true),new attribute(strings[3339], new named_type(IFC4X2_types[1212]), true),new attribute(strings[3340], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1202])->set_attributes({new attribute(strings[2720], new named_type(IFC4X2_types[721]), true),new attribute(strings[2721], new named_type(IFC4X2_types[642]), true),new attribute(strings[2724], new named_type(IFC4X2_types[642]), true),new attribute(strings[3341], new named_type(IFC4X2_types[642]), true),new attribute(strings[3342], new named_type(IFC4X2_types[643]), true),new attribute(strings[3343], new named_type(IFC4X2_types[643]), true),new attribute(strings[3344], new named_type(IFC4X2_types[643]), true),new attribute(strings[3345], new named_type(IFC4X2_types[643]), true),new attribute(strings[2730], new named_type(IFC4X2_types[931]), true),new attribute(strings[2726], new named_type(IFC4X2_types[545]), true),new attribute(strings[2731], new named_type(IFC4X2_types[545]), true),new attribute(strings[2732], new named_type(IFC4X2_types[545]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1205])->set_attributes({new attribute(strings[2718], new named_type(IFC4X2_types[1203]), false),new attribute(strings[2736], new named_type(IFC4X2_types[1204]), false),new attribute(strings[2927], new named_type(IFC4X2_types[721]), true),new attribute(strings[2928], new named_type(IFC4X2_types[721]), true),new attribute(strings[2730], new named_type(IFC4X2_types[931]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1207])->set_attributes({new attribute(strings[2737], new named_type(IFC4X2_types[1208]), false),new attribute(strings[2718], new named_type(IFC4X2_types[1209]), false),new attribute(strings[2738], new named_type(IFC4X2_types[84]), false),new attribute(strings[2739], new named_type(IFC4X2_types[84]), false)}, {false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1210])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1211]), false),new attribute(strings[3339], new named_type(IFC4X2_types[1212]), false),new attribute(strings[2738], new named_type(IFC4X2_types[84]), true),new attribute(strings[3340], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1213])->set_attributes({new attribute(strings[3346], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[1220])), true),new attribute(strings[3347], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[1220])), true),new attribute(strings[2464], new named_type(IFC4X2_types[1214]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1215])->set_attributes({new attribute(strings[2924], new named_type(IFC4X2_types[279]), false),new attribute(strings[3348], new aggregation_type(aggregation_type::set_type, 1, -1, new named_type(IFC4X2_types[682])), true),new attribute(strings[2471], new named_type(IFC4X2_types[534]), true),new attribute(strings[3349], new named_type(IFC4X2_types[343]), true),new attribute(strings[3269], new named_type(IFC4X2_types[343]), true),new attribute(strings[3310], new named_type(IFC4X2_types[279]), false),new attribute(strings[3350], new named_type(IFC4X2_types[279]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1216])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1217]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1218])->set_attributes({new attribute(strings[2464], new named_type(IFC4X2_types[1219]), true)}, {false,false,false,false,false,false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1220])->set_attributes({new attribute(strings[3351], new named_type(IFC4X2_types[816]), true),new attribute(strings[3352], new named_type(IFC4X2_types[278]), true),new attribute(strings[3353], new named_type(IFC4X2_types[278]), true)}, {false,false,false,false,false,false});
((entity*)IFC4X2_types[1222])->set_attributes({new attribute(strings[2589], new named_type(IFC4X2_types[721]), false),new attribute(strings[3253], new named_type(IFC4X2_types[721]), false),new attribute(strings[2526], new named_type(IFC4X2_types[721]), false),new attribute(strings[2804], new named_type(IFC4X2_types[721]), false),new attribute(strings[2805], new named_type(IFC4X2_types[642]), true),new attribute(strings[2824], new named_type(IFC4X2_types[642]), true)}, {false,false,false,false,false,false,false,false,false});
((entity*)IFC4X2_types[1221])->set_attributes({new attribute(strings[2588], new named_type(IFC4X2_types[534]), true)}, {false,false,false,false,false,false});
return new schema_definition(strings[3479], {IFC4X2_types[0],IFC4X2_types[1],IFC4X2_types[2],IFC4X2_types[3],IFC4X2_types[4],IFC4X2_types[5],IFC4X2_types[6],IFC4X2_types[7],IFC4X2_types[8],IFC4X2_types[9],IFC4X2_types[10],IFC4X2_types[11],IFC4X2_types[12],IFC4X2_types[13],IFC4X2_types[14],IFC4X2_types[15],IFC4X2_types[16],IFC4X2_types[17],IFC4X2_types[18],IFC4X2_types[19],IFC4X2_types[20],IFC4X2_types[21],IFC4X2_types[22],IFC4X2_types[23],IFC4X2_types[24],IFC4X2_types[25],IFC4X2_types[26],IFC4X2_types[27],IFC4X2_types[28],IFC4X2_types[29],IFC4X2_types[30],IFC4X2_types[31],IFC4X2_types[32],IFC4X2_types[33],IFC4X2_types[34],IFC4X2_types[35],IFC4X2_types[36],IFC4X2_types[37],IFC4X2_types[38],IFC4X2_types[39],IFC4X2_types[40],IFC4X2_types[41],IFC4X2_types[42],IFC4X2_types[43],IFC4X2_types[44],IFC4X2_types[45],IFC4X2_types[46],IFC4X2_types[47],IFC4X2_types[48],IFC4X2_types[49],IFC4X2_types[50],IFC4X2_types[51],IFC4X2_types[52],IFC4X2_types[53],IFC4X2_types[54],IFC4X2_types[55],IFC4X2_types[56],IFC4X2_types[57],IFC4X2_types[58],IFC4X2_types[59],IFC4X2_types[60],IFC4X2_types[61],IFC4X2_types[62],IFC4X2_types[63],IFC4X2_types[64],IFC4X2_types[65],IFC4X2_types[66],IFC4X2_types[67],IFC4X2_types[68],IFC4X2_types[69],IFC4X2_types[70],IFC4X2_types[71],IFC4X2_types[72],IFC4X2_types[73],IFC4X2_types[74],IFC4X2_types[75],IFC4X2_types[76],IFC4X2_types[77],IFC4X2_types[78],IFC4X2_types[79],IFC4X2_types[80],IFC4X2_types[81],IFC4X2_types[82],IFC4X2_types[83],IFC4X2_types[84],IFC4X2_types[85],IFC4X2_types[86],IFC4X2_types[87],IFC4X2_types[88],IFC4X2_types[89],IFC4X2_types[90],IFC4X2_types[91],IFC4X2_types[92],IFC4X2_types[93],IFC4X2_types[94],IFC4X2_types[95],IFC4X2_types[96],IFC4X2_types[97],IFC4X2_types[98],IFC4X2_types[99],IFC4X2_types[100],IFC4X2_types[101],IFC4X2_types[102],IFC4X2_types[103],IFC4X2_types[104],IFC4X2_types[105],IFC4X2_types[106],IFC4X2_types[107],IFC4X2_types[108],IFC4X2_types[109],IFC4X2_types[110],IFC4X2_types[111],IFC4X2_types[112],IFC4X2_types[113],IFC4X2_types[114],IFC4X2_types[115],IFC4X2_types[116],IFC4X2_types[117],IFC4X2_types[118],IFC4X2_types[119],IFC4X2_types[120],IFC4X2_types[121],IFC4X2_types[122],IFC4X2_types[123],IFC4X2_types[124],IFC4X2_types[125],IFC4X2_types[126],IFC4X2_types[127],IFC4X2_types[128],IFC4X2_types[129],IFC4X2_types[130],IFC4X2_types[131],IFC4X2_types[132],IFC4X2_types[133],IFC4X2_types[134],IFC4X2_types[135],IFC4X2_types[136],IFC4X2_types[137],IFC4X2_types[138],IFC4X2_types[139],IFC4X2_types[140],IFC4X2_types[141],IFC4X2_types[142],IFC4X2_types[143],IFC4X2_types[144],IFC4X2_types[145],IFC4X2_types[146],IFC4X2_types[147],IFC4X2_types[148],IFC4X2_types[149],IFC4X2_types[150],IFC4X2_types[151],IFC4X2_types[152],IFC4X2_types[153],IFC4X2_types[154],IFC4X2_types[155],IFC4X2_types[156],IFC4X2_types[157],IFC4X2_types[158],IFC4X2_types[159],IFC4X2_types[160],IFC4X2_types[161],IFC4X2_types[162],IFC4X2_types[163],IFC4X2_types[164],IFC4X2_types[165],IFC4X2_types[166],IFC4X2_types[167],IFC4X2_types[168],IFC4X2_types[169],IFC4X2_types[170],IFC4X2_types[171],IFC4X2_types[172],IFC4X2_types[173],IFC4X2_types[174],IFC4X2_types[175],IFC4X2_types[176],IFC4X2_types[177],IFC4X2_types[178],IFC4X2_types[179],IFC4X2_types[180],IFC4X2_types[181],IFC4X2_types[182],IFC4X2_types[183],IFC4X2_types[184],IFC4X2_types[185],IFC4X2_types[186],IFC4X2_types[187],IFC4X2_types[188],IFC4X2_types[189],IFC4X2_types[190],IFC4X2_types[191],IFC4X2_types[192],IFC4X2_types[193],IFC4X2_types[194],IFC4X2_types[195],IFC4X2_types[196],IFC4X2_types[197],IFC4X2_types[198],IFC4X2_types[199],IFC4X2_types[200],IFC4X2_types[201],IFC4X2_types[202],IFC4X2_types[203],IFC4X2_types[204],IFC4X2_types[205],IFC4X2_types[206],IFC4X2_types[207],IFC4X2_types[208],IFC4X2_types[209],IFC4X2_types[210],IFC4X2_types[211],IFC4X2_types[212],IFC4X2_types[213],IFC4X2_types[214],IFC4X2_types[215],IFC4X2_types[216],IFC4X2_types[217],IFC4X2_types[218],IFC4X2_types[219],IFC4X2_types[220],IFC4X2_types[221],IFC4X2_types[222],IFC4X2_types[223],IFC4X2_types[224],IFC4X2_types[225],IFC4X2_types[226],IFC4X2_types[227],IFC4X2_types[228],IFC4X2_types[229],IFC4X2_types[230