OSArch Community

[Topologic] Redefining BIM through Spatial Topology, Information, and Grammars

  1. B

    @arquitextonica said:

    If @JQL or @brunopostle or any other of you are interested in discussing further, here I am.

    I'll be here, these ideas for varying construction depending in the 'type' of room are implemented in Homemaker (the evolutionary tool), and I have started playing with them using the non-manifold mesh model (though currently all it does is stuff like deleting unwanted doors between toilets and kitchens, or setting external door/fenestration depending on the internal room type).

  2. R

    I think the majority of those wishes can be handled through "template" objects/shapes/geometries(/and topologies)

    Even IFC, especially its Psets, and Qtos are "somewhat" template

    Personally I see some "keywords" on Dual Graph that make it hard to me deny it, like "Symmetric", like seeing they have (co-)relation with Voronoi and Delaunay diagrams, ...

    However, today there are other methods that I think have better outcomes than those aforementioned ones, and also BSP or k-d trees, etc

    Methods like Octree, BVH, etc

  3. T

    @JQL said:

    So, for me the ideal process of wall composition is not that the wall type is predefined with all layers or that we have to change it depending on the two adjoining rooms, but that the adjoining rooms have a finishes definition that adds layers to the wall type. If you change finishes in the rooms, the wall type keeps being the same, but the geometry and layers attached to it change.

    What you are describing is inter-object communication and since Topologic is object-oriented, these types of workflows are what it is designed to do. Obviously, as said before, this is not something that would be available out of the box. A computational designer would create these rules and workflows using the Topologic API.

  4. B

    So I read one of those beginner's guides, and my first python script is a Blender add-on:

    <iframe width="560" height="315" src="" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

  5. J

    So you do exercise sorcery ... I knew it from the moment i saw Homemaker.

    Not an architect but I feel this could end up having a great value for them. Excited to see how this will evolve!

    I'd actually fancy some of your magic for structural engineering as well ... let's see in the near future if there is any possibility.

    Keep Rocking @brunopostle !!

  6. M

    @brunopostle you're an absolute wizard! Awesome work! This could pave the way to a FOSS alternative to early stage feasibility analysis, and test fits for parking, office layouts, residential ...

  7. J

    Congratulations @brunopostle !

    This is uncanny. A bit scary too. You have to share where did you read those beginer guides...

    As an architect I don't want to be thrown out of the equation, but I could clearly see myself having a decision making job over the stuff that is magically being thrown at me.

    How do you envision changes to style, placement of windows, other stair layouts, etc?

    Do you think users will be able to define some sort of parameters? Some sort of mix between direct modelling, some constraints and sorcery?

  8. J

    @arquitextonica said:

    Attached some screenshots I prepared for the seminar I taught in the Universität Stuttgart. They were done with @topologic framework on grasshopper on Rhino. But I think the workflow would be portable.

    I made a grid of cells and assigned different programs to each one, the wall types are sorted using boolean gates depending on the programs they are in between (if progs are 1 AND 2 then type A). Decks are sorted likewise, program "Patio" i.e. removes the face over it, and so on.

    You can also see the translation of the topologic elements into BIM objects through the archicad-grasshopper plugin.

    If @JQL or @brunopostle or any other of you are interested in discussing further, here I am.

    Hi @arquitextonica I'm very much interested in discussing this. It seems like the perfect workflow as a progress to what I do which seems to be the same thing without an automation in the middle, as you can see a very basic example here:

    https://community.osarch.org/discussion/211/basic-ifc2x3-model-exported-from-sketchup#latest

    I wouldn't know where to start asking but maybe, so I get things clear, the last image is from a model automatically generated from something like the first 4 image models right?

  9. B

    @JQL said:

    This is uncanny. A bit scary too. You have to share where did you read those beginer guides...

    I read one that was posted here a few weeks ago.

    How do you envision changes to style, placement of windows, other stair layouts, etc?

    I currently have two styles, this one and a 'courtyard' style. This one has six different size windows, several doors, columns, and three shop fronts, which get used depending on available space. The spacing between windows, columns and doors is set in a 'stylesheet', which is configurable with some inheritance, so you can subclass a style by making small or large tweaks. The mouldings are also set (or not) in the style, with the actual profiles defined in 2D DXF files.

    This is an interactive tool, so it won't design your building, you need to consider room sizes and ceiling heights etc.. if you are concerned about proportion and composition. I want it to give interactive feedback based on a pattern language, daylighting etc.. hints that you can choose to ignore (it should also price the building as you go, why not?). There is a lot to do, somebody still needs to create a python Topologic API to do this properly.

  10. L

    How can this fit to the technical parts coming into the building? Instead of Walls, it would be an electrical plug? The constraints would be: set plugs at 30cm above floorground and 20cm from wall edges, have 7 of them in a living-room, 2 in bathrooms.. the whole cable tree would be installed automatically? (some modelica add-on would calculate the right cable size for the needed current values acording to distances, the distribution board ready made?)

    need a new job.

  11. J

    @brunopostle said:

    I currently have two styles, this one and a 'courtyard' style. This one has six different size windows, several doors, columns, and three shop fronts, which get used depending on available space. The spacing between windows, columns and doors is set in a 'stylesheet', which is configurable with some inheritance, so you can subclass a style by making small or large tweaks. The mouldings are also set (or not) in the style, with the actual profiles defined in 2D DXF files.

    This is an interactive tool, so it won't design your building, you need to consider room sizes and ceiling heights etc.. if you are concerned about proportion and composition. I want it to give interactive feedback based on a pattern language, daylighting etc.. hints that you can choose to ignore (it should also price the building as you go, why not?). There is a lot to do, somebody still needs to create a python Topologic API to do this properly.

    I understand that after you generated the base cell mesh you can regenerate the model and it is blazing fast too.

    What if we use those base windows, doors and columns and we change them? Would it work? Would it change on the fly? Or are they defined by code?

    And what if we wanted to change width or placement point after they are set on place? Would it be direct modelling on blender or would that placement point change according to the new geometry of the base cell model?

    Sorry for the amount of questions, but you shouldn't have made this so interesting

  12. B

    @JQL said:

    I understand that after you generated the base cell mesh you can regenerate the model and it is blazing fast too.

    It's not quite blazing fast, the larger models have some frames cut from the video for artistic purposes ;). The add-on writes temp files and blenderbim is importing the resulting IFC file - which as we know takes time. If and when the topology code is running within the add-on it will be possible to generate IFC data for just the elements that have changed, this will be blazing fast and will scale to very large models.

    What if we use those base windows, doors and columns and we change them? Would it work? Would it change on the fly? Or are they defined by code?

    Yes I can see that the predefined style will need to be modified per project, and you will want to do this after you have started modelling in 3D. You can change the files (they are just DXF meshes, though if Blender gets a new asset manager then it would make sense to use this), or you can add new files and alter the stylesheet to point at them.

    And what if we wanted to change width or placement point after they are set on place? Would it be direct modelling on blender or would that placement point change according to the new geometry of the base cell model?

    Ultimately I want to be able to nudge a window, delete or swap it with another, though this needs to be a generic functionality shared between all the architectural tools - once a model has IFC semantic data and we can tell the difference between a window and a pot plant programmatically then all windows should have functionality for swapping, sliding etc...

  13. B

    @lukas said:

    How can this fit to the technical parts coming into the building? Instead of Walls, it would be an electrical plug? The constraints would be: set plugs at 30cm above floorground and 20cm from wall edges, have 7 of them in a living-room, 2 in bathrooms.. the whole cable tree would be installed automatically? (some modelica add-on would calculate the right cable size for the needed current values acording to distances, the distribution board ready made?)

    need a new job.

    There are limits to how much of this can be automated, but certainly these non-manifold Topologic style meshes are the canvas where services should be planned - at least for domestic buildings.

  14. J

    I hope you achieve your goals! This is really going to be a blast!

  15. R

    I think there're no limits, just we should change our minds, and see things differently, you observe things from a point that is good but not well

    Limitations are solvable, but this is a "multimillion-dollar" challenge, so many don't share the solution publicly, especially in open source projects

    Just some guidance:

  16. D

    @brunopostle said:

    @JQL said:

    This is uncanny. A bit scary too. You have to share where did you read those beginer guides...

    I read one that was posted here a few weeks ago.

    How do you envision changes to style, placement of windows, other stair layouts, etc?

    I currently have two styles, this one and a 'courtyard' style. This one has six different size windows, several doors, columns, and three shop fronts, which get used depending on available space. The spacing between windows, columns and doors is set in a 'stylesheet', which is configurable with some inheritance, so you can subclass a style by making small or large tweaks. The mouldings are also set (or not) in the style, with the actual profiles defined in 2D DXF files.

    This is an interactive tool, so it won't design your building, you need to consider room sizes and ceiling heights etc.. if you are concerned about proportion and composition. I want it to give interactive feedback based on a pattern language, daylighting etc.. hints that you can choose to ignore (it should also price the building as you go, why not?). There is a lot to do, somebody still needs to create a python Topologic API to do this properly.

    This is indeed uncanny. You read a few Python tutorials and made this during down time between running clothes through the washing mashing and mowing your lawn? Yes sorcery is indeed another correct term.

    I came to the forum to see if there was a thread for Homemaker where I could ask a couple of questions and now this!

    I tried my hands at Homemaker after the meetup where you presented it and even read up a bit about Perl but didn't successfully get Homemaker to run. I can't remember the bugs I was getting anymore as I never went back to it, but I was still hoping to crack it at some point. Just yesterday I thought to ask if you thought Homemaker could be ported to Python to make it work it's magic directly with the Bpy module. Is there any specific reason why it's better suited to Perl? Not that it's a bad thing to have it in Perl and take the output into Blender, but I just wondered about opening up its capabilities even more within the Blender ecosystem, given the important the work you've done with it and the potential therein. What you've done with Topologise is surreal, especially because you only just started and it's also surreal how Homemaker, BlenderBIM, Archipack, Topologic, Andrew Peel's work with asset management in Blender and everything else is just interconnecting in interesting ways. It's a beauty to see all this emerging. I'm in awe.

  17. B

    @DADA_universe said:

    This is indeed uncanny. You read a few Python tutorials and made this during down time between running clothes through the washing mashing and mowing your lawn? Yes sorcery is indeed another correct term.

    The add-on is just a little Python wrapper that still calls the Perl tools in the background - this is a problem, particularly on Windows where these kind of connections don't really work - I have spent much of the last week answering questions on youtube, twitter, linkedin and bitbucket from people trying to get it working on Windows (with I think one success).

    I came to the forum to see if there was a thread for Homemaker where I could ask a couple of questions and now this!

    I tried my hands at Homemaker after the meetup where you presented it and even read up a bit about Perl but didn't successfully get Homemaker to run. I can't remember the bugs I was getting anymore as I never went back to it, but I was still hoping to crack it at some point. Just yesterday I thought to ask if you thought Homemaker could be ported to Python to make it work it's magic directly with the Bpy module. Is there any specific reason why it's better suited to Perl?

    There is absolutely nothing about Perl that makes it suited to this sort of thing, it was just the tool I had to hand when I started the project, learning Python would have been a better option in retrospect, but you can't do everything all at once.

    Not that it's a bad thing to have it in Perl and take the output into Blender, but I just wondered about opening up its capabilities even more within the Blender ecosystem, given the important the work you've done with it and the potential therein.

    Homemaker itself is non-interactive and takes hours to evolve results, so there isn't much to gain from adding it into blender. The topologise tool though doesn't actually use much code from Homemaker, mainly the IFC compiler (Molior and File::IFC), and could conceivably be ported entirely to a blender add-on, or at least ported a bit at a time. I need to write a post setting out what I think needs to be done, and I think there is demand for a tool like this, but I'm not capable of doing it all.

  18. S

    Started to look at python implementation, but i'm struggeleing at some things like perl's Graph implemetation replacement so far. And now dev settle down till next year as i've no real opportunity for any serious coding task like this one.

  19. B

    @brunopostle said:

    [The topologise code] could conceivably be ported entirely to a blender add-on, or at least ported a bit at a time. I need to write a post setting out what I think needs to be done, and I think there is demand for a tool like this, but I'm not capable of doing it all.

    Currently the Topologise tool is six things strung together:

    1. A simple python blender add-on that has just one function that feeds any and all selected meshes to the other tools and displays the output. This structure is very limiting, the add-on should allow the user to assign properties such as room types, wall types and styles; it should be able to display feedback from processing; and it should understand enough about the model to only regenerate IFC entities for parts of the building that have changed (otherwise it won't scale).

    2. A Perl library that analyses a non-manifold mesh to identify cells and build a model where nodes, faces, edges and cells can be queried as network graphs. This is loosely based on some of the functionality of the C++ Topologic library; a future Topologic Python interface could remove the need for this Perl library, but this requires some C++/Python skills. Another possibility is that the COMPAS project seems to have a Python library for handling these cellular volume meshes, but as far as I can tell it doesn't have the ability to analyse a non-manifold mesh to identify cells, now my Perl code for doing this bit is only about 150 lines, so it might be simple enough to just add this functionality to COMPAS.

    3. Some Perl code that searches the graphs in the topology model for rooms, walls, eaves, floors etc.. This isn't very sophisticated and could be easily rewritten in Python, though ultimately it wants to be able to identify parts of the building that have changed (see above).

    4. A Perl library for assembling IFC data. There is nothing special here, if everything else was Python, this could be replaced by the IfcOpenShell Python library.

    5. Another Perl library that actually generates the IFC geometry, places windows and doors etc.. this is a bit more of a problem as this is about 1500 lines of complicated code.

    6. Finally Topologise uses blenderbim to import the IFC into blender.

    So 2, 3, 4 and 5 are Perl code that could usefully be rewritten in Python. Note that this could be done in stages: 2 & 3 can be ported separately from 4 & 5. In fact porting 4 & 5 is only really necessary to get this stack working on Windows, or if it needed to make use of a future blender asset manager (currently all the assets are simple DXF files, this isn't ideal).

    All this would only reproduce the functionality of the current proof-of-concept, but it would provide a foundation for further work, it could provide a tool that people could use to design buildings, and it could work in FreeCAD too.

  20. T

    We are working on a SWIG interface for Topologic. It is going slow because we all have day jobs and we have not used SWIG before. Will update the community once this is accomplished. Once done, my next task would be to write a front end in python per @brunopostle suggestion in step 1. I’m not worried about duplicating efforts. Let’s compare the approaches and discuss what works better once we get there. We need more people to help! ?

  21. J

    Is there any chance this means topologic is getting adapted to sverchok for example? That would be sweet!

  22. B

    @arquitextonica said:

    Attached some screenshots I prepared for the seminar I taught in the Universität Stuttgart. They were done with @topologic framework on grasshopper on Rhino. But I think the workflow would be portable.

    If @JQL or @brunopostle or any other of you are interested in discussing further, here I am.

    Hi Miguel, I've been asked to write a short journal piece on the Topologise tool (but mainly concentrating on the Pattern Language aspects), do you have any references that I can point-to for this work?

  23. B

    A couple more videos showing the Topologise add-on and blender modifiers. The first video towards the end also shows colour coded 'room ratings', with the colour indicating how well the room fits the 159 LIGHT ON TWO SIDES OF EVERY ROOM pattern.

    <iframe width="560" height="315" src="" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

    <iframe width="560" height="315" src="" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

  24. R

    Dear @brunopostle, I really like the approach you follow, but I don't think this approach be able to go further, it has limitations, and I guess these days you've faced a dead-end.

    Let me clarify why?

    Does it work based on custom mass? I want to draw a custom mass, for instance, an irregular shape, so can it handle that? Can it "generate" different patterns based on conditions?

    I don't say just your approach or solution has these limitations, almost all current movements have the same obstacles

  25. B

    @ReD_CoDE I don't understand what you mean by 'custom mass', you need to explain what this is and why it would be needed

  1. Page 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 29
  9. 30
  10. 31

Login or Register to reply.