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

1235726

Comments

  • @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?

  • 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.

    theoryshawpaulleeJesusbillbasweinJQLcarlopavMeetlatCyrilCGRMoultand 2 others.
  • 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

  • @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

  • @ReD_CoDE then it works with a custom mass. It expects, for example, that walls and floors are vertical and horizontal planes, but this isn't a limitation of the technique - it is just that I don't see the need for twisty upside-down buildings.

  • @brunopostle the approach you have chosen to follow has limitations, however, I appreciate what you do
    Just tip: Do you know what's the other name of "emergence"?

    brunopostle
  • The Topologise add-on doesn't have any options. So, for the time being, to use a style other than the default you need to set it in the Blender environment:

    MOLIOR_STYLE=courtyard blender

    Darth_BlenderMoultpaulleeJQLbaswein
  • As discussed before, it would be great to be able to setup our own custom styles.

    brunopostle
  • Also, how easy would it be to have Topologise being stripped of window styles, and decorative elements, and simply create the structural base like walls, stairs and openings. That way we could already use it independently of architectural style and then add those elements ourselves. I think raw structural elements automodelling is already a great thing.

    I just don't know how using the raw structural model and then directly modelling it would work if we wanted to redo the base massing and regenerate a new raw structural model. But eventually we would do that only if the building would be changed in an extreme way.

    The way I see it, if we had studied the massing model right, it might not change that much after we nailed the base shape, so for smaller changes direct modelling could be the way to go from there.

    I hope I'm making sense.

  • @JQL said:
    Also, how easy would it be to have Topologise being stripped of window styles, and decorative elements, and simply create the structural base like walls, stairs and openings. That way we could already use it independently of architectural style and then add those elements ourselves. I think raw structural elements automodelling is already a great thing.

    You could easily create a 'style' that didn't include any of the extrusions, or any windows or doors, or just had simple placeholder windows and doors. Though I would hope that one of the things that we will be able to do ultimately in blenderbim (or an associated tool) is select a group of ifcwindows and change them all to a different product, adjust the cill height etc.. and let the software fix the openings to suit.

    Currently Topologise regenerates the entire IFC model every time you run it, so any editing like this will be lost. I imagine someday a workflow where you change a window and the software asks you if you want to apply the same change to all similar windows, and/or update the 'style' so that all new windows follow the new pattern. Topologise is a proof of concept, by exploring with it we can figure out if we want this sort of functionality or something else.

  • Hi @brunopostle and @JQL I'm very sorry for the late replies.
    To @JQL the BIM elements are generated in archicad through the live link plugin from grasshopper. Programs are fed into the cells using dictionaries with @topologic and then re-queried using boolean gate structures.
    To @brunopostle , the images are all that I can share, got no text or publication related to the seminar and I'm afraid there is no near-future plan for it as I'm focused on my dissertation that indeed has wandered a little further away from the practical applications into the more conceptual. I'm still wondering what @ReD_CoDE means with "the other name of emergence" as emergence is a VERY important concept in my work.
    BTW I guess you all know about Townscaper, right? I read in the creator's twitter feed he had over 500 different cells to be used by it's system. Just imagine doubling the number of style elements... I'm curious how you assign them? Just geometric-metric conditions? For me it is in this questioning-querying-assigning where the real architectural knowledge could be hosted.

  • @arquitextonica said:
    BTW I guess you all know about Townscaper, right? I read in the creator's twitter feed he had over 500 different cells to be used by it's system. Just imagine doubling the number of style elements... I'm curious how you assign them? Just geometric-metric conditions? For me it is in this questioning-querying-assigning where the real architectural knowledge could be hosted.

    Townscaper is awesome, I knew that the base grid for all the buildings is pre-generated, but I guess it makes sense that all the cells are pre-assembled too.

    Topologise (or rather the Molior module does all this stuff), just starts off with a grid of equally-spaced windows, and if they don't fit the wall it reduces the number of windows, their height and finally their width. The windows and doors are not parametric, I just modelled all the different sizes I needed. This seems to be a good imitation of a 'vernacular mind' way of designing a building. Windows line up vertically more often than not, though I have no code to enforce this.

    arquitextonica
  • @brunopostle @arquitextonica the other name of emergence is nesting
    Because they're (complex) systems in each other in different scales
    So, now will see if you come up with the appropriate solution :)

  • @brunopostle said:

    You could easily create a 'style' that didn't include any of the extrusions, or any windows or doors, or just had simple placeholder windows and doors. Though I would hope that one of the things that we will be able to do ultimately in blenderbim (or an associated tool) is select a group of ifcwindows and change them all to a different product, adjust the cill height etc.. and let the software fix the openings to suit.

    Currently Topologise regenerates the entire IFC model every time you run it, so any editing like this will be lost. I imagine someday a workflow where you change a window and the software asks you if you want to apply the same change to all similar windows, and/or update the 'style' so that all new windows follow the new pattern. Topologise is a proof of concept, by exploring with it we can figure out if we want this sort of functionality or something else.

    That seems to be the way to go indeed. Is it currently possible to create that 'style'? Are you thinking on some kind of easy UI for creating the style?

    I didn't understand if Topologise is already downloadable or available for testing purposes. If so I'd be interested in trying it out. If not, then I'd be interested in testing it if you ever need someone to do that.

    @arquitextonica
    If you used Grasshopper, Archicad and Topologic to do that, then for that workflow to be possible on opensource software, would you imagine that BlenderBIM would be capable of reproducing it if Topologic was adapted to Sverchok, or would some specific functions of Archicad would be required too?

  • @JQL said:

    That seems to be the way to go indeed. Is it currently possible to create that 'style'? Are you thinking on some kind of easy UI for creating the style?

    There's no UI and no documentation (yet), you have to create a couple of text files and model any assets you want to use.

    I'd be interested to hear what experience anyone has of the Topologise add-on, there are instructions in the thread above (you need to install four Perl modules from git, the python yaml module, and install the topologise.py script like a normal blender add-on). I warn that this isn't straightforward on Windows because it is difficult to access Perl scripts from within blender.

  • @ReD_CoDE said:
    @brunopostle @arquitextonica the other name of emergence is nesting
    Because they're (complex) systems in each other in different scales
    So, now will see if you come up with the appropriate solution :)

    I have researched a little further through your statement ('cause I've been working for some time on cybernetics) and was puzzled by your "synonyms" which I wouldn't name so.
    I'd look into the work of C. Walloth. He works on "emergent nested systems". If nested was a synonym of emergent he wouldn't have to use them together... Nested is used as in enclosed-enclosing (which can also regard to loops) as in a property of complex systems. But emergent is related to the appearance of novelty. So very related but indeed IMHO not synonyms.

  • @JQL said:
    If you used Grasshopper, Archicad and Topologic to do that, then for that workflow to be possible on opensource software, would you imagine that BlenderBIM would be capable of reproducing it if Topologic was adapted to Sverchok, or would some specific functions of Archicad would be required too?

    Hi @JQL The specific archicad functions are actually the style selection. Element styles were predefined in Archicad and then with the plugin selector they were assigned to the sorted elements. I guess (I haven't used it yet) BlenderBIM should be able to manage that.
    For me, the VERY interesting and promising part is not the creation of the BIM elements, which I consider fairly trivial given the state of the software, but the management of the spatial-architectural information that @topologic can add to the spatial elements. From the boolean work on the dictionaries the combinatorial possibilities are astounding and it is indeed in this non-trivial-very-easily-transcomputable production and management of knowledge that I am currently focused on trying to understand.
    The rest should be just coding...

    JQL
  • @arquitextonica said:
    @ReD_CoDE I have researched a little further through your statement ('cause I've been working for some time on cybernetics) and was puzzled by your "synonyms" which I wouldn't name so.
    I'd look into the work of C. Walloth. He works on "emergent nested systems". If nested was a synonym of emergent he wouldn't have to use them together... Nested is used as in enclosed-enclosing (which can also regard to loops) as in a property of complex systems. But emergent is related to the appearance of novelty. So very related but indeed IMHO not synonyms.

    I like this way to indirectly mention things, however:
    I guided you to think about nesting, and come up with these:

  • edited November 2020

    About addon, so far I managed to set PERL5LIB paths and Topologise creates .yaml, .ifc and .molior files, now BlenderBim strikes back:
    "Error: Traceback (most recent call last):
    File "C:\Blender\2.83\scripts\addons_contrib\Topologise__init__.py", line 129, in execute ifc_importer.execute()
    File "C:\Blender\2.83\scripts\addons_contrib\blenderbim\bim\import_ifc.py", line 411, in execute self.load_file()
    File "C:\Blender\2.83\scripts\addons_contrib\blenderbim\bim\import_ifc.py", line 1532, in load_file
    self.file = ifcopenshell.open(self.ifc_import_settings.input_file)
    File "C:\Blender\2.83\scripts\addons_contrib\blenderbim\libs\site\packages\ifcopenshell__init__.py", line 67, in open
    raise IOError("Unable to open file for reading")
    OSError: Unable to open file for reading"

    Strawberry Perl + Win7, Blender 2.83.2

    Edit: seems .ifc file is ok, I can open it via Bim Vision software but not import with BlenderBim

    Ifc-file: https://puu.sh/GPR34.ifc

  • error log, when opening in Revit.
    Might help.

  • edited November 2020

    @JuhaW said:
    OSError: Unable to open file for reading"

    Strawberry Perl + Win7, Blender 2.83.2
    Edit: seems .ifc file is ok, I can open it via Bim Vision software but not import with BlenderBim

    Ifc-file: https://puu.sh/GPR34.ifc

    This was a bug in my code for generating IFC headers (apparently you can't have a backslash in a STEP string, who knew?), it should be fixed if you pull the latest File::IFC from git. Thanks @theoryshaw, the Revit error message was very useful.

    @JuhaW I'm very impressed that you got this to work on Windows, can you describe your steps?

  • edited November 2020

    Ahh @brunopostle you beat me to it! :) But I guess what I can contribute is the spec chapter on strings: http://www.steptools.com/stds/step/IS_final_p21e3.html#clause-6-4-3

    For those who were wondering, change:

    FILE_NAME('C:\strawberry\molior\bin\molior-ifc.pl','2020-11-21T23:20:14',($),(''),'File::IFC-0.01','','');
    

    ... to ...

    FILE_NAME('C:\\strawberry\\molior\\bin\\molior-ifc.pl','2020-11-21T23:20:14',($),(''),'File::IFC-0.01','','');
    

    Possibly worth mentioning to BIMVision... if they accept it, who knows how they are parsing it...

  • edited November 2020

    I replaced 2 lines of__init__.py, direct paths to urb and molior folders.

    subprocess.call(['perl.exe', r'C:\strawberry\urb\bin\urb-topologise.pl', yaml_tmp.name, molior_tmp.name])
    subprocess.call(['perl.exe', r'C:\strawberry\molior\bin\molior-ifc.pl', molior_tmp.name, ifc_tmp.name])

    Then I created new environment variable PERL5LIB paths to
    "file-ifc", "file-dxf" and "urb" folders and ALL of them subfolders also.

    Like C:\Strawberry\file-ifc; C:\Strawberry\file-ifc\bin;C:\Strawberry\file-ifc\lib;C:\Strawberry\file-ifc\lib\File;C:\Strawberry\file-ifc\lib\File\IFC
    And same thing to "file-dxf" and "urb" folders also

    I read this and it helped: https://perlmaven.com/how-to-change-inc-to-find-perl-modules-in-non-standard-locations

    brunopostleCGR
  • This is a long and detailed discussion, but we have almost on the wiki ... https://wiki.osarch.org/index.php?title=Topologic could someone expand that page a bit?

  • This is fun to play, what If I want to change windows or doors for example, what file I need to change ? I want to expose that kind of option to UI if possible.
    In image, selected object is the source object.

  • Maybe in .dxf files ?

  • edited November 2020

    @JuhaW said:
    This is fun to play, what If I want to change windows or doors for example, what file I need to change ? I want to expose that kind of option to UI if possible.

    The default style is defined as a collection of files in this folder: molior/lib/auto/Molior

    It isn't very well documented, basically there are three YAML files that define the style, and a collection of DXF files that represent 3D resources like doors, windows and columns, and 2D extrusion profiles (remember this is all a proof of concept, parsing lots of DXF files every time the plugin runs is not ideal, it would be better and faster if these resources were already loaded into blender with appropriate IFC classifications, materials etc..)

    You could edit these files to alter the default style directly, though there is a mechanism for creating a new style by just subclassing the bits you want to change. There is one example of a derived style in this folder: molior/lib/auto/Molior/courtyard

    There is no GUI for switching the style, currently you have to set an environment variable before running urb-topologise.pl, in practise this means setting this environment variable and restarting blender, on Linux I would change the style to 'courtyard' and start blender like so: MOLIOR_STYLE=courtyard blender

    It would probably be easy to set the MOLIOR_STYLE variable inside the python add-on, just a little bit of code and some blender GUI is needed. i.e. put this in the add-on somewhere: os.environ['MOLIOR_STYLE'] = "courtyard"

Sign In or Register to comment.