GraphViz diagrams of IFC data

I had a need to visualise some IFC structure, so I created this not-very-sophisticated ifcdot tool.

It (currently, pull-requests welcome) only shows Object entities and connects them with a subset of Relationship connections that I was interested-in. This shows a single Wall. its Openings, Spaces (connected by Space Boundaries), and aggregates:

This diagram shows the same Wall, but includes objects with a second-degree of separation, the Openings have Windows, the Spaces are connected to lots of other Walls and Slabs, and also a Building Storey :

With three degrees of separation, the diagram expands to include everything directly contained within the Building Storey:

The tool can also show the entire IFC structure. Note that this project contains a single building and a structural model, but the two are not connected (at least they are not connected by any of the Relationships that ifcdot is following:

JanFMassimotheoryshawcvillagrasaatomkarincabruno_perdigaoCadGiruBimlooserGorgiousAceand 1 other.

Comments

  • The 'dot' tool lets you cluster related things together in boxes, so this graph shows windows inside openings, inside walls, inside storeys, inside a building etc..

    ktmatomkarincaMassimosergicera
  • Here is the one degree of separation diagram above clustered:

    ..and the two degree of separation diagram:

    sergicera
  • @ktm to use this, place the ifcdot.py file in somewhere where blender can find it, then in the python console:

    import blenderbim.tool
    from ifcdot import write_dot
    ifc_file = blenderbim.tool.Ifc.get()
    write_dot(ifc_file, "graph.dot")
    

    Then you need the GraphViz command-line tools to process the graph.dot file. This will create an SVG image with the boxes:

    dot -Tsvg graph.dot > graph.svg
    

    This will create an SVG image with the random layout:

    neato -Tsvg graph.dot > graph2.svg
    
    ktmsergicera
Sign In or Register to comment.