diff --git a/test/input/cylinders.ifc b/test/input/cylinders.ifc new file mode 100644 index 0000000000..2c096de217 --- /dev/null +++ b/test/input/cylinders.ifc @@ -0,0 +1,97 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('cylinder.ifc','2017-11-07T15:20:37',(''),(''),'IfcOpenShell-0.5.0-dev','IfcOpenShell-0.5.0-dev',''); +FILE_SCHEMA(('IFC2X3')); +ENDSEC; +DATA; +#1=IFCPERSON($,$,'',$,$,$,$,$); +#2=IFCORGANIZATION($,'',$,$,$); +#3=IFCPERSONANDORGANIZATION(#1,#2,$); +#4=IFCAPPLICATION(#2,'0.5.0-dev','IfcOpenShell-0.5.0-dev',''); +#5=IFCOWNERHISTORY(#3,#4,$,.ADDED.,$,#3,#4,1510068037.0321496); +#6=IFCDIRECTION((1.,0.,0.)); +#7=IFCDIRECTION((0.,0.,1.)); +#8=IFCCARTESIANPOINT((0.,0.,0.)); +#9=IFCAXIS2PLACEMENT3D(#8,#7,#6); +#10=IFCDIRECTION((0.,1.,0.)); +#11=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#9,#10); +#12=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0); +#13=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.); +#14=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); +#15=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); +#16=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); +#17=IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.017453292519943295),#16); +#18=IFCCONVERSIONBASEDUNIT(#12,.PLANEANGLEUNIT.,'DEGREE',#17); +#19=IFCUNITASSIGNMENT((#13,#14,#15,#18)); +#20=IFCPROJECT('1ZjweOZ9L8xur3Cw4DWAdx',#5,'',$,$,$,$,(#11),#19); +#21=IFCCARTESIANPOINT((0.,0.)); +#22=IFCDIRECTION((1.,0.)); +#23=IFCAXIS2PLACEMENT2D(#21,#22); +#24=IFCCIRCLEPROFILEDEF(.AREA.,'Circle',#23,0.5); +#25=IFCCARTESIANPOINT((0.,0.,0.)); +#26=IFCAXIS2PLACEMENT3D(#25,$,$); +#27=IFCDIRECTION((0.,0.,1.)); +#28=IFCEXTRUDEDAREASOLID(#24,#26,#27,2.); +#29=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#28)); +#30=IFCPRODUCTDEFINITIONSHAPE($,$,(#29)); +#31=IFCCARTESIANPOINT((0.,0.,0.)); +#32=IFCDIRECTION((0.,0.,1.)); +#33=IFCDIRECTION((1.,0.,0.)); +#34=IFCAXIS2PLACEMENT3D(#31,#32,#33); +#35=IFCLOCALPLACEMENT($,#34); +#36=IFCBUILDINGELEMENTPROXY('0qs7mimyyHvuvRW1aqWGIT',#5,'Vertical cylinder',$,$,#35,#30,$,$); +#37=IFCCARTESIANPOINT((0.,0.)); +#38=IFCDIRECTION((1.,0.)); +#39=IFCAXIS2PLACEMENT2D(#37,#38); +#40=IFCCIRCLEPROFILEDEF(.AREA.,'Circle',#39,0.5); +#41=IFCCARTESIANPOINT((0.,1.,0.)); +#42=IFCAXIS2PLACEMENT3D(#41,$,$); +#43=IFCDIRECTION((0.,0.,1.)); +#44=IFCEXTRUDEDAREASOLID(#40,#42,#43,2.); +#45=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#44)); +#46=IFCPRODUCTDEFINITIONSHAPE($,$,(#45)); +#47=IFCCARTESIANPOINT((0.,0.,0.)); +#48=IFCDIRECTION((0.,0.,1.)); +#49=IFCDIRECTION((1.,0.,0.)); +#50=IFCAXIS2PLACEMENT3D(#47,#48,#49); +#51=IFCLOCALPLACEMENT($,#50); +#52=IFCBUILDINGELEMENTPROXY('0qs7mjmyyHvuvRW1aqWGIT',#5,'Vertical cylinder',$,$,#51,#46,$,$); +#53=IFCCARTESIANPOINT((0.,0.)); +#54=IFCDIRECTION((1.,0.)); +#55=IFCAXIS2PLACEMENT2D(#53,#54); +#56=IFCCIRCLEPROFILEDEF(.AREA.,'Circle',#55,0.5); +#57=IFCCARTESIANPOINT((0.,2.,0.)); +#58=IFCAXIS2PLACEMENT3D(#57,$,$); +#59=IFCDIRECTION((0.,0.,1.)); +#60=IFCEXTRUDEDAREASOLID(#56,#58,#59,2.); +#61=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#60)); +#62=IFCPRODUCTDEFINITIONSHAPE($,$,(#61)); +#63=IFCCARTESIANPOINT((0.,0.,0.)); +#64=IFCDIRECTION((0.,0.,1.)); +#65=IFCDIRECTION((1.,0.,0.)); +#66=IFCAXIS2PLACEMENT3D(#63,#64,#65); +#67=IFCLOCALPLACEMENT($,#66); +#68=IFCBUILDINGELEMENTPROXY('0qs7mkmyyHvuvRW1aqWGIT',#5,'Vertical cylinder',$,$,#67,#62,$,$); +#69=IFCCARTESIANPOINT((0.,0.)); +#70=IFCDIRECTION((1.,0.)); +#71=IFCAXIS2PLACEMENT2D(#69,#70); +#72=IFCCIRCLEPROFILEDEF(.AREA.,'Circle',#71,0.5); +#73=IFCCARTESIANPOINT((2.,0.,0.)); +#74=IFCAXIS2PLACEMENT3D(#73,$,$); +#75=IFCDIRECTION((0.,0.,1.)); +#76=IFCEXTRUDEDAREASOLID(#72,#74,#75,2.); +#77=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#76)); +#78=IFCPRODUCTDEFINITIONSHAPE($,$,(#77)); +#79=IFCCARTESIANPOINT((0.,0.,0.)); +#80=IFCDIRECTION((0.,0.,1.)); +#81=IFCDIRECTION((1.,0.,0.)); +#82=IFCAXIS2PLACEMENT3D(#79,#80,#81); +#83=IFCLOCALPLACEMENT($,#82); +#84=IFCBUILDINGELEMENTPROXY('0qs7mlmyyHvuvRW1aqWGIT',#5,'Vertical cylinder',$,$,#83,#78,$,$); +#85=IFCSITE('0qs7mmmyyHvuvRW1aqWGIT',#5,'Site',$,$,$,$,$,.ELEMENT.,$,$,$,$,$); +#86=IFCBUILDING('0qs7mnmyyHvuvRW1aqWGIT',#5,'Building',$,$,$,$,$,.ELEMENT.,$,$,$); +#87=IFCBUILDINGSTOREY('0qs7momyyHvuvRW1aqWGIT',#5,'Storey',$,$,$,$,$,.ELEMENT.,0.); +#88=IFCRELCONTAINEDINSPATIALSTRUCTURE('0qs7mpmyyHvuvRW1aqWGIT',#5,'Building Storey Container',$,(#36,#52,#68,#84),#87); +ENDSEC; +END-ISO-10303-21; diff --git a/test/input/ellipses.ifc b/test/input/ellipses.ifc new file mode 100644 index 0000000000..664d73fe80 --- /dev/null +++ b/test/input/ellipses.ifc @@ -0,0 +1,97 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('cylinder.ifc','2017-11-23T10:18:39',(''),(''),'IfcOpenShell-0.5.0-dev','IfcOpenShell-0.5.0-dev',''); +FILE_SCHEMA(('IFC2X3')); +ENDSEC; +DATA; +#1=IFCPERSON($,$,'',$,$,$,$,$); +#2=IFCORGANIZATION($,'',$,$,$); +#3=IFCPERSONANDORGANIZATION(#1,#2,$); +#4=IFCAPPLICATION(#2,'0.5.0-dev','IfcOpenShell-0.5.0-dev',''); +#5=IFCOWNERHISTORY(#3,#4,$,.ADDED.,$,#3,#4,1511432319.5864441); +#6=IFCDIRECTION((1.,0.,0.)); +#7=IFCDIRECTION((0.,0.,1.)); +#8=IFCCARTESIANPOINT((0.,0.,0.)); +#9=IFCAXIS2PLACEMENT3D(#8,#7,#6); +#10=IFCDIRECTION((0.,1.,0.)); +#11=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#9,#10); +#12=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0); +#13=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.); +#14=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); +#15=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); +#16=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); +#17=IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.017453292519943295),#16); +#18=IFCCONVERSIONBASEDUNIT(#12,.PLANEANGLEUNIT.,'DEGREE',#17); +#19=IFCUNITASSIGNMENT((#13,#14,#15,#18)); +#20=IFCPROJECT('0X0Ka$7dzDzxHGh2sMqnCq',#5,'',$,$,$,$,(#11),#19); +#21=IFCCARTESIANPOINT((0.,0.)); +#22=IFCDIRECTION((1.,0.)); +#23=IFCAXIS2PLACEMENT2D(#21,#22); +#24=IFCELLIPSEPROFILEDEF(.AREA.,'Ellipse',#23,0.8,0.2); +#25=IFCCARTESIANPOINT((0.,0.,0.)); +#26=IFCAXIS2PLACEMENT3D(#25,$,$); +#27=IFCDIRECTION((0.,0.,1.)); +#28=IFCEXTRUDEDAREASOLID(#24,#26,#27,2.); +#29=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#28)); +#30=IFCPRODUCTDEFINITIONSHAPE($,$,(#29)); +#31=IFCCARTESIANPOINT((0.,0.,0.)); +#32=IFCDIRECTION((0.,0.,1.)); +#33=IFCDIRECTION((1.,0.,0.)); +#34=IFCAXIS2PLACEMENT3D(#31,#32,#33); +#35=IFCLOCALPLACEMENT($,#34); +#36=IFCBUILDINGELEMENTPROXY('2idn0Sq3SHvuvRW1aqWGIT',#5,'Vertical cylinder',$,$,#35,#30,$,$); +#37=IFCCARTESIANPOINT((0.,0.)); +#38=IFCDIRECTION((1.,0.)); +#39=IFCAXIS2PLACEMENT2D(#37,#38); +#40=IFCELLIPSEPROFILEDEF(.AREA.,'Ellipse',#39,0.8,0.2); +#41=IFCCARTESIANPOINT((0.,1.,0.)); +#42=IFCAXIS2PLACEMENT3D(#41,$,$); +#43=IFCDIRECTION((0.,0.,1.)); +#44=IFCEXTRUDEDAREASOLID(#40,#42,#43,2.); +#45=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#44)); +#46=IFCPRODUCTDEFINITIONSHAPE($,$,(#45)); +#47=IFCCARTESIANPOINT((0.,0.,0.)); +#48=IFCDIRECTION((0.,0.,1.)); +#49=IFCDIRECTION((1.,0.,0.)); +#50=IFCAXIS2PLACEMENT3D(#47,#48,#49); +#51=IFCLOCALPLACEMENT($,#50); +#52=IFCBUILDINGELEMENTPROXY('2idn0Tq3SHvuvRW1aqWGIT',#5,'Vertical cylinder',$,$,#51,#46,$,$); +#53=IFCCARTESIANPOINT((0.,0.)); +#54=IFCDIRECTION((1.,0.)); +#55=IFCAXIS2PLACEMENT2D(#53,#54); +#56=IFCELLIPSEPROFILEDEF(.AREA.,'Ellipse',#55,0.8,0.2); +#57=IFCCARTESIANPOINT((0.,2.,0.)); +#58=IFCAXIS2PLACEMENT3D(#57,$,$); +#59=IFCDIRECTION((0.,0.,1.)); +#60=IFCEXTRUDEDAREASOLID(#56,#58,#59,2.); +#61=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#60)); +#62=IFCPRODUCTDEFINITIONSHAPE($,$,(#61)); +#63=IFCCARTESIANPOINT((0.,0.,0.)); +#64=IFCDIRECTION((0.,0.,1.)); +#65=IFCDIRECTION((1.,0.,0.)); +#66=IFCAXIS2PLACEMENT3D(#63,#64,#65); +#67=IFCLOCALPLACEMENT($,#66); +#68=IFCBUILDINGELEMENTPROXY('2idn0Uq3SHvuvRW1aqWGIT',#5,'Vertical cylinder',$,$,#67,#62,$,$); +#69=IFCCARTESIANPOINT((0.,0.)); +#70=IFCDIRECTION((1.,0.)); +#71=IFCAXIS2PLACEMENT2D(#69,#70); +#72=IFCELLIPSEPROFILEDEF(.AREA.,'Ellipse',#71,0.8,0.2); +#73=IFCCARTESIANPOINT((2.,0.,0.)); +#74=IFCAXIS2PLACEMENT3D(#73,$,$); +#75=IFCDIRECTION((0.,0.,1.)); +#76=IFCEXTRUDEDAREASOLID(#72,#74,#75,2.); +#77=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#76)); +#78=IFCPRODUCTDEFINITIONSHAPE($,$,(#77)); +#79=IFCCARTESIANPOINT((0.,0.,0.)); +#80=IFCDIRECTION((0.,0.,1.)); +#81=IFCDIRECTION((1.,0.,0.)); +#82=IFCAXIS2PLACEMENT3D(#79,#80,#81); +#83=IFCLOCALPLACEMENT($,#82); +#84=IFCBUILDINGELEMENTPROXY('2idn0Vq3SHvuvRW1aqWGIT',#5,'Vertical cylinder',$,$,#83,#78,$,$); +#85=IFCSITE('2idn0Wq3SHvuvRW1aqWGIT',#5,'Site',$,$,$,$,$,.ELEMENT.,$,$,$,$,$); +#86=IFCBUILDING('2idn0Xq3SHvuvRW1aqWGIT',#5,'Building',$,$,$,$,$,.ELEMENT.,$,$,$); +#87=IFCBUILDINGSTOREY('2idn0Yq3SHvuvRW1aqWGIT',#5,'Storey',$,$,$,$,$,.ELEMENT.,0.); +#88=IFCRELCONTAINEDINSPATIALSTRUCTURE('2idn0Zq3SHvuvRW1aqWGIT',#5,'Building Storey Container',$,(#36,#52,#68,#84),#87); +ENDSEC; +END-ISO-10303-21;