BCF Support GSoC Proposal

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
User avatar
pPodest
Posts: 65
Joined: Sat Feb 16, 2019 3:18 pm

BCF Support GSoC Proposal

Postby pPodest » Sat Apr 06, 2019 6:39 am

Hey FreeCAD community,

a little late, I finished my first complete draft of my project proposal.
The project tackles the integration of BCF into the BIM workbench, as described in this github issue.

Over the next days, till the deadline (on April 9th, 18:00 UTC) I will still make refinements (fixing spelling errors, change wording, etc.). Also any feedback is highly appreciated! So if you miss something in my proposal please leave a comment :)


Cheers,
Patrick
User avatar
bernd
Posts: 8023
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: BCF Support GSoC Proposal

Postby bernd » Sat Apr 06, 2019 2:49 pm

great proposal. BCF support would for FreeCAD would be very cool. Just a remark from my side. I would split it into a nongui bcf parser which just parses bcf and could be the base for all kind of development in the regard of bcf. A gui inside FreeCAD would just be one of these smart developments.
paullee
Posts: 1589
Joined: Wed May 04, 2016 3:58 pm

Re: BCF Support GSoC Proposal

Postby paullee » Sat Apr 06, 2019 4:09 pm

Seem interesting and helpful :)
User avatar
saso
Posts: 1279
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: BCF Support GSoC Proposal

Postby saso » Sat Apr 06, 2019 5:27 pm

Very nice, hopefully you will get in :)

Maybe it would be good to at the beginning also review some of the existing tools that have BCF support implemented and find some pros and cons from each.
User avatar
bernd
Posts: 8023
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: BCF Support GSoC Proposal

Postby bernd » Sat Apr 06, 2019 6:06 pm

User avatar
bernd
Posts: 8023
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: BCF Support GSoC Proposal

Postby bernd » Sat Apr 06, 2019 6:08 pm

saso wrote:
Sat Apr 06, 2019 5:27 pm
Very nice, hopefully you will get in :)

Maybe it would be good to at the beginning also review some of the existing tools that have BCF support implemented and find some pros and cons from each.
mainly this: https://bcfier.com/ it is a parser and there is a GUI based on the parser. Since it is C# it is of no real use for FreeCAD, but we might get some ideas from it.
User avatar
yorik
Site Admin
Posts: 11371
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: BCF Support GSoC Proposal

Postby yorik » Sat Apr 06, 2019 7:15 pm

Very good plan. I would just write a bit more about the documentation part, which is very important in opens-source projects.
I fully agree with bernd about splitting between GUI and non-GUI components too, and I'll certainly have something to say about the GUI later on :D but at this point, I think your proposal is fine and there is no need to have every technical aspect already solved.

One important thing too, I'd suggest you create yourself a github account (or any other git hosting platform like gitlab, but github makes pull requests very easy) and fork the FreeCAD project, and inform your github account in your proposal, so google people can see you have everything ready.

I am not sure you'd actually need to work directly on the FreeCAD source code (your project can very well be a fully independent plugin), but it doesn't harm to get used to git as soon as possible, if you haven't worked with it yet.
User avatar
pPodest
Posts: 65
Joined: Sat Feb 16, 2019 3:18 pm

Re: BCF Support GSoC Proposal

Postby pPodest » Sun Apr 07, 2019 6:23 am

Thanks for your early feedback!
bernd wrote:
Sat Apr 06, 2019 6:06 pm
Patrick, you may read this ... https://forum.freecadweb.org/viewtopic.php?p=175525
Thank you for linking the original topic and bcfier! It will spare me a great deal of work probably, since I am a guy who always starts at the bottom and develops all by himself and later discovering that it basically was unnecessary :roll:
bernd wrote:
Sat Apr 06, 2019 2:49 pm
great proposal. BCF support would for FreeCAD would be very cool. Just a remark from my side. I would split it into a nongui bcf parser which just parses bcf and could be the base for all kind of development in the regard of bcf. A gui inside FreeCAD would just be one of these smart developments.
Yes, certainly! I had it planned like this, but I think it should be pointed out more in the proposal.
yorik wrote:
Sat Apr 06, 2019 7:15 pm
Very good plan. I would just write a bit more about the documentation part, which is very important in opens-source projects.
I fully agree with bernd about splitting between GUI and non-GUI components too, and I'll certainly have something to say about the GUI later on :D but at this point, I think your proposal is fine and there is no need to have every technical aspect already solved.

One important thing too, I'd suggest you create yourself a github account (or any other git hosting platform like gitlab, but github makes pull requests very easy) and fork the FreeCAD project, and inform your github account in your proposal, so google people can see you have everything ready.

I am not sure you'd actually need to work directly on the FreeCAD source code (your project can very well be a fully independent plugin), but it doesn't harm to get used to git as soon as possible, if you haven't worked with it yet.
The documentation part will get expanded. Allow me this one question: How is the documentation style currently in FreeCAD? Till now I only looked a bit into the FEM workbench, which does not give the whole picture. I reckon that much of the code is documented in doxygen style (or something similar) that can be parsed in a nice format (like html or pdf in case of doxygen). And then there are tutorials, which I know of, because used one of them to get a hold of the FEM workbench ^^
User avatar
yorik
Site Admin
Posts: 11371
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: BCF Support GSoC Proposal

Postby yorik » Sun Apr 07, 2019 3:36 pm

pPodest wrote:
Sun Apr 07, 2019 6:23 am
develops all by himself and later discovering that it basically was unnecessary
Aren't we all like that :D
pPodest wrote:
Sun Apr 07, 2019 6:23 am
The documentation part will get expanded. Allow me this one question: How is the documentation style currently in FreeCAD?
The main doc is the wiki at https://www.freecadweb.org/wiki . Then we have the doxygen-generated docs too, but are in a pretty bad state now.... But have a look at this plugin that I developed last month: https://github.com/opensourceBIM/BIMbots-FreeCAD

Basically I think your BCF plugin could be developed more or less under the same mold: Self-contained git repo, and the doc is made in two parts: one is automatic, extracted from the python code with pdoc (could be doxygen too, doesn't really matter) and the other is a user-oriented GUI documentation which I did by hand. You can also host the doc on the FreeCAD wiki (that's what Amritpal did in his 2017 GSOC project), as you prefer. At the moment that's not a very important issue.
User avatar
pPodest
Posts: 65
Joined: Sat Feb 16, 2019 3:18 pm

Re: BCF Support GSoC Proposal

Postby pPodest » Sun Apr 07, 2019 4:37 pm

yorik wrote:
Sun Apr 07, 2019 3:36 pm
....
Basically I think your BCF plugin could be developed more or less under the same mold: Self-contained git repo, and the doc is made in two parts: one is automatic, extracted from the python code with pdoc (could be doxygen too, doesn't really matter) and the other is a user-oriented GUI documentation which I did by hand. You can also host the doc on the FreeCAD wiki (that's what Amritpal did in his 2017 GSOC project), as you prefer. At the moment that's not a very important issue.
I updated my proposal today by adding a section which details my plans on how to document my work. It is almost the same as you suggested and pursued in the BIMbots-FreeCAD plugin :D
However, I thought I would do it in three layers, each one getting more specific. From top to bottom the layers would be:
  • Tutorial: with at most three examples demonstrating the complete functionality
  • Structural: describing the structure of my work, with the purpose of enabling fast understanding of the plugin
  • Code: the code documentation that gets extracted, which also will describe the relationships between files.
I would like to create a the first two layers in form of a wiki page on the FreeCAD wiki, at least that was my plan.
Does this still make sense if the project will be a plugin? Based on the approach you took with your plugin I would use github for the first two layers.

If the current style of code documetation is pdoc then I do not want to dance out of line with suddenly doxygen.