How BIMSOCKets share data
How to use it
We use Google Firebase under the hood to communicate all the different programms
Example of connection between Unity and our custom Three js Viewer
Example of connection between Unity, Revit, the Database and our custom Three js Viewer
Example of connection between VIM and Rhino
Example of connection between Revit and google spreadsheets
BIMSOCKet is a tool designed to be the road where data flows so our idea is to allow the users to exchange any type of format that they want
We work with different AEC software every day and is a constant struggle the migration of data and to work collaborative with people who are not in the same office, even more in the current Covid times.
What it does
BIMSOCKet is a bidirectional cloud socket to connect any type of AEC software in real time.
How we built it
Challenges we ran into
-We discover there are so many incompatibilities between different 3D engines: units, scale,normals, faces, vector,3D coordinates,languages, etc -We started using just one Document per model in Firebase but we faced problems due to the size limitations of said Documents. Our testing models exceed the 10 mb limit of the Firestore structure which lead us to re think the whole process.
- Checking for Nulls on almost any normal programming language it is something to be worry about. We had to deal with multiple platforms interconnecting in real time and chasing those null was half of the work.
- Transactional software such as Revit need special care during modification of its elements. We develop creative solutions to deal with it.
- Object change during Revit Events.
- Specially JS event handlers and triggering changes in ThreeJs
- While git submodules are an amazing way to connect repos, it's a struggle to keep them update.
Accomplishments that we're proud of
We had a blast coding and we learnt many concepts that we didn't know! That we got the solution working between all the different programs in real time, hooray!!
What we learned
-We learnt a lot about the way that each different API of 3D software works. -Building on top of a simple concept allowed us a world of different possibilities of what to do. -KISS is the key. -It is important to learn to prioritize and be lean. -Talk to potential users made us change so many things that though we had a clear path. -Good ideas don't grow in the vacuum, sometime it just connecting something existing in new ways.
What's next for BIMSOCKet
-Add more connector to it and increase the ecosystem -Improve stability of the Three js Viewer -Include glTF as another format. -Get the community involved with the project -Improve the system to get bigger files -Add the clash detection feature to our viewer