# 4th July 20:00 UTC Monthly Meetup

The next meetup will be on the 4th of July 20:00UTC (8PM) (i.e. the first Saturday of the month).

I'm looking for volunteers to give a short minute presentation or demo about any cool open source related thing :) You can talk as short or as long as you want! Or, if you'd like something to be talked about, please also suggest it!

Please see the wiki to add your topic: https://wiki.osarch.org/index.php?title=Monthly_Meetup

If you're up for it, add yourself to the spreadsheet and if you add your email too, I'll send around a reminder email:

https://docs.google.com/spreadsheets/d/19EzmthOp5hGYFTZCgOIm51n7hvcp_F8nB_XLYeTJ0zU/edit#gid=0

## Comments

Just reporting the proposal in the wiki page:

Possible points for discussion

I can do ten minutes on Homemaker (evolving houses with Perl) if we need to fill some time.

I feel talking about this project would deserve a keynote, not just 10 minutes

Definitely agree with @Jesusbill. we can postpone some topic I proposed to leave more space to homemaker

Homemaker sounds cool! I've added it to the Wiki - please edit that page and add any discussion topics in order :)

https://wiki.osarch.org/index.php?title=Monthly_Meetup

I vote for homemaker too! Would love that

Fascinating.

guys, this must be pinned to the top please!

... if homemaker crashes, does that make it a homewrecker? (joke https://en.wikipedia.org/wiki/Homewrecker )

I would also like to hear about

`A quick preview of new FreeCAD BIM WB experimental tools`

, #4 from the proposed points by @carlopavPinned to the top!

While putting together the materials, I'm thinking that I might need a bit longer than ten minutes to do Homemaker

As a keynote you can do way more than 10 minutes, I'd say as much as needed. Looking forward to your presentation

Can't wait to hear more about homemaker too! Take as long as you need!

Here a timezone converter:

https://www.timeanddate.com/worldclock/fixedtime.html?msg=osarch+monthly+meetup&iso=20200704T20&p1=1440

... if homemaker crashes, does that make it a homewrecker? (joke)

Videos are up!

Peertube: https://peertube.social/videos/watch/3ddf5f32-5a8f-478e-b0d2-f94084ad961c

Youtube:

Thanks @brunopostle to recall the Alexander's pattern language! it's a great book :)

Thanks for the presentations on Hommaker and FC experimental BIM objects :)

Interested in the diagram describing the relationship between rooms - studying Arch Space in FreeCAD, and wondering how the relationship between the Spaces (Rooms), doors etc. could be established / described in a program.

I have been trying to define a ArchSpace by identifying the walls enclosing it, so I can establish Space (room) <--> defining Walls. Only have basic Python knowledge atm. So if the relationship between Spaces (Rooms) can be described, a bubble diagram like graph can be generated ?

Thanks for any idea

Arch Spaces in FreeCAD

@paullee you may be interested to know that there actually is a space / wall /door relationship. One of these is called "Space boundaries". I'm not too experienced with them, but I think @Cyril knows these much more.

Sounds interesting, had minimal IFC knowledge atm though :)

Can't figure out if it describes /relationship /between .Spaces (Rooms), interconnecting doors ?

And if any openspace library tackle these kind of relationship ?

(FreeCAD has Link to connect objects but /only for Acyclic relationship, so can't describe the web-like graph in the shown diagram)

@paullee the Homemaker circulation graph is derived from the graph of wall connections (it is the 'dual' graph), but this is easy in Homemaker because I can guarantee that all walls connect.

IFC space boundaries are not defined as a cyclic graph, the spaces on either side of a wall are associated with the wall one at a time. So to determine if two rooms are adjacent you need to check to see if they are both connected to the same wall. You could construct a cyclic circulation graph from this information, but it isn't stored directly in the IFC file.

There is likely a standard python module for creating, querying and manipulating graphs, this isn't the kind of data structure that you would roll yourself.

nice @paullee and @brunopostle , this is really interesting. The new wall experimental object knows when a wall is connected to it, and to which wall it have to connect to (and it does not have cyclic reference problems in FC, also if it rely on cyclic references), so perhaps a graph representing wall connections can be "easily" implemented?

Thanks all !

Maybe anyone can point out the presence of a python module for creating similar kind of graphs to see if it help ?

@paullee perhaps here?

Thanks @Moult. I am randomly looking around trying to make sense with my minimal python knowledge of what they are providing :)

@brunopostle Can you slightly elaborate the steps how you generate the graph ( the 'dual' graph ? ) with the wall connections information you indicates. It seems this maybe way beyond my capabilities to understand more at the moment.

@paullee I would start at the end result and work your way back.

This is a visualisation of a network graph (it's the building I evolved during my presentation):

..the image itself is generated from a text file by the GraphViz tool with a command like this:

`neato -Tsvg -Gpage="4,4" -Gsize="4,4" -Gratio=fill -Gcenter=1 < graph.dot > graph.svg`

The input text file used by GraphViz is a good example of how you describe an undirected (possibly cyclic) graph. There are two types of objects defined: nodes, and edges between nodes:

It appears that the way you model a network graph in python is very similar. The advantage of using a graphing library is that you can query the graph: check it for cycles or unconnected nodes, find the shortest distance between nodes etc..

Thanks for the detailed explanation and pointer, need more time to study @brunopostle !

It seems 'nodes' in a graph are rooms / spaces; ... 'edges' is the connecting doors at common wall between 2 spaces / rooms ?

Wondering, checking, if it can contain information like ?

Similar problems for a geographic maps - finding the common boundaries of 2 countries e.g.

Too many questions :)

@paullee for a building like Villa Savoye, no CAD is going to figure out automatically where one room starts and another finishes.

I don't know how freecad does this, but for IFC I think you are usually expected to manually assign walls as boundaries for spaces. i.e you have to declare that wall A is a boundary for space B, and separately that wall A is a boundary for space C - so the fact that spaces B and C are adjacent is implicit rather than declared directly. I also suspect that when constructing a circulation graph, you would have to check if each wall has a door in order to decide whether to add an edge.

[edit] Thinking about this problem with IFC, a wall can be any length and can span multiple spaces, and there is nothing to indicate which space a door is related-to. So if you wanted to construct a circulation graph, you have to resolve the 3d position of the door, and then make an assumption from this about which spaces it connects.

Thanks again, really have lots to study now !