Hi Team,
I am working on a project to generate IFC4 files using Xbim Essentials (version: V5.1.259). While creating IfcCartesianPointList3D, I observed a validation error when validating the generated IFC file against the IFC4 schema.
For example, the generated entity looks like:
#123 = IFCCARTESIANPOINTLIST3D((...),$);
However, as per the IFC4 schema definition (https://validate.buildingsmart.org/report_schema/r771713286), the $ (TagList) argument is not expected in this context, leading to a validation error. We had previously raised this issue (#639) and the suggestion was to move to IFC4x3. While IFC4x3 resolves this issue, we still need to support IFC4 due to a large existing customer base, and transitioning all consumers to IFC4x3 will take time.
On further analysis, I went through the Xbim Essentials source code and found that the implementation of IfcCartesianPointList3D differs between IFC4 and IFC4x3 (https://github.com/xBimTeam/XbimEssentials/blob/master/Xbim.Ifc4/GeometricModelResource/IfcCartesianPointList3D.cs). Based on this, I implemented a fix by removing the optional TagList parameter in the IFC4 implementation, which resolves the validation issue. The proposed change is available here: https://github.com/xBimTeam/XbimEssentials/pull/659/changes.
Could you please review this approach and confirm if it aligns with the expected handling of IFC4 validation? Additionally, I would like your guidance on whether this change is suitable to be formally incorporated into the Xbim Essentials codebase.
Thanks and Regards,
Surya
Hi Team,
I am working on a project to generate IFC4 files using Xbim Essentials (version: V5.1.259). While creating IfcCartesianPointList3D, I observed a validation error when validating the generated IFC file against the IFC4 schema.
For example, the generated entity looks like:
#123 = IFCCARTESIANPOINTLIST3D((...),$);However, as per the IFC4 schema definition (https://validate.buildingsmart.org/report_schema/r771713286), the $ (TagList) argument is not expected in this context, leading to a validation error. We had previously raised this issue (#639) and the suggestion was to move to IFC4x3. While IFC4x3 resolves this issue, we still need to support IFC4 due to a large existing customer base, and transitioning all consumers to IFC4x3 will take time.
On further analysis, I went through the Xbim Essentials source code and found that the implementation of IfcCartesianPointList3D differs between IFC4 and IFC4x3 (https://github.com/xBimTeam/XbimEssentials/blob/master/Xbim.Ifc4/GeometricModelResource/IfcCartesianPointList3D.cs). Based on this, I implemented a fix by removing the optional TagList parameter in the IFC4 implementation, which resolves the validation issue. The proposed change is available here: https://github.com/xBimTeam/XbimEssentials/pull/659/changes.
Could you please review this approach and confirm if it aligns with the expected handling of IFC4 validation? Additionally, I would like your guidance on whether this change is suitable to be formally incorporated into the Xbim Essentials codebase.
Thanks and Regards,
Surya