Zum Inhalt springen

hat jemand von euch schon Erfahrung mit SetComponentName/VS.SetComponentName?


Matteo

Frage

Geschrieben

Ich versuche mich gerade an einem Python Script, das die Namen von Wand, Decken,... Schichten prüft und korrigiert.

Ich hänge dabei gerade am Befehl "SetComponentName" (in python: VS.SetComponentName)

 

vs.GetComponentName funktioniert.

Der spuckt mir dann mit nem AlrtDialog den jeweiligen Namen der Schicht aus.

Nur SetComponentName läuft nicht.

Nach diesem Script sind die Namen der Wandschichten unverändert. Thereotisch müssten sie alle anschließend "MOIN" heißen (naja, zumindest die ersten 10 😉 )

 

Any Idea?

def changewallcomp(hndl):
	for i in range(1,10):
		vs.SetComponentName(hndl, i, (vs.Concat('MOIN')))		
		
vs.ForEachObject(changewallcomp,('T=WALL'))	

 

siehe https://forum.vectorworks.net/index.php?/topic/119410-vssetcomponentname-doesnt-change-componentname/#comment-518095

MacBook Pro 16" - macOS 13 - Ventura - 2,3 GHz 8-Core Intel Core i9, 16GB RAM, AMD Radeon Pro 5500M 8 GB VRAM

Vectorworks 2022 - SP6

Vectorworks 2023 - SP6

7 Antworten auf diese Frage

Empfohlene Beiträge

Geschrieben (bearbeitet)

@Stefan Bender Danke für die Tipps

 

a) eigtl sollte die Funktion "SetComponentName" den Namen einer Component "setzen" (dachte ich jedenfalls) https://developer.vectorworks.net/index.php?title=VS:SetComponentName

 

Zitat

Description

Sets the name of a component in an object.

 

Zitat
def vs.SetComponentName(obj, componentIndex, componentName):
    return BOOLEAN

 

Zitat

Parameters

obj   HANDLE   The object. Can be a wall, round wall, slab, Wall Style, Slab Style, the Wall Preferences, or the Slab Preferences.
componentIndex   INTEGER   The index of the component.
componentName   STRING   The name of the component.

 

b) die Wand hat nen Wandstil und die Schichten haben Namen

c) die Concat Funktion habe ich drin, weil da auch ein text verkettet eingefügt werden kann (ich parse den Schichtnamen und muss ihn dann wieder zusammenflicken)

In dem Script sollen Schichtnamen erkannt und repariert werden, die nicht nach unsrer Vorgabe funktionieren - aus WA-I-NTR-GK-blablabla soll zum Beispiel WA-I-NTR-GKA-blablabla werden... Concat hat sich aber an sich als relativ zahm erwiesen.

 

Ich hab Concat ma rausgenommen, half aber nichts:

def changewallcomp(hndl):
	for i in range(1,10):
		vs.SetComponentName(hndl, i, 'MOIN')		
		
vs.ForEachObject(changewallcomp,('T=WALL'))	

 

WANDSKRIPT 2.zip

Bearbeitet von Matteo

MacBook Pro 16" - macOS 13 - Ventura - 2,3 GHz 8-Core Intel Core i9, 16GB RAM, AMD Radeon Pro 5500M 8 GB VRAM

Vectorworks 2022 - SP6

Vectorworks 2023 - SP6

Geschrieben

@Stefan Bender

die Conponent-Namen (Schichtnamen) haben keine Verbindung zum Stylename.

Man kann da auch nichts sperren o.ä.

Das sind 2 komplett voneinander unabhängige Namen.

getComponentName funktionierte auch einwandfrei.

In der vwx-Dateil habe ich auch eine Testwand und ein paar Skripte platziert.

(Bitte das VS-Skript ignorieren, das ist Grütze)

MacBook Pro 16" - macOS 13 - Ventura - 2,3 GHz 8-Core Intel Core i9, 16GB RAM, AMD Radeon Pro 5500M 8 GB VRAM

Vectorworks 2022 - SP6

Vectorworks 2023 - SP6

Geschrieben (bearbeitet)

@Dominique Corpataux Danke für die Hilfe und fürs Verlinken vom US-Thread! Funktioniert alles! Mega, macht natürl Sinn, dass man in der Wand nicht die Schichten bearbeiten kann und stattdessen den Stil bearbeiten muss.

Beim Skripten vergisst man sowas mitunter ;-).

 

An alle anderen Interessenten, kuckt in den Post, den Dominique verlinkt hat, da steht alles Wesentliche!

Bearbeitet von Matteo
  • Like 1

MacBook Pro 16" - macOS 13 - Ventura - 2,3 GHz 8-Core Intel Core i9, 16GB RAM, AMD Radeon Pro 5500M 8 GB VRAM

Vectorworks 2022 - SP6

Vectorworks 2023 - SP6

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
  • Forenstatistik

    • Themen insgesamt
      27,1Tsd
    • Beiträge insgesamt
      140,8Tsd
×
×
  • Neu erstellen...