OSArch Community

GraphViz diagrams of IFC data

  1. B

    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:

  2. B

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

  3. B

    Here is the one degree of separation diagram above clustered:

    ..and the two degree of separation diagram:

  4. B

    @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
    

Login or Register to reply.