Ich hab schon vor längerer Zeit mal das Marionette auf dem US-Forum gefunden, mit welchem Geschosse mit Beilagen erzeugt werden können.
Allerdings werden da auch gleich Konstruktionsebenen erzeugt, was ich nicht benötigen kann -> ich habe bereits ein Marionettescript, welches mir Konstruktionsebenen erzeugt und dieses hier bringt meine Reihenfolge nur durcheinander und lässt mir zu wenig Spielraum für die Zuweisung von den REF-Höhen zu bestimmten Ebenen.
Deshalb versuche ich hier meinen eigenen Node zu erstellen und sollte dafür drei Befehle benötigen:
1. Geschoss der Konstruktionsebene zuweisen (vs.AssociateLayerWithStory)
3. Referenzhöhentyp dem Geschoss mit der korrekten Höhe zuweisen (vs.AddStoryLevel)
Nun habe ich das Problem, das entweder das Geschoss mit dem Referenzhöhentyp der Konstruktionsebene hinzugefügt wird, oder dass die Referenzhöhe dem Geschoss mit der korrekten Höhe zugewiesen wird - beides gleichzeitig will nicht gehen. Verlange ich da zu viel von einem einzelnen Node und muss dies aufteilen oder habe ich da einfach nur zu stark gebastelt?
#KroVex-Bastelstunde@Marionette.NodeDefinitionclassParams(metaclass =Marionette.OrderedClass):#APPEARANCE#Name
this =Marionette.Node("layerLevelType")
this.SetDescription('Returns the name of the referenced layer')#Input Ports
obj =Marionette.PortIn(vs.Handle(0),'hLayer')
obj.SetDescription("The input layer object")
sLevel =Marionette.PortIn('')
sLevel.SetDescription("The level assigned to the layer to be created")
hStory =Marionette.PortIn( vs.Handle(0))
hStory.SetDescription("The handle to the Story")
nElevation =Marionette.PortIn(120)
nElevation.SetDescription("The Elevation height to be assigned to the layer to be created")#OIP Controls#Output Ports
b0 =Marionette.PortOut()
b0.SetDescription("whether the layer template was successfully created")
b1 =Marionette.PortOut()
b1.SetDescription("whether the layer template was successfully created")
b2 =Marionette.PortOut()
b2.SetDescription("whether the layer template was successfully created")#BEHAVIORdefRunNode(self):#inputs
h = self.Params.obj.value
layerLevelType = self.Params.sLevel.value
storyHandle = self.Params.hStory.value
elevation = self.Params.nElevation.value
#script
layer = vs.GetLayer(h)
units = vs.GetPrefReal(150)
elevation = elevation * units
boolean0 = vs.AssociateLayerWithStory(h, storyHandle)#Sollte das Geschoss dem Layer zuweisen
boolean1 = vs.SetLayerLevelType(h, layerLevelType)#Generiert Referenzhöhentyp
boolean2 = vs.AddStoryLevel(storyHandle, layerLevelType, elevation, h)#Fügt Referenzhöhen zum Geschoss#outputs
self.Params.b0.value = boolean0
self.Params.b1.value = boolean1
self.Params.b2.value = boolean2
Frage
KroVex
Salü Zusammen
Ich hab schon vor längerer Zeit mal das Marionette auf dem US-Forum gefunden, mit welchem Geschosse mit Beilagen erzeugt werden können.
Allerdings werden da auch gleich Konstruktionsebenen erzeugt, was ich nicht benötigen kann -> ich habe bereits ein Marionettescript, welches mir Konstruktionsebenen erzeugt und dieses hier bringt meine Reihenfolge nur durcheinander und lässt mir zu wenig Spielraum für die Zuweisung von den REF-Höhen zu bestimmten Ebenen.
Deshalb versuche ich hier meinen eigenen Node zu erstellen und sollte dafür drei Befehle benötigen:
1. Geschoss der Konstruktionsebene zuweisen (vs.AssociateLayerWithStory)
2. Referenzhöhentyp erzeugen (vs.SetLayerLevelType)
3. Referenzhöhentyp dem Geschoss mit der korrekten Höhe zuweisen (vs.AddStoryLevel)
Nun habe ich das Problem, das entweder das Geschoss mit dem Referenzhöhentyp der Konstruktionsebene hinzugefügt wird, oder dass die Referenzhöhe dem Geschoss mit der korrekten Höhe zugewiesen wird - beides gleichzeitig will nicht gehen. Verlange ich da zu viel von einem einzelnen Node und muss dies aufteilen oder habe ich da einfach nur zu stark gebastelt?
Geschosse_Marionette.vwx
Gruss KroVex
CADNODE.ch
Lassen Sie uns gemeinsam effiziente und innovative CAD-Lösungen für Ihr Projekt finden!
Have you tried to turn it off and on again?
Vectorworks | Architektur | macOS/Windows
Link zu diesem Kommentar
4 Antworten auf diese Frage
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden