244x
001941
14.10.2020

[EN] FAQ 004771 | Je možné pomocí rozhraní COM vytvořit viditelnosti?

Dotaz:
Je možné pomocí rozhraní COM vytvořit viditelnosti?

Odpověď:
Viditelnosti je možné vytvořit pomocí rozhraní COM (RF‑COM3/RS‑COM6). V následujícím kódu se nejdříve pro viditelnost vyberou prvky. To se provádí pomocí Selections. Nejdříve se aktivují pomocí "rfEnableSelections", poté je možné pomocí "rfSelectObjects" vybrat objekty:

Sub set_visibility()

' get interface from the opened model and lock the licence/program
Dim iModel As RFEM3.IrfStructure3
Set iModel = GetObject(, "RFEM3.Structure")
iModel.rfGetApplication.rfLockLicence

On Error GoTo e

' get interface for modeldata
Dim iModData As RFEM3.IrfStructuralData4
Set iModData = iModel.rfGetStructuralData

' get interface for view
Dim iView As RFEM3.IrfView2
Set iView = iModel.rfGetActiveView
' remove old views
iView.rfDeletePartialView "test|view"
iView.rfDeletePartialView "test|view2"
iView.rfDeletePartialView "test|view_add"
iView.rfDeletePartialView "test|view_rev"
iView.rfDeletePartialView "test|view_diff"

' create first view
iModData.rfSelectObjects STR_MEMBER, "3-4"
iView.rfSetPartialView "test|view"
' iView.rfSelectPartialView "test|view", PVM_SHOW, True, True

' create second view
iModData.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 2
iView.rfSelectPartialView "test|view", PVM_SELECT, True, True
iView.rfSelectPartialView "test|view2", PVM_SELECT, False, True
iView.rfSelectPartialView "", PVM_SHOW_SELECTION_ONLY, True, True
iView.rfSetPartialView "test|view_add"

' create differential view 2 minus 1
' first created reversed view
iView.rfSelectPartialView "test|view", PVM_SHOW, True, True
iView.rfSelectPartialView "test|view2", PVM_SHOW, False, True
iView.rfSelectPartialView "", PVM_SHOW_REVERSE, True, True
iView.rfSelectPartialView "", PVM_SELECT, True, True
iView.rfSetPartialView "test|view_rev"
iView.rfSelectPartialView "", PVM_SHOW_REVERSE, True, True

' select view to substract and reverse view
iView.rfSelectPartialView "test|view_rev", PVM_SELECT, True, True
iView.rfSelectPartialView "test|view", PVM_SELECT, False, True
iView.rfSelectPartialView "", PVM_SHOW_SELECTION_ONLY, True, True
iView.rfSelectPartialView "", PVM_SHOW_REVERSE, True, True
iView.rfSelectPartialView "", PVM_SELECT, True, True
iView.rfSetPartialView "test|view_diff"
iView.rfSelectPartialView "", PVM_SHOW_SELECTION_ONLY, True, True

iView.rfSelectPartialView "", PVM_SHOW_REVERSE, True, True
iView.rfCancelPartialView

e:  If Err.Number 0 Then MsgBox Err.description, , Err.Source

iModel.rfGetApplication.rfUnlockLicence
Set iModel = Nothing

End Sub

Pomocí rozhraní "iView" a pomocí příkazu "rfSetPartialView" je možné vytvořit viditelnost. Zde je zvláště důležitý popis. Oddělovač "|" zajistí, aby viditelnost s názvem "view" byla vytvořena ve skupině "test".

Příkaz rfSelectPartialView slouží k zobrazení viditelnosti. Prvním argumentem je název viditelnosti. Pro druhý argument lze vybrat různé příkazy. V závislosti na příkazu je název viditelnosti vyžadován či nikoliv.

Třetí argument se ptá, zda se má vše, co bylo dosud zobrazeno, deaktivovat, nebo ne. Pokud je tedy vyžadováno přídavné zobrazení dvou viditelností, je třeba minimálně při výběru druhé viditelnosti potvrdit "False".

Čtvrtý argument určuje, zda se vše skryté má zobrazit ještě v pozadí, či nikoliv.

Zde je seznam důležitých příkazů druhého argumentu:

PVM_SELECT - vybere prvky v zadané viditelnosti

PVM_SHOW - zobrazí zadanou viditelnost

PVM_SHOW_SELECTION_ONLY - po výběru prvků z viditelností je nyní můžete zobrazit samostatně

PVM_SHOW_REVERSE - všechny dosud zobrazené prvky jdou do pozadí a všechny prvky z pozadí se zobrazí (zobrazení je obrácené).