abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Wir schätzen Ihren Input!
Bitte nehmen Sie an der Umfrage zu Archicad 28 Startbildschirm und Lerninhalte/Schnell-Tutorials teil

Programmierung
Alles über Programmierung in GDL und Python

Bibliothekselementfehler nach Update

Anonymous
Nicht anwendbar
Hallo zusammen.

Ich habe ein Problem mit einer Tür aus der 9er Bibiothek. Unzwar haben wir eine 9er Datei nach AC 12 migriert, um dort das Projekt weiter bearbeiten zu können. Die Projektpartner arbeiten ebenfalls in AC 12, von daher auch die Version.

Nun taucht bei einem Bibliothekselement, der "Metalltür_2" aus der 9er Objektbibliothek - folgende Fehlermeldung (Warnung) auf:


"es gibt mehrere (2) Hotspots mit der gleichen Unique ID in dem Bibliothekselement: Metalltür_1"


Wie kann ich dieses Problem beheben?

Dieses Meldung erscheint nur in AC 12, wenn ich eine Tür mariere und den Einstellungsdialog öffne. In AC 9 ist alles bestens.

Gerne würde ich auch die Türen durch die neuen 12er Türen ersetzen nur da es sich dabei um ca. 350 Stück handelt, die allesamt unterschielich sind und auch unterschieliche Eigenschaften und Attribute besitzen klappt dies leider nicht.

Ich würde gerne die alten Bibliothekselemente beibehalten und entsprechend nur den Fehler im Skript beseitigen.

Eventuell liegt es ja auch daran, dass im 3D-Skript zwar Fehler vorhanden sind?


"Die Verwendung von realen Typen kann zu Präzisionsproblemen führen bei Zeile 227 im 3D Skript der Datei Metalltür_2.gsm"

und

Ungültiger Parameterwert 'HType' ruft Bibliothekselement auf bei zeile 207 im 3D-Script der Datei Metalltür_2.gsm (Systemfehler -1)


Danke schon jetzt für eure Tipps.Gerne schicke ich das *.gsm Objekt auch zu.

Grüße
Markus

[ 14. Mai 2010, 09:15: Beitrag editiert von: Markus Goletz ]
4 ANTWORTEN 4
Anonymous
Nicht anwendbar
Hallo Markus,

Punkt 1: Hotspots. Eine obligatorische ID wurde erst nach AC 9 eingeführt. Du musst also im Script jedem Hotspot eine eigene ID geben, z.B. als Variable htsp_ID. Vor jedem Hotspot zählst Du eine 1 dazu, also htsp_ID=htsp_ID+1.
Dann dürfte die Fehlermeldung weg sein.
Das ist nur nötig bei Beweglichen Fangpunkten, die sowiesoschon ein ID haben.

Punkt 2: Das Präsionsproblem iust auch eine Neuerung nach AC 9. Diese Fehlermeldungen treten nur beim Prüfen des Scriptes auf.
Du kannst nicht 2 reale Zahlen miteinder mit dem =Zeichen vergleichen, sondern musst davon ausgehen, dass auf Grund von Ungenauigkeiten in der 5. Nachkommastelle die beiden Werte eventuell abweichen. Also schreibe nicht:
  
IF a=deck_hoehe THEN
sondern

IF ABS(a-deck_hoehe)<eps THEN
wobei eps 1x im MasterScript mit eps=0.00001 gesetzt wird.
Die Fehler bei den GOTOs (3D-Script) sind z.T. merkwürdig,
ich würde da z.B. schreiben:
if a-2*d/2<0.00001 then print "Invalid parameters!" usw.
Und statt if i<>0 then 2: if i then 2.
Aber wenn Du auf die Aufrufe von 1 verzichtest,kann unten das alles weg:
if i<>0 then 2



goto 2

1:
print "Invalid parameters!"

2:
end
(Aber nicht "END")

Punkt 3:
Das dürfte dann auch erledigt sein
Anonymous
Nicht anwendbar
Hallo Joachim,

vielen Dank für die Tipps.

Wäre es auch möglich, dass man nur den ersten Punkt behebt und den Rest so lässt, wie er bislang ist? Wenn es nur ein Fehler beim Prüfen des 3D-Skriptes gibt, dann sieht es der Endnutzer ja nicht. Im 3D-Fenster passt zumindest alles.

Das Thema Hotspots werde ich mir aber mal zu Gemüte führen. Dürfte auch nicht allzuschwierig sein. Probiere es zunächst mal selbst. Melde mich dann aber nochmal. Zur Not poste ich mal das Skript.

Viele Grüße und ein schönes Wochenende.
Markus
Anonymous
Nicht anwendbar
Hallo Jochen (hatte mich vorhin leider verschrieben - sorry - editieren geht leider nicht mehr)

Was ich nicht verstehe ist, dass im Skript (2D-Skript) schon geschrieben wird unID = unID+1

Warum taucht denn dann der Fehler überhaupt noch auf? Hab es eben schon nach der obigen Anleitung versucht, nur irgendwie will das nicht so recht.

Die Anpassungen müssen doch alle im 2D-Skript gemacht werden? Das 3D-Skript sollte meines erachtens in Ordnung sein, bis auf die Punkte 2 und 3.

Woran erkenne ich welche Hotspots verschiebbar sind und welch nicht? Es gibt jede Menge Hotspots in dem Objekt und jeder besitzt Variablen, von daher sollten diese auch verschiebbar sein oder?

Grüße
Markus

[ 14. Mai 2010, 23:30: Beitrag editiert von: Markus Goletz ]
Anonymous
Nicht anwendbar
Hallo Markus

bei mir tritt der Hotspot-Fehler nicht auf.
Vielleicht haben wir unterschiedliche Versionen.

Die unID = unID+1 sind eigentlich korrekt und ausreichend, so dass der Fehler nicht auftreten dürfte.

Schick mir mal Dein Objekt.