V
by vinnividivicci on 17 Nov 2020, edited 2 Dec 2024
#
+2 votes
Hello,
Does anyone have a good workflow for getting IFC models onto mobile devices (iOS/Android) WITHOUT having to go through a cloud service (ie.: email the file or share via OneDrive and open directly on device)?
All the ones I have found seem to do processing "on the cloud" at some point and/or require uploading the models to a specific project structure on a cloud service.
M
by Moult on 17 Nov 2020
#
+2 votes
@vinnividivicci If you can compile IfcConvert for ARM, (well, the hard part is probably compiling the deps really), then I think you can use IfcConvert to give you a format that is easier to feed into a 3D viewer lib on a phone. Ping @aothms who might know how plausible ARM support is.
I also notice assimp supports Android / iOS. Maybe this is the way to go, but I don't know how good their IFC support is.
B
by brunopostle on 18 Nov 2020
#
+1 votes
@Moult said:
@vinnividivicci If you can compile IfcConvert for ARM, (well, the hard part is probably compiling the deps really),
It builds fine for aarch64, though I have never tested these binaries on an actual arm device: https://copr.fedorainfracloud.org/coprs/bpostle/IfcOpenShell/build/1771565/
V
by vinnividivicci on 19 Nov 2020
#
+1 votes
Thanks for your input guys! I'm currently leaning towards the simple solution of exporting from Blender directly to glTF (although there seems to be ways to go from IFC straight into glTF using IfcOpenShell and other librairies...), which can basically be viewed anywhere and is an open standard.
Will report back with a demo and a workflow example once it's more streamlined.
M
by Moult on 19 Nov 2020
#
+1 votes
@vinnividivicci yeah use IfcConvert
which can output glTF directly :) It's not documented on the main IfcOpenShell website, which is very outdated, but it's there!
V
by vinnividivicci on 22 Dec 2020
#
Update on this, I've been using the glTF Viewer app on iOS to view the GLB files produced by IfcConvert. More recently, I discovered a free app called BIM2XR that can convert and open IFC files directly in iOS.
V
by vinnividivicci on 22 Dec 2020
#
+2 votes
Yes, once that project matures a little more and fully supports IFC4 it will be a game changer!
M
by Moult on 22 Dec 2020
#
+3 votes
By the way, this is a great way for non-coders to contribute - create simple IFC files from various software, and try to load it in IFC.js - if it doesn't load, create a new issue / bug here: https://github.com/agviegas/IFC.js - share your file, as well as open the web inspector in your browser when you load the file (hotkey is usually F12 on most browsers) so it'll show you the relevant errors for debugging. Here's an example of an issue: https://github.com/agviegas/IFC.js/issues/22
That will greatly help the developer target real-world usecases.
D
by duncan on 23 Dec 2020
#
What's it using under the hood? Is it a full new implementation of a library for reading IFC files?
V
by vinnividivicci on 23 Dec 2020
#
@duncan said:
What's it using under the hood? Is it a full new implementation of a library for reading IFC files?
My understanding is that it's completely written in Javascript, so your browser is doing all the work, no server-side conversion.
In other news, I found this: https://www.opencascade.com/products/cad-assistant/
It has an Android and iOS app. Unfortunately, the iOS app has not been updated since 2018 and therefore still requires files to be "side-loaded" via iTunes. This method works but is not practical for sending models to someone on a remote construction site. The Android app is up-to-date but did not want to open an IFC4 file I tested it with... it was able to open a 2x3 file from an attachment though.
Maybe we could get the OCC guys to update the iOS app? Pretty please? ?
A
by agviegas on 29 Dec 2020
#
+4 votes
Hey! To clarify a little on this topic: IFC.js has been written entirely in JavaScript. Chevrotain.js is being used to create a completely new IFC parser in JS and the result is mapped with Three.js geometry. Even tough my initial intention was to create an IFC Loader for Three.js, this is completely compatible with the JS ecosystem, f. e. React Native. It doesn't depend on servers, everything is done client side. Don't hesitate to ask me anything regarding this, or send me any files you would like to have implemented as soon as possible. ?
D
by duncan on 29 Dec 2020
#
+1 votes
@agviegas if you're looking for files to test with there is a list here: https://wiki.osarch.org/index.php?title=AEC_Open_Data_directory
M
by miriam on 30 May 2021
#
Please let me know what I can improve on BIM2XR to make it interesting.
D
by duncan on 1 Jun 2021
#
+1 votes
Hi @miriam BIM2XR is not libre software or opensource software as far as I can tell. Are you thinking of putting it under a free software or OSI license?
E
by eric on 13 Dec 2021
#
Hi, if use IFC.js and React Native, is it possible to view BIM file that is stored locally in mobile (offline mode). Thanks.
Eric
A
by agviegas on 13 Dec 2021
#
@eric said:
Hi, if use IFC.js and React Native, is it possible to view BIM file that is stored locally in mobile (offline mode). Thanks.
Eric
Yes, React Native is compatible with Three.js and maps WebGL to native mobile 3d.
E
by eric on 15 Dec 2021
#
Hi, have a query from the client, is there any size limitation of the BIM model that can be viewed in IFC.js? esp in mobile. Many Thanks.
A
by agviegas on 15 Dec 2021, edited 15 Dec 2021
#
+3 votes
@eric said:
Hi, have a query from the client, is there any size limitation of the BIM model that can be viewed in IFC.js? esp in mobile. Many Thanks.
There is a size limitation, just as any software has a size limitation ? That's what happens when you have limited RAM memory. As for the maximum size of IFC we have ever opened, I think it's about 800mb. But you have to keep 2 things in mind:
-
One of the biggest issues we are facing is memory consumption. We have drastically reduced it recently and will keep reducing it, but the main limitation will be the RAM memory of the devices where you plan to see the BIM model. I'm not sure about the metrics, but I think that right now we consume something like 30% more than BIMvision. Our goal is to reach that consumption level.
-
IFC.js is not magic. It can't make 200mb IFC models run smoothly in smartphones, because those devices were not designed to support that amount of computation. If your task involves displaying big models in small devices, you need to rely on backend rendering and real-time streaming through internet. This has nothing to do with IFC.js; it's just the hardware that we have nowadays.
If you find that IFC.js doesn't support what you are looking for yet, I suggest you to create a glTF from the IFC model and try to optimize it enough so it can be displayed in your target device using Three.js.
J
by jussch on 25 Sep 2023
#
Hello everyone,
I've been exploring ways to render IFC files natively on iOS using its frameworks. I've come across discussions about using ifc.js or the Autodesk Viewer on iOS. However, I'm wondering if these solutions are simply utilizing a WebView rather than native frameworks like Metal for Swift. Has anyone else had this concern?
I've also tried compiling for iOS using Assimp, following numerous tutorials, but I've never been successful. I recently stumbled upon this framework: https://github.com/ctreffs/SwiftAssimp.git. Does anyone have experience with it or know if it might be a solution for rendering IFC natively on iOS?
I apologize if I've misunderstood anything; I'm still a beginner in this area. Any guidance or suggestions would be greatly appreciated.
M
by Moult on 26 Sep 2023
#
+1 votes
@jussch given the potentially lower computing power of iOS devices, it probably makes sense to preprocess the files into more optimal formats for loading regardless of how you choose to render it in the end (whether using a web view or other tech). After a quick search online I came across https://developer.apple.com/scenekit/ which seems to work with Collada (IfcConvert can convert IFC --> DAE). Then, you can use the IDs of objects to correlate to IFC objects (say in JSON or XML).
Here's an example guide preprocessing to DAE which maintains IDs: https://xeokit.notion.site/Converting-IFC-Models-to-XKT-using-3rd-Party-Open-Source-Tools-c373e48bc4094ff5b6e5c5700ff580ee (that tutorial is for Xeokit which uses XKT - which might be worth looking at too if you want to use a web view).
W
by wmi on 26 Sep 2023
#
There is CAD Assistant from opencascade.com which although dated seem to run fine on a 5th gen iPad Pro running iPadOS 16.3. It is a bit weird where to put the files so that the app finds them.
J
by jussch on 26 Sep 2023
#
@Moult Thank you for the insights. Is it possible to use IfcConvert directly on iOS, or must files be preprocessed on a server? I’d like users to read IFC files from their devices without server-side processing. Any advice?
M
by Moult on 26 Sep 2023
#
@jussch IfcConvert is built for Apple ARM (M1, M2, etc), so I guess in theory it can run on iOS? I know nothing about building software for iOS though :) https://blenderbim.org/docs-python/ifcconvert/installation.html
J
by jussch on 26 Sep 2023
#
@Moult Thanks for the tip :) It works from my Mac terminal to convert an ifc file to a dae file. And I can now render dae files in my iOS app. However, the download is a Unix executable which means I can't use it from Swift (at least not on iOS). I'd really like to stick to the idea of running everything locally, since my ifc files won't be that big for now. Is there any way to convert the ifc files directly in iOS?