IFCDERIVEDPROFILEDEF not applying IFCCARTESIANTRANSFORMATIONOPERATOR2D transformation
The Axis1 and Axis2 from IFCCARTESIANTRANSFORMATIONOPERATOR2D is being ignored in the IFCDERIVEDPROFILEDEF when axis1/axis2 is not default. It always displays the shape as if Axis1= (1,0) & Axis2 = (0,1)
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
FILE_NAME('IfcCompositeProfileDef.ifc','2014-03-16T10:22:14',(''),('',''),'IfcOpenShell 0.5.0-dev','IfcOpenShell 0.5.0-dev','');
FILE_SCHEMA(('IFC2X3'));
ENDSEC;
DATA;
xBimTeam/XbimWindowsUI#1=IFCCARTESIANPOINT((40.,0.));
xBimTeam/XbimWindowsUI#2=IFCDIRECTION((0.,-1.));
xBimTeam/XbimWindowsUI#3=IFCDIRECTION((1.,0.));
xBimTeam/XbimWindowsUI#4=IFCCARTESIANPOINT((40.,0.));
xBimTeam/XbimWindowsUI#5=IFCDIRECTION((1.,0.));
xBimTeam/XbimWindowsUI#6=IFCDIRECTION((0.,-1.));
xBimTeam/XbimWindowsUI#7=IFCDIRECTION((1.,0.));
xBimTeam/XbimWindowsUI#8=IFCCARTESIANPOINT((0.,0.));
xBimTeam/XbimWindowsUI#9=IFCAXIS2PLACEMENT2D(#8,#7);
xBimTeam/XbimWindowsUI#10=IFCDIRECTION((1.,0.));
xBimTeam/XbimWindowsUI#11=IFCCARTESIANPOINT((0.,0.));
xBimTeam/XbimWindowsUI#12=IFCAXIS2PLACEMENT2D(#11,#10);
xBimTeam/XbimWindowsUI#13=IFCDIRECTION((1.,0.));
xBimTeam/XbimWindowsUI#14=IFCCARTESIANPOINT((0.,0.));
xBimTeam/XbimWindowsUI#15=IFCAXIS2PLACEMENT2D(#14,#13);
xBimTeam/XbimWindowsUI#16=IFCDIRECTION((1.,0.));
xBimTeam/XbimWindowsUI#17=IFCCARTESIANPOINT((80.,0.));
xBimTeam/XbimWindowsUI#18=IFCAXIS2PLACEMENT2D(#17,#16);
xBimTeam/XbimWindowsUI#19=IFCLSHAPEPROFILEDEF(.AREA.,$,#12,50.,25.,5.,1.,2.,2.,$,$);
xBimTeam/XbimWindowsUI#20=IFCTSHAPEPROFILEDEF(.AREA.,$,#15,50.,40.,10.,10.,3.,2.,1.,2.,2.,$);
xBimTeam/XbimWindowsUI#21=IFCCARTESIANTRANSFORMATIONOPERATOR2D(#3,#2,#1,$);
xBimTeam/XbimWindowsUI#22=IFCCARTESIANTRANSFORMATIONOPERATOR2D(#6,#5,#4,0.3);
xBimTeam/XbimWindowsUI#23=IFCISHAPEPROFILEDEF(.AREA.,$,#9,25.,50.,5.,5.,2.);
xBimTeam/XbimWindowsUI#24=IFCDERIVEDPROFILEDEF(.AREA.,$,#19,#21,$);
xBimTeam/XbimWindowsUI#25=IFCDERIVEDPROFILEDEF(.AREA.,$,#20,#22,$);
xBimTeam/XbimWindowsUI#26=IFCCSHAPEPROFILEDEF(.AREA.,$,#18,50.,25.,5.,10.,2.,$);
xBimTeam/XbimWindowsUI#27=IFCPERSON($,$,'',$,$,$,$,$);
xBimTeam/XbimWindowsUI#28=IFCORGANIZATION($,'IfcOpenShell',$,$,$);
xBimTeam/XbimWindowsUI#29=IFCPERSONANDORGANIZATION(#27,#28,$);
xBimTeam/XbimWindowsUI#30=IFCAPPLICATION(#28,'0.5.0-dev','IfcOpenShell','IfcOpenShell');
xBimTeam/XbimWindowsUI#31=IFCOWNERHISTORY(#29,#30,$,.ADDED.,$,#29,#30,1394961734);
xBimTeam/XbimWindowsUI#32=IFCDIRECTION((0.,1.,0.));
xBimTeam/XbimWindowsUI#33=IFCDIRECTION((1.,0.,0.));
xBimTeam/XbimWindowsUI#34=IFCDIRECTION((0.,0.,1.));
xBimTeam/XbimWindowsUI#35=IFCCARTESIANPOINT((0.,0.,0.));
xBimTeam/XbimWindowsUI#36=IFCAXIS2PLACEMENT3D(#35,#34,#33);
xBimTeam/XbimWindowsUI#37=IFCGEOMETRICREPRESENTATIONCONTEXT('Plan','Model',3,1.E-005,#36,#32);
xBimTeam/XbimWindowsUI#38=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0);
xBimTeam/XbimWindowsUI#39=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.);
xBimTeam/XbimWindowsUI#40=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
xBimTeam/XbimWindowsUI#41=IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.0174533),#40);
xBimTeam/XbimWindowsUI#42=IFCCONVERSIONBASEDUNIT(#38,.PLANEANGLEUNIT.,'Degrees',#41);
xBimTeam/XbimWindowsUI#43=IFCUNITASSIGNMENT((#39,#42));
xBimTeam/XbimWindowsUI#44=IFCPROJECT('2ksZObKFD9HusrYk4uMUU9',#31,'IfcCompositeProfileDef',$,$,$,$,(#37),#43);
xBimTeam/XbimWindowsUI#45=IFCDIRECTION((1.,0.,0.));
xBimTeam/XbimWindowsUI#46=IFCDIRECTION((0.,0.,1.));
xBimTeam/XbimWindowsUI#47=IFCCARTESIANPOINT((0.,0.,0.));
xBimTeam/XbimWindowsUI#48=IFCAXIS2PLACEMENT3D(#47,#46,#45);
xBimTeam/XbimWindowsUI#49=IFCLOCALPLACEMENT($,#48);
xBimTeam/XbimWindowsUI#50=IFCSITE('3UH8_fRJ14bO11RLWcfDaG',#31,$,$,$,#49,$,$,.ELEMENT.,$,$,$,$,$);
xBimTeam/XbimWindowsUI#51=IFCRELAGGREGATES('0d_e2pRBz5EwbcE2Jlxmor',#31,$,$,#44,(#50));
xBimTeam/XbimWindowsUI#52=IFCDIRECTION((1.,0.,0.));
xBimTeam/XbimWindowsUI#53=IFCDIRECTION((0.,0.,1.));
xBimTeam/XbimWindowsUI#54=IFCCARTESIANPOINT((0.,0.,0.));
xBimTeam/XbimWindowsUI#55=IFCAXIS2PLACEMENT3D(#54,#53,#52);
xBimTeam/XbimWindowsUI#56=IFCLOCALPLACEMENT(#49,#55);
xBimTeam/XbimWindowsUI#57=IFCBUILDING('0_d_HoUTX9CRwB2hQNCKfF',#31,$,$,$,#56,$,$,.ELEMENT.,$,$,$);
xBimTeam/XbimWindowsUI#58=IFCRELAGGREGATES('3YNTjz3UTAreL7rtMwgZja',#31,$,$,#50,(#57));
xBimTeam/XbimWindowsUI#59=IFCDIRECTION((1.,0.,0.));
xBimTeam/XbimWindowsUI#60=IFCDIRECTION((0.,0.,1.));
xBimTeam/XbimWindowsUI#61=IFCCARTESIANPOINT((0.,0.,0.));
xBimTeam/XbimWindowsUI#62=IFCAXIS2PLACEMENT3D(#61,#60,#59);
xBimTeam/XbimWindowsUI#63=IFCLOCALPLACEMENT(#56,#62);
xBimTeam/XbimWindowsUI#64=IFCBUILDINGSTOREY('2r7DzLsTvBOvBpy8KFQofF',#31,$,$,$,#63,$,$,.ELEMENT.,$);
xBimTeam/XbimWindowsUI#65=IFCRELAGGREGATES('1NiveFQ1n2N9_KPmICXHc8',#31,$,$,#57,(#64));
xBimTeam/XbimWindowsUI#66=IFCBUILDINGELEMENTPROXY('0Xroij9BHE2BHPOGPuqa$d',#31,'profile',$,$,#72,#81,$,$);
xBimTeam/XbimWindowsUI#67=IFCRELCONTAINEDINSPATIALSTRUCTURE('0duzsVh356ivGmTWCOFWGF',#31,$,$,(#66),#64);
xBimTeam/XbimWindowsUI#68=IFCDIRECTION((1.,0.,0.));
xBimTeam/XbimWindowsUI#69=IFCDIRECTION((0.,0.,1.));
xBimTeam/XbimWindowsUI#70=IFCCARTESIANPOINT((0.,0.,0.));
xBimTeam/XbimWindowsUI#71=IFCAXIS2PLACEMENT3D(#70,#69,#68);
xBimTeam/XbimWindowsUI#72=IFCLOCALPLACEMENT($,#71);
xBimTeam/XbimWindowsUI#73=IFCDIRECTION((0.,0.,1.));
xBimTeam/XbimWindowsUI#74=IFCDIRECTION((1.,0.,0.));
xBimTeam/XbimWindowsUI#75=IFCDIRECTION((0.,0.,1.));
xBimTeam/XbimWindowsUI#76=IFCCARTESIANPOINT((0.,0.,0.));
xBimTeam/XbimWindowsUI#77=IFCAXIS2PLACEMENT3D(#76,#75,#74);
xBimTeam/XbimWindowsUI#78=IFCCOMPOSITEPROFILEDEF(.AREA.,'IFC',(#23,#24,#25,#26),$);
xBimTeam/XbimWindowsUI#79=IFCEXTRUDEDAREASOLID(#78,#77,#73,20.);
xBimTeam/XbimWindowsUI#80=IFCSHAPEREPRESENTATION(#37,'Body','SweptSolid',(#79));
xBimTeam/XbimWindowsUI#81=IFCPRODUCTDEFINITIONSHAPE($,$,(#80));
ENDSEC;
END-ISO-10303-21;
Thanks for this test case! Have moved to Geometry from WinUI as that's the likely area.
The model is valid according to the IFC Validator. Definitely looks like there's some disparity in handling of this across viewers, including xbim...
I'm assuming (but not certain) that BC Zoom is gets this closest to 'correct'
It looks like xbim GE 6.0 improves on GE4/5 (filleting etc) but the orientation of the 'IfcTShapeProfileDef' on the F is wrong.
xbim GE 4.0.1912
xbim GE 5.0.782
xbim GE 6.0
Bonsai (Blender 4.3.0) - I need to check the latest
Bimcollab Zoom
The issue relates to
#25=IFCDERIVEDPROFILEDEF(.AREA.,$,#20,#22,$);
.. which is this TProfile
#20=IFCTSHAPEPROFILEDEF(.AREA.,$,#15,50.,40.,10.,10.,3.,2.,1.,2.,2.,$);
transformed by
#4=IFCCARTESIANPOINT((40.,0.));
#5=IFCDIRECTION((1.,0.));
#6=IFCDIRECTION((0.,-1.))
#22=IFCCARTESIANTRANSFORMATIONOPERATOR2D(#6,#5,#4,0.3);