Ilogic code
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hallo an alle!
Ich habe hier eine iLogic Code, mit der ich Parameter mit gleichem Name weiter an die Bauteile und Baugruppen gebe.
Funktioniert solange es keine Modelzustände in Bauteilen oder Baugruppen sind.
Kann mir jemand helfen dieses Code so umzuschreiben dass es auch mit Modellzuständen funktioniert!
Vielen Dank im Voraus!
Hier ist der iLogic Code:
iLogicVb.UpdateWhenDone = True ' Der Arbeitsbereich wird erst nach dem kompletten Abarbeiten ' dieser Regel aktualisiert und nicht schon jedes mal wenn sich ' darin ein Parameter ändert userParams = ThisDoc.Document.ComponentDefinition.Parameters.UserParameters ' Eine Collection mit allen UserParametern dieser Baugruppe RefParams = ThisDoc.Document.ComponentDefinition.Parameters.ReferenceParameters subDocs = ThisDoc.Document.AllReferencedDocuments.OfType(Of Document) ' Eine Collection mit allen Komponenten dieser Baugruppe For Each oParam In userParams ' Wir gehen durch die Userparameter dieses Dokuments If oParam.comment = "_" Then ' Wenn der Parameter den Update-Unterstrich hat For Each oSubDoc As Document In subDocs ' Rufen wir nacheinander alle Komponenten diese Baugruppe auf subUserParams = oSubDoc.ComponentDefinition.Parameters.UserParameters ' Referenzieren ihre Userparameter in einer Collection-Variable For Each oSubParam In subUserParams ' gehen auch diese durch und schauen If oSubParam.comment = "_" And oSubParam.Name = oParam.Name Then ' ob wir den Unterstrich auch dort finden und ob der Name identisch ist oSubParam.Value = oParam.Value ' wenn ja, übergeben wir den Wert End If Next Next End If Next '____________________ For Each oParam In RefParams ' Wir gehen durch die Userparameter dieses Dokuments If oParam.comment = "_" Then ' Wenn der Parameter den Update-Unterstrich hat For Each oSubDoc As Document In subDocs ' Rufen wir nacheinander alle Komponenten diese Baugruppe auf subUserParams = oSubDoc.ComponentDefinition.Parameters.UserParameters ' Referenzieren ihre Userparameter in einer Collection-Variable For Each oSubParam In subUserParams ' gehen auch diese durch und schauen If oSubParam.comment = "_" And oSubParam.Name = oParam.Name Then ' ob wir den Unterstrich auch dort finden und ob der Name identisch ist oSubParam.Value = oParam.Value ' wenn ja, übergeben wir den Wert End If Next Next End If Next '_______________________ For Each oSubDoc As Document In subDocs ' Wir gehen nochmal alle Unterkomponenten durch... If iLogicVb.Automation.Rules(oSubDoc) Is Nothing = False Then ' ...und schauen ob diese Regeln haben. Wenn ja,... For Each myRule In iLogicVb.Automation.Rules(oSubDoc) ' ...gehen wir diese alle durch. If myRule.Name = "ParameterUpdate" Then ' Wenn wir eine mit dem Namen "ParameterUpdate" finden... iLogicVb.Automation.RunRuleDirect(myRule) ' ...führen wir diese aus! End If Next End If Next