Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

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

Offen
#4 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
74/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Ruhig
Tech-Stack
python
Bereich
documentation

Rechercherichtung

Beginne mit dem Lesen von viewer.py, spatial_tree.py und attribute_tree.py. Vergleiche anschließend ihre Imports, viewer-Aufrufe, die Treeform-Einrichtung und den Umgang mit Geometrie mit den aufgeführten aktuellen APIs. Aktualisiere alle drei Skripte für compas_ifc 1.7.0 und compas_viewer 2.x, einschließlich der IFC-Einheitenskalierung, und bestätige, dass die Tutorials mit der angegebenen Umgebung ausgeführt werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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)
Vorherrschende Sprache
Python
Sterne
1
Forks
2
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.