Objekte Farbe ändern

Fragen und Hilfe rund um die Programmierschnittstelle

Objekte Farbe ändern

Beitragvon Vincent » Di 8. Jan 2019, 07:32

Hallo FORUM,

gibt es eine desite API Funktion, die den Farbcode von Objekten ändern kann?
Am liebsten würde ich, für eine vereinfache Darstellung im Modell, Objekte in unterschiedliche Farben Selektieren.

Dies würde mir sehr weiter Helfen.
Danke vorab.

Freundlichen Grüßen
Vinzent
Vincent
 
Beiträge: 2
Registriert: Di 8. Jan 2019, 07:26

Re: Objekte Farbe ändern

Beitragvon imcwoe » Di 8. Jan 2019, 12:36

Hallo Vincent,

was meinst du mit Farbcode ändern?

Unter VIEW -> Materials (dt. : Ansicht -> Materialien?) sind verschiedene Materials/Texturen zu sehen. Die kann man dort per Menü ändern und dann im Nachgang per Javascript Befehl auf Objekte anwenden.

Alternativ kannst du auch über deinen javascript code eine neue Farbe / Material erstellen, z.B. so:
Code: Alles auswählen
var matXml = '<material ID="imcconcrete" name="imcconcrete"><diff r="90" b="90" g="90" a="1"/><amb r="90" b="90" g="90" a="1"/><spec r="90" b="90" g="90" a="1"/><trans v="0"/><shin v="0.5"/></material>';
var imcconcrete = desiteAPI.createMaterial(matXml,'12345');


In diesem Fall würde das Material "imcconcrete" heißen, ansonsten beispielhaft ein existierendes "default-mat-01".

mit den Befehlen
Code: Alles auswählen
desiteAPI.itByObjectList(OBJEKT-ID)
desiteAPI.itSetMaterial('default-mat-01')

kann die Farbe/das Material dann auf ein 3D Objekt appliziert werden.


Im DESITE gibt es den manuellen Befehl mit Rechtsklick auf ein Material "Show Objects with Selected Material", damit kann man dann die 3D-Objekte isoliert anzeigen, die eine bestimmte Farbe haben.
Ob man diese über einen API Befehl direkt selektieren kann würde mich interessieren.

Bin auf andere Antworten und Lösungen gespannt.
imcwoe
 
Beiträge: 4
Registriert: Di 25. Sep 2018, 13:32

Re: Objekte Farbe ändern

Beitragvon Vincent » Di 8. Jan 2019, 13:27

Am liebsten hätte ich eine Funktionserweiterung in solch einer Form:

Code: Alles auswählen
desiteAPI.selectElements( QString  idList, bool  flag, QString     domainCombination = "geometry", color=#FF0040 oder  r="90" b="90" g="90" )
Vincent
 
Beiträge: 2
Registriert: Di 8. Jan 2019, 07:26

Re: Objekte Farbe ändern

Beitragvon imcwoe » Di 8. Jan 2019, 13:39

Vielleicht könntest du über alle 3D-Objekte iterieren und die Properties abfragen - bspw.
Code: Alles auswählen
var MATERIAL = desiteAPI.getPropertyValue(ObjektID, 'cpMaterialName', 'xs:string' );

danach eine IF-Abfrage, und wenn es deine Kriterien trifft, auswählen lassen

Leider weiß ich nicht, ob Farben außerhalb von den Materialien zugeordnet werden können.
imcwoe
 
Beiträge: 4
Registriert: Di 25. Sep 2018, 13:32


Zurück zu DESITE API

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron