Autodesk / revit-ifc

IFC for Revit and Navisworks (2019+)
485 stars 196 forks source link

Material pset Wall/Floors with several material layers not exported IFC4 #610

Open BIMLUND opened 1 year ago

BIMLUND commented 1 year ago

Hi! I'm not sure if I am doing something wrong or if this is an error. Or if the IFC reader is the problem.

In Revit 2022.1, IFC-export 22.6.2.0

IFC4 Reference View.

Tried all different settings. Same result. Try start a new model in Revit 2022 and export a default wall with several layers.

See printscreen:

image image

AngelVelezSosa commented 1 year ago

Look at the generated IFC file. Does it contain IFCMATERIAL? Does that viewer support constituent sets?

JOuellette-Autodesk commented 1 year ago

@BIMLUND can you post or send me the file?

BIMLUND commented 1 year ago

Hi, Attached is a ZIP with a floor and two IFC, one 2x3 and one 4. In Solibri I see no Material pset. In SimpleBIM I see a pset but with one row and only the name as a single combined value.

I don't know if the two IFC Viewers support IFC materials in IFC 4. But if they don't I guess no viewer does?

Attached is also a PDF where I compare the result in Solibri/SimpleBIM. Floor issue.pdf

IFC 4+Revit.zip

image

BIMLUND commented 1 year ago

Hi, looked at this yet? Is it Revit export problem or Viewer problem? @AngelVelezSosa @JOuellette-Autodesk

JOuellette-Autodesk commented 1 year ago

@BIMLUND I haven't gotten to it yet. I'll need to compare 2022 and 2023. Are you using the Structural or Architectural version of the IFC4 Reference View?

BIMLUND commented 1 year ago

@BIMLUND I haven't gotten to it yet. I'll need to compare 2022 and 2023. Are you using the Structural or Architectural version of the IFC4 Reference View?

Thanks for the update! I tried both, same result.

emielhofman commented 1 year ago

I've got the same problem. But I noticed IfcMaterial is exported but the width is placed under Qto_WallBaseQuantities (In the case of IfcWall). I'm not sure this is the right location for IFC4?

In BIMvision I can also see that the IfcMaterialProperties are exported. The IfcMaterialProperties are not visible in the other Ifc viewers I've tested (BIMcollab Zoom, Solibri). So looks like for the IfcMaterialProperties the visibility is a problem from the Ifc viewer.

I tested this in Revit 2023 and exported it to IFC4 Reference View [Architecture] with IFC exporter 23.2.3.0

Material width visible under Qto_WallBaseQuantities image

IfcMaterialProperties visible in BIMvision ifc viewer image

AngelVelezSosa commented 1 year ago

So it sounds like this is a viewer thing?

emielhofman commented 1 year ago

@AngelVelezSosa I did a second test with exporting to IFC4 Design Transfer View and IFC4x3 and both exports shows the materials on the normal location (tested with multiple ifc viewers). So in a separte material tab and not under Qto_WallBaseQuantities.

So I still think there's a problem with the IFC exporter.

Exported to IFC4 Design Transfer View image

louistrue commented 1 year ago

Or both, as has been the case before @emielhofman : A mix of different interpretations of the IFC Schema in the Revit export and IFC Viewers 🤷 Especially since there are different results depending on the viewer...

louistrue commented 9 months ago

Look at the generated IFC file. Does it contain IFCMATERIAL? Does that viewer support constituent sets?

Hi @AngelVelezSosa

Coming back to this after stumbling upon the (in my humble opinion very unconventional) implementation of multilayer wall / floor export in Reference View (and 4x3 when I last tested, basically anything except 2x3 and Design Transfer).

Could you explain the reasoning behind choosing IfcMaterialConstituentSet? Seems like an odd choice, especially since IfcMaterialLayerSet is implemented in Design Transfer.

While I suppose it isn't technically illegal to use Constituents for layered elements and the docs allow a wide interpretation: https://standards.buildingsmart.org/IFC/DEV/IFC4_2/FINAL/HTML/schema/ifcmaterialresource/lexical/ifcmaterialconstituentset.htm, it would be interesting to know the reasoning...

Thanks

louistrue commented 9 months ago

Look at the generated IFC file. Does it contain IFCMATERIAL? Does that viewer support constituent sets?

Hi @AngelVelezSosa

Coming back to this after stumbling upon the (in my humble opinion very unconventional) implementation of multilayer wall / floor export in Reference View (and 4x3 when I last tested, basically anything except 2x3 and Design Transfer).

Could you explain the reasoning behind choosing IfcMaterialConstituentSet? Seems like an odd choice, especially since IfcMaterialLayerSet is implemented in Design Transfer.

While I suppose it isn't technically illegal to use Constituents for layered elements and the docs allow a wide interpretation: https://standards.buildingsmart.org/IFC/DEV/IFC4_2/FINAL/HTML/schema/ifcmaterialresource/lexical/ifcmaterialconstituentset.htm, it would be interesting to know the reasoning...

Thanks

AngelVelezSosa commented 9 months ago

I believe IfcMaterialConstituentSet is preferred in IFC4. IfcMaterialLayerSet is implemented in IFC4 DTV because that's not a real view, and probably when we changed it for RV, we didn't for DTV also. I'd have to dust off some brain cells to remember where that's actually stated, though, or if we made that up...

louistrue commented 9 months ago

Thanks. I disagree. LayerSet is preferred because of interoperability. Plus, technically, I guess you aren't correctly implementing it since

each part has an individual shape parameter (layer thickness...)

I mean the "width" parameter for layers...

[]()https://standards.buildingsmart.org/IFC/DEV/IFC4_2/FINAL/HTML/schema/ifcmaterialresource/lexical/ifcmaterialconstituentset.htm

_Entity definition IfcMaterialConstituentSet is a collection of individual material constituents, each assigning a material to a part of an element. The parts are only identified by a keyword (as opposed to an IfcMaterialLayerSet or IfcMaterialProfileSet where each part has an individual shape parameter (layer thickness or layer profile).

EXAMPLE The different materials of a window construction shall be provided for the window lining and the window glazing. An IfcMaterialConstituentSet is assigned to the window with two IfcMaterialConstituent's, one with the Name = 'Lining', one with the Name = 'Glazing'. NOTE See the "Material Use Definition" at the individual element to which an IfcMaterialConstituentSet may apply for a required or recommended definition of such keywords._

AngelVelezSosa commented 9 months ago

Let me be clear - I also prefer MaterialLayerSet. I just need to look through the history to understand why/when we decided to use ConstituentSet.

louistrue commented 9 months ago

thanks, got it 👍

louistrue commented 8 months ago

Found anything in the archives yet, @AngelVelezSosa ? 😉