icon

[Otázka] Volumen von Visual Scripting PythonPart als IFC Quantity exportieren

Tagy:
  • Volumen
  • PythonParts
  • PythonAPI
  • IFC
  • Export

Hallo zusammen,
ich habe eine Frage zum Umgang mit Volumen bei (Modell)PythonParts die mit Visual Scripting erstellt wurden, speziell im Zusammenhang mit dem IFC-Export.
Ausgangslage:
Ein normales Visual Scripting PythonPart bekommt kein Volumen automatisch zugewiesen, das Attribut wird nicht angezeigt in den Eigenschaften.
Als Beispiel hänge ich das Script NormalBox an.
Ich kann das Volumen-Attribut zwar manuell per Python-Code überschreiben (mir ist bewusst dass das eigentlich ein nicht-bearbeitbares Attribut ist).
Das Script Box_with_forced_quantity zeigt wie ich das mache. Für den Moment wäre das für mich eine akzeptable Lösung.

Zwei Probleme die diese Lösung aber unbrauchbar machen:
Beim IFC-Export landet der Wert als „Allplan Attribute" im IFC, nicht als Quantity wie es eigentlich sein sollte. Damit wird er von den üblichen IFC-Auswertungstools nicht als Volumen erkannt.
Das erzwungene Volumen verschwindet irgendwann wieder. Ein Teilbildwechsel oder Allplan-Neustart reicht nicht, das Attribut bleibt erhalten. Aber ab irgendeinem Punkt (ich weiss nicht welcher Auslöser es ist) wird das ganze Attribut gelöscht. Wenn man das PythonPart bearbeitet läuft das Script erneut und das Attribut ist wieder da, aber mir ist diese Unsicherheit zu riskant um es zu benutzen. Und ich weis auch nicht wie ich alle gleichzeitig aktivieren könnte falls ich mehrere abgesetzt habe.

Meine Frage an euch:
Gibt es einen sauberen Weg Visual Scripting PythonParts mit einem echten Volumen zu versehen, das beim IFC-Export als Quantity exportiert wird? (vlt sogar von Allplan selbst berechnet?)
Oder falls nicht – gibt es einen gebastelten Weg der zumindest robust ist und nicht unter bestimmten Umständen verloren geht?
Mir ist bewusst dass ich hier ein Attribut beschreibe das ich eigentlich nicht beschreiben soll. Falls jemand einen offiziellen Weg kennt wäre ich sehr dankbar.
Danke im Voraus und Grüsse
Emanuel

Přílohy (3)

Type: application/x-sqlite3
Staženo 328
Size: 132,00 KiB
Type: text/xml
Staženo 334
Size: 3,72 KiB
Type: text/xml
Staženo 341
Size: 1,17 KiB

Show most helpful answer Hide most helpful answer

Das Problem ist der 3D-Körper!
Erzeuge stattdessen einen Mengenkörper, und alles wird gut.
Dieser Mengenkörper kann in Allplan ausgewertet werden, und sollte auch im IFC-Export zumindest das Volumen korrekt übertragen. Zudem kann man diesem noch das Attribut "Abrechnungsart" zuweisen, in der man zwischen
m³, m², m und Stück unterscheiden kann. Die gewünschte Menge kann man dann in das Attribut "Menge" schreiben.

Ich befürchte jedoch, man kann mit der Python-API den Mengenkörper gar nicht erzeugen.

...ganz anderer Ansatz um Mengendaten in der IDC zu übergeben...

Software: Allplan, Lumion, OM by Cycot, Simplebim, Nevaris...
Coachings unter http://www.cycot.de / Tutorials unter http://www.allplanlernen.de

Přílohy (1)

Type: image/jpeg
Staženo 49
Size: 90,31 KiB

Citoval joerggeier
...ganz anderer Ansatz um Mengendaten in der IDC zu übergeben...

Danke für den Vorschlag
leider ist das nicht die Lösung, das Häkchen habe ich schon drin...

ich habe ein Beispiel ifc angehängt,
die obere box ist von "NormalBox" (hat garkein volumen)
die mittlere box ist von "Box_with_forced_quantity" (hat ein volumen aber in "Allplan Attributes")
die untere box ist "NormalBox" aber aufgelöst in ein 3d Körper (hat das Volumen als Quantity angehängt)

(auserdem habe ich noch herausgefunden, wenn man "Box_with_forced_quantity" mit Ctrl+x und Ctrl+v verschiebt geht das Volumen verloren)

Přílohy (1)

Type: text/plain
Staženo 330
Size: 8,74 KiB

Das Problem ist der 3D-Körper!
Erzeuge stattdessen einen Mengenkörper, und alles wird gut.
Dieser Mengenkörper kann in Allplan ausgewertet werden, und sollte auch im IFC-Export zumindest das Volumen korrekt übertragen. Zudem kann man diesem noch das Attribut "Abrechnungsart" zuweisen, in der man zwischen
m³, m², m und Stück unterscheiden kann. Die gewünschte Menge kann man dann in das Attribut "Menge" schreiben.

Ich befürchte jedoch, man kann mit der Python-API den Mengenkörper gar nicht erzeugen.

Citoval nemo
Das Problem ist der 3D-Körper!

Erzeuge stattdessen einen Mengenkörper, und alles wird gut.

Dieser Mengenkörper kann in Allplan ausgewertet werden, und sollte auch im IFC-Export zumindest das Volumen korrekt übertragen. Zudem kann man diesem noch das Attribut "Abrechnungsart" zuweisen, in der man zwischen

m³, m², m und Stück unterscheiden kann. Die gewünschte Menge kann man dann in das Attribut "Menge" schreiben.
Ich befürchte jedoch, man kann mit der Python-API den Mengenkörper gar nicht erzeugen.

Hallo Nemo, danke für die Antwort

Einen Weg, den Mengenkörper über die Python-API zu erzeugen, habe ich auch nicht gefunden.

Aktuell baue ich die Körper mit mehreren "Geometry Element"-Nodes, weil ich unterschiedliche Formatoptionen (Oberfläche, Stift, Layer) pro Teilkörper brauche. Alles zusammen bleibt dann aber im PythonPart und wird auch so exportiert. (hier ist mir auserdem auch noch aufgefallen das auch körper die auf hilfskonstruktion gestellt sind trotzdem mit exportiert werden als sichtbarer körper, hat aber nichts mit der mengenthematik zu tun)

ich verstehe nicht so richtig, was beim PythonPart "aussen" und was "innen" ist, und welche Attribute beim IFC-Export von wo gelesen werden. Werden beim ifc export von einem pythonpart überhaupt irgendwelche inneren attribute angehängt?
Und macht es für den Export einen Unterschied, ob innen ein einzelner 3D-Körper steckt oder mehrere Körper? (oder halt mengenkörper)

Přílohy (1)

Type: image/png
Staženo 12
Size: 78,88 KiB