ThatOpen / engine_web-ifc

Reading and writing IFC files with Javascript, at native speeds.
https://thatopen.github.io/engine_web-ifc/demo
Mozilla Public License 2.0
617 stars 190 forks source link

Unexpected mesh type & Unexpected style type & Unexpected profile type #156

Closed agviegas closed 2 years ago

agviegas commented 2 years ago

Model here.

leobasement commented 2 years ago

Hello everyone,

I am experiencing same/similar effects and for now it seems to me to depend on what kind of model view definition is used to export the IFC file. Double checked the exported files in BIMvision without any problems. Atm I am doing some research to get a deeper understandig of the model view definitions and maybe find out what could cause the problem in "our" ifc.js viewers.

Short and quick: The "IFC Reference View Architectual", exported from Revit 22 (exporter v. 22.0.2.392), shows windows and doors, the Design Transfer View however dows not.

My plan is to bundle it up as an issue with figures and stuff as soon as I got some deeper understanding of the MVDs.

Best Regards!

leobasement commented 2 years ago

Update:

Modeltool: Revit 2022, IFC exporter version: 22.0.2.392

Example in Revit: revit_wall Result in BIMvision bimvision_wall_v Result in my app: ifcjs_wall

My learnings so far:

All geometry that is not generated out of IFC4 DTV as we would expect it, is defined as advanced breps. Expample: _#4628= IFCWINDOW('0FKEgfoTvE6OTV499HsaEf',#42,'name',#7742,#4621,'2474583',2.25,2.,.WINDOW.,.NOTDEFINED.,$);

4621= IFCPRODUCTDEFINITIONSHAPE($,$,(#4619));

4619= IFCSHAPEREPRESENTATION(#120,'Body','MappedRepresentation',(#4617));

4617= IFCMAPPEDITEM(#4510,#4616);

4510= IFCREPRESENTATIONMAP(#4509,#4507);

4507= IFCSHAPEREPRESENTATION(#120,'Body','AdvancedBrep',(#823,#995,#1167,#2115,#2947,#3459,#4255,#4499));

4499= IFCADVANCEDBREP(#4497);_

The only thing visible in IFC4 Design Transfer View (DTV) is the door opening, which is defined as IfcRectangleProfileDef:

_#7352= IFCOPENINGELEMENT('0FKEgfoTvE6OTV485HsaCZ',#42,'name',$,$,#7350,#7344,'2474717',.OPENING.);

7344= IFCPRODUCTDEFINITIONSHAPE($,$,(#7342));

7342= IFCSHAPEREPRESENTATION(#120,'Body','SweptSolid',(#7341));

7341= IFCEXTRUDEDAREASOLID(#7339,#7340,#20,0.46);

7339= IFCRECTANGLEPROFILEDEF(.AREA.,$,#7338,2.315,0.885);_

In IFC4 Reference View (RVA), the relevant elements are defined as IfcPolygonalFaceSets:

_#4022=IFCDOOR('0FKEgfoTvE6OTV499HsaCZ',#42,'name',$',#4171,#4015,'2474717',2.315,0.885,.DOOR.,.SINGLE_SWING_RIGHT.,$);

4015= IFCPRODUCTDEFINITIONSHAPE($,$,(#4013));

4013= IFCSHAPEREPRESENTATION(#120,'Body','MappedRepresentation',(#4011));

4011= IFCMAPPEDITEM(#3977,#1700);

3977= IFCREPRESENTATIONMAP(#3976,#3974);

3974=IFCSHAPEREPRESENTATION(#120,'Body','Tessellation'(#1777,#2024,#2323,#2616,#2807,#3074,#3373,#3666,#3857,#3948));

3948= IFCPOLYGONALFACESET(#3922,.T.,(#3894,#3896,#3898,#3900,#3902,#3904,#3906,#3908,#3910,#3912,#3914,#3916,#3918,#3920),$);

3922= IFCCARTESIANPOINTLIST3D

xxxx= IFCPOLYGONALFACESET ..._

So, for now it seems to me, that the advanced brep is some how not known. I already tried to dig into the web-ifc files and find where those "translations" are defined, but im pretty new to js, what makes it kind of tricky for me (actually I am learning it to work with ifc.js for my masterthesis..). I hope the devs can use the information above..

Another issue I experienced, are IPE/H beams, which lie horizontal instead of being vertical in place:

Expected: bimvision_beam

Result with DTV: dtv_beam

Result with RVA: rva_beam

In DTV the beam geometry is defined as IfcIShapeProfileDef. In RVA its IfcArbitraryClosedProfileDef.

I will keep you updated in case I find out something new.

Best Regards

PS: Im new to github too.. Feel free to stop me if I am wrong :D

agviegas commented 2 years ago

This issue is now a bounty. Whoever solves this will get $200. More information here.

QuimMoya commented 2 years ago

APOGEA is interested in this bounty, we will try to solve it. I think a week is enough to solve it.

agviegas commented 2 years ago

Merged with the other advanced breps bounties as instructed by you @QuimMoya !