Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

IFC tutorial scripts broken with compas_ifc 1.7.0 and compas_viewer 2.x

Aperta
#4 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
74/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
python
Ambito
documentation

Direzione di ricerca

Inizia leggendo viewer.py, spatial_tree.py e attribute_tree.py, quindi confronta i relativi import, le chiamate a viewer, la configurazione di Treeform e la gestione della geometria con le API attuali elencate. Aggiorna tutti e tre gli script per compas_ifc 1.7.0 e compas_viewer 2.x, inclusa la scala delle unità IFC, e conferma che i tutorial vengano eseguiti con l’ambiente indicato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Environment

  • OS: Windows 11
  • Python: 3.12
  • compas_ifc: 1.7.0
  • compas_viewer: 2.0.2
  • ifcopenshell: 0.8.5

Problem

The tutorial scripts viewer.py, spatial_tree.py, and attribute_tree.py
use outdated APIs that no longer work with current package versions.

Fixes required

viewer.py / spatial_tree.py / attribute_tree.py

1. body_with_opening no longer exists

# OLD
viewer.add(entity.body_with_opening, name=entity.name)
# NEW
geom = entity.geometry
if geom:
    viewer.scene.add(geom, name=entity.name)

2. viewer.add() no longer exists → use viewer.scene.add()

3. from compas_viewer.layout import Treeform no longer exists

# OLD
from compas_viewer.layout import Treeform
# NEW
from compas_viewer.components.treeform import Treeform

4. from compas_ifc.entities import Entity no longer exists

# OLD
from compas_ifc.entities import Entity
# NEW
from compas_ifc.entities.base import Base as Entity

5. viewer.layout.sidedock.add_element() no longer exists

# OLD
viewer.layout.sidedock.add_element(Treeform(...))
# NEW
treeform = Treeform(...)
treeform.update()  # required to populate the widget
viewer.ui.sidedock.add(treeform)

6. Treeform columns API changed

# OLD
Treeform(tree, {"Name": ".name", "Value": ".attributes['value']"})
# NEW
Treeform(tree, columns={"Name": lambda n: n.name, 
                         "Value": lambda n: n.attributes.get("value", "")})

7. Scale needed for correct geometry size (IFC units are in mm)

from compas.geometry import Scale
S = Scale.from_factors([0.001, 0.001, 0.001])
geom.transform(S)
Lingua principale
Python
Stelle
1
Fork
2
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.