Hey all, we're planning to migrate servers around Monday, so there will be a bit of downtime :) I can be contacted at dion@thinkmoult.com for anything urgent.

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

18911131426

Comments

  • edited February 2021

    @topologic said:
    Hi @paullee, There isn't a way to relate the faces without a search. The subdivision of an orginal face to create the faces of the cellComplex is buried deep in opencascade's engine, so we need to do this after (not during) the creation of a CellComplex from a list of Faces.
    What you write in the last message is exactly correct: Now that we have built the CellComplex, we can ask questions such as:
    1. For a given Cell in a CellComplex, give me the list of its adjacent Cells?
    2. For a given Face in a CellComplex, give me the two Cells that it separates (or one Cell if it happens to be an exterior Face).
    3. For a given CellComplex, give me the outer faces and the inner faces in separate lists (you can further divide by vertical vs. horizontal)
    4. For a given Face, give me the apertures and other contents that it may contain.
    The above are just examples. We can think up other more advanced queries that can be readily answered by Topologic. For example, for a given Cell in a CellComplex, how central or how isolated is it?

    Thanks, I can partly understand the mechanism when you mention underlying process is done by OCC :D Just curious what the algorithm do ?

    I do not know much about OCC, it is the core of Part WB in FreeCAD to my understanding. I see there are methods (exposed in python too) like childShapes(), isSame(), isEqual() that may help to trace the history of OCC operation. The method to check the correlation become significant if the workflow start with an Object in FreeCAD, rather than starting from Topologic, I think ...

    And maybe Topologic can find the escape path in a labyrinth ? :D

  • @paullee The workflow I demonstrated does start with FreeCAD objects and returns FreeCAD objects. Anyway this is how it can be done in Topologic, but if someone can hack OCCT that would be impressive (OCCT is notoriously difficult and low level), but I doubt that is the right way to do it when you can write it easily in a few lines of code. That’s why people use libraries: to work at a higher level.

  • Thanks @topologic, I understand! Impressed very much by the capabilities of Topologic. Would try the codes you shows when I manage to compile and run it here :D

    topologic
  • So if it can run in and sort out a maze (labirynth) , then topologic can 'reanalyse' any IFC ? and redefine it, and correct what was wrong. The (imperfect) IFC -tree (graph) is then replaced by the Topologic-tree, which of course can be rewritten as IFC.. the IFC-correction-tool ? The import/export tool for all BIM authoring softwares.. depending on the dictionnary settings..

  • @lukas said:
    So if it can run in and sort out a maze (labirynth) , then topologic can 'reanalyse' any IFC ? and redefine it, and correct what was wrong. The (imperfect) IFC -tree (graph) is then replaced by the Topologic-tree, which of course can be rewritten as IFC.. the IFC-correction-tool ? The import/export tool for all BIM authoring softwares.. depending on the dictionnary settings..

    I don’t know enough about ‘problematic’ IFC to know if Topologic can correct them, but happy to collaborate and test.

  • @paullee said:
    Would try the codes you shows when I manage to compile and run it here :D

    Are you on fedora Linux? I have built rpm packages of all the Topologic dependencies (except for topologicPy itself, but this is the easy one). Currently f32, f33 & f34, but I can probably push f31 too.

    topologicpaullee
  • @brunopostle said:
    Are you on fedora Linux? I have built rpm packages of all the Topologic dependencies (except for topologicPy itself, but this is the easy one). Currently f32, f33 & f34, but I can probably push f31 too.

    Thanks! Yes, but still unfortunately on f31, no time to move ( to f33 probably) yet ...

  • JQLJQL
    edited February 2021

    Hi @topologic and @paullee

    It seems I have a lot of reading to do as the discussion has bumped since you asked the model and paullee responded much faster than I did.

    I have come up with a file for an actual project I'm just starting to model.
    So I might as well show you the original hand sketch (which is not made in FreeCAD of course):

    I´ll also attach the FreeCAD file, which only has the base FreeCAD sketch that I will use as a base for modeling. My idea was to use this FreeCAD Sketch and Topologic methods to model it from the start. I was asking if we could apply Topologic to the base FreeCAD Sketch, without even extruding any shape, we could probably have the most interesting way of modeling based on Topologic rules only and a parametric Sketch.

    The file is attached and the FreeCAD sketch looks like this with all the parametric base geometry already set:

    topologicpaullee
  • @JQL The only thing I would ask you to consider changing is the double lines for the wall. Can they be represented as single line and thickened parametrically later?

    paulleeJQL
  • @JQL You are brave to experiment :D

    JQL
  • JQLJQL
    edited February 2021

    Yes they can. I was just thinking in the old ways. Those lines mark the max area of construction possible. I've changed them to Reference Sketches (Blue). It doesn't make sense to delete them as I need them for permit reasons so they are key for my geometry. However this kind of Reference Sketches, in FreeCAD, can't be used for actual geometry. Somehow it makes sense to me to extrude them outwards as, interior partitions are way thinner and dividing interior space always feels more natural if I'm not accounting for external walls thicknesses.

    New file attached:

  • @paullee said:
    @JQL You are brave to experiment :D

    You know where this started don't you? ;)

    https://forum.freecadweb.org/viewtopic.php?t=51653

    Let's see where it is headed...

    Having a real example is different than having a teorical one... I might do this on my own during nights and weekends, while the project runs sideways using the usual processes during the week. It will be nice to compare workflows and what will yield best results or untapped potential.

    topologicpaullee
  • @JQL late here (in the UK) Will look at it tomorrow. What do you want to get out of it using Topologic?

  • Late here in Portugal too. Same time. I just wanted to know if it will run on sketches, detect the cells and then allow us to model the 3d from scratch using only sketches as a base. This would be useful as I'd go about defining a diagram plan, without even needing any 3d, but already would have a topologic ready workflow.

    Does topologic work in 2d?

    If not and if it needs the 3d as input, it would only start being useful in a further stage.

    paullee
  • @JQL said:
    Yes they can. I was just thinking in the old ways. Those lines mark the max area of construction possible. I've changed them to Reference Sketches (Blue). It doesn't make sense to delete them as I need them for permit reasons so they are key for my geometry. However this kind of Reference Sketches, in FreeCAD, can't be used for actual geometry. Somehow it makes sense to me to extrude them outwards as, interior partitions are way thinner and dividing interior space always feels more natural if I'm not accounting for external walls thicknesses.

    Just for demonstration, individual edge in Sketch can have each of them Align and Width, though not very convenient at the moment :D

    Attached file has the 4 external edges/walls Align to Right, and Width to 500mm.

    I just rename the *.FCStd to *.zip (i.e. not actually zipping it)





    brunopostleJQL
  • @JQL @paullee ok.. it took a bit of coding but it worked (python code attached). The end result is a Shell of faces (similar to a CellComplex of Cells, but in 2D). Actually a Shell is not necessarily 2D, think of it as an open cardboard box, it can be flat or assembled in 3D.
    The red lines are the dual graph of the Shell to prove that connectivity. It connects centroids to centroids so sometimes it does not look right geometrically, but it is correct topologically. Plus as you see below, I can hover over this shape and it will highlight the different faces. These can now be extruded into Cells and assembled into a CellComplex.

    JQLpaulleeCGRJesusbill
  • JQLJQL
    edited February 2021

    @topologic This is definitely cool!
    This means topologic can be used in a diagrams stage already.
    @paullee that one I had already find out in FreeCAD. The question here is that we shouldn't do that if we want to work with topologic, right?

    So, when can a windows user start playing with it in FreeCAD?

  • edited February 2021

    @topologic said:
    @JQL @paullee ok.. it took a bit of coding but it worked (python code attached). The end result is a Shell of faces (similar to a CellComplex of Cells, but in 2D). Actually a Shell is not necessarily 2D, think of it as an open cardboard box, it can be flat or assembled in 3D.
    The red lines are the dual graph of the Shell to prove that connectivity. It connects centroids to centroids so sometimes it does not look right geometrically, but it is correct topologically. Plus as you see below, I can hover over this shape and it will highlight the different faces. These can now be extruded into Cells and assembled into a CellComplex.

    Indeed very cool ! :D

    And the thing which is also fascinating is that both FreeCAD/Part Module and Topologic is built on OpenCascade to my understanding !

    The problem to me seems now are :D :-
    1. Run the earlier script you demonstrate to relate all the Face to the Edges
    2. And study what are the Topologic features (build Geometry/Shape and/or do analysis), and
    3. Should all BIM Object/Shape (Wall, Window etc.) be still built by FC/Arch and Part Modules based on the 2D Sketch, Or go directly to Topologic ? :D

    I yet to try understanding your python script (before I even know Topologic API :LOL )

    topologic
  • @JQL said:
    @topologic This is definitely cool!
    This means topologic can be used in a diagrams stage already.
    @paullee that one I had already find out in FreeCAD. The question here is that we shouldn't do that if we want to work with topologic, right?

    Yes, it is really cool Topologic can start do some analysis right from 2D, and it solve one of the problem I haven't solved - find all the areas (boundaries) defined by the Sketch :D And tell their linkage !

    But 2D is the start, excellent to work right at start of sketch layout design. Imagine there is a lift (shaft) or staircase, the vertical 'spaces' link all the floors. BTW, I am not sure your 'question'.

  • All prior examples I've seen using topologic stemmed from a cell model. I'm thinking how would it be best to approach a mix of 2D schematic design and 3D envelope.

    I'm seeing myself drawing 2D plans and encapsulating them inside a 3D model shape and have topologic intersecting them both into a cell complex.

    Would it be feasible?

    topologic
  • @paullee said:

    Indeed very cool ! :D

    And the thing which is also fascinating is that both FreeCAD/Part Module and Topologic is built on OpenCascade to my understanding !

    The problem to me seems now are :D :-
    1. Run the earlier script you demonstrate to relate all the Face to the Edges
    2. And study what are the Topologic features (build Geometry/Shape and/or do analysis), and
    3. Should all BIM Object/Shape (Wall, Window etc.) be still built by FC/Arch and Part Modules based on the 2D Sketch, Or go directly to Topologic ? :D

    I yet to try understanding your python script (before I even know Topologic API :LOL )

    Thanks. Yes both Topologic and FreeCAD are based on OCCT. Actually, before we even built Topologic, we experimented and built functional prototypes in FreeCAD. It is no surprise that many of Topologic’s objects are direct counterparts to Part objects.
    I now have to get back to finishing the work on Topologic sverchok. I am hoping others will step up and contribute.

    paullee
  • @JQL said:
    All prior examples I've seen using topologic stemmed from a cell model. I'm thinking how would it be best to approach a mix of 2D schematic design and 3D envelope.

    I'm seeing myself drawing 2D plans and encapsulating them inside a 3D model shape and have topologic intersecting them both into a cell complex.

    Would it be feasible?

    Can you draw/model and share what you mean? Thanks.

  • edited February 2021

    @topologic said:
    @JQL @paullee ok.. it took a bit of coding but it worked (python code attached). The end result is a Shell of faces (similar to a CellComplex of Cells, but in 2D). Actually a Shell is not necessarily 2D, think of it as an open cardboard box, it can be flat or assembled in 3D.

    p.s. Some afterthought.

    There are discussion, similar with TAD, that Architect should think about space more than construction element like walls. It should be both and hardly an Architect escape from manipulating the shape of Wall, take Villa Savoye floor layout as an example.

    So this experiment show, whilst maybe more Architect sketch their layout more by Walls, they are really in parallel defining spaces, just the software previously can't understand that.

    Now, with Topology, the spaces defined by a 2D Sketch can be identified in parallel to help space planning and development!

    Probably, next item to experiment is putting doors and window in the Cell to identify the connection - in fact something similar was done earlier in 1st August 20:00 UTC Monthly Meetup

  • @topologic said:

    @JQL said:
    All prior examples I've seen using topologic stemmed from a cell model. I'm thinking how would it be best to approach a mix of 2D schematic design and 3D envelope.

    I'm seeing myself drawing 2D plans and encapsulating them inside a 3D model shape and have topologic intersecting them both into a cell complex.

    Would it be feasible?

    Can you draw/model and share what you mean? Thanks.

    topologicpaullee
  • @JQL said:

    @topologic said:

    @JQL said:
    All prior examples I've seen using topologic stemmed from a cell model. I'm thinking how would it be best to approach a mix of 2D schematic design and 3D envelope.

    I'm seeing myself drawing 2D plans and encapsulating them inside a 3D model shape and have topologic intersecting them both into a cell complex.

    Would it be feasible?

    Can you draw/model and share what you mean? Thanks.

    @JQL Yes. This is quite straightforward for Topologic:
    1. Loft each detected 2D boundary Face. Yields a Cell
    2. Combine the lofted Cells into a CellComplex
    3. Intersect the CellComplex and a user-built envelope Cell. (Topology.Intersect(cellComplex, envelope)). This will yield a truncated but watertight cellComplex with weird envelope cuts and interior partitions and Cells etc.

    paulleeCGRcarlopavJQL
  • JQLJQL
    edited February 2021

    And each of those cells can then be manipulated as a room and each room as a ceiling and floor, as well as walls, all in Topologic terminology?
    And if I change my sketch or my external envelope, does the cell complex change accordingly?
    And so, this weird shape will be able to easily be manipulated?

    And what about rooms. How do I go about assigning which space is what in my FreeCAD 2D sketch? Is it possible? And if I change the sketch, will I have to redo this space info from scratch?

    paulleetopologic
  • Except the interesting envelope, the rest particularly the last paragraph are the issues in my mind I want to know :D

  • @JQL and @paullee Yes the functionality is all there. @arquitextonica has shown how you can create an informational workflow and a framework that is independent of the particularities of the form. In Topologic, information such as room type is affected by and affects geometric outcome. I recently demonstrated this to my students using Topologic in Dynamo.

    The current limitation of FreeCAD, when it come to Topologic, is the lack of a visual data flow plugin like sverchok. FreeCAD would benefit from that immensely. But I know there are FreeCAD nodes in sverchok. I need to try them. I am also about a couple of weeks away from completing Topologic for sverchok on Blender. That is proving to be quite a powerful and fast environment for Topologic.

    theoryshawJQLCGRarquitextonicacarlopavpaulleetlang
  • Great!
    From FreeCAD, what I like most, really is Sketches. Maybe FreeCAD Sverchok nodes will import them into Blender...

    CGRpaullee
  • There are discussion, similar with TAD, that Architect should think about space more than construction element like walls. It should be both and hardly an Architect escape from manipulating the shape of Wall, take Villa Savoye floor layout as an example.

    Hi @paullee . You mean TAD the academic publication? I just found it today and I'm very curious. My research, as @topologic mentioned is working hard on the conceptual side of the problem you are all tackling here on the practical/instrumental side.
    Do you have any concrete references I can read of this discussion? Thanks in advance.
    And to all a HUGE thumbs up! You are making a terrific job!

Sign In or Register to comment.