Adicionar demo IFC como opção
Adicionado suporte para carregar o modelo demo IFC (demo250hp.ifc) como opção de teste, incluindo fluxo de conversão para GLB, geração de URL e exibição na tela inicial. Também integrei um novo botão de demo IFC na página Index, paralelo ao demo GLB, com estado de carregamento e mensagens de sucesso/erro. X-Lovable-Edit-ID: edt-1299c6d1-18e7-42f9-8b88-a7569f8bfd3f
This commit is contained in:
@@ -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;
|
||||
+33
-9
@@ -12,6 +12,7 @@ const Index = () => {
|
||||
const navigate = useNavigate();
|
||||
const fileInputRef = useRef<HTMLInputElement>(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,21 +141,27 @@ const Index = () => {
|
||||
</div>
|
||||
</Button>
|
||||
|
||||
{/* Demo button */}
|
||||
{/* Demo buttons */}
|
||||
<div className="grid grid-cols-2 gap-2">
|
||||
<Button
|
||||
variant="outline"
|
||||
className="h-12 w-full gap-3 border-muted-foreground/30 text-muted-foreground hover:border-primary hover:text-primary transition-all"
|
||||
className="h-12 w-full gap-2 border-muted-foreground/30 text-muted-foreground hover:border-primary hover:text-primary transition-all text-xs"
|
||||
onClick={handleLoadDemo}
|
||||
disabled={loadingDemo}>
|
||||
|
||||
{loadingDemo ?
|
||||
<Loader2 className="h-4 w-4 animate-spin" /> :
|
||||
|
||||
<Package className="h-4 w-4" />
|
||||
}
|
||||
{loadingDemo ? 'Gerando modelo…' : 'Carregar Demo — Viga IPE 200'}
|
||||
{loadingDemo ? <Loader2 className="h-4 w-4 animate-spin" /> : <Package className="h-4 w-4" />}
|
||||
{loadingDemo ? 'Gerando…' : 'Demo — Viga IPE 200'}
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
variant="outline"
|
||||
className="h-12 w-full gap-2 border-muted-foreground/30 text-muted-foreground hover:border-primary hover:text-primary transition-all text-xs"
|
||||
onClick={handleLoadDemoIFC}
|
||||
disabled={loadingDemoIFC}>
|
||||
{loadingDemoIFC ? <Loader2 className="h-4 w-4 animate-spin" /> : <Package className="h-4 w-4" />}
|
||||
{loadingDemoIFC ? 'Convertendo…' : 'Demo — 250 HP (IFC)'}
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
|
||||
{model &&
|
||||
<div className="rounded-lg border border-primary/30 bg-primary/5 p-4 glow-primary">
|
||||
|
||||
Reference in New Issue
Block a user