blender extrusion test

This commit is contained in:
Ryan Schultz 2020-05-23 13:59:41 -05:00
parent ab268f6187
commit 243c3b84ea
6 changed files with 5793 additions and 8 deletions

View File

@ -2,7 +2,11 @@
This file lists "exercises" to be performed by a BIM application to achieve adequate round-tripping with IFC files. The application should successfully complete all the steps.
## File Naming Convensions
---
## File Naming Convension Examples:
| 1 Original File | 2 Exported IFC File | 3 Imported Native File | 4 Exported IFC File | 5 Imported Native File |
| ------------------- | ------------------------ | -------------------------- | ------------------------------ | ------------------------------ |
@ -13,6 +17,14 @@ This file lists "exercises" to be performed by a BIM application to achieve adeq
| | | Extrusions_03_PASSED.pln | Extrusions_04_PASSED_pln.ifc | Extrusions_05_PASSED_pln.pln |
| | | | | Extrusions_05_PASSED_pln.rvt |
---
# Tests
---
## 1. Extrusions
The application should be able to export and import an IFC file containing three IfcBuildingElementProxy entities, each with one representation, which is an IfcExtrudedAreaSolid, each based on IfcArbitraryClosedProfileDef made of an IfcPolyline, like the example below. One profile should lie on the XY plane, one in the YZ plane, and a third on a plane made of one of the former rotated 45° along the Y axis. Extrusion directions should be normal to the profiles.
@ -52,10 +64,10 @@ The application should be able to export and import an IFC file containing three
Test files here: [FreeMVD_WorkFlow/Specifications_Test_Files/Extrusions/](https://github.com/OpeningDesign/FreeMVD_WorkFlow/tree/master/Specifications_Test_Files/Extrusions)
| Program | 3-Imported Native File | 4-Exported IFC File | Comments |
| ----------- | ---------------------- | ------------------- | -------------------------------------------------------------------------------------------------------- |
| ArchiCAD | | | |
| BlenderBIM | | | |
| FreeCAD | PASSED | PASSED | |
| Revit | PASSED | FAILED | - Incorrect extrusion direction <br>- IFCARBITRARYCLOSEDPROFILEDEF was changed to IFCRECTANGLEPROFILEDEF |
| Vectorworks | | | |
| Program | Version<br/>native/plugin | 3-Imported Native File | Import Comments | 4-Exported IFC File | Export Comments |
| ----------- | ------------------------- | ---------------------- | ------------------ | ------------------- | -------------------------------------------------------------------------------------------------------- |
| ArchiCAD | | | | | |
| BlenderBIM | 2.82a/0.200511 | FAILED | - imported as mesh | FAILED | - changed IFCEXTRUDEDAREASOLID to IFCFACETEDBREP w/ IFCFACE |
| FreeCAD | | PASSED | | PASSED | |
| Revit | 2020/20.1.0.1 | PASSED | | FAILED | - Incorrect extrusion direction <br>- IFCARBITRARYCLOSEDPROFILEDEF was changed to IFCRECTANGLEPROFILEDEF |
| Vectorworks | | | | | |

View File

@ -0,0 +1,182 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
FILE_NAME('untitled.blend.ifc','2020-05-23T13:38:41-05:00',(),(),'IfcOpenShell 0.6.0b0','BlenderBIM 0.0.200511','Moult');
FILE_SCHEMA(('IFC4'));
ENDSEC;
DATA;
#1=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);
#2=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);
#3=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.);
#4=IFCUNITASSIGNMENT((#1,#2,#3));
#5=IFCACTORROLE(.ARCHITECT.,$,'Draws the pretty pictures');
#6=IFCPOSTALADDRESS(.OFFICE.,'Headquarters',$,'Cupboard under the stairs',('221B Baker Street'),$,'MyTown','Middle-Earth','42','Narnia');
#7=IFCTELECOMADDRESS(.OFFICE.,'Headquarters',$,('0123456789'),$,$,('dion@thinkmoult.com'),'https://thinkmoult.com',('irc://irc.freenode.net##architect'));
#8=IFCPERSON('Moult','Moult','Dion',('Sebastian','Isan','Tan'),('Mr'),('UE'),(#5),(#6,#7));
#9=IFCACTORROLE(.USERDEFINED.,'CONTRIBUTOR',$);
#10=IFCTELECOMADDRESS(.USERDEFINED.,'The main webpage of the software collection.','WEBPAGE',$,$,$,$,'https://ifcopenshell.org',$);
#11=IFCTELECOMADDRESS(.USERDEFINED.,'The BlenderBIM webpage of the software collection.','WEBPAGE',$,$,$,$,'https://blenderbim.org',$);
#12=IFCTELECOMADDRESS(.USERDEFINED.,'The source code repository of the software collection.','REPOSITORY',$,$,$,$,'https://github.com/IfcOpenShell/IfcOpenShell.git',$);
#13=IFCORGANIZATION($,'IfcOpenShell','IfcOpenShell is an open source (LGPL) software library that helps users and software developers to work with the IFC file format.',(#9),(#10,#11,#12));
#14=IFCCARTESIANPOINT((0.,0.,0.));
#15=IFCDIRECTION((0.,0.,1.));
#16=IFCDIRECTION((1.,0.,0.));
#17=IFCAXIS2PLACEMENT3D(#14,#15,#16);
#18=IFCPERSONANDORGANIZATION(#8,#13,$);
#19=IFCAPPLICATION(#13,'0.0.200511','BlenderBIM','BlenderBIM');
#20=IFCOWNERHISTORY(#18,#19,.READWRITE.,.NOTDEFINED.,1590259121,#18,#19,1590259121);
#21=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#17,$);
#22=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#21,$,.MODEL_VIEW.,$);
#23=IFCPROJECT('03biTKmWH94Au6pQcFXMDQ',$,'multiple',$,$,$,$,(#21),#4);
#24=IFCOBJECTIVE('Beauty','The built form should be beautiful',.HARD.,$,$,$,$,$,$,.DESIGNINTENT.,$);
#25=IFCOBJECTIVE('Safety','No facilities exist to generate killer artificial intelligence',.HARD.,$,$,$,$,$,$,.HEALTHANDSAFETY.,$);
#26=IFCCARTESIANPOINT((-1.37279224395752,-0.899999976158142,3.27279210090637));
#27=IFCCARTESIANPOINT((-0.100000001490116,-0.899999976158142,2.));
#28=IFCCARTESIANPOINT((-0.100000001490116,-0.100000001490116,2.));
#29=IFCCARTESIANPOINT((-1.37279224395752,-0.100000001490116,3.27279210090637));
#30=IFCCARTESIANPOINT((0.748528122901917,-0.100000001490116,5.3941125869751));
#31=IFCCARTESIANPOINT((0.748528122901917,-0.899999976158142,5.3941125869751));
#32=IFCCARTESIANPOINT((2.02132034301758,-0.899999976158142,4.12132024765015));
#33=IFCCARTESIANPOINT((2.02132034301758,-0.100000001490116,4.12132024765015));
#34=IFCPOLYLOOP((#31,#30,#29,#26));
#35=IFCFACEOUTERBOUND(#34,.T.);
#36=IFCFACE((#35));
#37=IFCPOLYLOOP((#26,#27,#32,#31));
#38=IFCFACEOUTERBOUND(#37,.T.);
#39=IFCFACE((#38));
#40=IFCPOLYLOOP((#30,#33,#28,#29));
#41=IFCFACEOUTERBOUND(#40,.T.);
#42=IFCFACE((#41));
#43=IFCPOLYLOOP((#33,#30,#31,#32));
#44=IFCFACEOUTERBOUND(#43,.T.);
#45=IFCFACE((#44));
#46=IFCPOLYLOOP((#33,#32,#27,#28));
#47=IFCFACEOUTERBOUND(#46,.T.);
#48=IFCFACE((#47));
#49=IFCPOLYLOOP((#26,#29,#28,#27));
#50=IFCFACEOUTERBOUND(#49,.T.);
#51=IFCFACE((#50));
#52=IFCCLOSEDSHELL((#36,#39,#42,#45,#48,#51));
#53=IFCFACETEDBREP(#52);
#54=IFCSHAPEREPRESENTATION(#22,'Body','Brep',(#53));
#55=IFCREPRESENTATIONMAP(#17,#54);
#56=IFCCARTESIANPOINT((-1.99840139138572E-16,-0.899999618530273,7.90000009536743));
#57=IFCCARTESIANPOINT((4.,-0.899999618530273,7.90000009536743));
#58=IFCCARTESIANPOINT((1.99840139138572E-16,-0.899999618530273,6.09999990463257));
#59=IFCCARTESIANPOINT((4.,-0.899999618530273,6.09999990463257));
#60=IFCCARTESIANPOINT((1.99840139138572E-16,-0.0999996438622475,6.09999990463257));
#61=IFCCARTESIANPOINT((4.,-0.0999996438622475,6.09999990463257));
#62=IFCCARTESIANPOINT((-1.99840139138572E-16,-0.0999996438622475,7.90000009536743));
#63=IFCCARTESIANPOINT((4.,-0.0999996438622475,7.90000009536743));
#64=IFCPOLYLOOP((#60,#62,#63,#61));
#65=IFCFACEOUTERBOUND(#64,.T.);
#66=IFCFACE((#65));
#67=IFCPOLYLOOP((#57,#63,#62,#56));
#68=IFCFACEOUTERBOUND(#67,.T.);
#69=IFCFACE((#68));
#70=IFCPOLYLOOP((#56,#62,#60,#58));
#71=IFCFACEOUTERBOUND(#70,.T.);
#72=IFCFACE((#71));
#73=IFCPOLYLOOP((#61,#63,#57,#59));
#74=IFCFACEOUTERBOUND(#73,.T.);
#75=IFCFACE((#74));
#76=IFCPOLYLOOP((#59,#57,#56,#58));
#77=IFCFACEOUTERBOUND(#76,.T.);
#78=IFCFACE((#77));
#79=IFCPOLYLOOP((#61,#59,#58,#60));
#80=IFCFACEOUTERBOUND(#79,.T.);
#81=IFCFACE((#80));
#82=IFCCLOSEDSHELL((#66,#69,#72,#75,#78,#81));
#83=IFCFACETEDBREP(#82);
#84=IFCSHAPEREPRESENTATION(#22,'Body','Brep',(#83));
#85=IFCREPRESENTATIONMAP(#17,#84);
#86=IFCCARTESIANPOINT((0.100000001490116,-0.899999976158142,0.));
#87=IFCCARTESIANPOINT((0.100000001490116,-0.899999976158142,2.));
#88=IFCCARTESIANPOINT((1.89999997615814,-0.899999976158142,0.));
#89=IFCCARTESIANPOINT((1.89999997615814,-0.899999976158142,2.));
#90=IFCCARTESIANPOINT((1.89999997615814,-0.100000001490116,0.));
#91=IFCCARTESIANPOINT((1.89999997615814,-0.100000001490116,2.));
#92=IFCCARTESIANPOINT((0.100000001490116,-0.100000001490116,0.));
#93=IFCCARTESIANPOINT((0.100000001490116,-0.100000001490116,2.));
#94=IFCPOLYLOOP((#93,#91,#90,#92));
#95=IFCFACEOUTERBOUND(#94,.T.);
#96=IFCFACE((#95));
#97=IFCPOLYLOOP((#87,#93,#92,#86));
#98=IFCFACEOUTERBOUND(#97,.T.);
#99=IFCFACE((#98));
#100=IFCPOLYLOOP((#86,#92,#90,#88));
#101=IFCFACEOUTERBOUND(#100,.T.);
#102=IFCFACE((#101));
#103=IFCPOLYLOOP((#91,#93,#87,#89));
#104=IFCFACEOUTERBOUND(#103,.T.);
#105=IFCFACE((#104));
#106=IFCPOLYLOOP((#89,#87,#86,#88));
#107=IFCFACEOUTERBOUND(#106,.T.);
#108=IFCFACE((#107));
#109=IFCPOLYLOOP((#91,#89,#88,#90));
#110=IFCFACEOUTERBOUND(#109,.T.);
#111=IFCFACE((#110));
#112=IFCCLOSEDSHELL((#96,#99,#102,#105,#108,#111));
#113=IFCFACETEDBREP(#112);
#114=IFCSHAPEREPRESENTATION(#22,'Body','Brep',(#113));
#115=IFCREPRESENTATIONMAP(#17,#114);
#116=IFCLOCALPLACEMENT($,#17);
#117=IFCBUILDING('3vCTfBNwr06RC435WkcWzH',#20,'Default Building','',$,#116,$,$,.ELEMENT.,$,$,$);
#118=IFCRELAGGREGATES('1l_eoz4CLFqwQ0m3HM$gHQ',#20,$,$,#23,(#117));
#119=IFCCARTESIANPOINT((0.,0.,0.));
#120=IFCDIRECTION((0.,0.,1.));
#121=IFCDIRECTION((1.,0.,0.));
#122=IFCAXIS2PLACEMENT3D(#119,#120,#121);
#123=IFCLOCALPLACEMENT($,#122);
#124=IFCDIRECTION((1.,0.,0.));
#125=IFCDIRECTION((0.,1.,0.));
#126=IFCCARTESIANPOINT((0.,0.,0.));
#127=IFCDIRECTION((0.,0.,1.));
#128=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#124,#125,#126,1.,#127);
#129=IFCMAPPEDITEM(#55,#128);
#130=IFCSHAPEREPRESENTATION(#22,'Body','MappedRepresentation',(#129));
#131=IFCPRODUCTDEFINITIONSHAPE($,$,(#130));
#132=IFCBUILDINGELEMENTPROXY('2vghw0Vaf489N2O8RV4mLV',#20,'Extrude001','',$,#123,#131,$,$);
#133=IFCCARTESIANPOINT((0.,0.,0.));
#134=IFCDIRECTION((0.,0.,1.));
#135=IFCDIRECTION((1.,0.,0.));
#136=IFCAXIS2PLACEMENT3D(#133,#134,#135);
#137=IFCLOCALPLACEMENT($,#136);
#138=IFCDIRECTION((1.,0.,0.));
#139=IFCDIRECTION((0.,1.,0.));
#140=IFCCARTESIANPOINT((0.,0.,0.));
#141=IFCDIRECTION((0.,0.,1.));
#142=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#138,#139,#140,1.,#141);
#143=IFCMAPPEDITEM(#85,#142);
#144=IFCSHAPEREPRESENTATION(#22,'Body','MappedRepresentation',(#143));
#145=IFCPRODUCTDEFINITIONSHAPE($,$,(#144));
#146=IFCBUILDINGELEMENTPROXY('2GBoYAn8514wJYrda0FRVd',#20,'Extrude002','',$,#137,#145,$,$);
#147=IFCCARTESIANPOINT((0.,0.,0.));
#148=IFCDIRECTION((0.,0.,1.));
#149=IFCDIRECTION((1.,0.,0.));
#150=IFCAXIS2PLACEMENT3D(#147,#148,#149);
#151=IFCLOCALPLACEMENT($,#150);
#152=IFCDIRECTION((1.,0.,0.));
#153=IFCDIRECTION((0.,1.,0.));
#154=IFCCARTESIANPOINT((0.,0.,0.));
#155=IFCDIRECTION((0.,0.,1.));
#156=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#152,#153,#154,1.,#155);
#157=IFCMAPPEDITEM(#115,#156);
#158=IFCSHAPEREPRESENTATION(#22,'Body','MappedRepresentation',(#157));
#159=IFCPRODUCTDEFINITIONSHAPE($,$,(#158));
#160=IFCBUILDINGELEMENTPROXY('0iRwTtZ1vDVg4QoKF$wB$X',#20,'Extrude','',$,#151,#159,$,$);
#161=IFCCOLOURRGB($,0.800000011920929,0.800000011920929,0.800000011920929);
#162=IFCSURFACESTYLERENDERING(#161,$,$,$,$,$,$,$,.NOTDEFINED.);
#163=IFCSURFACESTYLE('35',.BOTH.,(#162));
#164=IFCSTYLEDITEM(#53,(#163),'35');
#165=IFCCOLOURRGB($,0.800000011920929,0.800000011920929,0.800000011920929);
#166=IFCSURFACESTYLERENDERING(#165,$,$,$,$,$,$,$,.NOTDEFINED.);
#167=IFCSURFACESTYLE('35',.BOTH.,(#166));
#168=IFCSTYLEDITEM(#83,(#167),'35');
#169=IFCCOLOURRGB($,0.800000011920929,0.800000011920929,0.800000011920929);
#170=IFCSURFACESTYLERENDERING(#169,$,$,$,$,$,$,$,.NOTDEFINED.);
#171=IFCSURFACESTYLE('35',.BOTH.,(#170));
#172=IFCSTYLEDITEM(#113,(#171),'35');
#173=IFCRELCONTAINEDINSPATIALSTRUCTURE('2QqPjJJlDD_Rm7XxDLR0Dx',#20,$,$,(#132,#146,#160),#117);
ENDSEC;
END-ISO-10303-21;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff