Attribute VB_Name = "Rename_Body_mit_Parameter"
' Makro:        Rename_Body_mit_Parameter
' Version:      1.0
' Catia Level:  V5R19
' UIL:          English (User Interface Language)
' Autor:        Christian Obholzer
' E-Mail:       ch.obholzer@aon.at
' Erstellt:     27.09.2010
' Zweck:        Bodyname wird dem Parameterwert gleichgesetzt
'-----------------------------------------------------------------------------------
' Änderungen:   Datum, Name
'               Hier wird die Änderung angegeben
'               Datum, Name
'               Hier wird die Änderung angegeben
'-----------------------------------------------------------------------------------

Option Explicit
    
    '***Deklarationen
    Dim objDokument As Windows
    Dim objDoc As Document
    Dim strTyp As String
    Dim Box As VbMsgBoxResult
    Dim objSel As Object
    Dim strSel As String
    Dim objPart As Part
    Dim Parameters As Parameters
    Dim strParameter As StrParam
    
Sub CATMain()

    On Error GoTo Fehler
    
    '***Deklarationen
    Dim Body(0)
    Body(0) = "Body"

    '***Abfrage nach geöffnetem Dokument
    Set objDokument = CATIA.Windows
    If objDokument.Count = 0 Then
        Box = MsgBox("Es ist kein Dokument geöffnet." & vbNewLine & _
        "Das Makro kann nicht ausgeführt werden und wird beendet.", vbCritical + vbOKOnly, "Kein Dokument offen")
        Exit Sub
    End If

    '***Auslesen der Dokumentart
    Set objDoc = CATIA.ActiveDocument
    strTyp = TypeName(objDoc)
    If strTyp <> "PartDocument" Then
        Box = MsgBox("Dieses Dokument ist kein Part." & vbNewLine & _
        "Das Makro kann nicht ausgeführt werden und wird beendet.", vbCritical + vbOKOnly, "Falscher Dokumententyp")
        Exit Sub
    End If
    
    Set objSel = CATIA.ActiveDocument.Selection
    Set objPart = CATIA.ActiveDocument.Part
    Set Parameters = objPart.Parameters
    
    '***Element suchen
    objSel.Search ("Knowledgeware.Parameter.Name=Bodyname, all")
    
    If objSel.Count = 0 Then
        '***Parameter erstellen
        Set strParameter = Parameters.CreateString("", "")
        strParameter.Rename "Bodyname"
        strParameter.Value = "CAD.de"
    Else
        '***Parameter ansprechen
        Set strParameter = Parameters.Item("Bodyname")
    End If
    
    '***Element selektieren
    strSel = objSel.SelectElement2(Body, "Wählen Sie einen Body aus", False)
    
    '***Element umbenennen
    objSel.Item(1).Value.Name = strParameter.Value
    
    objSel.Clear
    
Exit Sub

'***Fehlerbehandlung: Ausgabe der Fehlernummer und Fehlerbeschreibung
Fehler:
    Box = MsgBox("Fehlernummer: " & Err.Number & vbNewLine & _
    "Fehlerbeschreibung: " & Err.Description, vbCritical + vbOKOnly, "Fehler")
    
End Sub

