iTowns / itowns

A Three.js-based framework written in Javascript/WebGL for visualizing 3D geospatial data
http://www.itowns-project.org
Other
1.07k stars 292 forks source link

Visualize BIM DATA in Itowns. #1185

Open JeanChristopher opened 5 years ago

JeanChristopher commented 5 years ago

Hello ! I was wondering if we could visualize BIM (.IFC) data in Itowns.

Context

For my project, I have to build a 3D indoor navigation app for buildings. So the data that I have are in .IFC format. Before I jump into coding, I want to be sure that Itowns allow to perform this operation.

Expected Behavior

Indoor navigation in a 3D building with postgrest

Possible Cause/Fix/Solution

Could we use a geojson converted BIM (.IFC) data and to perform this operation ? Dont know !

zarov commented 5 years ago

Hi ! I never did BIM in iTowns, but I know that @gmaillet successfully did it with data coming from a bim server. I don't know the structure of a BIM, but maybe to simplify things you can write/find a plugin doing the conversion to geojson, and give this geojson to iTowns as you said.

gmaillet commented 4 years ago

Hello, There is nothing in iTowns to natively load IFC data, but you have at least two options:

The first option is the easiest (try IfcConvert for example), but you loose all the properties of the BIM model. For the second one, I have tested BimServer 1.5.138 (https://github.com/opensourceBIM/BIMserver/releases) and I took example on BimSurfer to know how to request the server from Js. In my case, I used the old version of BimSurfer (https://github.com/opensourceBIM/BIMsurfer-before2019), but it's probably a better idea to use the new one (https://github.com/opensourceBIM/BIMsurfer).

A GeoJson convertion is a good idea to keep the geometric information with all the properties but I don't know if there is open source solution for that? If you have it, it's easy to load GeoJson in iTowns.

JeanChristopher commented 4 years ago

Hello @gmaillet,

Thanks for your answer. Indeed, I proceeded with the second option you suggested. I'm working with Bimserver 1.5.162 and succeeded in requesting and displaying the ifc data with BimSurfer 3. What I want then is to load the IFC data in Itowns using BimSurfer.

But I'm stuck with how to use the Itowns scene tree for BimSurfer.

Can you please explain me how you managed to get it done ?

AugmentedGeoBae commented 4 years ago

For IFCConvert in the IfcOpenShell project: http://ifcopenshell.org/ifcconvert

If you create a OBJ or DAE along with a separate XML of the same model, you could write some custom code to get the ID of a piece of geometry which is also the BIM element ID and then look it up in the XML file.

This is a guide for using this method in C# which may be useful when designing the JS front-end code: http://cad-3d.blogspot.com/2018/09/getting-bim-data-into-unity-part-9.html

mgermerie commented 1 year ago

The solution to visualize BIM would be to use the IFC loader of Three.js. An example is planed in the road map.