diff --git a/public/models/demo250hp.ifc b/public/models/demo250hp.ifc new file mode 100644 index 0000000..7c4c283 --- /dev/null +++ b/public/models/demo250hp.ifc @@ -0,0 +1,312 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition[CoordinationView_V2.0]'),'2;1'); +FILE_NAME('demo250hp.ifc','2026-02-27T02:39:44',(''),(''),'IFC Toolkit 2.0.5.0','Advance Steel 2026',''); +FILE_SCHEMA(('IFC2X3')); +ENDSEC; + +DATA; +#10=IFCPROJECT('2DT5wg6WX7rezBAeonIUfk',#150,'','','','','',(#20),#70); +#20=IFCGEOMETRICREPRESENTATIONCONTEXT('','Model',3,1.E-9,#30,$); +#30=IFCAXIS2PLACEMENT3D(#60,#40,#50); +#40=IFCDIRECTION((0.,0.,1.)); +#50=IFCDIRECTION((1.,0.,0.)); +#60=IFCCARTESIANPOINT((0.,0.,0.)); +#70=IFCUNITASSIGNMENT((#80,#90,#100,#110)); +#80=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); +#90=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); +#100=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); +#110=IFCCONVERSIONBASEDUNIT(#140,.PLANEANGLEUNIT.,'DEGREE',#120); +#120=IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.01745329),#130); +#130=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); +#140=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0); +#150=IFCOWNERHISTORY(#160,#190,.READWRITE.,.ADDED.,$,$,$,1772159984); +#160=IFCPERSONANDORGANIZATION(#170,#180,$); +#170=IFCPERSON($,'','',$,$,$,$,$); +#180=IFCORGANIZATION($,'',$,$,$); +#190=IFCAPPLICATION(#200,'2026','Advance Steel','Autodesk.Advance Steel'); +#200=IFCORGANIZATION($,'Autodesk',$,$,$); +#210=IFCSITE('04ML2i$7D9q86fWFPRroHZ',#150,'Site',$,$,#220,$,$,.ELEMENT.,$,$,$,$,$); +#220=IFCLOCALPLACEMENT($,#30); +#230=IFCRELAGGREGATES('3tjE7iFjn3ufwIxhVOXIUw',#150,'','',#10,(#210)); +#240=IFCBUILDING('3JXghxssb7OQ4KP3Ii9vYF',#150,'Estrutura 1',$,$,#250,$,$,.ELEMENT.,$,$,$); +#250=IFCLOCALPLACEMENT(#220,#30); +#260=IFCBUILDINGSTOREY('3_$nBfxC18bvJzfGsMeQH3',#150,'Default Storey',$,$,#270,$,$,.ELEMENT.,0.); +#270=IFCLOCALPLACEMENT(#250,#280); +#280=IFCAXIS2PLACEMENT3D(#310,#290,#300); +#290=IFCDIRECTION((0.,0.,1.)); +#300=IFCDIRECTION((1.,0.,0.)); +#310=IFCCARTESIANPOINT((0.,0.,0.)); +#320=IFCRELAGGREGATES('1jLUF13CP81Bs8ZsCWtzPW',#150,'All storey from Estrutura 1','',#240,(#260)); +#330=IFCRELAGGREGATES('3h2yAAIv1Aax5kPvdFdcAU',#150,'','',#210,(#240)); +#340=IFCOPENINGELEMENT('2KRtNp9hD60vEN5PSzSRO3',#150,$,$,'Opening',#350,#400,$); +#350=IFCLOCALPLACEMENT(#1680,#360); +#360=IFCAXIS2PLACEMENT3D(#390,#370,#380); +#370=IFCDIRECTION((1.,0.,0.)); +#380=IFCDIRECTION((0.,0.,-1.)); +#390=IFCCARTESIANPOINT((-5.75,0.,-750.)); +#400=IFCPRODUCTDEFINITIONSHAPE($,$,(#410)); +#410=IFCSHAPEREPRESENTATION(#20,'Body','SweptSolid',(#420)); +#420=IFCEXTRUDEDAREASOLID(#440,#480,#430,11.5); +#430=IFCDIRECTION((0.,0.,1.)); +#440=IFCCIRCLEPROFILEDEF(.AREA.,$,#450,12.001); +#450=IFCAXIS2PLACEMENT2D(#470,#460); +#460=IFCDIRECTION((1.,0.)); +#470=IFCCARTESIANPOINT((700.,0.)); +#480=IFCAXIS2PLACEMENT3D(#490,$,$); +#490=IFCCARTESIANPOINT((0.,0.,0.)); +#500=IFCOPENINGELEMENT('0L6jtphXrDCuRMjYMRW44K',#150,$,$,'Opening',#510,#560,$); +#510=IFCLOCALPLACEMENT(#1680,#520); +#520=IFCAXIS2PLACEMENT3D(#550,#530,#540); +#530=IFCDIRECTION((1.,0.,0.)); +#540=IFCDIRECTION((0.,0.,-1.)); +#550=IFCCARTESIANPOINT((-5.75,0.,-750.)); +#560=IFCPRODUCTDEFINITIONSHAPE($,$,(#570)); +#570=IFCSHAPEREPRESENTATION(#20,'Body','SweptSolid',(#580)); +#580=IFCEXTRUDEDAREASOLID(#600,#640,#590,11.5); +#590=IFCDIRECTION((0.,0.,1.)); +#600=IFCCIRCLEPROFILEDEF(.AREA.,$,#610,12.001); +#610=IFCAXIS2PLACEMENT2D(#630,#620); +#620=IFCDIRECTION((1.,0.)); +#630=IFCCARTESIANPOINT((-700.,0.)); +#640=IFCAXIS2PLACEMENT3D(#650,$,$); +#650=IFCCARTESIANPOINT((0.,0.,0.)); +#660=IFCOPENINGELEMENT('2mnNrw6Q137eOYNadfiUOd',#150,$,$,'Opening',#670,#720,$); +#670=IFCLOCALPLACEMENT(#1680,#680); +#680=IFCAXIS2PLACEMENT3D(#710,#690,#700); +#690=IFCDIRECTION((1.,0.,0.)); +#700=IFCDIRECTION((0.,0.,-1.)); +#710=IFCCARTESIANPOINT((-5.75,0.,-750.)); +#720=IFCPRODUCTDEFINITIONSHAPE($,$,(#730)); +#730=IFCSHAPEREPRESENTATION(#20,'Body','SweptSolid',(#740)); +#740=IFCEXTRUDEDAREASOLID(#760,#800,#750,11.5); +#750=IFCDIRECTION((0.,0.,1.)); +#760=IFCCIRCLEPROFILEDEF(.AREA.,$,#770,12.001); +#770=IFCAXIS2PLACEMENT2D(#790,#780); +#780=IFCDIRECTION((1.,0.)); +#790=IFCCARTESIANPOINT((700.,70.)); +#800=IFCAXIS2PLACEMENT3D(#810,$,$); +#810=IFCCARTESIANPOINT((0.,0.,0.)); +#820=IFCOPENINGELEMENT('1IALD08qr1F9QPKHVU$yup',#150,$,$,'Opening',#830,#880,$); +#830=IFCLOCALPLACEMENT(#1680,#840); +#840=IFCAXIS2PLACEMENT3D(#870,#850,#860); +#850=IFCDIRECTION((1.,0.,0.)); +#860=IFCDIRECTION((0.,0.,-1.)); +#870=IFCCARTESIANPOINT((-5.75,0.,-750.)); +#880=IFCPRODUCTDEFINITIONSHAPE($,$,(#890)); +#890=IFCSHAPEREPRESENTATION(#20,'Body','SweptSolid',(#900)); +#900=IFCEXTRUDEDAREASOLID(#920,#960,#910,11.5); +#910=IFCDIRECTION((0.,0.,1.)); +#920=IFCCIRCLEPROFILEDEF(.AREA.,$,#930,12.001); +#930=IFCAXIS2PLACEMENT2D(#950,#940); +#940=IFCDIRECTION((1.,0.)); +#950=IFCCARTESIANPOINT((-700.,70.)); +#960=IFCAXIS2PLACEMENT3D(#970,$,$); +#970=IFCCARTESIANPOINT((0.,0.,0.)); +#980=IFCOPENINGELEMENT('1oC4cTdm9Cx9q6eFWND0rJ',#150,$,$,'Opening',#990,#1040,$); +#990=IFCLOCALPLACEMENT(#1680,#1000); +#1000=IFCAXIS2PLACEMENT3D(#1030,#1010,#1020); +#1010=IFCDIRECTION((1.,0.,0.)); +#1020=IFCDIRECTION((0.,0.,-1.)); +#1030=IFCCARTESIANPOINT((-5.75,0.,-750.)); +#1040=IFCPRODUCTDEFINITIONSHAPE($,$,(#1050)); +#1050=IFCSHAPEREPRESENTATION(#20,'Body','SweptSolid',(#1060)); +#1060=IFCEXTRUDEDAREASOLID(#1080,#1120,#1070,11.5); +#1070=IFCDIRECTION((0.,0.,1.)); +#1080=IFCCIRCLEPROFILEDEF(.AREA.,$,#1090,12.001); +#1090=IFCAXIS2PLACEMENT2D(#1110,#1100); +#1100=IFCDIRECTION((1.,0.)); +#1110=IFCCARTESIANPOINT((700.,-70.)); +#1120=IFCAXIS2PLACEMENT3D(#1130,$,$); +#1130=IFCCARTESIANPOINT((0.,0.,0.)); +#1140=IFCOPENINGELEMENT('0uUSXjP1vF6PSyOIqMg32b',#150,$,$,'Opening',#1150,#1200,$); +#1150=IFCLOCALPLACEMENT(#1680,#1160); +#1160=IFCAXIS2PLACEMENT3D(#1190,#1170,#1180); +#1170=IFCDIRECTION((1.,0.,0.)); +#1180=IFCDIRECTION((0.,0.,-1.)); +#1190=IFCCARTESIANPOINT((-5.75,0.,-750.)); +#1200=IFCPRODUCTDEFINITIONSHAPE($,$,(#1210)); +#1210=IFCSHAPEREPRESENTATION(#20,'Body','SweptSolid',(#1220)); +#1220=IFCEXTRUDEDAREASOLID(#1240,#1280,#1230,11.5); +#1230=IFCDIRECTION((0.,0.,1.)); +#1240=IFCCIRCLEPROFILEDEF(.AREA.,$,#1250,12.001); +#1250=IFCAXIS2PLACEMENT2D(#1270,#1260); +#1260=IFCDIRECTION((1.,0.)); +#1270=IFCCARTESIANPOINT((-700.,-70.)); +#1280=IFCAXIS2PLACEMENT3D(#1290,$,$); +#1290=IFCCARTESIANPOINT((0.,0.,0.)); +#1300=IFCOPENINGELEMENT('0zzsnsdkLDoAv_hGo04MeQ',#150,$,$,'Opening',#1310,#1360,$); +#1310=IFCLOCALPLACEMENT(#1680,#1320); +#1320=IFCAXIS2PLACEMENT3D(#1350,#1330,#1340); +#1330=IFCDIRECTION((0.,1.,0.)); +#1340=IFCDIRECTION((0.,0.,1.)); +#1350=IFCCARTESIANPOINT((-128.,123.,-1500.)); +#1360=IFCPRODUCTDEFINITIONSHAPE($,$,(#1370)); +#1370=IFCSHAPEREPRESENTATION(#20,'Body','SweptSolid',(#1380)); +#1380=IFCEXTRUDEDAREASOLID(#1400,#1460,#1390,22.5); +#1390=IFCDIRECTION((0.,0.,-1.)); +#1400=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#1410); +#1410=IFCPOLYLINE((#1420,#1430,#1440,#1450)); +#1420=IFCCARTESIANPOINT((0.,0.)); +#1430=IFCCARTESIANPOINT((90.,0.)); +#1440=IFCCARTESIANPOINT((0.,90.)); +#1450=IFCCARTESIANPOINT((0.,0.)); +#1460=IFCAXIS2PLACEMENT3D(#1470,$,$); +#1470=IFCCARTESIANPOINT((0.,0.,0.)); +#1480=IFCOPENINGELEMENT('1BwjEQ0BzCDBp9QGTk$uJW',#150,$,$,'Opening',#1490,#1540,$); +#1490=IFCLOCALPLACEMENT(#1680,#1500); +#1500=IFCAXIS2PLACEMENT3D(#1530,#1510,#1520); +#1510=IFCDIRECTION((-1.,0.,0.)); +#1520=IFCDIRECTION((0.,0.,1.)); +#1530=IFCCARTESIANPOINT((-128.,-123.,-1500.)); +#1540=IFCPRODUCTDEFINITIONSHAPE($,$,(#1550)); +#1550=IFCSHAPEREPRESENTATION(#20,'Body','SweptSolid',(#1560)); +#1560=IFCEXTRUDEDAREASOLID(#1580,#1640,#1570,267.8); +#1570=IFCDIRECTION((0.,0.,-1.)); +#1580=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#1590); +#1590=IFCPOLYLINE((#1600,#1610,#1620,#1630)); +#1600=IFCCARTESIANPOINT((0.,0.)); +#1610=IFCCARTESIANPOINT((8.,0.)); +#1620=IFCCARTESIANPOINT((0.,8.)); +#1630=IFCCARTESIANPOINT((0.,0.)); +#1640=IFCAXIS2PLACEMENT3D(#1650,$,$); +#1650=IFCCARTESIANPOINT((0.,0.,0.)); +#1660=IFCRELVOIDSELEMENT('3lGQD_QBT6mv6d8$JDQY2z',#150,'Hole',$,#1670,#340); +#1670=IFCBEAM('3PJxToq4r1SekdaolgZGGX',#150,'-','HP 250x62.0(H)','-',#1680,#1730,$); +#1680=IFCLOCALPLACEMENT($,#1690); +#1690=IFCAXIS2PLACEMENT3D(#1720,#1700,#1710); +#1700=IFCDIRECTION((-1.,0.,0.)); +#1710=IFCDIRECTION((0.,-1.,0.)); +#1720=IFCCARTESIANPOINT((0.,128.,123.)); +#1730=IFCPRODUCTDEFINITIONSHAPE($,$,(#1740)); +#1740=IFCSHAPEREPRESENTATION(#20,'Body','SweptSolid',(#1750)); +#1750=IFCEXTRUDEDAREASOLID(#1770,#1800,#1760,1500.); +#1760=IFCDIRECTION((0.,0.,-1.)); +#1770=IFCISHAPEPROFILEDEF(.AREA.,'HP 250x62.0(H)',#1780,256.,246.,10.5,10.7,11.8); +#1780=IFCAXIS2PLACEMENT2D(#1790,$); +#1790=IFCCARTESIANPOINT((0.,0.)); +#1800=IFCAXIS2PLACEMENT3D(#1810,$,$); +#1810=IFCCARTESIANPOINT((0.,0.,0.)); +#1820=IFCRELVOIDSELEMENT('0J_rr$kg90uuk5r5jCws2m',#150,'Hole',$,#1670,#500); +#1830=IFCRELVOIDSELEMENT('27aa_V8A5CcPbP_sDPz3Q0',#150,'Hole',$,#1670,#660); +#1840=IFCRELVOIDSELEMENT('2BKaur_bP9_xu7cQ7rMN7W',#150,'Hole',$,#1670,#820); +#1850=IFCRELVOIDSELEMENT('2nTQlS$Q114vq_OGAt5rRR',#150,'Hole',$,#1670,#980); +#1860=IFCRELVOIDSELEMENT('3aEb5jn5r3lv5EBriiO4n2',#150,'Hole',$,#1670,#1140); +#1870=IFCRELVOIDSELEMENT('3uFoVx6jH5QPad4w2_BE5a',#150,'Contour Cut',$,#1670,#1300); +#1880=IFCRELVOIDSELEMENT('1F4ppyugX3wAoUTdmp$vV7',#150,'Contour Cut',$,#1670,#1480); +#1890=IFCMATERIAL('S235JRG2'); +#1900=IFCPROPERTYSINGLEVALUE('Reference',$,IFCIDENTIFIER('indefinido'),$); +#1910=IFCPROPERTYSINGLEVALUE('Span',$,IFCPOSITIVELENGTHMEASURE(1500.),$); +#1920=IFCPROPERTYSINGLEVALUE('Slope',$,IFCPLANEANGLEMEASURE(0.),$); +#1930=IFCPROPERTYSINGLEVALUE('IsExternal',$,IFCBOOLEAN(.F.),$); +#1940=IFCPROPERTYSINGLEVALUE('LoadBearing',$,IFCBOOLEAN(.F.),$); +#1950=IFCPROPERTYSINGLEVALUE('FireRating',$,IFCLABEL(''),$); +#1960=IFCPROPERTYSET('2Y6JKJdQrDUhuD3TV2QRtU',#150,'Pset_BeamCommon','',(#1900,#1910,#1920,#1930,#1940,#1950)); +#1970=IFCRELDEFINESBYPROPERTIES('0GOIcPlxj3KweDOkLNcrsQ',#150,'','',(#1670),#1960); +#1980=IFCPROPERTYSINGLEVALUE('SectionFamily',$,IFCIDENTIFIER('Gerdau W'),$); +#1990=IFCPROPERTYSINGLEVALUE('Section',$,IFCIDENTIFIER('HP 250x62.0(H)'),$); +#2000=IFCPROPERTYSET('0k_DyX67v8ExLS8ctRbryr',#150,'ProfileProperties',$,(#1980,#1990)); +#2010=IFCRELDEFINESBYPROPERTIES('3Vwypx57fEQBEFg$$cwrkD',#150,'profile','',(#1670),#2000); +#2020=IFCMATERIAL('A36'); +#2030=IFCMATERIALLAYER(#2020,10.,$); +#2040=IFCMATERIALLAYERSET((#2030),'A36'); +#2050=IFCPROPERTYSINGLEVALUE('Reference',$,IFCIDENTIFIER('indefinido'),$); +#2060=IFCPROPERTYSINGLEVALUE('IsExternal',$,IFCBOOLEAN(.F.),$); +#2070=IFCPROPERTYSINGLEVALUE('LoadBearing',$,IFCBOOLEAN(.F.),$); +#2080=IFCPROPERTYSINGLEVALUE('AcousticRating',$,IFCLABEL(''),$); +#2090=IFCPROPERTYSINGLEVALUE('FireRating',$,IFCLABEL(''),$); +#2100=IFCPROPERTYSINGLEVALUE('ThermalTransmittance',$,$,$); +#2110=IFCPROPERTYSET('3kACE_$Z9E68hw9_TVI6fo',#150,'Pset_PlateCommon','',(#2050,#2060,#2070,#2080,#2090,#2100)); +#2120=IFCRELDEFINESBYPROPERTIES('2D9gDPlYb7XALxmQkLKXI7',#150,'','',(#2130),#2110); +#2130=IFCPLATE('3mVQ_ghi9FMBcRbN5mBddz',#150,'-','-','-',#2140,#2190,$); +#2140=IFCLOCALPLACEMENT($,#2150); +#2150=IFCAXIS2PLACEMENT3D(#2180,#2160,#2170); +#2160=IFCDIRECTION((1.,0.,0.)); +#2170=IFCDIRECTION((0.,0.,1.)); +#2180=IFCCARTESIANPOINT((450.,23.306371206,10.7)); +#2190=IFCPRODUCTDEFINITIONSHAPE($,$,(#2200)); +#2200=IFCSHAPEREPRESENTATION(#20,'Body','SweptSolid',(#2210)); +#2210=IFCEXTRUDEDAREASOLID(#2230,#2320,#2220,10.); +#2220=IFCDIRECTION((0.,0.,1.)); +#2230=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'-',#2240); +#2240=IFCPOLYLINE((#2250,#2260,#2270,#2280,#2290,#2300,#2310)); +#2250=IFCCARTESIANPOINT((-0.,-78.670122858)); +#2260=IFCCARTESIANPOINT((22.076282872,-99.443628794)); +#2270=IFCCARTESIANPOINT((201.420006326,-99.443628794)); +#2280=IFCCARTESIANPOINT((224.6,-79.954531181)); +#2290=IFCCARTESIANPOINT((224.6,-41.101125565)); +#2300=IFCCARTESIANPOINT((0.,0.)); +#2310=IFCCARTESIANPOINT((-0.,-78.670122858)); +#2320=IFCAXIS2PLACEMENT3D(#2350,#2330,#2340); +#2330=IFCDIRECTION((0.,0.,1.)); +#2340=IFCDIRECTION((1.,0.,0.)); +#2350=IFCCARTESIANPOINT((0.,0.,0.)); +#2360=IFCOPENINGELEMENT('2qD784PGbCnhw2ws2G1gJ$',#150,$,$,'Opening',#2370,#2420,$); +#2370=IFCLOCALPLACEMENT(#2700,#2380); +#2380=IFCAXIS2PLACEMENT3D(#2410,#2390,#2400); +#2390=IFCDIRECTION((0.,0.,1.)); +#2400=IFCDIRECTION((1.,0.,0.)); +#2410=IFCCARTESIANPOINT((0.,0.,-0.5)); +#2420=IFCPRODUCTDEFINITIONSHAPE($,$,(#2430)); +#2430=IFCSHAPEREPRESENTATION(#20,'Body','SweptSolid',(#2440)); +#2440=IFCEXTRUDEDAREASOLID(#2460,#2500,#2450,11.); +#2450=IFCDIRECTION((0.,0.,1.)); +#2460=IFCCIRCLEPROFILEDEF(.AREA.,$,#2470,10.501); +#2470=IFCAXIS2PLACEMENT2D(#2490,#2480); +#2480=IFCDIRECTION((1.,0.)); +#2490=IFCCARTESIANPOINT((80.,0.)); +#2500=IFCAXIS2PLACEMENT3D(#2510,$,$); +#2510=IFCCARTESIANPOINT((0.,0.,0.)); +#2520=IFCOPENINGELEMENT('1jQrugihbF5gMeybq_lbVZ',#150,$,$,'Opening',#2530,#2580,$); +#2530=IFCLOCALPLACEMENT(#2700,#2540); +#2540=IFCAXIS2PLACEMENT3D(#2570,#2550,#2560); +#2550=IFCDIRECTION((0.,0.,1.)); +#2560=IFCDIRECTION((1.,0.,0.)); +#2570=IFCCARTESIANPOINT((0.,0.,-0.5)); +#2580=IFCPRODUCTDEFINITIONSHAPE($,$,(#2590)); +#2590=IFCSHAPEREPRESENTATION(#20,'Body','SweptSolid',(#2600)); +#2600=IFCEXTRUDEDAREASOLID(#2620,#2660,#2610,11.); +#2610=IFCDIRECTION((0.,0.,1.)); +#2620=IFCCIRCLEPROFILEDEF(.AREA.,$,#2630,10.501); +#2630=IFCAXIS2PLACEMENT2D(#2650,#2640); +#2640=IFCDIRECTION((1.,0.)); +#2650=IFCCARTESIANPOINT((-80.,0.)); +#2660=IFCAXIS2PLACEMENT3D(#2670,$,$); +#2670=IFCCARTESIANPOINT((0.,0.,0.)); +#2680=IFCRELVOIDSELEMENT('3OPreECob0cQEbtC$C9q30',#150,'Hole',$,#2690,#2360); +#2690=IFCPLATE('0T8TYiRAbEMAkIkZg7JMKV',#150,'-','-','-',#2700,#2750,$); +#2700=IFCLOCALPLACEMENT($,#2710); +#2710=IFCAXIS2PLACEMENT3D(#2740,#2720,#2730); +#2720=IFCDIRECTION((0.,-1.,0.)); +#2730=IFCDIRECTION((1.,0.,0.)); +#2740=IFCCARTESIANPOINT((1025.,133.,296.)); +#2750=IFCPRODUCTDEFINITIONSHAPE($,$,(#2760)); +#2760=IFCSHAPEREPRESENTATION(#20,'Body','SweptSolid',(#2770)); +#2770=IFCEXTRUDEDAREASOLID(#2790,#2860,#2780,10.); +#2780=IFCDIRECTION((0.,0.,1.)); +#2790=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'-',#2800); +#2800=IFCPOLYLINE((#2810,#2820,#2830,#2840,#2850)); +#2810=IFCCARTESIANPOINT((-125.,-50.)); +#2820=IFCCARTESIANPOINT((125.,-50.)); +#2830=IFCCARTESIANPOINT((125.,50.)); +#2840=IFCCARTESIANPOINT((-125.,50.)); +#2850=IFCCARTESIANPOINT((-125.,-50.)); +#2860=IFCAXIS2PLACEMENT3D(#2890,#2870,#2880); +#2870=IFCDIRECTION((0.,0.,1.)); +#2880=IFCDIRECTION((1.,0.,0.)); +#2890=IFCCARTESIANPOINT((0.,0.,0.)); +#2900=IFCRELVOIDSELEMENT('0I78lw9VHB8Qrjc7kP36PU',#150,'Hole',$,#2690,#2520); +#2910=IFCPROPERTYSINGLEVALUE('Reference',$,IFCIDENTIFIER('indefinido'),$); +#2920=IFCPROPERTYSINGLEVALUE('IsExternal',$,IFCBOOLEAN(.F.),$); +#2930=IFCPROPERTYSINGLEVALUE('LoadBearing',$,IFCBOOLEAN(.F.),$); +#2940=IFCPROPERTYSINGLEVALUE('AcousticRating',$,IFCLABEL(''),$); +#2950=IFCPROPERTYSINGLEVALUE('FireRating',$,IFCLABEL(''),$); +#2960=IFCPROPERTYSINGLEVALUE('ThermalTransmittance',$,$,$); +#2970=IFCPROPERTYSET('1lR3xiy8zCaea48iKJp0u6',#150,'Pset_PlateCommon','',(#2910,#2920,#2930,#2940,#2950,#2960)); +#2980=IFCRELDEFINESBYPROPERTIES('2ZXBXq7hr4SQ4Ndu34pcFH',#150,'','',(#2690),#2970); +#2990=IFCRELCONTAINEDINSPATIALSTRUCTURE('2GGJR_03T5FhYQWkBu4oKJ',#150,'Default Storey','',(#1670,#2130,#2690),#260); +#3000=IFCRELASSOCIATESMATERIAL('28bKFNuA13JRzPLBEsqlvD',#150,$,$,(#1670),#1890); +#3010=IFCRELASSOCIATESMATERIAL('0bDmZ13x58EPtwZJJEiSDd',#150,$,$,(#2130,#2690),#2040); +#3020=IFCPRESENTATIONLAYERASSIGNMENT('0',$,(#1740,#2200,#2760),$); +ENDSEC; +END-ISO-10303-21; diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx index ea5919d..f428a0f 100644 --- a/src/pages/Index.tsx +++ b/src/pages/Index.tsx @@ -12,6 +12,7 @@ const Index = () => { const navigate = useNavigate(); const fileInputRef = useRef(null); const [loadingDemo, setLoadingDemo] = useState(false); + const [loadingDemoIFC, setLoadingDemoIFC] = useState(false); const [converting, setConverting] = useState(false); const { model, setModel, xrSupported, setXrSupported } = useModelStore(); @@ -76,6 +77,23 @@ const Index = () => { } }, [setModel]); + const handleLoadDemoIFC = useCallback(async () => { + setLoadingDemoIFC(true); + try { + const response = await fetch('/models/demo250hp.ifc'); + const buffer = await response.arrayBuffer(); + const result = await convertIFCtoGLB(buffer, 'demo250hp.ifc'); + const url = URL.createObjectURL(result.blob); + setModel({ fileName: result.fileName, fileSize: result.fileSize, url }); + toast.success('Modelo demo "250 HP" (IFC) carregado!'); + } catch (err) { + console.error(err); + toast.error('Falha ao converter modelo demo IFC'); + } finally { + setLoadingDemoIFC(false); + } + }, [setModel]); + const handleEnterViewer = () => { if (!model) { toast.error('Importe um modelo GLB primeiro'); @@ -123,20 +141,26 @@ const Index = () => { - {/* Demo button */} - - {loadingDemo ? - : - - - } - {loadingDemo ? 'Gerando modelo…' : 'Carregar Demo — Viga IPE 200'} - + + {model &&