"
Re: Anyone interested in bringing Topologic to FreeCAD?
Would doing this open FreeCAD to any automatic internet access or IP? It sounds like low level stuff but I would like to know, if anyone knows. :?
Thanks
"
Dear OSArch community,
I kindly need your help. I (think I) managed to build TopologicSverchok for Blender 3.1 against OCCT 7.7. If you are a Linux user (especially Ubuntu 20.10) and you are using the latest Blender and Sverchok, please download, test, and report success or issues. Many thanks!
@paullee and others who use FreeCAD. I just downloaded FreeCAD 0.19 and then 0.20 and I am encountering the same problem: The Part module is failing to load:
08:36:26 Unknown command 'Part_SectionCut'
08:36:34 DLL load failed while importing PartGui: The specified procedure could not be found.
08:36:34 Traceback (most recent call last):
File "", line 43, in Initialize
File "C:\Program Files\FreeCAD 0.20\bin\Lib\site-packages\shiboken2\files.dir\shibokensupport__feature__.py", line 142, in _import
return original_import(name, *args, **kwargs)
Anyone have any ideas why that is happening? Thanks!
@topologic said: @paullee and others who use FreeCAD. I just downloaded FreeCAD 0.19 and then 0.20 and I am encountering the same problem: The Part module is failing to load:
What is your windows version, FreeCAD version ?
I am on Fedora only, I'll see if there have been help in FC forum on similar problem.
0.20 release version is on the way, so it is good to debug :D
Thanks. I solved this issue by compiling Topologic against OCCT 7.5 and python 3.8 and then not using any of the OCCT DLLs. Just the topologic pyd and dll files. I just created a Topologic workbench and it relies on the OCCT dll files already included with FreeCAD. Works perfectly!
The initial commit of a Topologic Workbench for FreeCAD is now on github! It has one command: "TPVertices". It takes one or more selected Parts and returns their Vertices. Now is the time for you to contribute! https://github.com/wassimj/TopologicFC
@topologic Super exciting news and it's fanastic to see incorporation into Freecad, where Topologic's capabilities are badly needed for basic room-based layouts @paullee Thanks for all the tests!!!
What's the way to start to play? Download the workbench and then do a sketch?
Separately, is topologic available in some form in Blender outside of sverchok?
@dimitar said: @topologic Super exciting news and it's fanastic to see incorporation into Freecad, where Topologic's capabilities are badly needed for basic room-based layouts @paullee Thanks for all the tests!!!
What's the way to start to play? Download the workbench and then do a sketch?
Separately, is topologic available in some form in Blender outside of sverchok?
Thanks! Yes download the folder and install in Mod and start adding new functionality. Right now it has trivial functionality. It is more of a workbench template.
Topologic is a python module so you can call it from Blender’s console. You can also write a different plug-in in Blender that uses it (eg @brunopostle Homemaker)
@dimitar said: @topologic Super exciting news and it's fanastic to see incorporation into Freecad, where Topologic's capabilities are badly needed for basic room-based layouts
With Dr. Wassim's guidance, I tested Topologic's functionality to identify a face is 'internal' or 'external' only.
What is your idea of functionalities / workflow for 'room-based layout' in FreeCAD ?
@paullee said:
What is your idea of functionalities / workflow for 'room-based layout' in FreeCAD ?
This looks quite powerful in Snaptrude. Each room is based on a rectangle and once automated, with naming and adjacencies, the system know which walls are external.
Topologic can potentially do all that (in snaptrude). We just don't have the powerful UI to do it. But the data structures etc are all there and very powerful. We have been able to generate a full Revit/BIM model and a full IFC model from the Topologic CellComplex. There is a great opportunity for a snaptrude type startup based on topologic ;-)
This looks quite powerful in Snaptrude. Each room is based on a rectangle and once automated, with naming and adjacencies, the system know which walls are external.
@topologic said:
Topologic can potentially do all that (in snaptrude). We just don't have the powerful UI to do it. But the data structures etc are all there and very powerful. We have been able to generate a full Revit/BIM model and a full IFC model from the Topologic CellComplex. There is a great opportunity for a snaptrude type startup based on topologic ;-)
Is Homemaker though not based on a Sketch doing something similar ? It also remind me of TED.
The Snaptrude workflow sounds quite familiar.
In fact, as demonstrated as proof-of-concept in FreeCAD, a similar Sketch can generate the CellComplex to identify the external/internal faces with Topologic, and build ArchWall and Slab (Structure) based on same Sketch.
@paullee said:
In fact, as demonstrated as proof-of-concept in FreeCAD, a similar Sketch can generate the CellComplex to identify the external/internal faces with Topologic, and build ArchWall and Slab (Structure) based on same Sketch.
Yes exactly. You have demonstrated that all that is available. The issue is only one of interface and bells and whistles. Snaptrude looks very slick and seems quite interactive and easy to use.
What we need in addition to what you have achieved is to allow the user to specify 'rules' or 'shape grammars' to specify how the topologic entities of a CellComplex should be transformed into 'thickened' BIM entities (e.g. what wall thickness and construction to use for external and internal walls, what offset to use, what windows to put in the apertures etc).
@topologic said:
The initial commit of a Topologic Workbench for FreeCAD is now on github! It has one command: "TPVertices". It takes one or more selected Parts and returns their Vertices. Now is the time for you to contribute!
Tested on linux, seems it is not supporting at the moment right? :)
@topologic said:
The initial commit of a Topologic Workbench for FreeCAD is now on github! It has one command: "TPVertices". It takes one or more selected Parts and returns their Vertices. Now is the time for you to contribute!
Tested on linux, seems it is not supporting at the moment right? :)
Should I open an issue at github ? :D
Yes sorry, the release is only for windows. You can try to take your linux topologic.pyd and replace the on in the Topologic folder with that.
@topologic said:
Yes exactly. You have demonstrated that all that is available. The issue is only one of interface and bells and whistles. Snaptrude looks very slick and seems quite interactive and easy to use.
What we need in addition to what you have achieved is to allow the user to specify 'rules' or 'shape grammars' to specify how the topologic entities of a CellComplex should be transformed into 'thickened' BIM entities (e.g. what wall thickness and construction to use for external and internal walls, what offset to use, what windows to put in the apertures etc).
Yes, GUI and interactive tools are something must have to allow more users to use it intuitively - hope there are volunteers experienced FC coders jump in. Coding GUI is something far from my competence.
In fact I have ideas to make things easier before GUI tools :
ArchSketch get a Switch :-
To turn its shape into a CellComplex (In fact done) : Currently is another object in SketchArchWorkbench link to the ArchSketch
To turn its shape into an ArchWall : Currently another ArchWall Object is required to build walls based on the ArchSketch
So instead of 3 objects in hierarchical relationship, the ArchSketch perform as all of them :D
'Shape Grammars' is something sounds interesting. But my idea is not to dictate e.g. the placement of windows (this should be architect's call), but e.g. to calculate the minimum size of a Window for natural lighting and/or ventilation based on local code.
This is amazing! Thrilled to see more...
What I personally would like to see/do with Topologic in FreeCAD is basically "put order in the mess". FreeCAD is extremely free-form ans free-method regarding BIM modeling, compared to BlenderBIM. You don't need to structure anything, or relate anything. Most people just model a bunch of objects and place them into groups. This makes it hard, for example, to extract an energy analysis model from a BIM model.
Some things I imagine Topologic could greatly help:
Find the "median face" of walls and slabs, or, a face that would be the division between two spaces on each side of the wall
Find all "reasonably enclosed" spaces in a model (thinking there can be small openings or "unknown objects" in the way), or, build spaces automatically
Find all windows inserted into a wall, even if these windows weren't "declared" as belonging to that wall
In sum, build a proper energy analysis model (spaces + walls + openings) out of a "junk" model which is geometrically correct but where users didn't set up all the proper relationships themselves: They didn't create spaces, the walls and slabs are all unrelated or even generic objects (cubes, whatever), or even one object that represents several walls! and openings are not always clearly defined or related.
I'd be interested in helping there... It might be useful to have a couple of test files with these cases above, I'll build some
@topologic said:
Topologic can potentially do all that (in snaptrude).
Is Homemaker though not based on a Sketch doing something similar ? It also remind me of TED.
Homemaker does the same thing, but in 3d, and you are not restricted to 90° angles, you can have different layouts on each floor, double height spaces, attic rooms, all that architecture stuff.
Not sure I understand - I previously installed Brunopostel's Topologic and Topologic-python packages for Fedora, but find no topoligic.pyd, e.g.
I actually think then you don't need to do anything more. Just delete topologic.cp38-win_amd64.pyd and TopologicCore.dll and try to load the workbench. If FreeCAD can find "import topologic" it should all work.
Not sure I understand - I previously installed Brunopostel's Topologic and Topologic-python packages for Fedora, but find no topoligic.pyd, e.g.
I actually think then you don't need to do anything more. Just delete topologic.cp38-win_amd64.pyd and TopologicCore.dll and try to load the workbench. If FreeCAD can find "import topologic" it should all work.
The .pyd file is for Windows, the equivalent python binding on Linux is called topologic.cpython-310-x86_64-linux-gnu.so or similar.
Today's Progress: Added CellComplexDecompose command. You can take a non-manifold FC shape and it will return external/internal/top/bottom horizontal and vertical faces as separate objects.
Watch video at this tweet:
Comments
Thanks, would like to try later to automatically place windows and doors based on the external / internal faces/walls found :D
Done testing :D
'ArchSketch Single-Line Layout'

'ArchWall and Slab'

'Automatic Placement windows at found external walls' - no window at internal wall

With shadow on Link Branch of FreeCAD

There is a question in FreeCAD forum about 'incorporating' Topologic into FreeCAD, any comment ? :) -
https://forum.freecadweb.org/viewtopic.php?f=22&p=589131#p589131
"
Re: Anyone interested in bringing Topologic to FreeCAD?
Would doing this open FreeCAD to any automatic internet access or IP? It sounds like low level stuff but I would like to know, if anyone knows. :?
Thanks
"
Dear OSArch community,
I kindly need your help. I (think I) managed to build TopologicSverchok for Blender 3.1 against OCCT 7.7. If you are a Linux user (especially Ubuntu 20.10) and you are using the latest Blender and Sverchok, please download, test, and report success or issues. Many thanks!
https://github.com/wassimj/TopologicSverchok/releases/tag/v0.8.1.2-alpha-linux
@paullee and others who use FreeCAD. I just downloaded FreeCAD 0.19 and then 0.20 and I am encountering the same problem: The Part module is failing to load:
08:36:26 Unknown command 'Part_SectionCut'
08:36:34 DLL load failed while importing PartGui: The specified procedure could not be found.
08:36:34 Traceback (most recent call last):
File "", line 43, in Initialize
File "C:\Program Files\FreeCAD 0.20\bin\Lib\site-packages\shiboken2\files.dir\shibokensupport__feature__.py", line 142, in _import
return original_import(name, *args, **kwargs)
Anyone have any ideas why that is happening? Thanks!
What is your windows version, FreeCAD version ?
I am on Fedora only, I'll see if there have been help in FC forum on similar problem.
0.20 release version is on the way, so it is good to debug :D
There is one exactly describing the same problem - see if below trick helps :D
https://forum.freecadweb.org/viewtopic.php?p=579308#p579308
Thanks. I solved this issue by compiling Topologic against OCCT 7.5 and python 3.8 and then not using any of the OCCT DLLs. Just the topologic pyd and dll files. I just created a Topologic workbench and it relies on the OCCT dll files already included with FreeCAD. Works perfectly!
The initial commit of a Topologic Workbench for FreeCAD is now on github! It has one command: "TPVertices". It takes one or more selected Parts and returns their Vertices. Now is the time for you to contribute!

https://github.com/wassimj/TopologicFC
@topologic Super exciting news and it's fanastic to see incorporation into Freecad, where Topologic's capabilities are badly needed for basic room-based layouts
@paullee Thanks for all the tests!!!
What's the way to start to play? Download the workbench and then do a sketch?
Separately, is topologic available in some form in Blender outside of sverchok?
Thanks! Yes download the folder and install in Mod and start adding new functionality. Right now it has trivial functionality. It is more of a workbench template.
Topologic is a python module so you can call it from Blender’s console. You can also write a different plug-in in Blender that uses it (eg @brunopostle Homemaker)
With Dr. Wassim's guidance, I tested Topologic's functionality to identify a face is 'internal' or 'external' only.
What is your idea of functionalities / workflow for 'room-based layout' in FreeCAD ?
This looks quite powerful in Snaptrude. Each room is based on a rectangle and once automated, with naming and adjacencies, the system know which walls are external.
Topologic can potentially do all that (in snaptrude). We just don't have the powerful UI to do it. But the data structures etc are all there and very powerful. We have been able to generate a full Revit/BIM model and a full IFC model from the Topologic CellComplex. There is a great opportunity for a snaptrude type startup based on topologic ;-)
Snaptrude - "406 Not Acceptable" ?
Is Homemaker though not based on a Sketch doing something similar ? It also remind me of TED.
The Snaptrude workflow sounds quite familiar.
In fact, as demonstrated as proof-of-concept in FreeCAD, a similar Sketch can generate the CellComplex to identify the external/internal faces with Topologic, and build ArchWall and Slab (Structure) based on same Sketch.
Yes exactly. You have demonstrated that all that is available. The issue is only one of interface and bells and whistles. Snaptrude looks very slick and seems quite interactive and easy to use.
What we need in addition to what you have achieved is to allow the user to specify 'rules' or 'shape grammars' to specify how the topologic entities of a CellComplex should be transformed into 'thickened' BIM entities (e.g. what wall thickness and construction to use for external and internal walls, what offset to use, what windows to put in the apertures etc).
Tested on linux, seems it is not supporting at the moment right? :)
Should I open an issue at github ? :D
Yes sorry, the release is only for windows. You can try to take your linux topologic.pyd and replace the on in the Topologic folder with that.
Yes, GUI and interactive tools are something must have to allow more users to use it intuitively - hope there are volunteers experienced FC coders jump in. Coding GUI is something far from my competence.
In fact I have ideas to make things easier before GUI tools :
So instead of 3 objects in hierarchical relationship, the ArchSketch perform as all of them :D
'Shape Grammars' is something sounds interesting. But my idea is not to dictate e.g. the placement of windows (this should be architect's call), but e.g. to calculate the minimum size of a Window for natural lighting and/or ventilation based on local code.
This is amazing! Thrilled to see more...
What I personally would like to see/do with Topologic in FreeCAD is basically "put order in the mess". FreeCAD is extremely free-form ans free-method regarding BIM modeling, compared to BlenderBIM. You don't need to structure anything, or relate anything. Most people just model a bunch of objects and place them into groups. This makes it hard, for example, to extract an energy analysis model from a BIM model.
Some things I imagine Topologic could greatly help:
In sum, build a proper energy analysis model (spaces + walls + openings) out of a "junk" model which is geometrically correct but where users didn't set up all the proper relationships themselves: They didn't create spaces, the walls and slabs are all unrelated or even generic objects (cubes, whatever), or even one object that represents several walls! and openings are not always clearly defined or related.
I'd be interested in helping there... It might be useful to have a couple of test files with these cases above, I'll build some
Not sure I understand - I previously installed Brunopostel's Topologic and Topologic-python packages for Fedora, but find no topoligic.pyd, e.g.
[paullee@fedora ~]$ rpm -qa | grep -i topologic
Topologic-0.0-0.20220131git.fc34.x86_64
[paullee@fedora ~]$ rpm -ql Topologic-0.0-0.20220131git.fc34.x86_64
/usr/lib/.build-id
/usr/lib/.build-id/13
/usr/lib/.build-id/13/e45ca75d67f9e7deb61f4095d0a163a9599c47
/usr/lib64/libTopologicCore.so.0
/usr/lib64/libTopologicCore.so.0.0.0
/usr/share/doc/Topologic
/usr/share/doc/Topologic/README.md
Homemaker does the same thing, but in 3d, and you are not restricted to 90° angles, you can have different layouts on each floor, double height spaces, attic rooms, all that architecture stuff.
I actually think then you don't need to do anything more. Just delete topologic.cp38-win_amd64.pyd and TopologicCore.dll and try to load the workbench. If FreeCAD can find "import topologic" it should all work.
The
.pyd
file is for Windows, the equivalent python binding on Linux is calledtopologic.cpython-310-x86_64-linux-gnu.so
or similar.Ok, add below to the init.py and somehow it works :D
ok great. To make it more portable, rather than do a sys.path.append, copy the contents of the site-packages folder to the Mod/Topologic folder.
Yes, these are contained in a rpm in Brunopostle's repo on Fedora34
but I think it also needs other files in Brunopostle's repo on Fedora 34
And it might be different for other Linux distribution :D
Today's Progress: Added CellComplexDecompose command. You can take a non-manifold FC shape and it will return external/internal/top/bottom horizontal and vertical faces as separate objects.
Watch video at this tweet:
Excited to learn the development is so fast :D
Had been studying for a while :)
Noted the similarity in CellComplexDecompose with :
Wondering -
1. if item.ExternalBoundary() would be faster in processing ?
2. EDIT - topologic.Cluster is Part.Compound in FreeCAD Part ?
Thanks :D