An energy modeler may often come across this scenario:
My friend or I have some system data that used in another project and I want to use those data in my current project. So I/my friend have to dig through my old files to find those systems and then manually copy and paste the data into my new project.
This happened almost every day in my modeling life. This is not only time-consuming but also makes people feel frustrated, and modelers can easily be trapped in a trial-and-error loop if these problems were not handled properly, which will then either delays the project significantly or lowers the model quality for a deadline.
Luckily, we know that creating energy model is similar to make software, and in the software industry, there are so many services available to address this issue. One of the most popular services is GitHub. So what could GitHub-like workflow changes the energy modeling process? Let's test it and see the best practice:
I have an energy model, and I want to add some PV panels on the rooftop. My friend has PV panel data in one of his models. He said if I can pass my current model to him, he can help me add PV panels as well as the shades that host those PV panels.
So the traditional way to do this process is:
1. I give him my model, and wait for him to finish his PV panels
2. He digs through all his files to find the PV panel data, and then manually copy and paste into the energy model.
3. He passes me the completed energy model, and then I start working on other systems.
We will use BuildSimHub system to demo the same process in a more efficient Git way.
Firstly, I duplicated the energy model on BuildSimHub for him. To do this, I navigated to the most current model and then click "Fork New Branch." This operation allows the users to duplicate an energy model and place it in a new branch (The process is similar to copying an energy model and paste it into a new shared folder in Dropbox!).
This operation is necessary because now both of you can work on the same energy model without interference each other's work. Because it is for PV design, let's call the branch "PV design" and create it.
After did that, I can continue with my energy modeling while letting my friend messing around with his PV systems.
What my friend did was essentially pulling out an old model with the PV panel data in his BuildSimHub project list, and then merge the data into the new energy model through our merge interface.
On top of that, he also downloaded this new energy model and added some shading surfaces to host the PV panel.
Once my friend finished his part, he then started a merge request to my branch. The BuildSimHub merge function lets you select which objects you want to merge with the other model. So for PV, the building surfaces, shading surfaces and PV electric loads are the main objects, so he selected these objects.
Very quickly, I received a merge request from my friend. So I open this merge request (done, finally!) and click merge.
This operation brings you to a "merge" interface, where you can browse through all the highlighted objects to learn what is being added, deleted or modified. In this case, my friend added many PV objects and changed a little shading objects. Nevertheless, everything looks great, so I accepted the merge request.
Ta dah! We did it ! and look at the before and after; we have PV panels on the rooftop in just a few clicks!!
Next time, we will share more best practice