BlenderBIM Experimental IFC Git add-on

124»

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.

    NigelbrunopostleOle_Marius_SvendsenAceDarth_Blenderbaswein
  • @Coen Well done!

    Coen
  • 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

    Massimobrunopostle
  • edited June 2023

    I'll upload the screencast soon, here is the fork/branch/merge history (note four authors):

    *   commit dec9243d8894a8523e568fe5a2397af59969031b
    |\  Merge: 1404abd 2700060
    | | Author: Bruno Postle
    | | Date:   Tue Jun 27 17:05:40 2023 +0100
    | | 
    | |     Merge remote-tracking branch 'yass/master'
    | |     
    | |     # Conflicts:
    | |     #       model.ifc
    | | 
    | * commit 2700060d60c220a67657d85da1a8c5e91411981d
    | | Author: Sigma Dimensions
    | | Date:   Tue Jun 27 16:57:43 2023 +0100
    | | 
    | |     Unpriced Bill Of Quantities
    | |   
    * |   commit 1404abd3737bd2041bcc08a3af76bfd80280a339
    |\ \  Merge: f8c304e 1ffb65b
    | |/  Author: Bruno Postle
    |/|   Date:   Tue Jun 27 16:52:46 2023 +0100
    | |   
    | |       Merge branch 'branch3'
    | |       
    | |       # Conflicts:
    | |       #       model.ifc
    | | 
    | * commit 1ffb65b0e37606734581a7051638bffa17609f65
    | | Author: Bruno Postle
    | | Date:   Tue Jun 27 16:52:15 2023 +0100
    | | 
    | |     delete windows too
    | |   
    * |   commit f8c304e7be3cea35b9dd525afa2e695960890f91
    |\ \  Merge: 9862048 d27b346
    | | | Author: Bruno Postle
    | | | Date:   Tue Jun 27 16:35:24 2023 +0100
    | | | 
    | | |     Merge pull request #1 from C-Claus/master
    | | |     
    | | |     this is a change
    | | | 
    | * | commit d27b346e56bea3fe3c88469592ec7df5538242a0
    |/ /  Author: Coen Claus
    | |   Date:   Tue Jun 27 17:32:03 2023 +0200
    | |   
    | |       this is change
    | |   
    | | * commit 44740e662dc521036a8f2c7947e4112019ef4fb3
    | |/  Author: Bruno Postle
    | |   Date:   Tue Jun 27 16:54:50 2023 +0100
    | |   
    | |       adopting ryans fork
    | | 
    | * commit cd40bdef9a46fb7821292524f66d857610fd87cb
    |/  Author: Ryan Schultz
    |   Date:   Tue Jun 27 10:35:53 2023 -0500
    |   
    |       moved windows
    |   
    *   commit 98620481a6f8f479120c955e32cb2bfad2692d5e
    |\  Merge: f771e10 df022b7
    | | Author: Bruno Postle
    | | Date:   Tue Jun 27 16:20:11 2023 +0100
    | | 
    | |     Merge branch 'branch2'
    | |     
    | |     # Conflicts:
    | |     #       model.ifc
    | | 
    | * commit df022b7ae733610b3092def1998f855dd2bd6bec
    | | Author: Bruno Postle
    | | Date:   Tue Jun 27 16:19:28 2023 +0100
    | | 
    | |     thrird window added
    | |   
    * |   commit f771e101e69cf73a1fe963906e0cba5f6adefbcf
    |\ \  Merge: 9b7084f 4c38ccb
    | | | Author: Bruno Postle
    | | | Date:   Tue Jun 27 16:14:36 2023 +0100
    | | | 
    | | |     Merge branch 'mybranch'
    | | |     
    | | |     # Conflicts:
    | | |     #       model.ifc
    | | | 
    | * | commit 4c38ccb5ac2a073f4b902f8248a4606374b42f60
    | |/  Author: Bruno Postle
    | |   Date:   Tue Jun 27 16:13:27 2023 +0100
    | |   
    | |       another window added
    | | 
    * | commit 9b7084f98c049cae0aa2a1f5fc38b328ee318f7c
    |/  Author: Bruno Postle
    |   Date:   Tue Jun 27 16:12:12 2023 +0100
    |   
    |       Window added
    | 
    * commit 53774fc5e7d89b5460bcf3ea6531d45c061dae74
      Author: Bruno Postle
      Date:   Tue Jun 27 16:08:59 2023 +0100
    
          Added model.ifc
    
    tlangCoencarlopavMassimoGorgiousbruno_perdigao
  • Ah damn I missed it, great job!

  • edited June 2023

    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

    theoryshawVDobranovAceMoultCoenMassimo
  • AceAce
    edited June 2023

    @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..

    Ace
  • [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.

    Coenbruno_perdigaoAceatomkarinca
  • 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:

    import shutil
    shutil.which("git")
    shutil.which("git.exe")
    
Sign In or Register to comment.