Es ist möglich, Sichtbarkeiten über die COM-Schnittstelle (RF-COM3 / RS-COM6) anzulegen. Im folgenden Code werden zunächst Elemente für die eine Sichtbarkeit ausgewählt. Dies geschieht über die Selections. Zuerst werden diese mit "rfEnableSelections" aktiviert, danach können über "rfSelectObjects" Objekte selektiert werden:
Sub set_visibility() ' get interface from the opened model and lock the licence/programDim iModel As RFEM3.IrfStructure3Set iModel = GetObject(, "RFEM3.Structure")iModel.rfGetApplication.rfLockLicence On Error GoTo e ' get interface for modeldataDim iModData As RFEM3.IrfStructuralData4Set iModData = iModel.rfGetStructuralData
' get interface for viewDim iView As RFEM3.IrfView2Set iView = iModel.rfGetActiveView' remove old viewsiView.rfDeletePartialView "test|view"iView.rfDeletePartialView "test|view2"iView.rfDeletePartialView "test|view_add"iView.rfDeletePartialView "test|view_rev"iView.rfDeletePartialView "test|view_diff"
' create first viewiModData.rfSelectObjects STR_MEMBER, "3-4"iView.rfSetPartialView "test|view"' iView.rfSelectPartialView "test|view", PVM_SHOW, True, True
' create second viewiModData.rfSelectObjects STR_SURFACE, "1"iModData.rfSelectObjects STR_MEMBER, "3"iView.rfSetPartialView "test|view2"' iView.rfSelectPartialView "test|view2", PVM_SHOW, True, True
' create sum from view from 1 and 2iView.rfSelectPartialView "test|view", PVM_SELECT, True, TrueiView.rfSelectPartialView "test|view2", PVM_SELECT, False, TrueiView.rfSelectPartialView "", PVM_SHOW_SELECTION_ONLY, True, TrueiView.rfSetPartialView "test|view_add"
' create differential view 2 minus 1' first created reversed viewiView.rfSelectPartialView "test|view", PVM_SHOW, True, TrueiView.rfSelectPartialView "test|view2", PVM_SHOW, False, TrueiView.rfSelectPartialView "", PVM_SHOW_REVERSE, True, TrueiView.rfSelectPartialView "", PVM_SELECT, True, TrueiView.rfSetPartialView "test|view_rev"iView.rfSelectPartialView "", PVM_SHOW_REVERSE, True, True
' select view to substract and reverse viewiView.rfSelectPartialView "test|view_rev", PVM_SELECT, True, TrueiView.rfSelectPartialView "test|view", PVM_SELECT, False, TrueiView.rfSelectPartialView "", PVM_SHOW_SELECTION_ONLY, True, TrueiView.rfSelectPartialView "", PVM_SHOW_REVERSE, True, TrueiView.rfSelectPartialView "", PVM_SELECT, True, TrueiView.rfSetPartialView "test|view_diff"iView.rfSelectPartialView "", PVM_SHOW_SELECTION_ONLY, True, True
iView.rfSelectPartialView "", PVM_SHOW_REVERSE, True, TrueiView.rfCancelPartialView
e: If Err.Number <> 0 Then MsgBox Err.description, , Err.Source iModel.rfGetApplication.rfUnlockLicenceSet iModel = Nothing
End Sub
Über die Schnittstelle "iView" und den Befehl "rfSetPartialView" ist es möglich, eine Sichtbarkeit anzulegen. Wichtig ist hier vor allem die Bezeichnung. Das Trennzeichen "|" sorgt dabei dafür, dass eine Sichtbarkeit mit Namen "view" in der Gruppe "test" angelegt wird.
Der Befehl rfSelectPartialView wird verwendet, um eine Sichtbarkeit darzustellen. Das erste Argument ist der Name der Sichtbarkeit. Für das zweite Argument können verschiedene Befehle ausgewählt werden. Je nach Befehl ist ein Name der Sichtbarkeit erforderlich oder nicht.
Das dritte Argument fragt ab, ob alles bisher dargestellte deaktiviert werden soll oder nicht. Wenn also eine additive Darstellung zweier Sichtbarkeiten gewünscht wird, muss mindestens bei der Auswahl der zweiten Sichtbarkeit hier "False" übergeben werden.
Das vierte Argument steuer, ob alles Ausgeblendete noch im Hintergrund dargestellt werden soll oder nicht.
Hier noch eine Liste wichtiger Befehle des zweiten Arguments:
PVM_SELECT - selektiert die Elemente in der angegebenen Sichtbarkeit
PVM_SHOW - zeigt die angegebenen Sichtbarkeit
PVM_SHOW_SELECTION_ONLY - nachdem Elemente aus den Sichtbarkeiten selektiert wurden können Sie nun so allein dargestellt werden
PVM_SHOW_REVERSE - alle bisher dargestellten Elemente gehen in den Hintergrund und alle Elemente aus dem Hintergrund werden dargestellt (Darstellung wird invertiert)