opencax / GSoC

Google Summer of Code Projects
30 stars 14 forks source link

Implement BIM/IFC geometry for infrastructure assets #63

Closed aothms closed 2 months ago

aothms commented 2 years ago

Outline

Building Information Modelling and IFC (the industry foundation classes) have been traditionally used mostly in the construction of buildings. However recent extensions to the IFC schema (IFC4X1: alignment, IFC4X2: bridge, IFC4X3: rail, IFC4X4 (in progress): tunnel) allow using vendor neutral exchange of infrastructure assets. Geometrically, such definitions are fairly different, where transition curves are used to precisely control for curvature and linear placements are used to position elements along the curve. This project will implement and extend basic support for reading (and potentially authoring) such geometry definitions.

Figure 1. Railway elements linearly positioned along an alignment curve with "Cant", a tilting rotation along the longitudinal axis. Source https://github.com/buildingSMART/Sample-Test-Files/tree/master/IFC%204.3/LinearPlacement_2

Details

Elementary bits and pieces exist already in the code base:

But the concrete geometry definitions to build upon these elementary definitions are not implemented yet:

Expected Outcome

Progress towards the implementation and visualisation of such IFC infrastructure elements. Hopefully resulting also in the possibility to use such entities in https://blenderbim.org/ or in the FreeCAD BIM or geo workbenches https://wiki.freecadweb.org/BIM_Workbench.

Project Properties

Skills

A background in geometry, linear algebra or computer graphics.

Understanding of python or C++.

Difficulty

Medium

Size

Medium (175h)

The participant focusses on interpreting the data solely in IfcOpenShell and uses simple python visualisation tools to demonstrate the outcomes.

Long (350h)

The participant additionally makes an effort at integrating with BlenderBIM or FreeCAD and also investigates authoring or editing alignments in these tools.

Additional Information

Potential mentor(s): Thomas Krijnen @aothms

Organization website: http://ifcopenshell.org/

Communication channels: https://sourceforge.net/p/ifcopenshell/discussion/