A3: Tool#

Tool Assignment

Aim

Create a custom tool for the use case you defined in A2.

Tools:

[Blender] / [Bonsai] / [Python] / [IfcOpenShell] / [Speckle]

Case:

Automate the validation of claims made in Advanced Building Design Reports

Groups:

2 - 3 people group for a specific [focus] area

Practice:

In class activity in weeks [5], [6], [7], [8]

Exercise:

Following the in class activities will provide the submission requirements

Develop Management Experience: Assignment [A3] and [A4] have the same deadline, this is to give you the maximum time to develop your tool and project manage your group’s time.

Submission Requirements#

Develop your own script#

Check out the future aec software specification for inspiration.

Now you can begin to develop an [IfcOpenShell] script that follows your script diagram from A2E.

The IFC model itself is not a part of the assignment, and should not be part of your git-repository.

In your main.py, define a variable pointing to the model on your local machine:

...
from pathlib import Path

model_path = Path("C:/Users/JohnDenver/documents/models/CES_BLD_24_xx_yyy.ifc")
if not model_path.is_file():
    raise FileNotFoundError(f"No file found at {model_path}!")

model = ifcopenshell.open(model_path)
...

Activity Completion#

00 Preparation#

  • Decide in your subject group if you will be following the ‘manager / analyst’ format or if you are developing independent tools.

  • Make a new folder in your github repository called A3. Every file contained within A3 is considered a part of the assignment.

    • Note: If you are not developing an independt tool, but are still working with your manager, you are allowed to have files outside of the A3/-folder, in the rules/-folder. In this case, you should explicitly state in your A3-report which functions are part of A3.

The contents of A3/ could be something like the following:

A3
│   README.md
│   main.py
|   someUtils.py
|   someDiagramName.svg (if you have made any alterations since A2)
│   ...

01 Your tool - A Python script#

  • Your main.py file. You can have multiple Python files, but then they should be imported as modules into the main.py script.

02 The IFC model#

  • Please do not upload the IFC model.

03 A markdown file:#

This is based on the Use Case Analysis you did in A2. it should answer the following questions:

About the tool#

  • State the problem / claim that your tool is solving.

  • State where you found that problem.

  • Description of the tool

  • instructions to run the tool.

Advanced Building Design#

  • What Advanced Building Design Stage (A,B,C or D) would your tool be usefuL?

  • Which subjects might use it?

  • What information is required in the model for your tool to work?

04 An IDS:#

  • Produce an IDS to check that the model can be run by your tool.

Peer Presentation#

If you are not sure of what to include in your peer presentation, remember you are helping your peers to assess if your tool does what you intended. We suggest you to cover the following:

1. As is BPMN diagram#

This would include the diagram from A2 or an update of this describing how this is currently done

2. Aim#

State the aim of your tool

3. To be BPMN diagram#

This describes your proposed system / workflow.

4. Your tool#

Quick overview of the tool, think about the things you already all know, i.e. import ifcopenshell and try and focus on how you have solved the problem you found.

5. Output#

Present the output of your tool, (show your team that it does this)