I suspect a formatting error in your file - it is draconian about spacing at the moment. Can you send a trivial revit file and your custom pset file that shows it not working?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Angel,
Yes quite strict about formatting ^_^ But after checking that, I still seem to get the error on the door, not the wall. See attached, where I have tried various setups.
In a world of unlimited ressources, it would be helpfull to have a UI around psets in the exporter (and to be able to add those psets, as custom groups in the software).
Turns out there is a trivial reason for this - IfcDoorStyle (and IfcWindowStyle) aren't IfcElementTypes! They are all in IfcTypeProduct. We are testing this now, but I suspect that if you replace "IfcElementType" with "IfcTypeProduct", your door types will suddenly get their parameters. I'll follow up on this if it turns out not to be the case.
Regards,
Angel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ah I see. And yes indeed it does.
Funny thing is, that the IfcProductType catches both the door and wall - so is it safer/better to use IfcProductType on type parameters, instead of IfcElementType? Could this create unforseen problems elsewhere?
Regards, Troels
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
There could be unforeseen problems anywhere :) The only issue I could see would be that you might get more parameters than you want, but really I think this is the right solution. You could instead replace it with a list: IfcElementType, IfcDoorStyle, IfcWindowStyle - if you wanted to be very safe, but that seems excessive.
Regards,
Angel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Well.. Digging a little deeper, neither IfcElementType, nor IfcTypeProduct pulls anything (for me) on coverings (RVT Roof, RVT Ceiling, RVT Floor, RVT Floor exported as covering).
IfcElement work as expected, on all of those elements.
But that might just be me, who see those issues?
Regards, Troels
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
There are actually two separate issues having to do with type parameters.
Type parameters for doors and windows don't export: this has the simple fix I mentioned above, to change IfcElementType to IfcTypeProduct.
Type parameters for IfcRoofs and a few other types (*) don't export: this is an issue with IFC2x3 itself. Namely, there is no IfcRoofType in IFC2x3, so there is no type to attach the properties to. I've made a local fix for this by basically adding IfcRoof and the others whenever a user chooses IfcElementType, IfcTypeProduct, or IfcTypeObject to the list, too). This is clearly a hack, and one that isn't needed (or used) in IFC4. The workaround for user-defined property sets is to explicitly add IfcRoof and similar entities to the list of entities to support.
Now, IfcElementType shouldn't work on IfcCovering - they are an IfcElement, not an IfcElementType. To understand the difference, IfcElement corresponds to instances (like, a desk or a wall in Revit), and IfcElementType corresponds to the type associated to the instance (e.g., "work table", or "partition wall"). So if you want a property set associated to all instances, use IfcElement. If you want it associated to all types, use IfcTypeProduct (with the caveats above).
Hi,
When I use a custom pset, with "T ElementType", the pset don't export for doors, but do on walls.
Is that something you see also?
Regards, Troels
I suspect a formatting error in your file - it is draconian about spacing at the moment. Can you send a trivial revit file and your custom pset file that shows it not working?
Hi Angel,
Yes quite strict about formatting ^_^ But after checking that, I still seem to get the error on the door, not the wall. See attached, where I have tried various setups.
In a world of unlimited ressources, it would be helpfull to have a UI around psets in the exporter (and to be able to add those psets, as custom groups in the software).
HI Troels,
Sorry for the delay in this - we will be looking into it. We agree with your UI sentiment, and it is definitely something we are looking into.
Regards,
Angel
Hi Troels,
Turns out there is a trivial reason for this - IfcDoorStyle (and IfcWindowStyle) aren't IfcElementTypes! They are all in IfcTypeProduct. We are testing this now, but I suspect that if you replace "IfcElementType" with "IfcTypeProduct", your door types will suddenly get their parameters. I'll follow up on this if it turns out not to be the case.
Regards,
Angel
Hi Angel,
Ah I see. And yes indeed it does.
Funny thing is, that the IfcProductType catches both the door and wall - so is it safer/better to use IfcProductType on type parameters, instead of IfcElementType? Could this create unforseen problems elsewhere?
Regards, Troels
Hi Troels,
There could be unforeseen problems anywhere :) The only issue I could see would be that you might get more parameters than you want, but really I think this is the right solution. You could instead replace it with a list: IfcElementType, IfcDoorStyle, IfcWindowStyle - if you wanted to be very safe, but that seems excessive.
Regards,
Angel
Hi,
Well.. Digging a little deeper, neither IfcElementType, nor IfcTypeProduct pulls anything (for me) on coverings (RVT Roof, RVT Ceiling, RVT Floor, RVT Floor exported as covering).
IfcElement work as expected, on all of those elements.
But that might just be me, who see those issues?
Regards, Troels
Hi Troels,
There are actually two separate issues having to do with type parameters.
Now, IfcElementType shouldn't work on IfcCovering - they are an IfcElement, not an IfcElementType. To understand the difference, IfcElement corresponds to instances (like, a desk or a wall in Revit), and IfcElementType corresponds to the type associated to the instance (e.g., "work table", or "partition wall"). So if you want a property set associated to all instances, use IfcElement. If you want it associated to all types, use IfcTypeProduct (with the caveats above).
Regards,
Angel
(*) IfcFooting, IfcPile, IfcRamp, IfcRoof, IfcStair.