Skip to content

Infrastructure Authoring ‐ Design and Coordination

Richard Brice edited this page Feb 10, 2025 · 4 revisions

Purpose

This page is intended to collect design decisions and provide a high-level overview to development tasks related to authoring in the infrastructure domain with IfcOpenShell and bonsai.

Background

See original discussion at OSArch.

Separation of Concerns

A primary goal of these infrastructure authoring capabilities will be to accommodate two user personas:

  1. Typical user interacting with the Blender GUI to create and edit infrastructure elements.
  2. Computational designer interacting programmatically via text-based coding or visual programming (e.g. sverchok)

Accordingly, the goal of these infra additions will be to target the existing ifcopenshell.api namespace.

Preliminary UI concept

db2r6o6srwbv

UI Element Corresponding IFC Class(es) Namespace Notes
Points IfcAnnotation tbd PredefinedType.SURVEY for existing points. Potentially user-defined type .COGO. (coordinate geometry )for design points
Terrain IfcGeotechnicalAssembly tbd
Alignment IfcAlignment / IfcAlignmentHorizontal api.alignment
Profile IfcAlignmentVertical api.alignment
Corridor IfcRoad tbd
Typical Section IfcRoadPart api.profile aka in industry as template component or subassembly
Cross Sections ? api.drawing

GSoC Proposal

Outline

Industry Foundation Classes (IFC) offer the ability for rich information exchanges between modeling, analysis, planning, and other software tools in the Architecture, Engineering, and Construction (AEC) industry. Specifically, the latest release of IFC (version 4.3, also referred to as IFC4X3) adds linear referencing via alignment modeling, which is core to describing the construction and maintenance of infrastructure assets such as roads, bridges, and railways.

Details

Alignment import (read) capabilities have been added to IfcOpenShell and the Bonsai add-in for Blender. They have reached a state of maturity such that the next logic step is to enable alignment authoring (write) capabilities.

Expected Outcome

Alignment authoring will take place in Blender via the Bonsai add-in. A user-focused workflow has been developed and documented, along with preliminary user interface mockups. This project would add alignment authoring capabilities via new panels and other items within Blender. The ifcopenshell.api namespace will also need to be enhanced incrementally to support the new user interface tools.

Project Properties

Skills

Understanding and general working knowledge of python.

Difficulty

Medium

Size

Medium (175 h)

The participant focuses on authoring horizontal alignments via the PI method. This could be via interactive icons or primarily through a table-based interface. The user would need to be able to add, edit, and remove PI (point of intersection) points. Additionally the user would need to be able to adjust the radius that corresponds to each PI point. Though not strictly required for this project, the authoring tool would also enable definition and editing of entry and exit transition curve type (clothoid, sine spiral, polynomial spiral, etc.) and length.

Long (350 h)

PI-based alignment would be added for vertical and cant as well. A basic corridor modeling UI tools would be implemented to allow for sweeping geometry (open or closed profile) along an alignment curve to generate 3D linear geometry via IfcSectionedSolidHorizontal and related IFC entities.

Additional information

Potential mentors: Richard Brice @RickBrice & Scott Lecher @civilx64

Organization website: https://ifcopenshell.org

Communication channels: https://github.com/IfcOpenShell/IfcOpenShell/discussions

Technical resources:

https://docs.bonsaibim.org/guides/development/index.html

Blender 4.3: Precise Modeling for Architecture, Engineering, and 3D Printing

Python Scripting in Blender