I presented ifcgit yesterday at work as part of a 'show your hobby project' to about ~40 people mainly software developers. To people who don't know what IFC is. The presentation was recorded and I showed feature branching and ifc git merging. I just looked back at the recorded presentation and I think I definitely need to work on my presentation skills ?. I forgot to mention a lot of details,talked too fast and got a lot of confused looks. The only question I got was how to 3D visualize a merge conflict. However I was quite relieved the ifc merge worked in the live demo.
The screencast is 75 minutes long, if we had more time it could have been shorter. Thanks to everyone who joined-in, IFC Git is a collaboration tool above all:
@brunopostle said:
Yes, thanks to help from @bruno_perdigao add-on has been moved into BlenderBIM, so if you have the old add-on installed you should uninstall it.
However we still have no way of shipping the git executable with BlenderBIM, so you do need to install this separately. On a Linux system you probably don't have to do anything, but on Windows you need to download git ( @Ace you don't need to do anything, you already have it). Similarly, if you want to use the experimental merge functionality, you need ifcmerge in your PATH, windows executable downloadable from here: https://github.com/brunopostle/ifcmerge/releases/tag/2022-06-20
@brunopostle Bruno for Windows downloading Git is still a requirement right?
@Ace said: @brunopostle Bruno for Windows downloading Git is still a requirement right?
Yes, I originally thought we might be able to do it all with the python git implementation, but we need the full git tool. I need to do some Windows instructions, including ssh keys for GitHub etc..
[Updated] setting up Git collaboration in BlenderBIM
Git support is built-into BlenderBIM, but some extra tools are needed to use it.
Install Git
On Linux you probably already have Git installed through your package manager. On Windows, download and install from the Git website; or install it using winget, using the cmd.exe command-line (hit the Windows key and type cmd):
winget install --id Git.Git -e --source winget
You may have to logout and log-in again
Install ifcmerge
On Linux, just download the ifcmerge script, put it in your PATH, ie. in ~/.local/bin and make it executable:
chmod +x ~/.local/bin/ifcmerge
Windows users, download and unzip the ifcmerge.exe file, and put it somewhere in your %PATH%. A good place to put it is in the same folder as git.exe, find out where this is using this command-line:
where git
Github
Git-forges can use all sorts of access methods, but Github requires you to use ssh encryption and authentication, you will need to generate an ssh-key (with no password) and upload it to your Github account, you will also need to add the Github key to your known_hosts file.
On Windows the Git tool installed earlier has everything you need, launch the Git Gui tool, select Help > Show SSH Key, then Generate Key (if you don't already have one) and paste this text into your Github account preferences. To add Github to your known_hosts file, launch the Git Bash tool (which is a command-line like cmd.exe), and briefly connect to the Github servers:
ssh github.com
This will ask you if you want to add their key (fingerprint SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM) to your known_hosts, type yes and exit since you don't have permission to do anything else.
This is really great guys!
However I am running into the following error when trying to do an initial Git commit on Windows 10 (Blender v4.3.2 Bonsai v0.8.0).
When I try to add an existing IFC project file to the BlenderBIM/Bonsai initiated Git repo I get this: ValueError: Absolute path 'C:/Users/Marius/OneDrive/_Renovation/IFCs/Kantershof_386_FIXED_Copy.ifc' is not in git repository at 'C:\\Users\\Marius\\OneDrive\\_Renovation\\IFCs'
I can Git add the IFC project file, and make the initial Git commit from the Command Prompt without any issues.
The Command Prompt Git commit does show up in BlenderBIM/Bonsai after the "Refresh revision list" button is clicked.
Does anyone have any pointers how to fix this Git add Absolute path issue, as of course it would be lot handier to have this all in Blender UI instead of having to move to Command Prompt back and forward. Thanks!
..also there have been a couple of changes to the git functionality in the latest snapshots:
ifcmerge now ships with Bonsai, so you shouldn't have to install it separately to be able to merge branches.
On windows there is a button where you can try to install Git using winget and the Microsoft Store (the button only appears when you don't have Git). It would be nice to have reports of success or failure. It should be removed if it causes too much trouble.
@brunopostle said: @Armatura can you commit changes to this file once it has been added to the repository?
I get the same errors as with the Innitial CommitValueError: Absolute path 'C:/Users/Marius/OneDrive/_Renovation/IFCs/Kantershof_386_FIXED_Copy.ifc' is not in git repository at 'C:\\Users\\Marius\\OneDrive\\_Renovation\\IFCs'
Mind you, if I load a new IFC Project from a Demo template, the Bonsai Git UI works fine.
@brunopostle said:
..also there have been a couple of changes to the git functionality in the latest snapshots:
ifcmerge now ships with Bonsai, so you shouldn't have to install it separately to be able to merge branches.
On windows there is a button where you can try to install Git using winget and the Microsoft Store (the button only appears when you don't have Git). It would be nice to have reports of success or failure. It should be removed if it causes too much trouble.
So theifcmerge.exe should removed from .\Git\cmd directory?
@Armatura I don't know what the problem is, it shouldn't be an issue with OneDrive, but it is worth checking to see if it works outside of a OneDrive folder. I'll have a look in the code and see if these paths are normalised before being passed to git.
Yes you can remove the ifcmerge.exe from the git installation folder, the version in Bonsai is more up to date with some minor fixes.
@brunopostle said: @Armatura I don't know what the problem is, it shouldn't be an issue with OneDrive, but it is worth checking to see if it works outside of a OneDrive folder. I'll have a look in the code and see if these paths are normalised before being passed to git.
Yes you can remove the ifcmerge.exe from the git installation folder, the version in Bonsai is more up to date with some minor fixes.
I think trying another folder in C:\Users\....\Documents\ via the Bonsai UI initial commit was one of the first things I tried while troubleshooting, and it throws the same error.
The fact that it works fine with a fresh IFC project made from the "IFC4 Demo Template" points towards my IFC file having issues, but how can it then affect the Absolute/Relative path interpretation of Bonsai UI Git is beyond me.
And just like that, after purging the unused types & profiles, as well as moving all the objects to correct collections (Some objects were assigned to some random collection) in the Outliner, the Git started to work. I was able to Create the Repo, add the IFC file to it and commit it without any errors.
ValueError: Absolute path 'C:/Users/Marius/OneDrive/_Renovation/IFCs/Kantershof_386_FIXED_Copy.ifc' is not in git repository at 'C:\\Users\\Marius\\OneDrive\\_Renovation\\IFCs'
Somehow, and I don't know how, this means that blender has supplied the file path with / folder separators when it should everywhere be \\ on Windows. Can you remember how you got the IFC file in Bonsai? was it double-clicking on an IFC file? the File > Open menu? or creating a new file and saving it?
@brunopostle said:
ValueError: Absolute path 'C:/Users/Marius/OneDrive/_Renovation/IFCs/Kantershof_386_FIXED_Copy.ifc' is not in git repository at 'C:\Users\Marius\OneDrive\_Renovation\IFCs'
Somehow, and I don't know how, this means that blender has supplied the file path with / folder separators when it should everywhere be \\ on Windows. Can you remember how you got the IFC file in Bonsai? was it double-clicking on an IFC file? the File > Open menu? or creating a new file and saving it?
I always get confused with these directory/path slash/backslash conventions for different OSs. But you are right, the path should be with "\" instead of "/" in Project Info IFC file path field, and then Bonsai Git UI works without a glitch. Still seems like some bug that Blender initially loads the IFC file path with "\".
Thanks, so if you open from the Recent Files list, the path is stored with / separators (which is wrong on Windows), but if you use File Open then it uses \\ (which is correct on Windows).
@brunopostle said:
Thanks, so if you open from the Recent Files list, the path is stored with / separators (which is wrong on Windows), but if you use File Open then it uses \\ (which is correct on Windows).
Not really.
Opening the IFC file via File -> Open IFC Project or File -> Open Recent IFC Project results in / separators.
Only when one loads the IFC file via the Bonsai UI Project Info directory field, does the separators switch to \ and allow Bonsai Git UI to add the IFC project file into to the Repo. You can see this moment, when the in the / switches to \ in GIF screen recording above.
Comments
I presented ifcgit yesterday at work as part of a 'show your hobby project' to about ~40 people mainly software developers. To people who don't know what IFC is. The presentation was recorded and I showed feature branching and ifc git merging. I just looked back at the recorded presentation and I think I definitely need to work on my presentation skills ?. I forgot to mention a lot of details,talked too fast and got a lot of confused looks. The only question I got was how to 3D visualize a merge conflict. However I was quite relieved the ifc merge worked in the live demo.
@Coen Well done!
I enjoyed the meeting yesterday, for people who are interested, the git history of what we did yesterday.
https://github.com/C-Claus/ifc-demo/compare/master...brunopostle:ifc-demo:master
I'll upload the screencast soon, here is the fork/branch/merge history (note four authors):
Ah damn I missed it, great job!
The screencast is 75 minutes long, if we had more time it could have been shorter. Thanks to everyone who joined-in, IFC Git is a collaboration tool above all:
https://youtube.com/live/cJZhSCSSWdA
@brunopostle Bruno for Windows downloading Git is still a requirement right?
Yes, I originally thought we might be able to do it all with the python git implementation, but we need the full git tool. I need to do some Windows instructions, including ssh keys for GitHub etc..
[Updated] setting up Git collaboration in BlenderBIM
Git support is built-into BlenderBIM, but some extra tools are needed to use it.
Install Git
On Linux you probably already have Git installed through your package manager. On Windows, download and install from the Git website; or install it using winget, using the
cmd.exe
command-line (hit the Windows key and typecmd
):You may have to logout and log-in again
Install ifcmerge
On Linux, just download the
ifcmerge
script, put it in yourPATH
, ie. in~/.local/bin
and make it executable:Windows users, download and unzip the
ifcmerge.exe
file, and put it somewhere in your%PATH%
. A good place to put it is in the same folder asgit.exe
, find out where this is using this command-line:Github
Git-forges can use all sorts of access methods, but Github requires you to use ssh encryption and authentication, you will need to generate an ssh-key (with no password) and upload it to your Github account, you will also need to add the Github key to your
known_hosts
file.On Windows the Git tool installed earlier has everything you need, launch the Git Gui tool, select Help > Show SSH Key, then Generate Key (if you don't already have one) and paste this text into your Github account preferences. To add Github to your
known_hosts
file, launch the Git Bash tool (which is a command-line likecmd.exe
), and briefly connect to the Github servers:This will ask you if you want to add their key (fingerprint
SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM
) to yourknown_hosts
, typeyes
and exit since you don't have permission to do anything else.It can't find the
git
tool. Once Git has been installed, you will need to restart Blender and maybe even log out of Windows and log in again.Can you check if Blender can find Git? in the blender Python Console type these commands:
This is really great guys!
However I am running into the following error when trying to do an initial Git commit on Windows 10 (Blender v4.3.2 Bonsai v0.8.0).
When I try to add an existing IFC project file to the BlenderBIM/Bonsai initiated Git repo I get this:

ValueError: Absolute path 'C:/Users/Marius/OneDrive/_Renovation/IFCs/Kantershof_386_FIXED_Copy.ifc' is not in git repository at 'C:\\Users\\Marius\\OneDrive\\_Renovation\\IFCs'
I can Git add the IFC project file, and make the initial Git commit from the Command Prompt without any issues.

The Command Prompt Git commit does show up in BlenderBIM/Bonsai after the "Refresh revision list" button is clicked.

Does anyone have any pointers how to fix this Git add
Absolute path
issue, as of course it would be lot handier to have this all in Blender UI instead of having to move to Command Prompt back and forward. Thanks!@Armatura can you commit changes to this file once it has been added to the repository?
..also there have been a couple of changes to the git functionality in the latest snapshots:
I get the same errors as with the Innitial Commit

ValueError: Absolute path 'C:/Users/Marius/OneDrive/_Renovation/IFCs/Kantershof_386_FIXED_Copy.ifc' is not in git repository at 'C:\\Users\\Marius\\OneDrive\\_Renovation\\IFCs'
Mind you, if I load a new IFC Project from a Demo template, the Bonsai Git UI works fine.
So the

ifcmerge.exe
should removed from.\Git\cmd
directory?@Armatura I don't know what the problem is, it shouldn't be an issue with OneDrive, but it is worth checking to see if it works outside of a OneDrive folder. I'll have a look in the code and see if these paths are normalised before being passed to git.
Yes you can remove the ifcmerge.exe from the git installation folder, the version in Bonsai is more up to date with some minor fixes.
I think trying another folder in
C:\Users\....\Documents\
via the Bonsai UI initial commit was one of the first things I tried while troubleshooting, and it throws the same error.The fact that it works fine with a fresh IFC project made from the "IFC4 Demo Template" points towards my IFC file having issues, but how can it then affect the Absolute/Relative path interpretation of Bonsai UI Git is beyond me.
And just like that, after purging the unused types & profiles, as well as moving all the objects to correct collections (Some objects were assigned to some random collection) in the Outliner, the Git started to work. I was able to Create the Repo, add the IFC file to it and commit it without any errors.
Somehow, and I don't know how, this means that blender has supplied the file path with
/
folder separators when it should everywhere be\\
on Windows. Can you remember how you got the IFC file in Bonsai? was it double-clicking on an IFC file? the File > Open menu? or creating a new file and saving it?I always get confused with these directory/path slash/backslash conventions for different OSs. But you are right, the path should be with "\" instead of "/" in

Project Info
IFC file path field, and then Bonsai Git UI works without a glitch. Still seems like some bug that Blender initially loads the IFC file path with "\".Thanks, so if you open from the Recent Files list, the path is stored with
/
separators (which is wrong on Windows), but if you use File Open then it uses\\
(which is correct on Windows).Not really.
Opening the IFC file via
File -> Open IFC Project
orFile -> Open Recent IFC Project
results in/
separators.Only when one loads the IFC file via the Bonsai UI
Project Info
directory field, does the separators switch to\
and allow Bonsai Git UI to add the IFC project file into to the Repo. You can see this moment, when the in the/
switches to\
in GIF screen recording above.