Loading the geometries I have
three.js features
Three.js includes the following
features:
- Lights: ambient, direction, point, and spot lights; shadows: cast and receive
- Export and import: utilities to create Three.js-compatible JSON files from within: Blender, openCTM, FBX, Max, and OBJ
OBJLoader
The OBJ file format is a simple data-format that represents 3D geometry alone — namely,
the position of each vertex, the UV position of each texture coordinate vertex,
vertex normals, and the faces that make each polygon defined as a list of vertices, and texture vertices.
An OBJ file may contain vertex data, free-form curve/surface attributes, elements,
free-form curve/surface body statements, connectivity between free-form surfaces,
grouping and display/render attribute information.
The most common elements are geometric vertices, texture coordinates, vertex normals and polygonal faces.
A 3D model of Le Corbusier's Dom-ino system is available, and it can be loaded onto the HTML canvas using OBJLoader from the three.js addons.
Dom-ino system by Le Corbusier
The camera can be controlled with the mouse.
IFCLoader
The
Industry Foundation Classes (IFC) is a CAD data exchange data schema intended for description of architectural, building and construction industry data.
It is an object-based data schema with a data model
to facilitate interoperability in the architecture, engineering and construction (AEC) industry, and is a commonly used collaboration format in
Building information modeling (BIM) based projects.
Hello ifc wall
The camera can be controlled with the mouse.
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
FILE_NAME('hello_wall.ifc','2023-04-03T11:02:39',('Kianwee Chen'),('ETHZ'),'IfcOpenShell','IfcOpenShell','');
FILE_SCHEMA(('IFC2X3'));
ENDSEC;
DATA;
#1=IFCPERSON($,$,'Kianwee Chen',$,$,$,$,$);
#2=IFCORGANIZATION($,'ETHZ',$,$,$);
#3=IFCPERSONANDORGANIZATION(#1,#2,$);
#4=IFCAPPLICATION(#2,'0.5','IfcOpenShell','');
#5=IFCOWNERHISTORY(#3,#4,$,.ADDED.,$,#3,#4,1680519759.893173);
#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('0Cni$ZqWyHxOS2SCz9D1T5',#5,'Hello Wall',$,$,$,$,(#11),#19);
#21=IFCCARTESIANPOINT((0.,0.,0.));
#22=IFCDIRECTION((0.,0.,1.));
#23=IFCDIRECTION((1.,0.,0.));
#24=IFCAXIS2PLACEMENT3D(#21,#22,#23);
#25=IFCLOCALPLACEMENT($,#24);
#26=IFCSITE('0Co0S$qWyHxOYfSCz9D1T5',#5,'Site',$,$,#25,$,$,.ELEMENT.,$,$,$,$,$);
#27=IFCCARTESIANPOINT((0.,0.,0.));
#28=IFCDIRECTION((0.,0.,1.));
#29=IFCDIRECTION((1.,0.,0.));
#30=IFCAXIS2PLACEMENT3D(#27,#28,#29);
#31=IFCLOCALPLACEMENT(#25,#30);
#32=IFCBUILDING('0Co0T0qWyHxPdNSCz9D1T5',#5,'Building',$,$,#31,$,$,.ELEMENT.,$,$,$);
#33=IFCCARTESIANPOINT((0.,0.,0.));
#34=IFCDIRECTION((0.,0.,1.));
#35=IFCDIRECTION((1.,0.,0.));
#36=IFCAXIS2PLACEMENT3D(#33,#34,#35);
#37=IFCLOCALPLACEMENT(#31,#36);
#38=IFCBUILDINGSTOREY('0CoAITqWyHxPDJSCz9D1T5',#5,'Storey',$,$,#37,$,$,.ELEMENT.,0.);
#39=IFCRELAGGREGATES('0CoAIUqWyHxOokSCz9D1T5',#5,'Building Container',$,#32,(#38));
#40=IFCRELAGGREGATES('0CoAIVqWyHxQrlSCz9D1T5',#5,'Site Container',$,#26,(#32));
#41=IFCRELAGGREGATES('0CoAIWqWyHxQR8SCz9D1T5',#5,'Project Container',$,#20,(#26));
#42=IFCCARTESIANPOINT((0.,0.,0.));
#43=IFCDIRECTION((0.,0.,1.));
#44=IFCDIRECTION((1.,0.,0.));
#45=IFCAXIS2PLACEMENT3D(#42,#43,#44);
#46=IFCLOCALPLACEMENT(#37,#45);
#47=IFCCARTESIANPOINT((0.,0.,0.));
#48=IFCCARTESIANPOINT((5.,0.,0.));
#49=IFCPOLYLINE((#47,#48));
#50=IFCSHAPEREPRESENTATION(#11,'Axis','Curve2D',(#49));
#51=IFCCARTESIANPOINT((0.,0.,0.));
#52=IFCDIRECTION((0.,0.,1.));
#53=IFCDIRECTION((1.,0.,0.));
#54=IFCAXIS2PLACEMENT3D(#51,#52,#53);
#55=IFCCARTESIANPOINT((0.,-0.1,0.));
#56=IFCCARTESIANPOINT((5.,-0.1,0.));
#57=IFCCARTESIANPOINT((5.,0.1,0.));
#58=IFCCARTESIANPOINT((0.,0.1,0.));
#59=IFCCARTESIANPOINT((0.,-0.1,0.));
#60=IFCPOLYLINE((#55,#56,#57,#58,#59));
#61=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#60);
#62=IFCDIRECTION((0.,0.,1.));
#63=IFCEXTRUDEDAREASOLID(#61,#54,#62,3.);
#64=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#63));
#65=IFCPRODUCTDEFINITIONSHAPE($,$,(#50,#64));
#66=IFCWALLSTANDARDCASE('0CoAIXqWyHxPQdSCz9D1T5',#5,'Wall','An awesome wall',$,#46,#65,$);
#67=IFCMATERIAL('wall material');
#68=IFCMATERIALLAYER(#67,0.2,$);
#69=IFCMATERIALLAYERSET((#68),$);
#70=IFCMATERIALLAYERSETUSAGE(#69,.AXIS2.,.POSITIVE.,-0.1);
#71=IFCRELASSOCIATESMATERIAL('0CoAIYqWyHxQYBSCz9D1T5',#5,$,$,(#66),#70);
#72=IFCPROPERTYSINGLEVALUE('Reference','Reference',IFCTEXT('Describe the Reference'),$);
#73=IFCPROPERTYSINGLEVALUE('IsExternal','IsExternal',IFCBOOLEAN(.T.),$);
#74=IFCPROPERTYSINGLEVALUE('ThermalTransmittance','ThermalTransmittance',IFCREAL(2.569),$);
#75=IFCPROPERTYSINGLEVALUE('IntValue','IntValue',IFCINTEGER(2),$);
#76=IFCPROPERTYSET('0CoAIZqWyHxRokSCz9D1T5',#5,'Pset_WallCommon',$,(#72,#73,#74,#75));
#77=IFCRELDEFINESBYPROPERTIES('0CoAIaqWyHxQsUSCz9D1T5',#5,$,$,(#66),#76);
#78=IFCQUANTITYLENGTH('Length','Length of the wall',$,5.);
#79=IFCQUANTITYAREA('Area','Area of the front face',$,15.);
#80=IFCQUANTITYVOLUME('Volume','Volume of the wall',$,3.);
#81=IFCELEMENTQUANTITY('0CoAIbqWyHxRz6SCz9D1T5',#5,'BaseQuantities',$,$,(#78,#79,#80));
#82=IFCRELDEFINESBYPROPERTIES('0CoAIcqWyHxRDdSCz9D1T5',#5,$,$,(#66),#81);
#83=IFCCARTESIANPOINT((0.5,0.,1.));
#84=IFCDIRECTION((0.,0.,1.));
#85=IFCDIRECTION((1.,0.,0.));
#86=IFCAXIS2PLACEMENT3D(#83,#84,#85);
#87=IFCLOCALPLACEMENT(#46,#86);
#88=IFCCARTESIANPOINT((0.,0.,0.));
#89=IFCDIRECTION((0.,0.,1.));
#90=IFCDIRECTION((1.,0.,0.));
#91=IFCAXIS2PLACEMENT3D(#88,#89,#90);
#92=IFCCARTESIANPOINT((0.,-0.1,0.));
#93=IFCCARTESIANPOINT((3.,-0.1,0.));
#94=IFCCARTESIANPOINT((3.,0.1,0.));
#95=IFCCARTESIANPOINT((0.,0.1,0.));
#96=IFCCARTESIANPOINT((0.,-0.1,0.));
#97=IFCPOLYLINE((#92,#93,#94,#95,#96));
#98=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#97);
#99=IFCDIRECTION((0.,0.,1.));
#100=IFCEXTRUDEDAREASOLID(#98,#91,#99,1.);
#101=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#100));
#102=IFCPRODUCTDEFINITIONSHAPE($,$,(#101));
#103=IFCOPENINGELEMENT('0CoAIdqWyHxOdMSCz9D1T5',#5,'Opening','An awesome opening',$,#87,#102,$);
#104=IFCRELVOIDSELEMENT('0CoAIeqWyHxRf4SCz9D1T5',#5,$,$,#66,#103);
#105=IFCCARTESIANPOINT((0.,0.,0.));
#106=IFCDIRECTION((0.,0.,1.));
#107=IFCDIRECTION((1.,0.,0.));
#108=IFCAXIS2PLACEMENT3D(#105,#106,#107);
#109=IFCLOCALPLACEMENT(#87,#108);
#110=IFCCARTESIANPOINT((0.,0.,0.));
#111=IFCDIRECTION((0.,0.,1.));
#112=IFCDIRECTION((1.,0.,0.));
#113=IFCAXIS2PLACEMENT3D(#110,#111,#112);
#114=IFCCARTESIANPOINT((0.,-0.01,0.));
#115=IFCCARTESIANPOINT((3.,-0.01,0.));
#116=IFCCARTESIANPOINT((3.,0.01,0.));
#117=IFCCARTESIANPOINT((0.,0.01,0.));
#118=IFCCARTESIANPOINT((0.,-0.01,0.));
#119=IFCPOLYLINE((#114,#115,#116,#117,#118));
#120=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#119);
#121=IFCDIRECTION((0.,0.,1.));
#122=IFCEXTRUDEDAREASOLID(#120,#113,#121,1.);
#123=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#122));
#124=IFCPRODUCTDEFINITIONSHAPE($,$,(#123));
#125=IFCWINDOW('0CoK3_qWyHxOjFSCz9D1T5',#5,'Window','An awesome window',$,#109,#124,$,$,$);
#126=IFCRELFILLSELEMENT('0CoK3$qWyHxQoSSCz9D1T5',#5,$,$,#103,#125);
#127=IFCRELCONTAINEDINSPATIALSTRUCTURE('0CoK40qWyHxQCzSCz9D1T5',#5,'Building Storey Container',$,(#66,#125),#38);
ENDSEC;
END-ISO-10303-21;