@JQL said:
Does this mean that, eventually, Topologic will become a plugin for blender and that we'll be able to use it on Windows or Mac? I'm eagerly antecipating that!
Yes. Windows version (ie. for python3 in Windows) is being developed as we speak, but in the open-source spirit, I have focused my energy on making sure Topologic is available on Linux's python. The Mac is still a way off, but I think @Theo can help here. So my priority is:
1. Topologic in Blender python add-on module in Linux
2. Topologic in sverchock in Linux
3. Topologic for FreeCAD in Linux
4. Topologic in for python/ Blender/Sverchok/FreeCAD Windows
5. Topololgic for python/Blender/Scerchok/FreeCAD Mac
As a proof of concept, the test Topologic python script in Linux outputs a brep string (line 116 Topology.String(cellComplex) and then I copy and paste that in a text file on Windows and import it into FreeCAD. Since it is a brep string/file, it opens with no errors. I am hoping I can do that directly inside Blender so that I can read and write to its list of objects.
I see myself using it in FreeCAD as I see myself using FreeCAD in the future (I love FreeCAD Sketches). I was under the impression Topologic required the visual programming UI to enable us to program what to do with it. How do you envision that being circumvented in FreeCAD?
@JQL said:
I see myself using it in FreeCAD as I see myself using FreeCAD in the future (I love FreeCAD Sketches). I was under the impression Topologic required the visual programming UI to enable us to program what to do with it. How do you envision that being circumvented in FreeCAD?
@yorik just got it working in FreeCAD!! Topologic does not need visual programming. You can use it in a python script very similar to what you can do in FreeCAD.
@Theo said:
I am @Theo but I am not the Theo you probably want to contact.
Anyway, thanks for bringing me into the discussion. It looks interesting.
Theo Armour
@JQL said:
So the UI in FreeCAD would be something like typing code?
it's the same as ladybug. dynamo/grasshopper is a convenient way for users to manipulate code.. we dont have that in freecad (atm at least), so yes the way to interact with it is with code. But of course what would be best is to build specific UI tools to manipulate it, for ex a topologic workbench in freecad. That is not so hard to do, who knows ;)
so we are close to the automatic ifc building generator ? handling ifcspaces via Topologic, send them to homebuilder/topologise.. and that's it.
A topologic super-graph to handle to ifc-buildings to deliver a whole city (like testfit.io)
Or a parallel-graph to handle the ifcspaces to build the energymodeling structure. (ifc to gbxml)
a similar under-graph for the piping structure of water distribution within the building.. all elements being ifc entities that would be transformed by a 'topologise' to a geometry (wether blender or freecad does not matter no more) ?
Architecture, well construction/building is reduced to defining dictionaries and rules (setting and rearranging nodes).. and there will be the german arrangements (according to DIN) or the Danisch ones (according to their regulations)...
the automatics run behind the time free-ed for creativity.. sounds good
@Moult thank you! The code is quite helpful and will enable me to write a two-way translator between Blender and Topologic. It is now a matter of time and resources.
I have to say I still don't quite understand what topologic does - but wow people are so enthusiastic here and outside and so much is happening! So cool be watching from the sidelines.
I'm with @duncan!
;-)
And I build the Ladybug Tools / Spider gbXML Viewer in Three.js and happy to help as and when free, open source in-browser viewers are needed!
@duncan said:
I have to say I still don't quite understand what topologic does - but wow people are so enthusiastic here and outside and so much is happening! So cool be watching from the sidelines.
You are not alone in that! Topologic looks almost trivial until you put it into action to serve a larger design problem. It has to be used to be understood. But I will explain some features here. Unlike just a collection of solids or meshes, Topologic allows you to build connected boundary representations that are non-manifold (mysterious term that practically means that a solid can have an internal surface or and edge can have more than two surfaces connected to it). Topologic allows you to ask questions like: “Hey Living Room, what room is directly above you?” Or “if I need to go from patient room 1 to the x-ray room, what spaces do I have to go through?”
The above only scratches the surface. There is a lot more to it. Best to read our published papers if you want to see how it can be used.
For what I understood, you draw geometry that represents architecture. You parse that geometry in topologic and so it knows whatthat geometry means in architectural language. What interests me is cells that can be indentifiable and know they represent spaces both interior and exterior. Topologic knows the relations between spaces and thus you can program it to respond to those relationships.
In a first take I'm interesting in making it generate walls and slabs according to those relations and a preset wall types library. Then I'm thinking in more advanced architectural generation purposes. I'd be modelling the creative part, topologic would help on the repetitive work.
Simulations and analyses are not my cup of tea, but I think I will be interested in hiring something to investigate it too.
In a first take I'm interesting in making it generate walls and slabs according to those relations and a preset wall types library. Then I'm thinking in more advanced architectural generation purposes. I'd be modelling the creative part, topologic would help on the repetitive work.
This is all done on another platform (namely Rhino+Grasshopper and linked to Archicad realtime) but is exactly what you are expecting.
The basis comes from this simple but bigger exercise.
You can guess that from the colors, the conversion to BIM elements is trivial.
@Theo said:
I'm with @duncan!
;-)
And I build the Ladybug Tools / Spider gbXML Viewer in Three.js and happy to help as and when free, open source in-browser viewers are needed!
Oh great! Do you know Michal Dengusiak? He integrated Topologic in his SAM software. TopologicEnergy has a Topology->gbxml method that we can chain to the Spider viewer perhaps?
In a first take I'm interesting in making it generate walls and slabs according to those relations and a preset wall types library. Then I'm thinking in more advanced architectural generation purposes. I'd be modelling the creative part, topologic would help on the repetitive work.
This is all done on another platform (namely Rhino+Grasshopper and linked to Archicad realtime) but is exactly what you are expecting.
The basis comes from this simple but bigger exercise.
You can guess that from the colors, the conversion to BIM elements is trivial.
I know, I know and I've got your example in the back of my mind since I saw it. It's exactly what I want to do with Topologic. Brilliant!
I just don't want to suddenly go the Revit route to get it. Why not go the Blender/FreeCAD route instead and help building/testing a OS workflow while we're at it.
In a first take I'm interesting in making it generate walls and slabs according to those relations and a preset wall types library. Then I'm thinking in more advanced architectural generation purposes. I'd be modelling the creative part, topologic would help on the repetitive work.
This is all done on another platform (namely Rhino+Grasshopper and linked to Archicad realtime) but is exactly what you are expecting.
The basis comes from this simple but bigger exercise.
You can guess that from the colors, the conversion to BIM elements is trivial.
I know, I know and I've got your example in the back of my mind since I saw it. It's exactly what I want to do with Topologic. Brilliant!
I just don't want to suddenly go the Revit route to get it. Why not go the Blender/FreeCAD route instead and help building/testing a OS workflow while we're at it.
That´s precisely one of my concern/goals for my thesis. I can´t code worth my salt, but I can visual script with confidence. I can think conceptually and then develop some tools that adhere to this concepts but the how in the right way as in proper coding has tooooo many implications and I feel it builds for a lot of the colleagues involved, a sort of Alice in Wonderland-Rabbit-hole that takes the problem into the how and away from the what. You see in this thread a huge percentage of the discussion has been on the instrumentalization of the processes but much less has been on the what are the processes, how is space qualified (just program is so banal and boring...), could we think about space without aprioristic forms? There are a lot of questions that need tech to be solved but need even more a conceptual prior approach. IMHO of course...
I agree. The program conceptualization of space is never exclusive to the building experience. Architecture lives from aspects that aren't dealt with software. Getting program, technical and constructive questions solved fast is what software is here for. Freeing ourselves from what can be dealt with by machines and software is the next big step that technology can offer to Architecture.
@topologic can it be used to find intersections between planar shapes, like a wall and a floor, and return the topology of the intersection? (could be a single point, a line, or another planar shape if they overlap)
@Jesusbill said: @topologic can it be used to find intersections between planar shapes, like a wall and a floor, and return the topology of the intersection? (could be a single point, a line, or another planar shape if they overlap)
@bruno_perdigao said:
I just wanna add that I can't wait to test this in Blender!
I am happy for @brunopostle and @yorik to post instructions here on how to install it for those wishing to test it, but please know the current version is not for the faint of heart and is not supported and will be eclipsed with the official version in a few weeks. But if you want to try it today, I am happy for them to post instructions here.
Comments
Yes. Windows version (ie. for python3 in Windows) is being developed as we speak, but in the open-source spirit, I have focused my energy on making sure Topologic is available on Linux's python. The Mac is still a way off, but I think @Theo can help here. So my priority is:
1. Topologic in Blender python add-on module in Linux
2. Topologic in sverchock in Linux
3. Topologic for FreeCAD in Linux
4. Topologic in for python/ Blender/Sverchok/FreeCAD Windows
5. Topololgic for python/Blender/Scerchok/FreeCAD Mac
As a proof of concept, the test Topologic python script in Linux outputs a brep string (line 116 Topology.String(cellComplex) and then I copy and paste that in a text file on Windows and import it into FreeCAD. Since it is a brep string/file, it opens with no errors. I am hoping I can do that directly inside Blender so that I can read and write to its list of objects.
Great news @topologic!
FreeCAD has a shape from mesh function, maybe you can check if it is useful: https://wiki.freecadweb.org/Part_ShapeFromMesh
I see myself using it in FreeCAD as I see myself using FreeCAD in the future (I love FreeCAD Sketches). I was under the impression Topologic required the visual programming UI to enable us to program what to do with it. How do you envision that being circumvented in FreeCAD?
@yorik just got it working in FreeCAD!! Topologic does not need visual programming. You can use it in a python script very similar to what you can do in FreeCAD.
So the UI in FreeCAD would be something like typing code?
I am @Theo but I am not the Theo you probably want to contact.
Anyway, thanks for bringing me into the discussion. It looks interesting.
Theo Armour
Ooops Sorry!
it's the same as ladybug. dynamo/grasshopper is a convenient way for users to manipulate code.. we dont have that in freecad (atm at least), so yes the way to interact with it is with code. But of course what would be best is to build specific UI tools to manipulate it, for ex a topologic workbench in freecad. That is not so hard to do, who knows ;)
Looking forward to Topologic functions in FreeCAD :)
For bringing IfcOpenShell shapes into Blender, this is the code: https://github.com/IfcOpenShell/IfcOpenShell/blob/v0.6.0/src/ifcblenderexport/blenderbim/bim/import_ifc.py#L1978-L2007 - if there are faces, I use one method, if not, I use another. The foreach_set technique is the fastest method you'll find in Blender. IfcOpenShell geometry are IfcGeom::Representation::Triangulation (https://github.com/IfcOpenShell/IfcOpenShell/blob/b1c4481795445de3c91b2557048607ef269c4d6e/src/ifcgeom/IfcGeomIteratorImplementation.h#L25-L33). I'm still very slowly looking at the C++ side of IfcOpenShell but https://github.com/IfcOpenShell/IfcOpenShell/blob/v0.6.0/src/ifcgeom/IfcGeomRepresentation.h#L103 is a good starting point to see how it starts to wrap what I expect is originally an OCC brep.
I never convert Blender into OCC breps - I go straight to IFC during the export process. Here's the code, which is probably irrelevant: https://github.com/IfcOpenShell/IfcOpenShell/blob/v0.6.0/src/ifcblenderexport/blenderbim/bim/module/geometry/add_representation.py#L97-L139
so we are close to the automatic ifc building generator ? handling ifcspaces via Topologic, send them to homebuilder/topologise.. and that's it.
A topologic super-graph to handle to ifc-buildings to deliver a whole city (like testfit.io)
Or a parallel-graph to handle the ifcspaces to build the energymodeling structure. (ifc to gbxml)
a similar under-graph for the piping structure of water distribution within the building.. all elements being ifc entities that would be transformed by a 'topologise' to a geometry (wether blender or freecad does not matter no more) ?
Architecture, well construction/building is reduced to defining dictionaries and rules (setting and rearranging nodes).. and there will be the german arrangements (according to DIN) or the Danisch ones (according to their regulations)...
the automatics run behind the time free-ed for creativity.. sounds good
@Moult thank you! The code is quite helpful and will enable me to write a two-way translator between Blender and Topologic. It is now a matter of time and resources.
I have to say I still don't quite understand what topologic does - but wow people are so enthusiastic here and outside and so much is happening! So cool be watching from the sidelines.
I'm with @duncan!
;-)
And I build the Ladybug Tools / Spider gbXML Viewer in Three.js and happy to help as and when free, open source in-browser viewers are needed!
You are not alone in that! Topologic looks almost trivial until you put it into action to serve a larger design problem. It has to be used to be understood. But I will explain some features here. Unlike just a collection of solids or meshes, Topologic allows you to build connected boundary representations that are non-manifold (mysterious term that practically means that a solid can have an internal surface or and edge can have more than two surfaces connected to it). Topologic allows you to ask questions like: “Hey Living Room, what room is directly above you?” Or “if I need to go from patient room 1 to the x-ray room, what spaces do I have to go through?”
The above only scratches the surface. There is a lot more to it. Best to read our published papers if you want to see how it can be used.
For what I understood, you draw geometry that represents architecture. You parse that geometry in topologic and so it knows whatthat geometry means in architectural language. What interests me is cells that can be indentifiable and know they represent spaces both interior and exterior. Topologic knows the relations between spaces and thus you can program it to respond to those relationships.
In a first take I'm interesting in making it generate walls and slabs according to those relations and a preset wall types library. Then I'm thinking in more advanced architectural generation purposes. I'd be modelling the creative part, topologic would help on the repetitive work.
Simulations and analyses are not my cup of tea, but I think I will be interested in hiring something to investigate it too.
This is all done on another platform (namely Rhino+Grasshopper and linked to Archicad realtime) but is exactly what you are expecting.

The basis comes from this simple but bigger exercise.
You can guess that from the colors, the conversion to BIM elements is trivial.
Oh great! Do you know Michal Dengusiak? He integrated Topologic in his SAM software. TopologicEnergy has a Topology->gbxml method that we can chain to the Spider viewer perhaps?
I know, I know and I've got your example in the back of my mind since I saw it. It's exactly what I want to do with Topologic. Brilliant!
I just don't want to suddenly go the Revit route to get it. Why not go the Blender/FreeCAD route instead and help building/testing a OS workflow while we're at it.
That´s precisely one of my concern/goals for my thesis. I can´t code worth my salt, but I can visual script with confidence. I can think conceptually and then develop some tools that adhere to this concepts but the how in the right way as in proper coding has tooooo many implications and I feel it builds for a lot of the colleagues involved, a sort of Alice in Wonderland-Rabbit-hole that takes the problem into the how and away from the what. You see in this thread a huge percentage of the discussion has been on the instrumentalization of the processes but much less has been on the what are the processes, how is space qualified (just program is so banal and boring...), could we think about space without aprioristic forms? There are a lot of questions that need tech to be solved but need even more a conceptual prior approach. IMHO of course...
I agree. The program conceptualization of space is never exclusive to the building experience. Architecture lives from aspects that aren't dealt with software. Getting program, technical and constructive questions solved fast is what software is here for. Freeing ourselves from what can be dealt with by machines and software is the next big step that technology can offer to Architecture.
@topologic can it be used to find intersections between planar shapes, like a wall and a floor, and return the topology of the intersection? (could be a single point, a line, or another planar shape if they overlap)
I just wanna add that I can't wait to test this in Blender!
Yes it can.
Great! I will be very interested in this, especially for use in back-end
I am happy for @brunopostle and @yorik to post instructions here on how to install it for those wishing to test it, but please know the current version is not for the faint of heart and is not supported and will be eclipsed with the official version in a few weeks. But if you want to try it today, I am happy for them to post instructions here.
Is this what you mean? In one case it returns an edge, in the other a vertex, but all the same operation (intersect)


Yes exactly, great.