PropertyLink: InList and OutList/pl

Zobacz artykuł Właściwości przed tą sekcją.

=PropertyLink=

Oprócz skalarnych Properties cech, same cechy zawierają wskaźniki do siebie nawzajem. Wskaźniki te definiują skierowany graf acykliczny, który określa zbiór i kolejność obiektów, które są ponownie obliczane w odpowiedzi na zmianę w jednym obiekcie. Ponownie obliczane są tylko te funkcje, które zależą od zmienionej funkcji.

Zależności są wyrażane za pomocą specjalnej klasy typów właściwości, a mianowicie PropertyLink:
 * PropertyLink: umożliwia powiązanie elementu z innym pojedynczym elementem w tym samym dokumencie.
 * PropertyLinkList: pozwala elementowi na powiązanie kilku elementów
 * PropertyLinkSub: pozwala elementowi łączyć pojedynczy element i dodatkowo odwoływać się do elementów podrzędnych. Przykład: Jeśli chcesz zamodelować kieszeń na potrzeby szkicu, ważne jest, aby wiedzieć, do którego elementu podrzędnego (np. Face6) powiązanego elementu należy ją zmapować.
 * PropertyLinkSubList: umożliwia powiązanie elementu z kilkoma elementami podrzędnymi kilku elementów.

Poniżej znajdują się podobne właściwości do łączenia cech różnych dokumentów. Jest to podstawowa część dla złożeń.
 * PropertyXLink
 * PropertyXLinkSub
 * PropertyXLinkSubList
 * PropertyXLinkList
 * PropertyXLinkContainer

Przykład
Rozważmy klasę, która zapewnia podstawowe wymiary dla innej klasy. Chcielibyśmy, aby obiekt był ponownie obliczany za każdym razem, gdy zmieni się powiązany z nim :

Należy pamiętać, że jest to obiekt, który zawiera PropertyLink do obiektu. Użycie jest następujące:

Ponieważ nasz zależy od obiektu, zostanie on ponownie obliczony.

 =Lista wejściowa i lista wyjściowa=

Dostęp do obiektów można uzyskać za pomocą właściwości Python przy użyciu nazwy, pod którą są zarejestrowane za pomocą. Istnieje jednak inny sposób. Każda funkcja ma parę leniwie generowanych list o nazwach i, które opisują odpowiednio wychodzące i przychodzące krawędzie DAG:


 * jest listą wszystkich funkcji, które "zależą" od bieżącego obiektu. Tak więc będzie listą zawierającą nasz obiekt.
 * Podobnie, jest listą wszystkich funkcji, które "zależą" od bieżącego obiektu. Oznacza to, że  będzie listą zawierającą nasz obiekt.

Zauważ, że i  nie mają nic wspólnego z widokiem drzewa modelu dokumentu, który jest prezentowany w GUI. W dowolnym momencie rodzic w tym widoku drzewa może zawierać dzieci, które są częścią, lub żadnego z nich.