Skip to content

Starting workflow notes #12

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions workflows.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# WORKFLOWS

This document outlines some typical workflows of using COMPAS IFC.

# Stand-alone

Using COMPAS IFC directly in python scripts to build IFC hierarchies, assign geometry representations, define properties, and export to IFC files.

### TODO
- [ ] Define default behavior to store full COMPAS geometry metadata to IFC properties, such as Mesh Vertex attributes.

# From COMPAS Model

Craeting a `COMPAS Model` first. And use a built-in `to_ifc_model()` funtion to directly convert to an COMPAS IFC model, or use `to_ifc(path)` to directly export to an IFC file.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: Craeting


### TODO
- [ ] Extend the `COMPAS Model` class to `BimModel`. Perhaps in a new package `COMPAS BIM`?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

perhaps BIModel as in Building Information Model?
i would not create an additional package, but rather have multiple types of models live in compas_model. at least for now...


# From CAD

Export to IFC directly in a CAD environment where COMPAS IFC can be installed.

## From Rhino

Export from a Rhino file, where the layer structure corresponds to the IFC spatial hiearchy. The geometry representations are tranlsated in a lossless manner. Object UserData can be used to define IFC properties.

### TODO
- [ ] Rhino template file with correct layer structure and object types.
- [ ] Complete mapping from compas(_rhino) geometry to IFC geometry, especially BRep and Extrusion.
- [ ] Mechanism to define how UserData is mapped to IFC properties.
- [ ] Validation mechanism to check if the Rhino file has the correct layer structure and object types.
- [ ] GUI, perhaps through a new `COMPAS BIM` package.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would start directly from creating the user interface for rhino and test with few study cases e.g.
a) Read IFC
b) Create a Template (Rhino layers)
c) Write IFC

As mentioned long time ago a few workflows was done by other PhD:
https://vimeo.com/402625923

Typical layer was not enough, so the person you met in Barcelona developed this:
https://github.com/fraguada/LayerStalker

I am wondering if like in the compas_model can you store hierarchical relationships i.e. a graph. How would you store that in IFC?


Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add attributes to Rhino objects and collect them to IFC.
Typically it is done using these collections and methods to retrieve them by code or by rhino properties panel:
https://developer.rhino3d.com/api/rhinocommon/rhino.docobjects.objectattributes/getuserstrings

## From Blender
...

## From Revit
...

## From ArchiCAD
...
Loading