diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 52a161f1e1e..298401b98fe 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -17,15 +17,14 @@ Please Note:
Check these if you believe they are true
-- [ ] The codebase is in a better state after this PR
- [ ] Is documented according to the [standards](https://github.com/DynamoDS/Dynamo/wiki/Coding-Standards)
- [ ] The level of testing this PR includes is appropriate
- [ ] User facing strings, if any, are extracted into `*.resx` files
-- [ ] All tests pass using the self-service CI.
- [ ] Snapshot of UI changes, if any.
- [ ] Changes to the API follow [Semantic Versioning](https://github.com/DynamoDS/Dynamo/wiki/Dynamo-Versions) and are documented in the [API Changes](https://github.com/DynamoDS/Dynamo/wiki/API-Changes) document.
- [ ] This PR modifies some build requirements and the readme is updated
- [ ] This PR contains no files larger than 50 MB
+- [ ] This PR introduces new feature code involve network connecting and is tested with no-network mode.
### Release Notes
diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md
new file mode 100644
index 00000000000..43662bd6545
--- /dev/null
+++ b/.github/copilot-instructions.md
@@ -0,0 +1 @@
+If a user commits a new method that is marked [IsVisibleInDynamoLibrary(true)], this indicates the addition of a new node. Another way a user might indicate that they have added a new node is in the commit message. When a new node is added as part of a commit, verify if the appropriate documentation is included. This documentation includes at least 3 files that have the method name in them, but might have additional words. These files are a .dyn, .md, and .jpg. If these files are not part of the commit, alert the user that changes are required and they need to produce this documentation.
diff --git a/.github/workflows/auto_cherrypick.yml b/.github/workflows/auto_cherrypick.yml
index a41d3b12dee..8cfedfb8882 100644
--- a/.github/workflows/auto_cherrypick.yml
+++ b/.github/workflows/auto_cherrypick.yml
@@ -59,9 +59,10 @@ jobs:
else
BRANCH_NAME="RC${MILESTONE}_master"
fi
- echo "Branch name: $BRANCH_NAME"
+ echo "Branch Name: $BRANCH_NAME"
echo "BRANCH_NAME=$BRANCH_NAME" >> "$GITHUB_OUTPUT"
- BRANCH_URL="https://api.github.com/repos/${{ github.repository }}/branches/RC${{ steps.check_constants.outputs.milestone }}.0_master"
+ BRANCH_URL="https://api.github.com/repos/${{ github.repository }}/branches/$BRANCH_NAME"
+ echo "Branch URL: $BRANCH_URL"
branch_response=$(curl -s -o /dev/null -w "%{http_code}" -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" $BRANCH_URL)
echo $branch_response
if [ $branch_response -eq 200 ]; then
diff --git a/doc/distrib/NodeHelpFiles/cs-CZ/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md b/doc/distrib/NodeHelpFiles/cs-CZ/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
index 9868d6f97b8..a2b1bdaf142 100644
--- a/doc/distrib/NodeHelpFiles/cs-CZ/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
+++ b/doc/distrib/NodeHelpFiles/cs-CZ/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
@@ -1,5 +1,5 @@
## Podrobnosti
-ByPointsIndexGroups will return a Mesh based on input vertices as Points and input indices. In the example below, a four-sided Mesh is created with four Points and an IndexGroup of four indices.
+Uzel ByPointsIndexGroups vrátí síť podle vstupních vrcholů jako body a vstupní indexy. V následujícím příkladu je vytvořena čtyřstranná síť pomocí čtyř bodů a objektu IndexGroup se čtyřmi indexy.
___
## Vzorový soubor
diff --git a/doc/distrib/NodeHelpFiles/cs-CZ/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md b/doc/distrib/NodeHelpFiles/cs-CZ/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
index aeac8f782fc..bccece67a0b 100644
--- a/doc/distrib/NodeHelpFiles/cs-CZ/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
+++ b/doc/distrib/NodeHelpFiles/cs-CZ/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
@@ -1,7 +1,7 @@
## Podrobnosti
-`Mesh.ByPointsIndices` takes a list of `Points`, representing the `vertices` of the mesh triangles, and a list of `indices`, representing how the mesh is stitched together, and creates a new mesh. The `points` input should be a flat list of unique vertices in the mesh. The `indices` input should be a flat list of integers. Each set of three integers designates a triangle in the mesh. The integers specify the index of the vertex in the vertices list. The indices input should be 0-indexed, with the first point of the vertices list having the index 0.
+Uzel 'Mesh.ByPointsIndices' přijímá seznam bodů, které představují vrcholy trojúhelníků sítě, a seznam indexů, které představují způsob, jakým je síť sešita, a vytvoří novou síť. Vstup 'points' by měl být plochý seznam jedinečných vrcholů v síti. Vstup 'indices' by měl být plochý seznam celých čísel. Každá sada tří celých čísel označuje trojúhelník v síti. Celá čísla určují index vrcholu v seznamu vrcholů. Vstup indexů by měl být indexovaný 0, přičemž první bod seznamu vrcholů by měl mít index 0.
-In the example below, a `Mesh.ByPointsIndices` node is used to create a mesh using a list of nine `points` and a list of 36 `indices`, specifying the vertex combination for each of the 12 triangles of the mesh.
+V níže uvedeném příkladu je pomocí uzlu 'Mesh.ByPointsIndices' vytvořena síť pomocí seznamu devíti „bodů“ a seznamu 36 „indexů“, které určují kombinaci vrcholů pro každý z 12 trojúhelníků sítě.
## Vzorový soubor
diff --git a/doc/distrib/NodeHelpFiles/de-DE/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md b/doc/distrib/NodeHelpFiles/de-DE/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
index 40d4616405e..1e3944a2f8d 100644
--- a/doc/distrib/NodeHelpFiles/de-DE/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
+++ b/doc/distrib/NodeHelpFiles/de-DE/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
@@ -1,5 +1,5 @@
## Im Detail
-ByPointsIndexGroups will return a Mesh based on input vertices as Points and input indices. In the example below, a four-sided Mesh is created with four Points and an IndexGroup of four indices.
+ByPointsIndexGroups gibt ein Netz basierend auf Eingabescheitelpunkten als Punkte und Eingabeindizes zurück. Im folgenden Beispiel wird ein vierseitiges Netz mit vier Punkten und einem IndexGroup-Objekt mit vier Indizes erstellt.
___
## Beispieldatei
diff --git a/doc/distrib/NodeHelpFiles/de-DE/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md b/doc/distrib/NodeHelpFiles/de-DE/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
index 6a5a11a2557..c8cd87aa1aa 100644
--- a/doc/distrib/NodeHelpFiles/de-DE/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
+++ b/doc/distrib/NodeHelpFiles/de-DE/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
@@ -1,7 +1,7 @@
## Im Detail
-`Mesh.ByPointsIndices` takes a list of `Points`, representing the `vertices` of the mesh triangles, and a list of `indices`, representing how the mesh is stitched together, and creates a new mesh. The `points` input should be a flat list of unique vertices in the mesh. The `indices` input should be a flat list of integers. Each set of three integers designates a triangle in the mesh. The integers specify the index of the vertex in the vertices list. The indices input should be 0-indexed, with the first point of the vertices list having the index 0.
+`Mesh.ByPointsIndices` erstellt anhand einer Liste mit `Points`, die die `vertices` der Netzdreiecke repräsentieren, und einer Liste mit `indices`, die darstellen, wie das Netz zusammengefügt wird, ein neues Netz. Die Eingabe `points` muss eine einfache Liste eindeutiger Scheitelpunkte im Netz sein. Die Eingabe `indices` muss eine einfache Liste mit Ganzzahlen sein. Jeder Satz mit drei Ganzzahlen bezeichnet ein Dreieck im Netz. Die Ganzzahlen geben den Index des Scheitelpunkts in der Scheitelpunktliste an. Die Eingabe indices muss 0-indiziert sein, wobei der erste Punkt der Scheitelpunktliste den Index 0 aufweisen muss.
-In the example below, a `Mesh.ByPointsIndices` node is used to create a mesh using a list of nine `points` and a list of 36 `indices`, specifying the vertex combination for each of the 12 triangles of the mesh.
+Im folgenden Beispiel wird ein `Mesh.ByPointsIndices`-Block verwendet, um ein Netz anhand einer Liste mit neun `points` und einer Liste mit 36 `indices` zu erstellen, wobei die Scheitelpunktkombination für jedes der 12 Dreiecke des Netzes angegeben wird.
## Beispieldatei
diff --git a/doc/distrib/NodeHelpFiles/es-ES/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md b/doc/distrib/NodeHelpFiles/es-ES/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
index b58d7c8572e..617724f383a 100644
--- a/doc/distrib/NodeHelpFiles/es-ES/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
+++ b/doc/distrib/NodeHelpFiles/es-ES/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
@@ -1,5 +1,5 @@
-## En detalle:
-ByPointsIndexGroups will return a Mesh based on input vertices as Points and input indices. In the example below, a four-sided Mesh is created with four Points and an IndexGroup of four indices.
+## En detalle
+ByPointsIndexGroups devolverá una malla basada en los vértices de entrada como puntos e índices de entrada. En el ejemplo siguiente, se crea una malla de cuatro lados con cuatro puntos y un IndexGroup de cuatro índices.
___
## Archivo de ejemplo
diff --git a/doc/distrib/NodeHelpFiles/es-ES/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md b/doc/distrib/NodeHelpFiles/es-ES/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
index 973afbd60bb..72925b79614 100644
--- a/doc/distrib/NodeHelpFiles/es-ES/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
+++ b/doc/distrib/NodeHelpFiles/es-ES/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
@@ -1,7 +1,7 @@
## En detalle
-`Mesh.ByPointsIndices` takes a list of `Points`, representing the `vertices` of the mesh triangles, and a list of `indices`, representing how the mesh is stitched together, and creates a new mesh. The `points` input should be a flat list of unique vertices in the mesh. The `indices` input should be a flat list of integers. Each set of three integers designates a triangle in the mesh. The integers specify the index of the vertex in the vertices list. The indices input should be 0-indexed, with the first point of the vertices list having the index 0.
+`Mesh.ByPointsIndices` utiliza una lista de puntos, que representan los vértices de los triángulos de la malla, y una lista de índices, que representan cómo se une la malla, y crea una nueva malla. La entrada `points` debe ser una lista plana de vértices únicos en la malla. La entrada `indices` debe ser una lista plana de enteros. Cada conjunto de tres enteros designa un triángulo en la malla. Los enteros especifican el índice del vértice en la lista de vértices. La entrada `indices` debe estar indexada a 0, con el primer punto de la lista de vértices con el índice 0.
-In the example below, a `Mesh.ByPointsIndices` node is used to create a mesh using a list of nine `points` and a list of 36 `indices`, specifying the vertex combination for each of the 12 triangles of the mesh.
+En el ejemplo siguiente, se utiliza un nodo `Mesh.ByPointsIndices` para crear una malla mediante una lista de nueve puntos y una lista de 36 índices, que especifican la combinación de vértices para cada uno de los 12 triángulos de la malla.
## Archivo de ejemplo
diff --git a/doc/distrib/NodeHelpFiles/fr-FR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md b/doc/distrib/NodeHelpFiles/fr-FR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
index f0d0554d122..a9cac313484 100644
--- a/doc/distrib/NodeHelpFiles/fr-FR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
+++ b/doc/distrib/NodeHelpFiles/fr-FR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
@@ -1,5 +1,5 @@
## Description approfondie
-ByPointsIndexGroups will return a Mesh based on input vertices as Points and input indices. In the example below, a four-sided Mesh is created with four Points and an IndexGroup of four indices.
+ByPointsIndexGroups renvoie un maillage basé sur des sommets entrés sous forme de points et des index entrés. Dans l'exemple ci-dessous, un maillage à quatre côtés est créé avec quatre points et un IndexGroup de quatre index.
___
## Exemple de fichier
diff --git a/doc/distrib/NodeHelpFiles/fr-FR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md b/doc/distrib/NodeHelpFiles/fr-FR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
index 85943d5e4a9..f09e601074a 100644
--- a/doc/distrib/NodeHelpFiles/fr-FR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
+++ b/doc/distrib/NodeHelpFiles/fr-FR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
@@ -1,7 +1,7 @@
## Profondeur
-`Mesh.ByPointsIndices` takes a list of `Points`, representing the `vertices` of the mesh triangles, and a list of `indices`, representing how the mesh is stitched together, and creates a new mesh. The `points` input should be a flat list of unique vertices in the mesh. The `indices` input should be a flat list of integers. Each set of three integers designates a triangle in the mesh. The integers specify the index of the vertex in the vertices list. The indices input should be 0-indexed, with the first point of the vertices list having the index 0.
+'Mesh.ByPointsIndices' prend une liste de 'Points', représentant les 'sommets' des triangles de maillage et une liste contenant des 'index', représentant la façon dont le maillage est assemblé, et crée un nouveau maillage. L'entrée 'points' doit être une liste simple de sommets uniques dans le maillage. L'entrée 'index' doit être une liste simple d'entiers. Chaque ensemble de trois entiers désigne un triangle dans le maillage. Les entiers spécifient l'index du sommet dans la liste des sommets. L'entrée d'index doit être indexée à 0, le premier point de la liste des sommets ayant l'index 0.
-In the example below, a `Mesh.ByPointsIndices` node is used to create a mesh using a list of nine `points` and a list of 36 `indices`, specifying the vertex combination for each of the 12 triangles of the mesh.
+Dans l'exemple ci-dessous, un noeud 'Mesh.ByPointsIndices' est utilisé pour créer un maillage à l'aide d'une liste de neuf 'points' et d'une liste de 36 'index', en spécifiant la combinaison de sommets pour chacun des 12 triangles du maillage.
## Exemple de fichier
diff --git a/doc/distrib/NodeHelpFiles/it-IT/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md b/doc/distrib/NodeHelpFiles/it-IT/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
index af7be24603f..511c4a1b470 100644
--- a/doc/distrib/NodeHelpFiles/it-IT/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
+++ b/doc/distrib/NodeHelpFiles/it-IT/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
@@ -1,5 +1,5 @@
## In profondità
-ByPointsIndexGroups will return a Mesh based on input vertices as Points and input indices. In the example below, a four-sided Mesh is created with four Points and an IndexGroup of four indices.
+ByPointsIndexGroups restituirà una mesh in base ai vertici di input come punti e indici di input. Nell'esempio seguente, viene creata una mesh a quattro lati con quattro punti e un IndexGroup di quattro indici.
___
## File di esempio
diff --git a/doc/distrib/NodeHelpFiles/it-IT/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md b/doc/distrib/NodeHelpFiles/it-IT/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
index ee883fb5bd8..a2e4706d177 100644
--- a/doc/distrib/NodeHelpFiles/it-IT/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
+++ b/doc/distrib/NodeHelpFiles/it-IT/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
@@ -1,7 +1,7 @@
## In profondità
-`Mesh.ByPointsIndices` takes a list of `Points`, representing the `vertices` of the mesh triangles, and a list of `indices`, representing how the mesh is stitched together, and creates a new mesh. The `points` input should be a flat list of unique vertices in the mesh. The `indices` input should be a flat list of integers. Each set of three integers designates a triangle in the mesh. The integers specify the index of the vertex in the vertices list. The indices input should be 0-indexed, with the first point of the vertices list having the index 0.
+`Mesh.ByPointsIndices` utilizza un elenco di `Points`, che rappresentano i `vertices` dei triangoli della mesh, e un elenco di `indices`, che rappresentano il modo in cui la mesh viene unita insieme, e crea una nuova mesh. L'input `points` deve essere un elenco semplice di vertici univoci nella mesh. L'input `indices` deve essere un elenco semplice di numeri interi. Ogni gruppo di tre numeri interi indica un triangolo nella mesh. I numeri interi specificano l'indice del vertice nell'elenco dei vertici. L'input indices deve essere indicizzato in base 0, dove il primo punto dell'elenco dei vertici ha l'indice 0.
-In the example below, a `Mesh.ByPointsIndices` node is used to create a mesh using a list of nine `points` and a list of 36 `indices`, specifying the vertex combination for each of the 12 triangles of the mesh.
+Nell'esempio seguente, viene utilizzato un nodo `Mesh.ByPointsIndices` per creare una mesh utilizzando un elenco di nove `points` e un elenco di 36 `indices`, specificando la combinazione di vertici per ciascuno dei 12 triangoli della mesh.
## File di esempio
diff --git a/doc/distrib/NodeHelpFiles/ja-JP/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md b/doc/distrib/NodeHelpFiles/ja-JP/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
index 605eac17a65..bb2b22997f0 100644
--- a/doc/distrib/NodeHelpFiles/ja-JP/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
+++ b/doc/distrib/NodeHelpFiles/ja-JP/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
@@ -1,5 +1,5 @@
## 詳細
-ByPointsIndexGroups will return a Mesh based on input vertices as Points and input indices. In the example below, a four-sided Mesh is created with four Points and an IndexGroup of four indices.
+ByPointsIndexGroups は、Point として入力された頂点と、入力されたインデックスに基づいて Mesh を返します。次の例では、4 つの Point と、4 つのインデックスの IndexGroup で、4 辺の Mesh が作成されています。
___
## サンプル ファイル
diff --git a/doc/distrib/NodeHelpFiles/ja-JP/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md b/doc/distrib/NodeHelpFiles/ja-JP/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
index 80e7be79d86..16c83af3859 100644
--- a/doc/distrib/NodeHelpFiles/ja-JP/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
+++ b/doc/distrib/NodeHelpFiles/ja-JP/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
@@ -1,7 +1,7 @@
## 詳細
-`Mesh.ByPointsIndices` takes a list of `Points`, representing the `vertices` of the mesh triangles, and a list of `indices`, representing how the mesh is stitched together, and creates a new mesh. The `points` input should be a flat list of unique vertices in the mesh. The `indices` input should be a flat list of integers. Each set of three integers designates a triangle in the mesh. The integers specify the index of the vertex in the vertices list. The indices input should be 0-indexed, with the first point of the vertices list having the index 0.
+`Mesh.ByPointsIndices` は、三角形のメッシュにおける `vertices` を表す `Points` のリストと、メッシュのステッチ方法を表す `indices` のリストを受け取り、新しいメッシュを作成します。`points` 入力は、メッシュ内における一意の頂点のフラット リストである必要があります。`indices` 入力は整数のフラット リストである必要があります。3 つの整数の各セットは、メッシュ内の三角形を表します。その整数は、vertices リスト内の頂点のインデックスを指定します。indices 入力はゼロから始まり、vertices リストにおける最初の点のインデックスはゼロである必要があります。
-In the example below, a `Mesh.ByPointsIndices` node is used to create a mesh using a list of nine `points` and a list of 36 `indices`, specifying the vertex combination for each of the 12 triangles of the mesh.
+次の例では、`Mesh.ByPointsIndices` ノードを使用して、9 個の `points` リストと 36 個の `indices` のリストを使用してメッシュを作成しています。この `indices` リストは、メッシュの 12 個の各三角形における頂点の組み合わせを指定します。
## サンプル ファイル
diff --git a/doc/distrib/NodeHelpFiles/ko-KR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md b/doc/distrib/NodeHelpFiles/ko-KR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
index 855529e8ce6..99af65bef8a 100644
--- a/doc/distrib/NodeHelpFiles/ko-KR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
+++ b/doc/distrib/NodeHelpFiles/ko-KR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
@@ -1,5 +1,5 @@
## 상세
-ByPointsIndexGroups will return a Mesh based on input vertices as Points and input indices. In the example below, a four-sided Mesh is created with four Points and an IndexGroup of four indices.
+ByPointsIndexGroups는 입력된 정점과 색인을 기반으로 메쉬를 반환합니다. 아래 예제에서는 4개의 점과 4개의 색인으로 구성된 IndexGroup을 사용하여 네 면으로 이루어진 메쉬를 작성합니다.
___
## 예제 파일
diff --git a/doc/distrib/NodeHelpFiles/ko-KR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md b/doc/distrib/NodeHelpFiles/ko-KR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
index a6ab93e71a2..bb807dc6259 100644
--- a/doc/distrib/NodeHelpFiles/ko-KR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
+++ b/doc/distrib/NodeHelpFiles/ko-KR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
@@ -1,7 +1,7 @@
## 상세
-`Mesh.ByPointsIndices` takes a list of `Points`, representing the `vertices` of the mesh triangles, and a list of `indices`, representing how the mesh is stitched together, and creates a new mesh. The `points` input should be a flat list of unique vertices in the mesh. The `indices` input should be a flat list of integers. Each set of three integers designates a triangle in the mesh. The integers specify the index of the vertex in the vertices list. The indices input should be 0-indexed, with the first point of the vertices list having the index 0.
+'Mesh.ByPointsIndices'는 메쉬 삼각형의 `정점`을 나타내는 `점` 리스트와 메쉬가 함께 스티치되는 방식을 나타내는 `색인` 리스트를 사용하여 새 메쉬를 작성합니다. `점` 입력은 메쉬를 구성하는 고유한 정점의 단순 리스트여야 합니다. `색인` 입력은 정수로 이루어진 단순 리스트여야 합니다. 3개의 정수 집합은 각각 메쉬에서 삼각형을 지정합니다. 정수는 정점 리스트에서 정점의 색인을 지정합니다. 색인은 0부터 시작해야 하며 정점 리스트의 첫 번째 점은 색인이 0이어야 합니다.
-In the example below, a `Mesh.ByPointsIndices` node is used to create a mesh using a list of nine `points` and a list of 36 `indices`, specifying the vertex combination for each of the 12 triangles of the mesh.
+아래 예제에서는 `Mesh.ByPointsIndices` 노드를 사용하여 메쉬를 작성합니다. 이때 9개의 `점` 리스트와 36개의 `색인` 리스트를 사용하며, 이 색인 리스트는 메쉬를 구성하는 12개의 삼각형 각각에 대한 정점 조합을 지정합니다.
## 예제 파일
diff --git a/doc/distrib/NodeHelpFiles/pl-PL/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md b/doc/distrib/NodeHelpFiles/pl-PL/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
index 0413e3f1ed1..69d9c2f1872 100644
--- a/doc/distrib/NodeHelpFiles/pl-PL/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
+++ b/doc/distrib/NodeHelpFiles/pl-PL/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
@@ -1,5 +1,5 @@
## Informacje szczegółowe
-ByPointsIndexGroups will return a Mesh based on input vertices as Points and input indices. In the example below, a four-sided Mesh is created with four Points and an IndexGroup of four indices.
+Węzeł ByPointsIndexGroups zwraca siatkę (Mesh) na podstawie wierzchołków wejściowych podanych jako punkty i indeksy wejściowe. W poniższym przykładzie tworzona jest siatka czterostronna za pomocą czterech punktów (Points) i czterech indeksów podanych jako IndexGroup.
___
## Plik przykładowy
diff --git a/doc/distrib/NodeHelpFiles/pl-PL/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md b/doc/distrib/NodeHelpFiles/pl-PL/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
index f9fe86c572c..31390f1ab50 100644
--- a/doc/distrib/NodeHelpFiles/pl-PL/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
+++ b/doc/distrib/NodeHelpFiles/pl-PL/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
@@ -1,7 +1,7 @@
## Informacje szczegółowe
-`Mesh.ByPointsIndices` takes a list of `Points`, representing the `vertices` of the mesh triangles, and a list of `indices`, representing how the mesh is stitched together, and creates a new mesh. The `points` input should be a flat list of unique vertices in the mesh. The `indices` input should be a flat list of integers. Each set of three integers designates a triangle in the mesh. The integers specify the index of the vertex in the vertices list. The indices input should be 0-indexed, with the first point of the vertices list having the index 0.
+Węzeł `Mesh.ByPointsIndices` pobiera listę punktów (`Points`) reprezentujących wierzchołki `vertices` trójkątów siatki oraz listę indeksów `indices` reprezentującą sposób zszywania siatki i tworzy nową siatkę. Pozycja danych wejściowych `points` powinna być płaską listą unikatowych wierzchołków w siatce. Pozycja danych wejściowych `indices` powinna być płaską listą liczb całkowitych. Każdy zestaw trzech liczb całkowitych wyznacza trójkąt w siatce. Liczby całkowite określają indeks wierzchołka na liście wierzchołków. Dane wejściowe indeksów powinny być indeksowane od 0 i pierwszy punkt listy wierzchołków powinien mieć indeks 0.
-In the example below, a `Mesh.ByPointsIndices` node is used to create a mesh using a list of nine `points` and a list of 36 `indices`, specifying the vertex combination for each of the 12 triangles of the mesh.
+W poniższym przykładzie węzeł `Mesh.ByPointsIndices` tworzy siatkę przy użyciu listy dziewięciu punktów, `points`, i listy 36 indeksów, `indices`, określających kombinację wierzchołków dla każdego z 12 trójkątów siatki.
## Plik przykładowy
diff --git a/doc/distrib/NodeHelpFiles/pt-BR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md b/doc/distrib/NodeHelpFiles/pt-BR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
index 6e3fb0d743f..408bd97a875 100644
--- a/doc/distrib/NodeHelpFiles/pt-BR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
+++ b/doc/distrib/NodeHelpFiles/pt-BR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
@@ -1,5 +1,5 @@
## Em profundidade
-ByPointsIndexGroups will return a Mesh based on input vertices as Points and input indices. In the example below, a four-sided Mesh is created with four Points and an IndexGroup of four indices.
+ByPointsIndexGroups retornará uma malha com base em vértices de entrada como pontos e índices de entrada. No exemplo abaixo, é criada uma malha de quatro lados com quatro pontos e um IndexGroup de quatro índices.
___
## Arquivo de exemplo
diff --git a/doc/distrib/NodeHelpFiles/pt-BR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md b/doc/distrib/NodeHelpFiles/pt-BR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
index 67fb3363a3c..9d0f6b6aa64 100644
--- a/doc/distrib/NodeHelpFiles/pt-BR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
+++ b/doc/distrib/NodeHelpFiles/pt-BR/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
@@ -1,7 +1,7 @@
-## Aprofundado
-`Mesh.ByPointsIndices` takes a list of `Points`, representing the `vertices` of the mesh triangles, and a list of `indices`, representing how the mesh is stitched together, and creates a new mesh. The `points` input should be a flat list of unique vertices in the mesh. The `indices` input should be a flat list of integers. Each set of three integers designates a triangle in the mesh. The integers specify the index of the vertex in the vertices list. The indices input should be 0-indexed, with the first point of the vertices list having the index 0.
+## Em profundidade
+`Mesh.ByPointsIndices` usa uma lista de “pontos”, representando os “vértices” dos triângulos de malha, e uma lista de “índices”, representando como a malha é unida, e cria uma nova malha. A entrada `points` deve ser uma lista plana de vértices exclusivos na malha. A entrada `indices` deve ser uma lista plana de números inteiros. Cada conjunto de três números inteiros designa um triângulo na malha. Os números inteiros especificam o índice do vértice na lista de vértices. A entrada de índices deve ser indexada em 0, com o primeiro ponto da lista de vértices tendo o índice 0.
-In the example below, a `Mesh.ByPointsIndices` node is used to create a mesh using a list of nine `points` and a list of 36 `indices`, specifying the vertex combination for each of the 12 triangles of the mesh.
+No exemplo abaixo, um nó `Mesh.ByPointsIndices` é usado para criar uma malha usando uma lista de nove“pontos” e uma lista de 36 “índices”, especificando a combinação de vértices para cada um dos 12 triângulos da malha.
## Arquivo de exemplo
diff --git a/doc/distrib/NodeHelpFiles/ru-RU/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md b/doc/distrib/NodeHelpFiles/ru-RU/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
index bae574caab2..e9ff10d1acd 100644
--- a/doc/distrib/NodeHelpFiles/ru-RU/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
+++ b/doc/distrib/NodeHelpFiles/ru-RU/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
@@ -1,5 +1,5 @@
## Подробности
-ByPointsIndexGroups will return a Mesh based on input vertices as Points and input indices. In the example below, a four-sided Mesh is created with four Points and an IndexGroup of four indices.
+ByPointsIndexGroups возвращает сеть на основе входных вершин в виде точек и входных индексов. В приведенном ниже примере создается четырехсторонняя сеть с четырьмя точками и объектом IndexGroup из четырех индексов.
___
## Файл примера
diff --git a/doc/distrib/NodeHelpFiles/ru-RU/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md b/doc/distrib/NodeHelpFiles/ru-RU/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
index def8c6678f5..783d3c496f1 100644
--- a/doc/distrib/NodeHelpFiles/ru-RU/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
+++ b/doc/distrib/NodeHelpFiles/ru-RU/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
@@ -1,7 +1,7 @@
## Подробности
-`Mesh.ByPointsIndices` takes a list of `Points`, representing the `vertices` of the mesh triangles, and a list of `indices`, representing how the mesh is stitched together, and creates a new mesh. The `points` input should be a flat list of unique vertices in the mesh. The `indices` input should be a flat list of integers. Each set of three integers designates a triangle in the mesh. The integers specify the index of the vertex in the vertices list. The indices input should be 0-indexed, with the first point of the vertices list having the index 0.
+`Mesh.ByPointsIndices` принимает список значений `Points`, которые представляют вершины (`vertices`) треугольников сети, и список `indices`, представляющий способ сшивания сети, и создает сеть. Входной параметр `points` должен содержать неструктурированный список уникальных вершин в сети. Входной параметр `indices` должен содержать неструктурированный список целых чисел. Каждое множество из трех целых чисел определяет треугольник в сети. Целые числа обозначают индекс вершины в списке вершин. Входной параметр indices должен начинаться индексом 0, т. е. первая точка в списке вершин должна иметь индекс 0.
-In the example below, a `Mesh.ByPointsIndices` node is used to create a mesh using a list of nine `points` and a list of 36 `indices`, specifying the vertex combination for each of the 12 triangles of the mesh.
+В приведенном ниже примере с помощью узла `Mesh.ByPointsIndices` создается сеть на основе списка из девяти точек (`points`) и списка из 36 индексов (`indices`), представляющих собой комбинацию вершин для каждого из 12 треугольников сети.
## Файл примера
diff --git a/doc/distrib/NodeHelpFiles/zh-CN/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md b/doc/distrib/NodeHelpFiles/zh-CN/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
index 951cdc4759e..f08618d84df 100644
--- a/doc/distrib/NodeHelpFiles/zh-CN/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
+++ b/doc/distrib/NodeHelpFiles/zh-CN/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
@@ -1,5 +1,5 @@
## 详细
-ByPointsIndexGroups will return a Mesh based on input vertices as Points and input indices. In the example below, a four-sided Mesh is created with four Points and an IndexGroup of four indices.
+“ByPointsIndexGroups”将基于输入顶点作为点和输入索引返回一个网格。在下面的示例中,将使用四个点和一个包含四个索引的 IndexGroup 创建一个四边网格。
___
## 示例文件
diff --git a/doc/distrib/NodeHelpFiles/zh-CN/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md b/doc/distrib/NodeHelpFiles/zh-CN/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
index 507b368e641..b7b12898175 100644
--- a/doc/distrib/NodeHelpFiles/zh-CN/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
+++ b/doc/distrib/NodeHelpFiles/zh-CN/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
@@ -1,7 +1,7 @@
## 详细
-`Mesh.ByPointsIndices` takes a list of `Points`, representing the `vertices` of the mesh triangles, and a list of `indices`, representing how the mesh is stitched together, and creates a new mesh. The `points` input should be a flat list of unique vertices in the mesh. The `indices` input should be a flat list of integers. Each set of three integers designates a triangle in the mesh. The integers specify the index of the vertex in the vertices list. The indices input should be 0-indexed, with the first point of the vertices list having the index 0.
+“Mesh.ByPointsIndices”获取一列“点”(表示网格三角形的“顶点”)和一列“索引”(表示如何缝合网格,然后创建新网格)。“点” 输入应该是网格中唯一顶点的平面列表。“索引”输入应是一个整数的平面列表。每组三个整数用于指定网格中的一个三角形。整数指定顶点列表中顶点的索引。索引输入的索引应为 0,顶点列表的第一个点的索引为 0。
-In the example below, a `Mesh.ByPointsIndices` node is used to create a mesh using a list of nine `points` and a list of 36 `indices`, specifying the vertex combination for each of the 12 triangles of the mesh.
+在下面的示例中,“Mesh.ByPointsIndices”节点用于使用一列 9 个“点”和 36 个“索引”列表创建一个网格,并为网格的 12 个三角形中的每个三角形指定顶点组合。
## 示例文件
diff --git a/doc/distrib/NodeHelpFiles/zh-TW/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md b/doc/distrib/NodeHelpFiles/zh-TW/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
index 3162346da55..2be4ef0bb33 100644
--- a/doc/distrib/NodeHelpFiles/zh-TW/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
+++ b/doc/distrib/NodeHelpFiles/zh-TW/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndexGroups.md
@@ -1,5 +1,5 @@
## 深入資訊
-ByPointsIndexGroups will return a Mesh based on input vertices as Points and input indices. In the example below, a four-sided Mesh is created with four Points and an IndexGroup of four indices.
+ByPointsIndexGroups 會根據以點輸入的頂點和輸入索引傳回網格。在以下範例中,使用四個點和包含四個索引的 IndexGroup 建立一個四邊網格。
___
## 範例檔案
diff --git a/doc/distrib/NodeHelpFiles/zh-TW/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md b/doc/distrib/NodeHelpFiles/zh-TW/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
index a9062b2551a..17980f2ee5c 100644
--- a/doc/distrib/NodeHelpFiles/zh-TW/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
+++ b/doc/distrib/NodeHelpFiles/zh-TW/Autodesk.DesignScript.Geometry.Mesh.ByPointsIndices.md
@@ -1,7 +1,7 @@
## 深入資訊
-`Mesh.ByPointsIndices` takes a list of `Points`, representing the `vertices` of the mesh triangles, and a list of `indices`, representing how the mesh is stitched together, and creates a new mesh. The `points` input should be a flat list of unique vertices in the mesh. The `indices` input should be a flat list of integers. Each set of three integers designates a triangle in the mesh. The integers specify the index of the vertex in the vertices list. The indices input should be 0-indexed, with the first point of the vertices list having the index 0.
+`Mesh.ByPointsIndices` 接受一個表示網格三角形 `vertices` 的 `Points` 清單,和一個表示網格如何縫合在一起的 `indices` 清單,建立一個新網格。`points` 輸入必須是網格中唯一頂點的展開清單。`indices` 輸入必須是一個整數的展開清單。三個整數一組指定網格中的一個三角形。整數指定頂點在頂點清單中的索引。indices 輸入應從 0 開始編製索引,頂點清單第一點的索引為 0。
-In the example below, a `Mesh.ByPointsIndices` node is used to create a mesh using a list of nine `points` and a list of 36 `indices`, specifying the vertex combination for each of the 12 triangles of the mesh.
+以下範例使用 `Mesh.ByPointsIndices` 節點,透過一個 9 個 `points` 的清單和一個 36 個 `indices` 的清單建立網格,為網格的每 12 個三角形指定頂點組合。
## 範例檔案
diff --git a/doc/distrib/xml/cs-CZ/DSCoreNodes.xml b/doc/distrib/xml/cs-CZ/DSCoreNodes.xml
index d720aef6f10..4f5fb5e780f 100644
--- a/doc/distrib/xml/cs-CZ/DSCoreNodes.xml
+++ b/doc/distrib/xml/cs-CZ/DSCoreNodes.xml
@@ -1607,16 +1607,16 @@ Jako výchozí je nastaven standardní formát „F“: „Úterý, 21. února 2
Vyhledá lokalizovaný řetězec podobný řetězci „Zadaná data barev jsou příliš velká, aby se vešla do hranic obrázku.“.
- Looks up a localized string similar to • Min and Max values must be different..
+ Vyhledá lokalizovaný řetězec podobný řetězci • Minimální a maximální hodnoty se musí lišit.
- Looks up a localized string similar to • Values must be a list of numbers or a single number ≥ 2..
+ Vyhledá lokalizovaný řetězec podobný řetězci • Hodnoty musí být seznam čísel nebo jedno číslo ≥ 2.
- Looks up a localized string similar to • Control points for the selected curve are not valid..
+ Vyhledá lokalizovaný řetězec podobný řetězci • Řídicí body pro vybranou křivku nejsou platné.
- Looks up a localized string similar to • X and Y inputs must be single numbers (not lists)..
+ Vyhledá lokalizovaný řetězec podobný řetězci • Vstupy X a Y musí být jednotlivá čísla (ne seznamy).Vyhledá lokalizovaný řetězec podobný řetězci „Vstup musí být jedna hodnota nebo seznam bez vnoření.“
diff --git a/doc/distrib/xml/cs-CZ/ProtoGeometry.xml b/doc/distrib/xml/cs-CZ/ProtoGeometry.xml
index c23ef7fb5d5..e79aa8957d6 100644
--- a/doc/distrib/xml/cs-CZ/ProtoGeometry.xml
+++ b/doc/distrib/xml/cs-CZ/ProtoGeometry.xml
@@ -4813,9 +4813,9 @@
- Vytvořit síť z kolekce bodů a kolekce objektů IndexGroup odkazujících na kolekci bodů
+ Vytvořit síť z kolekce bodů a kolekce objektů IndexGroup odkazujících na danou kolekci bodů
Seznam bodů
- Index groups for points
+ Indexové skupiny pro body
Síť
mesh,meshes
@@ -4848,10 +4848,10 @@
ze tří bodů trojúhelníku
- Create a new Mesh from supplied points and indices. Points should
- not overlap. Indices should be sets of three integers
- indicating the three locations in the points array
- of the three points of a triangle
+ Vytvořit novou síť ze zadaných bodů a indexů. Body by se neměly
+ překrývat. Indexy by měly být množinami tří celých čísel.
+ určujících tři umístění v poli bodů
+ ze tří bodů trojúhelníkuVytvoří rovinu sítě pomocí aktuálních nastavení.
@@ -5606,10 +5606,10 @@
Vyhledá lokalizovaný řetězec podobný řetězci „{0} je menší než nula.“.
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]) instead.
+ Vyhledá lokalizovaný řetězec podobný řetězci „Tato metoda byla vyřazena a bude odebrána v budoucí verzi aplikace Dynamo.“. Místo ní použijte uzel Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]).
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndices (Point[] points, Indices : int[]) instead.
+ Vyhledá lokalizovaný řetězec podobný řetězci „Tato metoda byla vyřazena a bude odebrána v budoucí verzi aplikace Dynamo.“. Místo ní použijte uzel Mesh.ByPointsIndices (Point[] points, Indices : int[]).Vyhledá lokalizovaný řetězec podobný řetězci Uzly sítě používají 32bitovou přesnost (7 desetinných míst), což může vést k chybám zaokrouhlení u velkých čísel nebo čísel se více než 7 desetinnými místy. Za účelem dosažení vyšší přesnosti (64 bitů, 15 desetinných míst) použijte uzly z knihovny Geometrie.
diff --git a/doc/distrib/xml/de-DE/DSCoreNodes.xml b/doc/distrib/xml/de-DE/DSCoreNodes.xml
index 7ab82d501b3..ba400bdcf33 100644
--- a/doc/distrib/xml/de-DE/DSCoreNodes.xml
+++ b/doc/distrib/xml/de-DE/DSCoreNodes.xml
@@ -1605,19 +1605,19 @@ Suchen Sie nach "Benutzerdefinierte Zeichenfolgen für Datum und Uhrzeit bei MSD
Ressourcenabrufe, die diese stark typisierte Ressourcenklasse verwenden.
- Sucht eine lokalisierte Zeichenfolge ähnlich wie Die bereitgestellten Farbdaten sind zu groß, um in die Bildumgrenzungen zu passen.
+ Sucht eine lokalisierte Zeichenfolge ähnlich wie 'Die bereitgestellten Farbdaten sind zu groß, um in die Bildumgrenzungen zu passen.'.
- Looks up a localized string similar to • Min and Max values must be different..
+ Sucht eine lokalisierte Zeichenfolge ähnlich wie '• Mindest- und Maximalwerte müssen unterschiedlich sein.'.
- Looks up a localized string similar to • Values must be a list of numbers or a single number ≥ 2..
+ Sucht eine lokalisierte Zeichenfolge ähnlich wie '• Werte müssen eine Liste von Zahlen oder eine einzelne Zahl ≥ 2 sein.'.
- Looks up a localized string similar to • Control points for the selected curve are not valid..
+ Sucht eine lokalisierte Zeichenfolge ähnlich wie '• Steuerpunkte für die ausgewählte Kurve sind nicht gültig.'.
- Looks up a localized string similar to • X and Y inputs must be single numbers (not lists)..
+ Sucht eine lokalisierte Zeichenfolge ähnlich wie '• X- und Y-Eingaben müssen einzelne Zahlen sein (keine Listen).'.Sucht eine lokalisierte Zeichenfolge ähnlich wie 'Eingabe muss ein einzelner Wert oder eine nicht verschachtelte Liste sein'.
diff --git a/doc/distrib/xml/de-DE/ProtoGeometry.xml b/doc/distrib/xml/de-DE/ProtoGeometry.xml
index 076774d4ddb..311808cb48a 100644
--- a/doc/distrib/xml/de-DE/ProtoGeometry.xml
+++ b/doc/distrib/xml/de-DE/ProtoGeometry.xml
@@ -4810,9 +4810,9 @@
- Erstellt ein Netz aus einer Sammlung von Punkten und einer Sammlung von IndexGroups, die die Punktsammlung referenzieren.
- Liste der Punkte
- Index groups for points
+ Netz aus einer Sammlung von Punkten und einer Sammlung von IndexGroups-Objekten erstellen, die die Punktsammlung referenzieren
+ Punktliste
+ Indexgruppen für Punkte
Netz
mesh,meshes
@@ -4845,10 +4845,10 @@
der drei Punkte eines Dreiecks angeben
- Create a new Mesh from supplied points and indices. Points should
- not overlap. Indices should be sets of three integers
- indicating the three locations in the points array
- of the three points of a triangle
+ Erstellen Sie ein neues Netz aus bereitgestellten Punkten und Indizes. Punkte dürfen sich
+ nicht überlappen. Indizes müssen Sätze aus drei Ganzzahlen sein,
+ die die drei Positionen im Punkt-Array
+ der drei Punkte eines Dreiecks angebenErstellt eine Netzebene auf Grundlage der aktuellen Einstellungen.
@@ -5603,10 +5603,10 @@
Sucht eine lokalisierte Zeichenfolge ähnlich wie '{0} ist kleiner als Null.'.
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]) instead.
+ Sucht eine lokalisierte Zeichenfolge ähnlich wie 'Diese Methode ist veraltet und wird in einer zukünftigen Version von Dynamo entfernt. Verwenden Sie stattdessen Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[])'.
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndices (Point[] points, Indices : int[]) instead.
+ Sucht eine lokalisierte Zeichenfolge ähnlich wie 'Diese Methode ist veraltet und wird in einer zukünftigen Version von Dynamo entfernt. Verwenden Sie stattdessen Mesh.ByPointsIndices (Point[] points, Indices : int[])'.Sucht eine lokalisierte Zeichenfolge ähnlich wie 'Netzblöcke verwenden 32-Bit-Genauigkeit (7 Dezimalstellen). Dies kann bei größeren Zahlen oder Zahlen mit mehr als 7 Dezimalstellen zu Rundungsfehlern führen. Verwenden Sie Blöcke aus der Geometriebibliothek, um eine höhere Genauigkeit (64 Bit, 15 Dezimalstellen) zu erzielen.'.
diff --git a/doc/distrib/xml/es-ES/DSCoreNodes.xml b/doc/distrib/xml/es-ES/DSCoreNodes.xml
index 5464e806012..380ed444f44 100644
--- a/doc/distrib/xml/es-ES/DSCoreNodes.xml
+++ b/doc/distrib/xml/es-ES/DSCoreNodes.xml
@@ -1608,16 +1608,16 @@ Busque "Cadenas de formato de fecha y hora personalizadas de MSDN" para obtener
Busca una cadena localizada similar a Los datos de color proporcionados son demasiado grandes para que quepan en los límites de la imagen.
- Looks up a localized string similar to • Min and Max values must be different..
+ Busca una cadena localizada similar a • Los valores mínimo y máximo deben ser diferentes.
- Looks up a localized string similar to • Values must be a list of numbers or a single number ≥ 2..
+ Busca una cadena localizada similar a • Los valores deben ser una lista de números o un solo número ≥ 2..
- Looks up a localized string similar to • Control points for the selected curve are not valid..
+ Busca una cadena localizada similar a • Los puntos de control de la curva seleccionada no son válidos.
- Looks up a localized string similar to • X and Y inputs must be single numbers (not lists)..
+ Busca una cadena localizada similar a • Las entradas X e Y deben ser números únicos (no listas).Busca una cadena localizada similar a La entrada debe ser un único valor o una lista no anidada.
diff --git a/doc/distrib/xml/es-ES/ProtoGeometry.xml b/doc/distrib/xml/es-ES/ProtoGeometry.xml
index b054b824e60..0455604ad92 100644
--- a/doc/distrib/xml/es-ES/ProtoGeometry.xml
+++ b/doc/distrib/xml/es-ES/ProtoGeometry.xml
@@ -4819,7 +4819,7 @@ un objeto LibG.
Crea una malla a partir de una colección de puntos y una colección de IndexGroups que hacen referencia a la colección de puntos.
Lista de puntos
- Index groups for points
+ Grupos de índice para puntos
Malla
mesh,meshes
@@ -4852,10 +4852,10 @@ un objeto LibG.
de los tres puntos de un triángulo.
- Create a new Mesh from supplied points and indices. Points should
- not overlap. Indices should be sets of three integers
- indicating the three locations in the points array
- of the three points of a triangle
+ Crea una nueva malla a partir de los puntos e índices proporcionados. Los puntos no deben
+ solaparse. Los índices deben ser conjuntos de tres enteros
+ que indican las tres ubicaciones de la matriz de puntos
+ de los tres puntos de un triángulo.Crea un plano de malla basado en la configuración actual.
@@ -5611,10 +5611,10 @@ Básicamente, la malla está llena de innumerables cuadros diminutos y se crea u
Busca una cadena localizada similar a {0} es menor que cero.
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]) instead.
+ Busca una cadena localizada similar a Este método se ha dejado de usar y se eliminará en una versión futura de Dynamo. En su lugar, utilice Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]).
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndices (Point[] points, Indices : int[]) instead.
+ Busca una cadena localizada similar a Este método se ha dejado de usar y se eliminará en una versión futura de Dynamo. En su lugar, utilice Mesh.ByPointsIndices (Point[] points, Indices : int[]).Busca una cadena localizada similar a Los nodos de malla utilizan una precisión de 32 bits (7 decimales), lo que puede provocar errores de redondeo con números grandes o con números con más de 7 decimales. Para obtener una mayor precisión (64 bits, 15 decimales), utilice nodos de la biblioteca de geometría.
diff --git a/doc/distrib/xml/fr-FR/DSCoreNodes.xml b/doc/distrib/xml/fr-FR/DSCoreNodes.xml
index df3f813662f..2afaa6d8fa1 100644
--- a/doc/distrib/xml/fr-FR/DSCoreNodes.xml
+++ b/doc/distrib/xml/fr-FR/DSCoreNodes.xml
@@ -1608,16 +1608,16 @@ Recherchez "Chaînes de format de date et d'heure personnalisées MSDN" pour obt
Recherche une chaîne localisée similaire à Les données de couleur fournies sont trop grandes pour tenir dans les limites de l'image.
- Looks up a localized string similar to • Min and Max values must be different..
+ Recherche une chaîne localisée similaire à • Les valeurs Min et Max doivent être différentes.
- Looks up a localized string similar to • Values must be a list of numbers or a single number ≥ 2..
+ Recherche une chaîne localisée similaire à • Les valeurs doivent être indiquées sous forme de liste de nombres ou en un seul nombre ≥ 2.
- Looks up a localized string similar to • Control points for the selected curve are not valid..
+ Recherche une chaîne localisée semblable à • Les points de contrôle de la courbe sélectionnée ne sont pas valides.
- Looks up a localized string similar to • X and Y inputs must be single numbers (not lists)..
+ Recherche une chaîne localisée similaire à • Les entrées X et Y doivent être des nombres uniques (et non des listes).Recherche une chaîne localisée similaire à "L'entrée doit être une valeur unique ou une liste non imbriquée.".
diff --git a/doc/distrib/xml/fr-FR/ProtoGeometry.xml b/doc/distrib/xml/fr-FR/ProtoGeometry.xml
index fd46b505e21..19f24e922c4 100644
--- a/doc/distrib/xml/fr-FR/ProtoGeometry.xml
+++ b/doc/distrib/xml/fr-FR/ProtoGeometry.xml
@@ -4820,7 +4820,7 @@
Créer un maillage à partir d'un ensemble de points et un ensemble d'IndexGroups référençant l'ensemble de points
Liste de points
- Index groups for points
+ Groupes d'index pour les points
Maillage
mesh,meshes
@@ -4853,10 +4853,10 @@
des trois points d’un triangle
- Create a new Mesh from supplied points and indices. Points should
- not overlap. Indices should be sets of three integers
- indicating the three locations in the points array
- of the three points of a triangle
+ Créez un maillage à partir de points et d'index fournis. Les points ne doivent
+ pas se chevaucher. Les index doivent être des ensembles de trois entiers
+ indiquant les trois emplacements dans le réseau de points
+ des trois pointes d'un triangleCréez un plan de maillage basé sur les paramètres actuels.
@@ -5611,10 +5611,10 @@ Fondamentalement, le maillage est rempli d’un tas de petites boîtes, et un no
Recherche une chaîne localisée similaire à {0} est inférieur à zéro.
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]) instead.
+ Recherche une chaîne localisée similaire à Cette méthode est obsolète et sera supprimée dans une prochaine version de Dynamo. Utilisez Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]) à la place.
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndices (Point[] points, Indices : int[]) instead.
+ Recherche une chaîne localisée similaire à Cette méthode est obsolète et sera supprimée dans une prochaine version de Dynamo. Utilisez Mesh.ByPointsIndices (Point[] points, Indices : int[]) à la place.Recherche une chaîne similaire aux noeuds maillés qui utilisent la précision de 32 bits (7 décimales), ce qui peut entraîner des erreurs d'arrondi avec de grands nombres ou des nombres comportant plus de 7 décimales. Pour une précision plus élevée (64 bits, 15 décimales), utilisez des noeuds de la Bibliothèque de géométrie.
diff --git a/doc/distrib/xml/it-IT/DSCoreNodes.xml b/doc/distrib/xml/it-IT/DSCoreNodes.xml
index 1b956e660c6..7bf7e714cae 100644
--- a/doc/distrib/xml/it-IT/DSCoreNodes.xml
+++ b/doc/distrib/xml/it-IT/DSCoreNodes.xml
@@ -1595,16 +1595,16 @@ tale elemento nell'elenco. Se l'elemento non viene trovato nell'elenco, restitui
Cerca una stringa localizzata simile a I dati del colore forniti sono troppo grandi per essere adattati ai limiti dell'immagine.
- Looks up a localized string similar to • Min and Max values must be different..
+ Cerca una stringa localizzata simile a • I valori min e max devono essere diversi.
- Looks up a localized string similar to • Values must be a list of numbers or a single number ≥ 2..
+ Cerca una stringa localizzata simile a • I valori devono essere un elenco di numeri o un numero singolo ≥ 2.
- Looks up a localized string similar to • Control points for the selected curve are not valid..
+ Cerca una stringa localizzata simile a • I punti di controllo per la curva selezionata non sono validi.
- Looks up a localized string similar to • X and Y inputs must be single numbers (not lists)..
+ Cerca una stringa localizzata simile a • Gli input X e Y devono essere numeri singoli (non elenchi).Cerca una stringa localizzata simile a L'input deve essere un valore singolo o un elenco non nidificato.
diff --git a/doc/distrib/xml/it-IT/ProtoGeometry.xml b/doc/distrib/xml/it-IT/ProtoGeometry.xml
index 958315ef17d..8f688684b3a 100644
--- a/doc/distrib/xml/it-IT/ProtoGeometry.xml
+++ b/doc/distrib/xml/it-IT/ProtoGeometry.xml
@@ -4796,7 +4796,7 @@
Ottiene una rappresentazione stringa della mesh
- Crea una mesh da una raccolta di punti e una raccolta di IndexGroup che fanno riferimento alla raccolta di punti
+ Crea una mesh da una raccolta di punti e una raccolta di IndexGroup che fanno riferimento alla raccolta di punti.
Elenco di punti che determinano le posizioni dei vertici
Indici per vertici
Mesh creata da punti
@@ -4805,10 +4805,10 @@
- Crea una mesh da una raccolta di punti e una raccolta di IndexGroup che fanno riferimento alla raccolta di punti
+ Crea una mesh da una raccolta di punti e una raccolta di IndexGroup che fanno riferimento alla raccolta di punti.
Elenco di punti
- Index groups for points
- Retino
+ Gruppi di indici per punti
+ Mesh
mesh,meshes
@@ -4840,10 +4840,10 @@
dei tre punti di un triangolo.
- Create a new Mesh from supplied points and indices. Points should
- not overlap. Indices should be sets of three integers
- indicating the three locations in the points array
- of the three points of a triangle
+ Crea una nuova mesh dai punti e dagli indici forniti. I punti non devono
+ sovrapporsi. Gli indici devono essere gruppi di tre numeri interi
+ che indicano le tre posizioni nella matrice di punti
+ dei tre punti di un triangolo.Crea un piano mesh in base alle impostazioni correnti.
@@ -5597,10 +5597,10 @@
Cerca una stringa localizzata simile a L'elemento {0} è minore di zero.
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]) instead.
+ Cerca una stringa localizzata simile a Questo metodo è obsoleto e verrà rimosso in una versione futura di Dynamo. Utilizzare Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]).
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndices (Point[] points, Indices : int[]) instead.
+ Cerca una stringa localizzata simile a Questo metodo è obsoleto e verrà rimosso in una versione futura di Dynamo. Utilizzare Mesh.ByPointsIndices (Point[] points, Indices : int[]).Cerca una stringa localizzata simile a I nodi della mesh utilizzano una precisione di 32 bit (7 cifre decimali), che può portare a errori di arrotondamento con numeri grandi o con più di 7 cifre decimali. Per una precisione maggiore (64 bit, 15 cifre decimali), utilizzare i nodi della libreria della geometria.
diff --git a/doc/distrib/xml/ja-JP/DSCoreNodes.xml b/doc/distrib/xml/ja-JP/DSCoreNodes.xml
index fcfa9964289..45cb6d603b9 100644
--- a/doc/distrib/xml/ja-JP/DSCoreNodes.xml
+++ b/doc/distrib/xml/ja-JP/DSCoreNodes.xml
@@ -1605,16 +1605,16 @@
「指定されたカラー データは大きすぎるため、イメージの境界に収まりません」に類似するローカライズされた文字列を検索します。
- Looks up a localized string similar to • Min and Max values must be different..
+ 「• 最小値と最大値は異なる値である必要があります。」に類似するローカライズされた文字列を検索します。
- Looks up a localized string similar to • Values must be a list of numbers or a single number ≥ 2..
+ 「• 値は数値のリストまたは ≥ 2 の単一の数値である必要があります。」に類似するローカライズされた文字列を検索します。
- Looks up a localized string similar to • Control points for the selected curve are not valid..
+ 「• 選択した曲線の制御点が無効です。」に類似するローカライズされた文字列を検索します。
- Looks up a localized string similar to • X and Y inputs must be single numbers (not lists)..
+ 「• X と Y の入力値は(リストではなく)単一の数値である必要があります。」に類似するローカライズされた文字列を検索します。「入力は単一の値またはネストされていないリストである必要があります」に類似するローカライズされた文字列を検索します。
diff --git a/doc/distrib/xml/ja-JP/ProtoGeometry.xml b/doc/distrib/xml/ja-JP/ProtoGeometry.xml
index 1920ced757f..8140df8e6e3 100644
--- a/doc/distrib/xml/ja-JP/ProtoGeometry.xml
+++ b/doc/distrib/xml/ja-JP/ProtoGeometry.xml
@@ -4815,10 +4815,10 @@
- 点群の集合と、点群の集合を参照する IndexGroup の集合からメッシュを作成します。
- ポイントのリスト
- Index groups for points
- Mesh
+ 点群の集合と、点群の集合を参照する IndexGroup の集合からメッシュを作成します
+ 点群のリスト
+ 点群のインデックス グループ
+ メッシュ
mesh,meshes
@@ -4850,10 +4850,10 @@
3 つの位置を示します。
- Create a new Mesh from supplied points and indices. Points should
- not overlap. Indices should be sets of three integers
- indicating the three locations in the points array
- of the three points of a triangle
+ 与えられた点とインデックスから新しいメッシュを作成します。点は
+ 重複しないようにする必要があります。インデックスは
+ 三角形の 3 点の点群配列の 3 つの位置を示す
+ 3 つの整数のセットである必要があります現在の設定に基づいてメッシュ平面を作成します。
@@ -5608,10 +5608,10 @@
「{0} はゼロ未満です」に類似するローカライズされた文字列を検索します。
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]) instead.
+ 「このメソッドは廃止され、Dynamo の今後のバージョンで削除される予定です。代わりに Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[])を使用してください」に類似するローカライズされた文字列を検索します。
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndices (Point[] points, Indices : int[]) instead.
+ 「このメソッドは廃止され、Dynamo の今後のバージョンで削除される予定です。代わりに Mesh.ByPointsIndices (Point[] points, Indices : int[])を使用してください」に類似するローカライズされた文字列を検索します。「メッシュ ノードは 32 ビット精度(小数点以下 7 桁)を使用するため、大きな数値や小数点以下 7 桁を超える数値では、丸めエラーが発生する可能性があります。より高い精度(64 ビット、小数点以下 15 桁)を必要とする場合は、Geometry ライブラリのノードを使用してください。」に類似するローカライズされた文字列を検索します。
diff --git a/doc/distrib/xml/ko-KR/DSCoreNodes.xml b/doc/distrib/xml/ko-KR/DSCoreNodes.xml
index 0f096fada48..d0e4f351b6e 100644
--- a/doc/distrib/xml/ko-KR/DSCoreNodes.xml
+++ b/doc/distrib/xml/ko-KR/DSCoreNodes.xml
@@ -1596,16 +1596,16 @@
"제공된 색상 데이터가 너무 커서 이미지 경계에 맞지 않습니다."와 유사한 현지화된 문자열을 조회합니다.
- Looks up a localized string similar to • Min and Max values must be different..
+ '• 최소값과 최대값은 달라야 합니다.'와 유사한 현지화된 문자열을 조회합니다.
- Looks up a localized string similar to • Values must be a list of numbers or a single number ≥ 2..
+ '• 값은 숫자 리스트이거나 2 이상의 단일 숫자여야 합니다.'와 유사한 현지화된 문자열을 조회합니다.
- Looks up a localized string similar to • Control points for the selected curve are not valid..
+ '• 선택한 곡선의 제어점이 유효하지 않습니다.'와 유사한 현지화된 문자열을 조회합니다.
- Looks up a localized string similar to • X and Y inputs must be single numbers (not lists)..
+ '• X 및 Y 입력은 리스트가 아닌 단일 숫자여야 합니다.'와 유사한 현지화된 문자열을 조회합니다."입력은 단일 값 또는 내포되지 않은 리스트여야 합니다."와 유사한 현지화된 문자열을 조회합니다.
diff --git a/doc/distrib/xml/ko-KR/ProtoGeometry.xml b/doc/distrib/xml/ko-KR/ProtoGeometry.xml
index c2f9edfed5a..1b3b387f820 100644
--- a/doc/distrib/xml/ko-KR/ProtoGeometry.xml
+++ b/doc/distrib/xml/ko-KR/ProtoGeometry.xml
@@ -4812,9 +4812,9 @@
- 점 모음 및 점 모음을 참조하는 IndexGroup 모음에서 메쉬를 만듭니다
+ 점 모음 및 점 모음을 참조하는 IndexGroup 모음을 기반으로 메쉬를 작성합니다.
점 리스트
- Index groups for points
+ 점에 대한 색인 그룹
메쉬
mesh,meshes
@@ -4847,10 +4847,10 @@
세 개의 위치를 나타냅니다.
- Create a new Mesh from supplied points and indices. Points should
- not overlap. Indices should be sets of three integers
- indicating the three locations in the points array
- of the three points of a triangle
+ 제공된 점 및 색인을 기반으로 새 메쉬를 작성합니다. 점은
+ 겹치지 않아야 합니다. 색인은 삼각형을 구성하는 세 점의
+ 점 배열에서 3개의 위치를 나타내는
+ 3개의 정수로 이루어진 집합이어야 합니다.현재 설정을 기반으로 메쉬 평면을 작성합니다.
@@ -5605,10 +5605,10 @@
'{0}이(가) 0보다 작습니다.'와 유사한 현지화된 문자열을 조회합니다.
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]) instead.
+ '이 메서드는 더 이상 사용되지 않으며 이후 버전의 Dynamo에서 제거될 예정입니다. 대신 Mesh.ByPointsIndexGroups(Point[] points, IndexGroups : IndexGroup[])를 사용하십시오.'와 유사한 현지화된 문자열을 조회합니다.
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndices (Point[] points, Indices : int[]) instead.
+ '이 메서드는 더 이상 사용되지 않으며 이후 버전의 Dynamo에서 제거될 예정입니다. 대신 Mesh.ByPointsIndices(Point[] points, Indices : int[])를 사용하십시오.'와 유사한 현지화된 문자열을 조회합니다.'메시 노드는 32비트 정밀도(소수점 이하 7자리)를 사용하므로 숫자가 크거나 소수점 이하 7자리를 초과하는 숫자에서는 반올림 오류가 발생할 수 있습니다. 더 높은 정밀도(64비트, 소수점 이하 15자리)를 사용하려면 형상 라이브러리의 노드를 사용하십시오.'와 유사한 현지화된 문자열을 조회합니다.
diff --git a/doc/distrib/xml/pl-PL/DSCoreNodes.xml b/doc/distrib/xml/pl-PL/DSCoreNodes.xml
index 0318b5d9b27..442acc96af8 100644
--- a/doc/distrib/xml/pl-PL/DSCoreNodes.xml
+++ b/doc/distrib/xml/pl-PL/DSCoreNodes.xml
@@ -1604,16 +1604,16 @@ Obszerna lista opcji dostosowania formatu jest dostępna po wyszukaniu ciągu "N
Wyszukuje zlokalizowany ciąg podobny do: Podane dane kolorów są zbyt duże, aby zmieściły się w granicach obrazu.
- Looks up a localized string similar to • Min and Max values must be different..
+ Wyszukuje zlokalizowany ciąg podobny do: • Wartości minimalne i maksymalne muszą się różnić.
- Looks up a localized string similar to • Values must be a list of numbers or a single number ≥ 2..
+ Wyszukuje zlokalizowany ciąg podobny do: • Wartości muszą być listą liczb lub pojedynczą liczbą ≥ 2.
- Looks up a localized string similar to • Control points for the selected curve are not valid..
+ Wyszukuje zlokalizowany ciąg podobny do: • Punkty sterowania dla wybranej krzywej nie są prawidłowe.
- Looks up a localized string similar to • X and Y inputs must be single numbers (not lists)..
+ Wyszukuje zlokalizowany ciąg podobny do: • Dane wejściowe X i Y muszą być pojedynczymi liczbami (nie listami).Wyszukuje zlokalizowany ciąg podobny do: Dane wejściowe muszą być pojedynczą wartością lub listą niezagnieżdżoną.
diff --git a/doc/distrib/xml/pl-PL/ProtoGeometry.xml b/doc/distrib/xml/pl-PL/ProtoGeometry.xml
index 6c148d724ab..d3f7cc173c3 100644
--- a/doc/distrib/xml/pl-PL/ProtoGeometry.xml
+++ b/doc/distrib/xml/pl-PL/ProtoGeometry.xml
@@ -4818,9 +4818,9 @@
- Utwórz siatkę z kolekcji punktów oraz kolekcji IndexGroups odwołujących się do kolekcji punktów
+ Utwórz siatkę z kolekcji punktów oraz kolekcji elementów IndexGroup odwołujących się do kolekcji punktów
Lista punktów
- Index groups for points
+ Grupy indeksów dla punktów
Siatka
mesh,meshes
@@ -4853,10 +4853,10 @@
trzech punktów trójkąta
- Create a new Mesh from supplied points and indices. Points should
- not overlap. Indices should be sets of three integers
- indicating the three locations in the points array
- of the three points of a triangle
+ Utwórz nową siatkę z podanych punktów i indeksów. Punkty nie powinny
+ się nakładać. Indeksy powinny być zestawami trzech liczb całkowitych
+ wskazujących trzy lokalizacje w szyku punktów
+ trzech punktów trójkątaUtwórz płaszczyznę siatki na podstawie bieżących ustawień.
@@ -5610,10 +5610,10 @@
Wyszukuje zlokalizowany ciąg podobny do Wartość {0} jest mniejsza niż zero.
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]) instead.
+ Wyszukuje zlokalizowany ciąg podobny do: Ta metoda została wycofana i zostanie usunięta w przyszłej wersji dodatku Dynamo. Zamiast tego użyj metody Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]).
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndices (Point[] points, Indices : int[]) instead.
+ Wyszukuje zlokalizowany ciąg podobny do: Ta metoda została wycofana i zostanie usunięta w przyszłej wersji dodatku Dynamo. Zamiast tego użyj metody Mesh.ByPointsIndices (Point[] points, Indices : int[]).Wyszukuje zlokalizowany ciąg podobny do: Węzły Mesh korzystają z dokładności 32-bitowej (7 miejsc po przecinku), co może prowadzić do błędów zaokrągleń w przypadku dużych liczb lub liczb z więcej niż 7 miejscami po przecinku. Aby uzyskać większą dokładność (64-bitową, 15 miejsc po przecinku), użyj węzłów z biblioteki Geometry.
diff --git a/doc/distrib/xml/pt-BR/DSCoreNodes.xml b/doc/distrib/xml/pt-BR/DSCoreNodes.xml
index 9a7552abd75..d1ac953979d 100644
--- a/doc/distrib/xml/pt-BR/DSCoreNodes.xml
+++ b/doc/distrib/xml/pt-BR/DSCoreNodes.xml
@@ -1596,16 +1596,16 @@ Pesquise "Cadeias de caracteres de formato de data e hora personalizado" no MSDN
Procura uma sequência de caracteres localizada, que seja semelhante a “Os dados de cor fornecidos são muito grandes para caber nos limites da imagem”.
- Looks up a localized string similar to • Min and Max values must be different..
+ Procura uma sequência de caracteres localizada semelhante a • “Os valores mínimo e máximo devem ser diferentes”.
- Looks up a localized string similar to • Values must be a list of numbers or a single number ≥ 2..
+ Procura uma sequência de caracteres localizada semelhante a •“ Os valores devem ser uma lista de números ou um número único ≥ 2”.
- Looks up a localized string similar to • Control points for the selected curve are not valid..
+ Procura uma sequência de caracteres localizada semelhante a • “Os pontos de controle da curva selecionada não são válidos”.
- Looks up a localized string similar to • X and Y inputs must be single numbers (not lists)..
+ Procura uma sequência de caracteres localizada semelhante a • “As entradas X e Y devem ser números únicos (não listas)”.Procura uma sequência de caracteres localizada similar a “A entrada deve ser um valor único ou uma lista não aninhada”.
diff --git a/doc/distrib/xml/pt-BR/ProtoGeometry.xml b/doc/distrib/xml/pt-BR/ProtoGeometry.xml
index 0bdfd37e568..46d19bba84d 100644
--- a/doc/distrib/xml/pt-BR/ProtoGeometry.xml
+++ b/doc/distrib/xml/pt-BR/ProtoGeometry.xml
@@ -4793,9 +4793,9 @@
- Cria uma malha a partir de uma coleção de pontos e uma coleção de grupos de indexação referenciando a coleção de pontos
+ Crie uma malha com base em uma coleção de pontos e uma coleção de IndexGroups referenciando a coleção de pontos
Lista de pontos
- Index groups for points
+ Indexar grupos de pontos
Malha
mesh,meshes
@@ -4828,10 +4828,10 @@
dos três pontos de um triângulo
- Create a new Mesh from supplied points and indices. Points should
- not overlap. Indices should be sets of three integers
- indicating the three locations in the points array
- of the three points of a triangle
+ Crie uma nova malha com base em pontos e índices fornecidos. Os pontos não devem
+ se sobrepor. Os índices devem ser conjuntos de três números inteiros
+ indicando as três localizações na matriz de pontos
+ dos três pontos de um triânguloCriar um plano de malha com base nas configurações atuais.
@@ -5586,10 +5586,10 @@ Basicamente, a malha é preenchida com várias pequenas caixas, e uma nova
A pesquisa de sequência de caracteres localizada similar a {0} é menor que zero.
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]) instead.
+ Procura uma sequência de caracteres localizada semelhante a "Esse método está obsoleto e será removido em uma versão futura do Dynamo. Use Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[])”.
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndices (Point[] points, Indices : int[]) instead.
+ Procura uma sequência de caracteres localizada semelhante a "Esse método está obsoleto e será removido em uma versão futura do Dynamo. Use Mesh.ByPointsIndices (Point[] points, Indices : int[])”.Procura uma sequência de caracteres localizada similar a “Os nós de malha usam precisão de 32 bits (7 casas decimais), o que pode levar a erros de arredondamento com números grandes ou números com mais de 7 casas decimais. Para maior precisão (64 bits, 15 casas decimais), use nós da biblioteca Geometria”.
diff --git a/doc/distrib/xml/ru-RU/DSCoreNodes.xml b/doc/distrib/xml/ru-RU/DSCoreNodes.xml
index fd66fbef7ff..da969e1b655 100644
--- a/doc/distrib/xml/ru-RU/DSCoreNodes.xml
+++ b/doc/distrib/xml/ru-RU/DSCoreNodes.xml
@@ -1604,16 +1604,16 @@
Поиск локализованной строки, подобной строке «Предоставленные данные цвета слишком велики для вписывания в границы изображения».
- Looks up a localized string similar to • Min and Max values must be different..
+ Поиск локализованной строки, подобной строке «• Минимальное и максимальное значения должны отличаться».
- Looks up a localized string similar to • Values must be a list of numbers or a single number ≥ 2..
+ Поиск локализованной строки, подобной строке «• Значения должны быть списком чисел или одиночным числом ≥ 2».
- Looks up a localized string similar to • Control points for the selected curve are not valid..
+ Поиск локализованной строки, подобной строке «• Недопустимые управляющие точки для выбранной кривой».
- Looks up a localized string similar to • X and Y inputs must be single numbers (not lists)..
+ Поиск локализованной строки, подобной строке «• Входные данные X и Y должны быть одиночными числами (не списками)».Поиск локализованной строки, подобной строке «Входное значение должно быть одним значением или не являться вложенным списком».
diff --git a/doc/distrib/xml/ru-RU/ProtoGeometry.xml b/doc/distrib/xml/ru-RU/ProtoGeometry.xml
index 0a7b2359fc8..5323a28458e 100644
--- a/doc/distrib/xml/ru-RU/ProtoGeometry.xml
+++ b/doc/distrib/xml/ru-RU/ProtoGeometry.xml
@@ -4819,9 +4819,9 @@
- Создание сетки на основе набора точек и набора элементов IndexGroups, ссылающихся на набор точек
+ Создание сети на основе коллекции точек и коллекции элементов IndexGroups, ссылающихся на коллекцию точек
Список точек
- Index groups for points
+ Группы индексов для точек
Сеть
mesh,meshes
@@ -4854,10 +4854,10 @@
трех точек треугольника
- Create a new Mesh from supplied points and indices. Points should
- not overlap. Indices should be sets of three integers
- indicating the three locations in the points array
- of the three points of a triangle
+ Создание сети на основе заданных точек и индексов. Точки не должны
+ перекрываться. Индексы должны представлять собой множества из трех целых чисел,
+ указывающие на три расположения в массиве точек
+ из трех точек треугольникаСоздание плоскости сети на основе текущих параметров.
@@ -5613,10 +5613,10 @@
Поиск локализованной строки, подобной строке «значение {0} меньше нуля».
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]) instead.
+ Поиск локализованной строки, подобной строке «Этот метод исключен и будет удален в следующей версии Dynamo. Используйте вместо него Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[])».
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndices (Point[] points, Indices : int[]) instead.
+ Поиск локализованной строки, подобной строке «Этот метод исключен и будет удален в следующей версии Dynamo. Используйте вместо него Mesh.ByPointsIndices (Point[] points, Indices : int[])».Поиск локализованной строки, подобной строке «Узлы сетки используют 32-разрядную точность (до 7 десятичных знаков), что может привести к ошибкам при округлении больших значений или чисел с более чем 7 десятичными знаками. Для более высокой точности (64-разрядной, 15 десятичных знаков) используйте узлы из библиотеки геометрии.».
diff --git a/doc/distrib/xml/zh-CN/DSCoreNodes.xml b/doc/distrib/xml/zh-CN/DSCoreNodes.xml
index 7f83298d565..489a2eb4eff 100644
--- a/doc/distrib/xml/zh-CN/DSCoreNodes.xml
+++ b/doc/distrib/xml/zh-CN/DSCoreNodes.xml
@@ -940,7 +940,7 @@
编辑距离是用于获取 2 个字符串之间距离的算法
- |<请参见>源请参见>
+ |源在列表开头添加一项。
@@ -1607,16 +1607,16 @@
查找类似“提供的颜色数据太大,无法适应图像边界。”的本地化字符串。
- Looks up a localized string similar to • Min and Max values must be different..
+ 查找类似“• 最小值和最大值必须不同。”的本地化字符串。
- Looks up a localized string similar to • Values must be a list of numbers or a single number ≥ 2..
+ 查找类似“• 值必须是数字列表或单个数字≥ 2。”的本地化字符串。
- Looks up a localized string similar to • Control points for the selected curve are not valid..
+ 查找类似“• 选定曲线的控制点无效。”的本地化字符串。
- Looks up a localized string similar to • X and Y inputs must be single numbers (not lists)..
+ 查找类似“• X 和 Y 输入必须是单个数字(而非列表)。”的本地化字符串。查找类似“输入必须是单个值或非嵌套列表。”的本地化字符串。
diff --git a/doc/distrib/xml/zh-CN/ProtoGeometry.xml b/doc/distrib/xml/zh-CN/ProtoGeometry.xml
index 00f607f473e..4d0b2be44c7 100644
--- a/doc/distrib/xml/zh-CN/ProtoGeometry.xml
+++ b/doc/distrib/xml/zh-CN/ProtoGeometry.xml
@@ -4821,7 +4821,7 @@
由点集和引用点集的 IndexGroups 集创建面片
点列表
- Index groups for points
+ 为点索引组
网格
mesh,meshes
@@ -4854,10 +4854,10 @@
的三个位置
- Create a new Mesh from supplied points and indices. Points should
- not overlap. Indices should be sets of three integers
- indicating the three locations in the points array
- of the three points of a triangle
+ 从提供的点和索引创建新网格。点应该
+ 不重叠。索引应为三个整数的集合,
+ 指示三角形三个点的
+ 点阵列中的三个位置根据当前设置创建网格平面。
@@ -5612,10 +5612,10 @@
查找类似“{0} 小于零”的本地化字符串。
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]) instead.
+ 查找类似“此方法已弃用,将在未来版本的 Dynamo 中删除。”的本地化字符串。请改用“Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[])”。
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndices (Point[] points, Indices : int[]) instead.
+ 查找类似“此方法已弃用,将在未来版本的 Dynamo 中删除。”的本地化字符串。请改用“Mesh.ByPointsIndices (Point[] points, Indices : int[])”。查找类似“网格节点使用 32 位精度(7 位小数),对于非常大的数值或超过 7 位小数的数值,可能导致舍入错误。对于更高的精度(64 位,15 位小数),请使用几何图形库中的节点。”的本地化字符串。
diff --git a/doc/distrib/xml/zh-TW/DSCoreNodes.xml b/doc/distrib/xml/zh-TW/DSCoreNodes.xml
index e8e6fff90c3..db7542e2937 100644
--- a/doc/distrib/xml/zh-TW/DSCoreNodes.xml
+++ b/doc/distrib/xml/zh-TW/DSCoreNodes.xml
@@ -1592,16 +1592,16 @@
查找類似於「提供的顏色資料太大,無法佈滿影像邊界。」的本土化字串。
- Looks up a localized string similar to • Min and Max values must be different..
+ 查找類似於「• 最小值和最大值必須不同。」的本土化字串。
- Looks up a localized string similar to • Values must be a list of numbers or a single number ≥ 2..
+ 查找類似於「• 值必須是一個數字清單或一個 ≥ 2 的數字。」的本土化字串。
- Looks up a localized string similar to • Control points for the selected curve are not valid..
+ 查找類似於「• 所選曲線的控制點無效。」的本土化字串。
- Looks up a localized string similar to • X and Y inputs must be single numbers (not lists)..
+ 查找類似於「• X 和 Y 輸入必須是一個數字 (不是清單)。」的本土化字串。查找類似於「輸入必須是單一值或非巢狀清單。」的本土化字串。
diff --git a/doc/distrib/xml/zh-TW/ProtoGeometry.xml b/doc/distrib/xml/zh-TW/ProtoGeometry.xml
index d180dfe9d22..3a0fd78d668 100644
--- a/doc/distrib/xml/zh-TW/ProtoGeometry.xml
+++ b/doc/distrib/xml/zh-TW/ProtoGeometry.xml
@@ -4810,9 +4810,9 @@
- 從點集合和參考點集合的 IndexGroups 集合建立網面
+ 從點集合和參考點集合的 IndexGroups 集合建立網格
點清單
- Index groups for points
+ 點的索引群組
網格
mesh,meshes
@@ -4845,10 +4845,10 @@
頂點陣列中的三個位置
- Create a new Mesh from supplied points and indices. Points should
- not overlap. Indices should be sets of three integers
- indicating the three locations in the points array
- of the three points of a triangle
+ 從提供的點和索引建立新網格。點不能
+ 重疊。索引為一組三個整數,
+ 指出三角形三個點形成之
+ 點陣列中的三個位置根據目前設定建立網格平面。
@@ -5603,10 +5603,10 @@
查找類似於「{0} 小於零」的本土化字串。
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[]) instead.
+ 查找類似於「此方法已棄用,未來版本的 Dynamo 將移除。請改用 Mesh.ByPointsIndexGroups (Point[] points, IndexGroups : IndexGroup[])」的本土化字串。
- Looks up a localized string similar to This method is deprecated and will be removed in a future version of Dynamo. Use Mesh.ByPointsIndices (Point[] points, Indices : int[]) instead.
+ 查找類似於「此方法已棄用,未來版本的 Dynamo 將移除。請改用 Mesh.ByPointsIndices (Point[] points, Indices : int[])」的本土化字串。查找類似於「Mesh 節點使用 32 位元的精確度 (7 位小數),很大或超過 7 位小數的數字可能會產生捨入誤差。如果需要較高精確度 (64 位元,15 位小數),請使用 Geometry 資源庫的節點。」的本土化字串。
diff --git a/src/DynamoCore/Configuration/PreferenceSettings.cs b/src/DynamoCore/Configuration/PreferenceSettings.cs
index 5c051f78beb..7b4ee0243f1 100644
--- a/src/DynamoCore/Configuration/PreferenceSettings.cs
+++ b/src/DynamoCore/Configuration/PreferenceSettings.cs
@@ -682,10 +682,22 @@ public string PythonTemplateFilePath
///
public int MLRecommendationConfidenceLevel { get; set; }
+ private int mLRecommendationNumberOfResults;
///
/// This defines the number of results of the ML recommendation
///
- public int MLRecommendationNumberOfResults { get; set; }
+ public int MLRecommendationNumberOfResults
+ {
+ get => mLRecommendationNumberOfResults;
+ set
+ {
+ if (mLRecommendationNumberOfResults != value)
+ {
+ mLRecommendationNumberOfResults = value;
+ AutocompletePreferencesChanged?.Invoke();
+ }
+ }
+ }
///
/// If true, autocomplete method options are hidden from UI
@@ -853,10 +865,27 @@ public bool DisableCustomPackageLocations
///
public RunType DefaultRunType { get; set; }
+ private NodeAutocompleteSuggestion defaultNodeAutocompleteSuggestion;
///
/// Defines the default method of the Node Autocomplete
///
- public NodeAutocompleteSuggestion DefaultNodeAutocompleteSuggestion { get; set; }
+ public NodeAutocompleteSuggestion DefaultNodeAutocompleteSuggestion
+ {
+ get => defaultNodeAutocompleteSuggestion;
+ set
+ {
+ if(defaultNodeAutocompleteSuggestion != value)
+ {
+ defaultNodeAutocompleteSuggestion = value;
+ AutocompletePreferencesChanged?.Invoke();
+ }
+ }
+ }
+
+ ///
+ /// Event that is fired when autocomplete-specific preferences are changed
+ ///
+ internal event Action AutocompletePreferencesChanged;
///
/// Show Run Preview flag.
diff --git a/src/DynamoCore/Models/DynamoModelCommands.cs b/src/DynamoCore/Models/DynamoModelCommands.cs
index 2060e727a47..8f528ac0d6f 100644
--- a/src/DynamoCore/Models/DynamoModelCommands.cs
+++ b/src/DynamoCore/Models/DynamoModelCommands.cs
@@ -216,7 +216,7 @@ private NodeModel GetNodeFromCommand(CreateNodeCommand command)
return null;
}
- private NodeModel CreateNodeFromNameOrType(Guid nodeId, string name)
+ internal NodeModel CreateNodeFromNameOrType(Guid nodeId, string name, bool isTransient = false)
{
NodeModel node;
@@ -228,6 +228,7 @@ private NodeModel CreateNodeFromNameOrType(Guid nodeId, string name)
? new DSVarArgFunction(functionItem) as NodeModel
: new DSFunction(functionItem);
node.GUID = nodeId;
+ node.IsTransient = isTransient;
return node;
}
@@ -235,6 +236,7 @@ private NodeModel CreateNodeFromNameOrType(Guid nodeId, string name)
if (NodeFactory.CreateNodeFromTypeName(name, out node))
{
node.GUID = nodeId;
+ node.IsTransient = isTransient;
}
return node;
}
diff --git a/src/DynamoCoreWpf/Controls/InPorts.xaml.cs b/src/DynamoCoreWpf/Controls/InPorts.xaml.cs
index 65fbcddfdf8..8ca5441b414 100644
--- a/src/DynamoCoreWpf/Controls/InPorts.xaml.cs
+++ b/src/DynamoCoreWpf/Controls/InPorts.xaml.cs
@@ -256,6 +256,9 @@ private void OnDataContextChanged(object sender, DependencyPropertyChangedEventA
CommandParameter = viewModel
};
+ mouseRightButtonDownTrigger.Actions.Add(mouseRightButtonDownAction);
+ Dynamo.Microsoft.Xaml.Behaviors.Interaction.GetTriggers(MainGrid).Add(mouseRightButtonDownTrigger);
+
var previewMouseLeftDownTrigger = new Dynamo.UI.Views.HandlingEventTrigger()
{
EventName = "PreviewMouseLeftButtonDown",
diff --git a/src/DynamoCoreWpf/Controls/NodeAutoCompleteSearchControl.xaml b/src/DynamoCoreWpf/Controls/NodeAutoCompleteSearchControl.xaml
index 9db860bfaf4..627a8d3b591 100644
--- a/src/DynamoCoreWpf/Controls/NodeAutoCompleteSearchControl.xaml
+++ b/src/DynamoCoreWpf/Controls/NodeAutoCompleteSearchControl.xaml
@@ -1,4 +1,4 @@
-
-
+
@@ -40,7 +45,7 @@
-
+
-
+
@@ -374,4 +379,4 @@
-
+
diff --git a/src/DynamoCoreWpf/Controls/NodeAutoCompleteSearchControl.xaml.cs b/src/DynamoCoreWpf/Controls/NodeAutoCompleteSearchControl.xaml.cs
index ce9af598a2a..23534e9e135 100644
--- a/src/DynamoCoreWpf/Controls/NodeAutoCompleteSearchControl.xaml.cs
+++ b/src/DynamoCoreWpf/Controls/NodeAutoCompleteSearchControl.xaml.cs
@@ -57,6 +57,23 @@ public NodeAutoCompleteSearchControl()
HomeWorkspaceModel.WorkspaceClosed += this.CloseAutoCompletion;
}
+ internal NodeAutoCompleteSearchControl(Window window, NodeAutoCompleteSearchViewModel viewModel)
+ {
+ Owner = window;
+ DataContext = viewModel;
+ ViewModel.IsOpen = true;
+ InitializeComponent();
+ if (string.IsNullOrEmpty(DynamoModel.HostAnalyticsInfo.HostName) && Application.Current != null)
+ {
+ Application.Current.Deactivated += CurrentApplicationDeactivated;
+ if (Application.Current?.MainWindow != null)
+ {
+ Application.Current.MainWindow.Closing += NodeAutoCompleteSearchControl_Unloaded;
+ }
+ }
+ HomeWorkspaceModel.WorkspaceClosed += this.CloseAutoCompletion;
+ }
+
private void NodeAutoCompleteSearchControl_Unloaded(object sender, System.ComponentModel.CancelEventArgs e)
{
if (string.IsNullOrEmpty(DynamoModel.HostAnalyticsInfo.HostName) && Application.Current != null)
@@ -72,12 +89,13 @@ private void NodeAutoCompleteSearchControl_Unloaded(object sender, System.Compon
private void CurrentApplicationDeactivated(object sender, EventArgs e)
{
- OnRequestShowNodeAutoCompleteSearch(ShowHideFlags.Hide);
+ OnRequestHideNodeAutoCompleteSearch();
}
- private void OnRequestShowNodeAutoCompleteSearch(ShowHideFlags flags)
+ private void OnRequestHideNodeAutoCompleteSearch()
{
- RequestShowNodeAutoCompleteSearch?.Invoke(flags);
+ this.ViewModel.IsOpen = false;
+ this.Close();
}
private void OnSearchTextBoxTextChanged(object sender, TextChangedEventArgs e)
@@ -101,7 +119,7 @@ private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
if (!(sender is ListBoxItem listBoxItem) || e.OriginalSource is Thumb) return;
ExecuteSearchElement(listBoxItem);
- OnRequestShowNodeAutoCompleteSearch(ShowHideFlags.Hide);
+ OnRequestHideNodeAutoCompleteSearch();
e.Handled = true;
}
@@ -236,7 +254,7 @@ private void OnParentNodeRemoved(NodeModel node)
NodeModel parent_node = ViewModel.PortViewModel?.PortModel.Owner;
if (node == parent_node)
{
- OnRequestShowNodeAutoCompleteSearch(ShowHideFlags.Hide);
+ OnRequestHideNodeAutoCompleteSearch();
ViewModel.ParentNodeRemoved -= OnParentNodeRemoved;
}
}
@@ -307,13 +325,13 @@ private void OnInCanvasSearchKeyDown(object sender, KeyEventArgs e)
switch (key)
{
case Key.Escape:
- OnRequestShowNodeAutoCompleteSearch(ShowHideFlags.Hide);
+ OnRequestHideNodeAutoCompleteSearch();
break;
case Key.Enter:
if (HighlightedItem != null && ViewModel.CurrentMode != SearchViewModel.ViewMode.LibraryView)
{
ExecuteSearchElement(HighlightedItem);
- OnRequestShowNodeAutoCompleteSearch(ShowHideFlags.Hide);
+ OnRequestHideNodeAutoCompleteSearch();
}
break;
case Key.Up:
@@ -382,7 +400,7 @@ internal void CloseAutocompletionWindow(object sender, RoutedEventArgs e)
internal void CloseAutoCompletion()
{
- OnRequestShowNodeAutoCompleteSearch(ShowHideFlags.Hide);
+ OnRequestHideNodeAutoCompleteSearch();
ViewModel?.OnNodeAutoCompleteWindowClosed();
}
diff --git a/src/DynamoCoreWpf/Controls/ShortcutToolbar.xaml.cs b/src/DynamoCoreWpf/Controls/ShortcutToolbar.xaml.cs
index 4656a03dd1d..041f7a33f5a 100644
--- a/src/DynamoCoreWpf/Controls/ShortcutToolbar.xaml.cs
+++ b/src/DynamoCoreWpf/Controls/ShortcutToolbar.xaml.cs
@@ -95,7 +95,26 @@ private void AuthChangeHandler(LoginState status)
{
if (status == LoginState.LoggedOut)
{
- LoginButton.ToolTip = Wpf.Properties.Resources.SignInButtonContentToolTip;
+ var toolTip = new ToolTip
+ {
+ Content = Wpf.Properties.Resources.SignInButtonContentToolTip
+ };
+
+ // Retrieve the style from resources
+ var style = (Style)TryFindResource("GenericToolTipLight");
+ if (style != null)
+ {
+ toolTip.Style = style;
+ }
+ else
+ {
+ // Optionally log a warning or handle the missing resource gracefully
+ System.Diagnostics.Debug.WriteLine("Warning: 'GenericToolTipLight' resource not found.");
+ }
+
+ // Assign the styled tooltip to the Login Button
+ LoginButton.ToolTip = toolTip;
+
txtSignIn.Text = Wpf.Properties.Resources.SignInButtonText;
logoutOption.Visibility = Visibility.Collapsed;
loginMenu.Items.Remove(logoutOption);
diff --git a/src/DynamoCoreWpf/Controls/StartPage.xaml.cs b/src/DynamoCoreWpf/Controls/StartPage.xaml.cs
index 1ee8f9944de..e2ec5f3e4db 100644
--- a/src/DynamoCoreWpf/Controls/StartPage.xaml.cs
+++ b/src/DynamoCoreWpf/Controls/StartPage.xaml.cs
@@ -211,7 +211,7 @@ internal StartPageViewModel(DynamoViewModel dynamoViewModel, bool isFirstRun)
#endregion
var dvm = this.DynamoViewModel;
- RefreshRecentFileList(dvm.RecentFiles);
+ RefreshRecentFileList(dvm.RecentFiles, true);
RefreshBackupFileList(dvm.Model.PreferenceSettings.BackupFiles);
dvm.RecentFiles.CollectionChanged += OnRecentFilesChanged;
}
@@ -404,27 +404,57 @@ public string BackupTitle
private void OnRecentFilesChanged(object sender, NotifyCollectionChangedEventArgs e)
{
- RefreshRecentFileList(sender as IEnumerable);
+ //when we are just moving existing files, no need to refresh the complete list
+ if (e.Action == NotifyCollectionChangedAction.Move)
+ {
+ recentFiles.Move(e.OldStartingIndex, e.NewStartingIndex);
+ }
+ else if (e.Action == NotifyCollectionChangedAction.Add)
+ {
+ var newItems = e.NewItems?.Cast();
+ if (newItems != null)
+ {
+ RefreshRecentFileList(newItems);
+ }
+ }
+ else if (e.Action == NotifyCollectionChangedAction.Remove)
+ {
+ recentFiles.RemoveRange(e.OldStartingIndex, recentFiles.Count - e.OldStartingIndex);
+ }
+ else
+ {
+ RefreshRecentFileList(sender as IEnumerable, true);
+ }
}
#endregion
#region Private Class Helper Methods
- private void RefreshRecentFileList(IEnumerable filePaths)
+ private void RefreshRecentFileList(IEnumerable filePaths, bool fullRefresh = false)
{
- RefreshFileList(recentFiles, filePaths);
+ RefreshFileList(recentFiles, filePaths, fullRefresh);
}
private void RefreshBackupFileList(IEnumerable filePaths)
{
- RefreshFileList(backupFiles, filePaths);
+ RefreshFileList(backupFiles, filePaths, true);
}
+ ///
+ /// Refreshes the list of files in the specified collection. If fullRefresh is true,
+ /// discards the current list and regenerates all file items based on the provided file paths.
+ ///
+ /// Files currently in the recent files list
+ /// New files path which will be used to update the current list
+ /// If true, will discard the current list and regenerate all file items based on the provided file paths
private void RefreshFileList(ObservableCollection files,
- IEnumerable filePaths)
+ IEnumerable filePaths, bool fullRefresh = false)
{
- files.Clear();
+ if (fullRefresh)
+ {
+ files.Clear();
+ }
foreach (var filePath in filePaths.Where(x => x != null))
{
try
@@ -441,7 +471,7 @@ private void RefreshFileList(ObservableCollection files,
// deserializes the file only once
var properties = GetFileProperties(filePath);
- files.Add(new StartPageListItem(caption)
+ var startItem = new StartPageListItem(caption)
{
ContextData = filePath,
ToolTip = filePath,
@@ -451,8 +481,16 @@ private void RefreshFileList(ObservableCollection files,
Author = properties.author,
DateModified = properties.date,
ClickAction = StartPageListItem.Action.FilePath,
+ };
- });
+ if (fullRefresh)
+ {
+ files.Add(startItem);
+ }
+ else
+ {
+ files.Insert(0, startItem);
+ }
}
catch (ArgumentException ex)
{
diff --git a/src/DynamoCoreWpf/Properties/Resources.Designer.cs b/src/DynamoCoreWpf/Properties/Resources.Designer.cs
index e4a57d615a8..3d5974e84e7 100644
--- a/src/DynamoCoreWpf/Properties/Resources.Designer.cs
+++ b/src/DynamoCoreWpf/Properties/Resources.Designer.cs
@@ -5048,7 +5048,7 @@ public static string MinorVersionNonNegative {
}
///
- /// Looks up a localized string similar to Number of results.
+ /// Looks up a localized string similar to Number of results for Recommended Nodes.
///
public static string MLRecommendationNumberOfResults {
get {
diff --git a/src/DynamoCoreWpf/Properties/Resources.cs-CZ.resx b/src/DynamoCoreWpf/Properties/Resources.cs-CZ.resx
index 0c7ed84f338..81ddc485c92 100644
--- a/src/DynamoCoreWpf/Properties/Resources.cs-CZ.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.cs-CZ.resx
@@ -3230,7 +3230,7 @@ Tato umístění můžete spravovat v části Předvolby -> Zabezpečení.Vedle každého doporučeného uzlu se zobrazí úroveň spolehlivosti, která představuje odhadovanou pravděpodobnost, že uzel je vhodnou volbou. Pokud je tato možnost zapnuta, skryjí se doporučené uzly, které nesplňují zadanou úroveň spolehlivosti. Chcete-li takové uzly zobrazit, klikněte na záhlaví Nízká spolehlivost.
- Počet výsledků
+ Number of results for Recommended NodesImportovat
@@ -3791,7 +3791,7 @@ Chcete-li vytvořit z tohoto souboru novou šablonu, uložte ho do jiné složky
Zpět na výběr souboru
- This group is frozen. Click to unfreeze.
+ Tato skupina je zmrazená. Kliknutím ji rozmrazíte.
diff --git a/src/DynamoCoreWpf/Properties/Resources.de-DE.resx b/src/DynamoCoreWpf/Properties/Resources.de-DE.resx
index 9a46b3f15a5..9766e485849 100644
--- a/src/DynamoCoreWpf/Properties/Resources.de-DE.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.de-DE.resx
@@ -3229,7 +3229,7 @@ Sie können dies unter Voreinstellungen -> Sicherheit verwalten.
Die Zuverlässigkeit wird neben jedem empfohlenen Block angezeigt und stellt die geschätzte Wahrscheinlichkeit dar, die aussagt, ob der Block eine gute Wahl ist. Wenn diese Option aktiviert ist, werden empfohlene Blöcke, die nicht die angegebene Zuverlässigkeit erfüllen, ausgeblendet. Sie können auf die Kopfzeile Niedrige Zuverlässigkeit klicken, um die Blöcke anzuzeigen.
- Anzahl der Ergebnisse
+ Number of results for Recommended NodesImportieren
@@ -3790,7 +3790,7 @@ Führen Sie #Download und Installation=https://manage.autodesk.com/products/upda
Zurück zur Dateiauswahl
- This group is frozen. Click to unfreeze.
+ Diese Gruppe ist eingefroren. Klicken Sie, um sie freizugeben.
diff --git a/src/DynamoCoreWpf/Properties/Resources.en-US.resx b/src/DynamoCoreWpf/Properties/Resources.en-US.resx
index c4b1359c43c..d7885855e2a 100644
--- a/src/DynamoCoreWpf/Properties/Resources.en-US.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.en-US.resx
@@ -3573,7 +3573,7 @@ You can manage this in Preferences -> Security.
Confidence level appears next to each recommended node and represents estimated probability that the node is a good choice. When toggled on, this setting hides recommended nodes that don’t meet the specified confidence level. You can click the Low Confidence header to show the nodes.
- Number of results
+ Number of results for Recommended NodesImport
@@ -4155,4 +4155,4 @@ To make this file into a new template, save it to a different folder, then move
This group is frozen. Click to unfreeze.
-
+
\ No newline at end of file
diff --git a/src/DynamoCoreWpf/Properties/Resources.es-ES.resx b/src/DynamoCoreWpf/Properties/Resources.es-ES.resx
index c17bc40aaa2..9fb992f3863 100644
--- a/src/DynamoCoreWpf/Properties/Resources.es-ES.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.es-ES.resx
@@ -3231,7 +3231,7 @@ Puede administrar esto en Preferencias - > Seguridad.
El nivel de confianza aparece junto a cada nodo recomendado y representa la probabilidad estimada de que el nodo sea una buena opción. Si se activa este parámetro, oculta los nodos recomendados que no cumplen el nivel de confianza especificado. Puede hacer clic en el encabezado Confianza baja para visualizar los nodos.
- Número de resultados
+ Number of results for Recommended NodesImportar
@@ -3792,7 +3792,7 @@ Para convertir este archivo en una nueva plantilla, guárdelo en una carpeta dif
Volver a la selección de archivos
- This group is frozen. Click to unfreeze.
+ Este grupo está inutilizado. Haga clic para reutilizarlo.
diff --git a/src/DynamoCoreWpf/Properties/Resources.fr-FR.resx b/src/DynamoCoreWpf/Properties/Resources.fr-FR.resx
index 40fa0b8066d..7653ddf09c1 100644
--- a/src/DynamoCoreWpf/Properties/Resources.fr-FR.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.fr-FR.resx
@@ -3229,7 +3229,7 @@ Vous pouvez gérer ce paramètre dans Préférences -> Sécurité.
Le niveau de confiance apparaît en regard de chaque noeud recommandé et représente la probabilité estimée que le noeud soit un bon choix. Lorsque cette option est activée, ce paramètre masque les noeuds recommandés qui ne répondent pas au niveau de confiance spécifié. Vous pouvez cliquer sur l'en-tête Qualité faible pour afficher les noeuds.
- Nombre de résultats
+ Number of results for Recommended NodesImporter
@@ -3786,7 +3786,7 @@ Pour transformer ce fichier en nouveau gabarit, enregistrez-le dans un autre dos
Retour à la sélection de fichiers
- This group is frozen. Click to unfreeze.
+ Ce groupe est bloqué. Cliquez pour le débloquer.
diff --git a/src/DynamoCoreWpf/Properties/Resources.it-IT.resx b/src/DynamoCoreWpf/Properties/Resources.it-IT.resx
index 1ca516eba9c..4756c51d7b8 100644
--- a/src/DynamoCoreWpf/Properties/Resources.it-IT.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.it-IT.resx
@@ -3213,7 +3213,7 @@ Provare a posizionare il nodo **ByOrigin** evidenziato.
Il livello di affidabilità viene visualizzato accanto a ciascun nodo consigliato e rappresenta la probabilità stimata che il nodo sia una buona scelta. Quando è attivata, questa impostazione nasconde i nodi consigliati che non soddisfano il livello di affidabilità specificato. È possibile fare clic sull'intestazione Bassa affidabilità per mostrare i nodi.
- Numero di risultati
+ Number of results for Recommended NodesImporta
@@ -3774,7 +3774,7 @@ Per trasformare questo file in un nuovo modello, salvarlo in un'altra cartella e
Torna alla selezione di file
- This group is frozen. Click to unfreeze.
+ Questo gruppo è congelato. Fare clic per scongelare.
diff --git a/src/DynamoCoreWpf/Properties/Resources.ja-JP.resx b/src/DynamoCoreWpf/Properties/Resources.ja-JP.resx
index 76dd81e0934..8e3dd9633be 100644
--- a/src/DynamoCoreWpf/Properties/Resources.ja-JP.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.ja-JP.resx
@@ -3231,7 +3231,7 @@ Dynamo を再起動してアンインストールを完了します。
信頼度レベルは、各推奨ノードの横に表示され、そのノードが適切な選択である推定確率を表します。この設定をオンにすると、指定した信頼度レベルを満たさない推奨ノードは非表示になります。それらのノードを表示するには、[低信頼度]ヘッダをクリックします。
- 結果数
+ Number of results for Recommended Nodes読み込み
@@ -3792,7 +3792,7 @@ Dynamo を再起動してアンインストールを完了します。
ファイル選択に戻る
- This group is frozen. Click to unfreeze.
+ このグループはフリーズされています。クリックすると、フリーズが解除されます。
diff --git a/src/DynamoCoreWpf/Properties/Resources.ko-KR.resx b/src/DynamoCoreWpf/Properties/Resources.ko-KR.resx
index 9b8928613b4..37946f4c8c4 100644
--- a/src/DynamoCoreWpf/Properties/Resources.ko-KR.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.ko-KR.resx
@@ -3229,7 +3229,7 @@
신뢰도 수준은 각 권장 노드 옆에 표시되며 노드가 적절한 선택일 수 있는 예상 확률을 나타냅니다. 이 설정을 켜면 지정된 신뢰도 수준을 충족하지 않는 권장 노드가 숨겨집니다. 낮은 신뢰도 헤더를 클릭하여 노드를 표시할 수 있습니다.
- 결과 수
+ Number of results for Recommended Nodes가져오기
@@ -3790,7 +3790,7 @@
파일 선택으로 돌아가기
- This group is frozen. Click to unfreeze.
+ 이 그룹은 동결되었습니다. 동결을 해제하려면 클릭하십시오.
diff --git a/src/DynamoCoreWpf/Properties/Resources.pl-PL.resx b/src/DynamoCoreWpf/Properties/Resources.pl-PL.resx
index b19aa38f74e..87153c4e00f 100644
--- a/src/DynamoCoreWpf/Properties/Resources.pl-PL.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.pl-PL.resx
@@ -3231,7 +3231,7 @@ Można tym zarządzać w obszarze Preferencje -> Zabezpieczenia.
Poziom pewności jest wyświetlany obok każdego zalecanego węzła i oddaje szacowane prawdopodobieństwo, że węzeł jest dobrym wyborem. Po włączeniu to ustawienie ukrywa zalecane węzły, które nie spełniają określonego poziomu pewności. Można kliknąć nagłówek Niska pewność, aby wyświetlić te węzły.
- Liczba wyników
+ Number of results for Recommended NodesImportuj
@@ -3792,7 +3792,7 @@ Aby ustawić ten plik jako nowy szablon, zapisz go w innym folderze, a następni
Powrót do wyboru pliku
- This group is frozen. Click to unfreeze.
+ Ta grupa jest zablokowana. Kliknij, aby odblokować.
diff --git a/src/DynamoCoreWpf/Properties/Resources.pt-BR.resx b/src/DynamoCoreWpf/Properties/Resources.pt-BR.resx
index 58dadc93f5c..128a3851654 100644
--- a/src/DynamoCoreWpf/Properties/Resources.pt-BR.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.pt-BR.resx
@@ -3231,7 +3231,7 @@ Tente colocar o nó **ByOrigin** realçado.
O nível de confiança aparece próximo a cada nó recomendado e representa a probabilidade estimada de que o nó seja uma boa escolha. Quando ativada, essa configuração oculta os nós recomendados que não atendem ao nível de confiança especificado. É possível clicar no cabeçalho Baixa confiança para mostrar os nós.
- Número de resultados
+ Number of results for Recommended NodesImportar
@@ -3792,7 +3792,7 @@ Para transformar este arquivo em um novo modelo, salve-o em uma pasta diferente
Voltar para Seleção de arquivos
- This group is frozen. Click to unfreeze.
+ Esse grupo está congelado. Clique para descongelar.
diff --git a/src/DynamoCoreWpf/Properties/Resources.resx b/src/DynamoCoreWpf/Properties/Resources.resx
index f488ee4113e..01822908f48 100644
--- a/src/DynamoCoreWpf/Properties/Resources.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.resx
@@ -3560,7 +3560,7 @@ You can manage this in Preferences -> Security.
Confidence level appears next to each recommended node and represents estimated probability that the node is a good choice. When toggled on, this setting hides recommended nodes that don’t meet the specified confidence level. You can click the Low Confidence header to show the nodes.
- Number of results
+ Number of results for Recommended NodesImport
diff --git a/src/DynamoCoreWpf/Properties/Resources.ru-RU.resx b/src/DynamoCoreWpf/Properties/Resources.ru-RU.resx
index d953c68d9b3..0a0d70ebd1a 100644
--- a/src/DynamoCoreWpf/Properties/Resources.ru-RU.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.ru-RU.resx
@@ -3231,7 +3231,7 @@
Уровень надежности отображается рядом с каждым рекомендуемым узлом и представляет собой предполагаемую вероятность удачного выбора узла. При включении этого параметра рекомендуемые узлы, которые не соответствуют заданному уровню надежности, скрываются. Для отображения узлов можно щелкнуть заголовок «Низкая надежность».
- Количество результатов
+ Number of results for Recommended NodesИмпорт
@@ -3792,7 +3792,7 @@
Назад к выбору файлов
- This group is frozen. Click to unfreeze.
+ Эта группа заморожена. Щелкните, чтобы разморозить.
diff --git a/src/DynamoCoreWpf/Properties/Resources.zh-CN.resx b/src/DynamoCoreWpf/Properties/Resources.zh-CN.resx
index 49b8f45db81..ad1442d31c6 100644
--- a/src/DynamoCoreWpf/Properties/Resources.zh-CN.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.zh-CN.resx
@@ -3229,7 +3229,7 @@
置信度会显示在每个建议节点的旁边,表示该节点是理想选择的估计概率。启用后,该设置会隐藏不符合指定置信度的建议节点。可以单击“低置信度”标题以显示相应节点。
- 结果数
+ Number of results for Recommended Nodes输入
@@ -3790,7 +3790,7 @@
回到文件选择
- This group is frozen. Click to unfreeze.
+ 此组已冻结。单击以取消冻结。
diff --git a/src/DynamoCoreWpf/Properties/Resources.zh-TW.resx b/src/DynamoCoreWpf/Properties/Resources.zh-TW.resx
index e02f2e56851..6b1d3b5c40b 100644
--- a/src/DynamoCoreWpf/Properties/Resources.zh-TW.resx
+++ b/src/DynamoCoreWpf/Properties/Resources.zh-TW.resx
@@ -3230,7 +3230,7 @@
信賴水準會出現在每個建議的節點旁邊,表示適合使用該節點的預估機率。開啟時,此設定會隱藏未達到指定信賴水準的建議節點。您可以按一下「低信賴」標頭以顯示節點。
- 結果數
+ Number of results for Recommended Nodes匯入
@@ -3791,7 +3791,7 @@
回到檔案選取
- This group is frozen. Click to unfreeze.
+ 此群組已凍結。按一下可解凍。
diff --git a/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs b/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs
index 52d45bf8328..936493cf666 100644
--- a/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs
+++ b/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs
@@ -1841,17 +1841,35 @@ private void OnRuleEvaluationResultsCollectionChanged(object sender, NotifyColle
RaisePropertyChanged(nameof(LinterIssuesCount));
}
+ ///
+ /// Adds the path to the list of recent files.
+ /// We don't do anything if the file is already added and is at the first place,
+ /// we move the file to the start of the list if it is already present,
+ /// or add it to the start of the list if it is not present.
+ /// Every other event, except Move will refresh all the recent files.
+ ///
+ ///
internal void AddToRecentFiles(string path)
{
if (path == null) return;
- if (RecentFiles.Contains(path))
+ var currIdx = RecentFiles.IndexOf(path);
+ if (currIdx == 0) return;
+ else if (currIdx > 0)
{
- RecentFiles.Remove(path);
+ RecentFiles.Move(currIdx, 0);
+ return;
}
RecentFiles.Insert(0, path);
+ UpdateRecentFiles();
+ }
+ ///
+ /// Update recent files list and limits the number of recent files to the maximum number of recent files as set in the preferences.
+ ///
+ internal void UpdateRecentFiles()
+ {
int maxNumRecentFiles = Model.PreferenceSettings.MaxNumRecentFiles;
if (RecentFiles.Count > maxNumRecentFiles)
{
diff --git a/src/DynamoCoreWpf/ViewModels/Core/NodeViewModel.cs b/src/DynamoCoreWpf/ViewModels/Core/NodeViewModel.cs
index 40cf1461824..f15f7613d51 100644
--- a/src/DynamoCoreWpf/ViewModels/Core/NodeViewModel.cs
+++ b/src/DynamoCoreWpf/ViewModels/Core/NodeViewModel.cs
@@ -39,7 +39,7 @@ public partial class NodeViewModel : ViewModelBase
public delegate void SnapInputEventHandler(PortViewModel portViewModel);
public delegate void PreviewPinStatusHandler(bool pinned);
- internal delegate void NodeAutoCompletePopupEventHandler(Popup popup);
+ internal delegate void NodeAutoCompletePopupEventHandler(Window window, PortModel portType, double spacing);
internal delegate void NodeClusterAutoCompletePopupEventHandler(Window window, double spacing);
internal delegate void PortContextMenuPopupEventHandler(Popup popup);
#endregion
@@ -831,9 +831,9 @@ internal bool IsWatchNode
internal event NodeAutoCompletePopupEventHandler RequestAutoCompletePopupPlacementTarget;
internal event PortContextMenuPopupEventHandler RequestPortContextMenuPopupPlacementTarget;
- internal void OnRequestAutoCompletePopupPlacementTarget(Popup popup)
+ internal void OnRequestAutoCompletePopupPlacementTarget(Window window, PortModel portModel, double spacing)
{
- RequestAutoCompletePopupPlacementTarget?.Invoke(popup);
+ RequestAutoCompletePopupPlacementTarget?.Invoke(window, portModel, spacing);
}
internal void OnClusterRequestAutoCompletePopupPlacementTarget(Window window, double spacing)
diff --git a/src/DynamoCoreWpf/ViewModels/Core/PortViewModel.cs b/src/DynamoCoreWpf/ViewModels/Core/PortViewModel.cs
index ff1c8a64610..b81d91c0bcf 100644
--- a/src/DynamoCoreWpf/ViewModels/Core/PortViewModel.cs
+++ b/src/DynamoCoreWpf/ViewModels/Core/PortViewModel.cs
@@ -330,11 +330,10 @@ private T FindChild(DependencyObject parent, Func predicate) where T
///
/// Sets up the node autocomplete window to be placed relative to the node.
///
- /// Node autocomplete popup.
- internal void SetupNodeAutoCompleteWindowPlacement(Popup popup)
+ /// Node autocomplete popup.
+ internal void SetupNodeAutoCompleteWindowPlacement(Window window)
{
- node.OnRequestAutoCompletePopupPlacementTarget(popup);
- popup.CustomPopupPlacementCallback = PlaceAutocompletePopup;
+ node.OnRequestAutoCompletePopupPlacementTarget(window, PortModel, autocompletePopupSpacing);
}
///
@@ -394,33 +393,6 @@ private void ConfigurePopupPlacement(Popup popup, double zoom)
};
}
- private CustomPopupPlacement[] PlaceAutocompletePopup(Size popupSize, Size targetSize, Point offset)
- {
- var zoom = node.WorkspaceViewModel.Zoom;
-
- double x;
- var scaledSpacing = autocompletePopupSpacing * targetSize.Width / node.ActualWidth;
- if (PortModel.PortType == PortType.Input)
- {
- // Offset popup to the left by its width from left edge of node and spacing.
- x = -scaledSpacing - popupSize.Width;
- }
- else
- {
- // Offset popup to the right by node width and spacing from left edge of node.
- x = scaledSpacing + targetSize.Width;
- }
- // Offset popup down from the upper edge of the node by the node header and corresponding to the respective port.
- // Scale the absolute heights by the target height (passed to the callback) and the actual height of the node.
- var scaledHeight = targetSize.Height / node.ActualHeight;
- var absoluteHeight = NodeModel.HeaderHeight + (PortModel.Index * PortModel.Height);
- var y = absoluteHeight * scaledHeight;
-
- var placement = new CustomPopupPlacement(new Point(x, y), PopupPrimaryAxis.None);
-
- return new[] { placement };
- }
-
private CustomPopupPlacement[] PlacePortContextMenu(Size popupSize, Size targetSize, Point offset)
{
// The actual zoom here is confusing
@@ -575,7 +547,7 @@ private void AutoComplete(object parameter)
wsViewModel.NodeAutoCompleteSearchViewModel.PortViewModel = this;
- wsViewModel.OnRequestNodeAutoCompleteSearch(ShowHideFlags.Show);
+ wsViewModel.OnRequestNodeAutoCompleteSearch();
}
// Handler to invoke Node autocomplete cluster
diff --git a/src/DynamoCoreWpf/ViewModels/Core/WorkspaceViewModel.cs b/src/DynamoCoreWpf/ViewModels/Core/WorkspaceViewModel.cs
index 8b83d0d8090..d2052eaa91d 100644
--- a/src/DynamoCoreWpf/ViewModels/Core/WorkspaceViewModel.cs
+++ b/src/DynamoCoreWpf/ViewModels/Core/WorkspaceViewModel.cs
@@ -170,14 +170,14 @@ private void OnRequestHideAllPopup(object param)
RequestHideAllPopup?.Invoke(param);
}
- internal event Action RequestNodeAutoCompleteSearch;
+ internal event Action RequestNodeAutoCompleteSearch;
internal event Action RequestNodeAutoCompleteBar;
internal event Action RequestPortContextMenu;
internal static event Action RequestNodeAutoCompleteViewExtension;
- internal void OnRequestNodeAutoCompleteSearch(ShowHideFlags flag, bool ClusterNodeAutocomplete = false)
+ internal void OnRequestNodeAutoCompleteSearch()
{
- RequestNodeAutoCompleteSearch?.Invoke(flag);
+ RequestNodeAutoCompleteSearch?.Invoke();
}
internal void OnRequestNodeAutocompleteBar(PortViewModel viewModel)
diff --git a/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs b/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs
index cbce1594b0e..c0dd48deacd 100644
--- a/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs
+++ b/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs
@@ -1820,7 +1820,7 @@ private void Model_PropertyChanged(object sender, PropertyChangedEventArgs e)
goto default;
case nameof(MaxNumRecentFiles):
description = Res.ResourceManager.GetString(nameof(Res.PreferencesSettingMaxRecentFiles), System.Globalization.CultureInfo.InvariantCulture);
- UpdateRecentFiles();
+ dynamoViewModel.UpdateRecentFiles();
goto default;
case nameof(PythonTemplateFilePath):
description = Res.ResourceManager.GetString(nameof(Res.PreferencesSettingCustomPythomTemplate), System.Globalization.CultureInfo.InvariantCulture);
@@ -1964,14 +1964,6 @@ private void PythonEnginesChanged(object sender, NotifyCollectionChangedEventArg
AddPythonEnginesOptions();
}
}
-
- private void UpdateRecentFiles()
- {
- if (dynamoViewModel.RecentFiles.Count > MaxNumRecentFiles)
- {
- dynamoViewModel.RecentFiles.RemoveRange(MaxNumRecentFiles, dynamoViewModel.RecentFiles.Count - MaxNumRecentFiles);
- }
- }
}
public class PythonTemplatePathEventArgs : EventArgs
diff --git a/src/DynamoCoreWpf/ViewModels/Search/NodeAutoCompleteSearchViewModel.cs b/src/DynamoCoreWpf/ViewModels/Search/NodeAutoCompleteSearchViewModel.cs
index 2b1a7563d5f..e2180896c3f 100644
--- a/src/DynamoCoreWpf/ViewModels/Search/NodeAutoCompleteSearchViewModel.cs
+++ b/src/DynamoCoreWpf/ViewModels/Search/NodeAutoCompleteSearchViewModel.cs
@@ -45,6 +45,7 @@ public class NodeAutoCompleteSearchViewModel : SearchViewModel
private bool displayLowConfidence;
private const string nodeAutocompleteMLEndpoint = "MLNodeAutocomplete";
private const string nodeClusterAutocompleteMLEndpoint = "MLNodeClusterAutocomplete";
+ internal bool IsOpen { get; set; }
// Lucene search utility to perform indexing operations just for NodeAutocomplete.
internal LuceneSearchUtility LuceneUtility
diff --git a/src/DynamoCoreWpf/Views/Core/DynamoView.xaml.cs b/src/DynamoCoreWpf/Views/Core/DynamoView.xaml.cs
index eabb81cd8cf..a9d0838ad2a 100644
--- a/src/DynamoCoreWpf/Views/Core/DynamoView.xaml.cs
+++ b/src/DynamoCoreWpf/Views/Core/DynamoView.xaml.cs
@@ -3147,7 +3147,6 @@ public void Dispose()
//TODO code smell.
var workspaceView = this.ChildOfType();
workspaceView?.Dispose();
- (workspaceView?.NodeAutoCompleteSearchBar?.Child as IDisposable)?.Dispose();
}
}
}
diff --git a/src/DynamoCoreWpf/Views/Core/NodeView.xaml.cs b/src/DynamoCoreWpf/Views/Core/NodeView.xaml.cs
index 83a2391b2b8..cae571674d8 100644
--- a/src/DynamoCoreWpf/Views/Core/NodeView.xaml.cs
+++ b/src/DynamoCoreWpf/Views/Core/NodeView.xaml.cs
@@ -153,6 +153,8 @@ internal bool HasPreviewControl
private Rectangle nodeBackground;
private ItemsControl outputPortControl;
private Button optionsButton;
+ private Image imageControl;
+ private DockPanel nodeHeaderContent;
//View items referenced outside of NodeView internal to DynamoCoreWPF previously from xaml
//TODO do we rationalize the capitalization?
@@ -316,6 +318,7 @@ static NodeView()
_nodeButtonDotsSelected.Freeze();
_nodeButtonDots.Freeze();
_defaultNodeIcon.Freeze();
+ LoadBmpPorts();
}
public NodeView()
@@ -344,7 +347,8 @@ public NodeView()
nodeBackground = new Rectangle()
{
Name = "nodeBackground",
- Fill = _darkGreyBrush
+ Fill = _darkGreyBrush,
+ Visibility = Visibility.Collapsed
};
Grid.SetRow(nodeBackground, 2);
@@ -361,6 +365,7 @@ public NodeView()
CornerRadius = new CornerRadius(8, 8, 0, 0),
Background = _darkMidGreyBrush,
IsHitTestVisible = true,
+ Visibility = Visibility.Collapsed
};
Grid.SetRow(nameBackground, 1);
@@ -444,11 +449,12 @@ public NodeView()
dynamoToolTip.Content = tooltipStackPanel;
nameBackground.ToolTip = dynamoToolTip;
- var nodeHeaderContent = new DockPanel()
+ nodeHeaderContent = new DockPanel()
{
Name = "nodeHeaderContent",
VerticalAlignment = VerticalAlignment.Top,
Margin = new Thickness(6),
+ Visibility = Visibility.Collapsed
};
Grid.SetRow(nodeHeaderContent, 1);
@@ -567,7 +573,7 @@ public NodeView()
});
dynamoRenameToolTip.Content = toolTipTextBlock;
- renameIndicator.ToolTip = dynamoToolTip;
+ renameIndicator.ToolTip = dynamoRenameToolTip;
#endregion
@@ -578,7 +584,8 @@ public NodeView()
Name = "inputPortControl",
Margin = new Thickness(-25, 3, 0, 0),
VerticalAlignment = VerticalAlignment.Top,
- HorizontalContentAlignment = HorizontalAlignment.Stretch
+ HorizontalContentAlignment = HorizontalAlignment.Stretch,
+ Visibility = Visibility.Collapsed
};
inputPortControl.SetBinding(ItemsControl.ItemsSourceProperty, new Binding("InPorts"));
@@ -592,6 +599,7 @@ public NodeView()
Margin = new Thickness(0, 3, -24, 5),
VerticalAlignment = VerticalAlignment.Top,
HorizontalContentAlignment = HorizontalAlignment.Stretch,
+ Visibility = Visibility.Collapsed
};
outputPortControl.SetBinding(ItemsControl.ItemsSourceProperty, new Binding("OutPorts"));
@@ -1158,6 +1166,17 @@ public NodeView()
Panel.SetZIndex(this, 1);
}
+ private void SetNodeBackgroundHeaderAndPortsVisible()
+ {
+
+ nodeBackground.Visibility = Visibility.Visible;
+ nameBackground.Visibility = Visibility.Visible;
+ nodeHeaderContent.Visibility = Visibility.Visible;
+ inputPortControl.Visibility = Visibility.Visible;
+ outputPortControl.Visibility = Visibility.Visible;
+
+ }
+
private static Style GetNodeButtonStyle()
{
// Create the Style
@@ -1399,6 +1418,48 @@ private static Style GetCodeBlockPortItemControlStyle()
return inOutPortControlStyle;
}
+ //Set up pixel arrays for the port markers
+ static byte[] bluePixels = new byte[5 * 29 * 4];
+ static byte[] bluePixelsDefault = new byte[4 * 27 * 4];
+ static byte[] redPixels = new byte[5 * 29 * 4];
+ static byte[] greyPixels = new byte[5 * 29 * 4];
+
+ //Initialize the port arrays
+ private static void LoadBmpPorts()
+ {
+ for (int i = 0; i < bluePixels.Length; i += 4)
+ {
+ bluePixels[i + 0] = 231; // Blue
+ bluePixels[i + 1] = 192; // Green
+ bluePixels[i + 2] = 106; // Red
+ bluePixels[i + 3] = 255; // Alpha
+ }
+
+ for (int i = 0; i < bluePixelsDefault.Length; i += 4)
+ {
+ bluePixelsDefault[i + 0] = 231; // Blue
+ bluePixelsDefault[i + 1] = 192; // Green
+ bluePixelsDefault[i + 2] = 106; // Red
+ bluePixelsDefault[i + 3] = 255; // Alpha
+ }
+
+ for (int i = 0; i < redPixels.Length; i += 4)
+ {
+ redPixels[i + 0] = 85; // Blue
+ redPixels[i + 1] = 85; // Green
+ redPixels[i + 2] = 235; // Red
+ redPixels[i + 3] = 255; // Alpha
+ }
+
+ for (int i = 0; i < greyPixels.Length; i += 4)
+ {
+ greyPixels[i + 0] = 153; // Blue
+ greyPixels[i + 1] = 153; // Green
+ greyPixels[i + 2] = 153; // Red
+ greyPixels[i + 3] = 255; // Alpha
+ }
+ }
+
private void OnNodeViewUnloaded(object sender, RoutedEventArgs e)
{
ViewModel.NodeLogic.DispatchedToUI -= NodeLogic_DispatchedToUI;
@@ -1473,6 +1534,121 @@ private void OnDataContextChanged(object sender, DependencyPropertyChangedEventA
ViewModel = e.NewValue as NodeViewModel;
+ //Todo move to static resource file
+ //Todo handle cases where Name is the same for multiple nodes (ie Point.ByCoordinate)
+ var path = "C:\\Temp\\NodeCache\\" + ViewModel.Name + ".png";
+ if (System.IO.File.Exists(path))
+ {
+ var bitmap = new BitmapImage(new Uri(path, UriKind.Absolute));
+ var writeableBitmap = new WriteableBitmap(bitmap);
+
+ // Define rectangle position and size
+ int width = 5, height = 29;
+ int bytesPerPixel = (writeableBitmap.Format.BitsPerPixel + 7) / 8;
+
+ int j = 0;
+
+ foreach (var item in ViewModel.InPorts)
+ {
+ var model = item as InPortViewModel;
+ // Define the rectangle's position and size
+ int x = 0; // X coordinate
+ int y = 52 + j; // Y coordinate
+
+ if (model.PortValueMarkerColor.Color.R == 106)
+ {
+ writeableBitmap.WritePixels(
+ new Int32Rect(x + 5, y, width, height),
+ bluePixels,
+ width * bytesPerPixel,
+ 0
+ );
+ }
+ else if(model.PortValueMarkerColor.Color.R == 235)
+ {
+ writeableBitmap.WritePixels(
+ new Int32Rect(x + 5, y, width, height),
+ redPixels,
+ width * bytesPerPixel,
+ 0
+ );
+ }
+ else
+ {
+ writeableBitmap.WritePixels(
+ new Int32Rect(x + 5, y, width, height),
+ greyPixels,
+ width * bytesPerPixel,
+ 0
+ );
+ }
+
+ if (model.PortDefaultValueMarkerVisible)
+ {
+ writeableBitmap.WritePixels(
+ new Int32Rect(x, y + 1, width - 1, height - 2),
+ bluePixelsDefault,
+ (width-1) * bytesPerPixel,
+ 0
+ );
+ }
+
+ j += 34;
+ }
+
+ j = 0;
+ foreach (var item in ViewModel.OutPorts)
+ {
+ var model = item as OutPortViewModel;
+ // Define the rectangle's position and size
+ int x = (int)writeableBitmap.Width - 5; // X coordinate
+ int y = 53 + j; // Y coordinate
+
+ if (model.PortDefaultValueMarkerVisible)
+ {
+ writeableBitmap.WritePixels(
+ new Int32Rect(x, y, width, height),
+ greyPixels,
+ width * bytesPerPixel,
+ 0
+ );
+ }
+
+ j += 34;
+ }
+
+ // Create the Image control
+ imageControl = new Image
+ {
+ Source = writeableBitmap,
+ Margin = new Thickness(-5, 0, 0, 0),
+ Width = writeableBitmap.PixelWidth, // Set width to pixel width
+ Height = writeableBitmap.PixelHeight, // Set height to pixel height
+ Stretch = System.Windows.Media.Stretch.None // Prevent scaling
+ };
+
+ Grid.SetRow(imageControl, 1);
+ Grid.SetRowSpan(imageControl, 3);
+ Grid.SetColumnSpan(imageControl, 3);
+
+ grid.Children.Add(imageControl);
+
+ Dispatcher.CurrentDispatcher.BeginInvoke(() =>
+ {
+ if (imageControl != null)
+ {
+ grid.Children.Remove(imageControl);
+ imageControl = null;
+
+ SetNodeBackgroundHeaderAndPortsVisible();
+ }
+ }, DispatcherPriority.Background);
+ }
+ else
+ {
+ SetNodeBackgroundHeaderAndPortsVisible();
+ }
+
//Set NodeIcon
if (ViewModel.ImageSource == null)
{
@@ -1661,19 +1837,33 @@ private void CachedValueChanged()
}));
}
- private void ViewModel_RequestAutoCompletePopupPlacementTarget(Popup popup)
+ private Point PointToLocal(double x, double y, UIElement target)
{
- popup.PlacementTarget = this;
+ Point positionFromScreen = target.PointToScreen(new Point(x, y));
+ PresentationSource source = PresentationSource.FromVisual(target);
+ Point targetPoints = source.CompositionTarget.TransformFromDevice.Transform(positionFromScreen);
+ return targetPoints;
+ }
- ViewModel.ActualHeight = ActualHeight;
- ViewModel.ActualWidth = ActualWidth;
+ private void ViewModel_RequestAutoCompletePopupPlacementTarget(Window window, PortModel portModel, double spacing)
+ {
+ if (portModel.PortType == PortType.Input)
+ {
+ var portView = inputPortControl.ItemContainerGenerator.ContainerFromIndex(portModel.Index) as FrameworkElement;
+ window.Top = PointToLocal(0, 0, portView).Y;
+ window.Left = PointToLocal(0, 0, this).X - window.Width - spacing;
+ }
+ else
+ {
+ var portView = outputPortControl.ItemContainerGenerator.ContainerFromIndex(portModel.Index) as FrameworkElement;
+ window.Top = PointToLocal(0, 0, portView).Y;
+ window.Left = PointToLocal(ActualWidth, 0, this).X + spacing;
+ }
}
private void ViewModel_RequestClusterAutoCompletePopupPlacementTarget(Window window, double spacing)
{
- Point positionFromScreen = PointToScreen(new Point(0, this.ActualHeight));
- PresentationSource source = PresentationSource.FromVisual(this);
- Point targetPoints = source.CompositionTarget.TransformFromDevice.Transform(positionFromScreen);
+ Point targetPoints = PointToLocal(0, ActualHeight, this);
window.Left = targetPoints.X;
window.Top = targetPoints.Y + spacing;
@@ -1885,6 +2075,16 @@ private void EditableNameBox_KeyDown(object sender, KeyEventArgs e)
private void OnNodeViewMouseEnter(object sender, MouseEventArgs e)
{
+ if (imageControl != null)
+ {
+ grid.Dispatcher.Invoke(() =>
+ {
+ grid.Children.Remove(imageControl);
+ imageControl = null;
+
+ SetNodeBackgroundHeaderAndPortsVisible();
+ });
+ }
// if the node is located under "Hide preview bubbles" menu item and the item is clicked,
// ViewModel.DynamoViewModel.ShowPreviewBubbles will be updated AFTER node mouse enter event occurs
// so, wait while ShowPreviewBubbles binding updates value
@@ -1948,7 +2148,7 @@ private void OnNodeViewMouseLeave(object sender, MouseEventArgs e)
}
// If it's condensed, then try to hide it.
if (PreviewControl.IsCondensed && Mouse.Captured == null)
- {
+ {
PreviewControl.TransitionToState(PreviewControl.State.Hidden);
}
}
diff --git a/src/DynamoCoreWpf/Views/Core/WorkspaceView.xaml b/src/DynamoCoreWpf/Views/Core/WorkspaceView.xaml
index 7d3f61daa72..1bfdf4a4244 100644
--- a/src/DynamoCoreWpf/Views/Core/WorkspaceView.xaml
+++ b/src/DynamoCoreWpf/Views/Core/WorkspaceView.xaml
@@ -369,15 +369,6 @@
-
-
-
-
-
-
+
+
-
+
-
+
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml.cs b/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml.cs
index 67062fbf217..8f609eee317 100644
--- a/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml.cs
+++ b/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml.cs
@@ -18,7 +18,6 @@
using Dynamo.Logging;
using Dynamo.UI;
using Dynamo.ViewModels;
-using static Dynamo.ViewModels.SearchViewModel;
using Res = Dynamo.Wpf.Properties.Resources;
namespace Dynamo.Wpf.Views
@@ -86,7 +85,6 @@ public PreferencesView(DynamoView dynamoView)
ResetGroupStyleForm();
StoreOriginalCustomGroupStyles();
- displayConfidenceLevel();
this.viewModel.InitializeGeometryScaling();
@@ -602,22 +600,6 @@ int getExtraLeftSpace(int confidenceLevel)
}
}
return value;
- }
-
- private void sliderConfidenceLevel_ValueChanged(object sender, RoutedPropertyChangedEventArgs e)
- {
- displayConfidenceLevel();
- }
-
- private void displayConfidenceLevel()
- {
- if (this.lblConfidenceLevel != null && this.lblConfidenceLevelLabelStart != null)
- {
- int confidenceLevel = (int)lblConfidenceLevel.Content;
-
- int left = ((int)lblConfidenceLevel.Content * 3) + getExtraLeftSpace(confidenceLevel);
- this.lblConfidenceLevel.Margin = new Thickness(left, -15, 0, 0);
- }
}
private void ZoomScaleLevel_ValueChanged(object sender, RoutedPropertyChangedEventArgs e)
diff --git a/src/Libraries/CoreNodeModels/Properties/Resources.cs-CZ.resx b/src/Libraries/CoreNodeModels/Properties/Resources.cs-CZ.resx
index 55522bdc2ba..44e6d22f098 100644
--- a/src/Libraries/CoreNodeModels/Properties/Resources.cs-CZ.resx
+++ b/src/Libraries/CoreNodeModels/Properties/Resources.cs-CZ.resx
@@ -694,6 +694,6 @@ double[]
Vybraná barva
- When mapping numbers along the curve, some Y values fall outside the specified Y-value domain range.
+ Při mapování čísel podél křivky spadají některé hodnoty Y mimo zadaný rozsah domény hodnoty Y.
\ No newline at end of file
diff --git a/src/Libraries/CoreNodeModels/Properties/Resources.de-DE.resx b/src/Libraries/CoreNodeModels/Properties/Resources.de-DE.resx
index 64d1976a5b0..efecb4c7bba 100644
--- a/src/Libraries/CoreNodeModels/Properties/Resources.de-DE.resx
+++ b/src/Libraries/CoreNodeModels/Properties/Resources.de-DE.resx
@@ -694,6 +694,6 @@ double[]
Ausgewählte Farbe
- When mapping numbers along the curve, some Y values fall outside the specified Y-value domain range.
+ Beim Zuordnen von Zahlen entlang der Kurve liegen einige Y-Werte außerhalb des angegebenen Y-Wert-Domänenbereichs.
\ No newline at end of file
diff --git a/src/Libraries/CoreNodeModels/Properties/Resources.es-ES.resx b/src/Libraries/CoreNodeModels/Properties/Resources.es-ES.resx
index 13472ad9051..7c01a6ea6a8 100644
--- a/src/Libraries/CoreNodeModels/Properties/Resources.es-ES.resx
+++ b/src/Libraries/CoreNodeModels/Properties/Resources.es-ES.resx
@@ -694,6 +694,6 @@ double[]
Color seleccionado
- When mapping numbers along the curve, some Y values fall outside the specified Y-value domain range.
+ Al asignar números a lo largo de la curva, algunos valores Y quedan fuera del intervalo del dominio del valor Y especificado.
\ No newline at end of file
diff --git a/src/Libraries/CoreNodeModels/Properties/Resources.fr-FR.resx b/src/Libraries/CoreNodeModels/Properties/Resources.fr-FR.resx
index f15b8c658fd..cfaca36e53e 100644
--- a/src/Libraries/CoreNodeModels/Properties/Resources.fr-FR.resx
+++ b/src/Libraries/CoreNodeModels/Properties/Resources.fr-FR.resx
@@ -694,6 +694,6 @@ double[]
Couleur sélectionnée
- When mapping numbers along the curve, some Y values fall outside the specified Y-value domain range.
+ Lors du mappage de nombres le long de la courbe, certaines valeurs Y se situent en dehors de la plage de domaine de valeurs Y spécifiée.
\ No newline at end of file
diff --git a/src/Libraries/CoreNodeModels/Properties/Resources.it-IT.resx b/src/Libraries/CoreNodeModels/Properties/Resources.it-IT.resx
index 5b40cee03e9..2cdeb3cb5bd 100644
--- a/src/Libraries/CoreNodeModels/Properties/Resources.it-IT.resx
+++ b/src/Libraries/CoreNodeModels/Properties/Resources.it-IT.resx
@@ -694,6 +694,6 @@ double[]
Colore selezionato
- When mapping numbers along the curve, some Y values fall outside the specified Y-value domain range.
+ Quando si mappano i numeri lungo la curva, alcuni valori Y non rientrano nell'intervallo di dominio del valore Y specificato.
\ No newline at end of file
diff --git a/src/Libraries/CoreNodeModels/Properties/Resources.ja-JP.resx b/src/Libraries/CoreNodeModels/Properties/Resources.ja-JP.resx
index 3e083bf27e4..6b942b6cb8d 100644
--- a/src/Libraries/CoreNodeModels/Properties/Resources.ja-JP.resx
+++ b/src/Libraries/CoreNodeModels/Properties/Resources.ja-JP.resx
@@ -694,6 +694,6 @@ double[]
選択した色
- When mapping numbers along the curve, some Y values fall outside the specified Y-value domain range.
+ 曲線に沿って数値をマッピングすると、一部の Y 値が指定した Y 値の範囲外になります。
\ No newline at end of file
diff --git a/src/Libraries/CoreNodeModels/Properties/Resources.ko-KR.resx b/src/Libraries/CoreNodeModels/Properties/Resources.ko-KR.resx
index 357c2135dd9..5c83380ea0b 100644
--- a/src/Libraries/CoreNodeModels/Properties/Resources.ko-KR.resx
+++ b/src/Libraries/CoreNodeModels/Properties/Resources.ko-KR.resx
@@ -694,6 +694,6 @@ double[]
선택된 색상
- When mapping numbers along the curve, some Y values fall outside the specified Y-value domain range.
+ 곡선을 따라 숫자를 매핑할 때 일부 Y 값이 지정된 Y 값 도메인 범위를 벗어납니다.
\ No newline at end of file
diff --git a/src/Libraries/CoreNodeModels/Properties/Resources.pl-PL.resx b/src/Libraries/CoreNodeModels/Properties/Resources.pl-PL.resx
index 2c15ab88535..eb9cf5ac2e5 100644
--- a/src/Libraries/CoreNodeModels/Properties/Resources.pl-PL.resx
+++ b/src/Libraries/CoreNodeModels/Properties/Resources.pl-PL.resx
@@ -694,6 +694,6 @@ double[]
Wybrany kolor
- When mapping numbers along the curve, some Y values fall outside the specified Y-value domain range.
+ Podczas odwzorowywania liczb wzdłuż krzywej niektóre wartości Y wykraczają poza określony zakres w dziedzinie wartości Y.
\ No newline at end of file
diff --git a/src/Libraries/CoreNodeModels/Properties/Resources.pt-BR.resx b/src/Libraries/CoreNodeModels/Properties/Resources.pt-BR.resx
index a73807e3f84..add3bffcd65 100644
--- a/src/Libraries/CoreNodeModels/Properties/Resources.pt-BR.resx
+++ b/src/Libraries/CoreNodeModels/Properties/Resources.pt-BR.resx
@@ -694,6 +694,6 @@ double[]
Cor selecionada
- When mapping numbers along the curve, some Y values fall outside the specified Y-value domain range.
+ Ao mapear números ao longo da curva, alguns valores de Y ficam fora do intervalo de domínio dos valores de Y especificado.
\ No newline at end of file
diff --git a/src/Libraries/CoreNodeModels/Properties/Resources.ru-RU.resx b/src/Libraries/CoreNodeModels/Properties/Resources.ru-RU.resx
index 454d5ce0849..f18d17eb31a 100644
--- a/src/Libraries/CoreNodeModels/Properties/Resources.ru-RU.resx
+++ b/src/Libraries/CoreNodeModels/Properties/Resources.ru-RU.resx
@@ -694,6 +694,6 @@ double[]
Выбранный цвет
- When mapping numbers along the curve, some Y values fall outside the specified Y-value domain range.
+ При сопоставлении чисел вдоль кривой некоторые значения Y оказались за пределами заданного диапазона области значений Y.
\ No newline at end of file
diff --git a/src/Libraries/CoreNodeModels/Properties/Resources.zh-CN.resx b/src/Libraries/CoreNodeModels/Properties/Resources.zh-CN.resx
index a8cabf58cd5..171ebabaabd 100644
--- a/src/Libraries/CoreNodeModels/Properties/Resources.zh-CN.resx
+++ b/src/Libraries/CoreNodeModels/Properties/Resources.zh-CN.resx
@@ -694,6 +694,6 @@ double[]
选定的颜色
- When mapping numbers along the curve, some Y values fall outside the specified Y-value domain range.
+ 沿曲线映射数字时,某些 Y 值超出指定的 Y 值域范围。
\ No newline at end of file
diff --git a/src/Libraries/CoreNodeModels/Properties/Resources.zh-TW.resx b/src/Libraries/CoreNodeModels/Properties/Resources.zh-TW.resx
index dfe8caa4589..99fceece5cb 100644
--- a/src/Libraries/CoreNodeModels/Properties/Resources.zh-TW.resx
+++ b/src/Libraries/CoreNodeModels/Properties/Resources.zh-TW.resx
@@ -694,6 +694,6 @@ double[]
選取的顏色
- When mapping numbers along the curve, some Y values fall outside the specified Y-value domain range.
+ 沿著曲線對映數字時,某些 Y 值超出指定的 Y 值定義域範圍。
\ No newline at end of file
diff --git a/src/Libraries/CoreNodes/Properties/Resources.cs-CZ.resx b/src/Libraries/CoreNodes/Properties/Resources.cs-CZ.resx
index 317e6bb9f34..ac6c1ac543e 100644
--- a/src/Libraries/CoreNodes/Properties/Resources.cs-CZ.resx
+++ b/src/Libraries/CoreNodes/Properties/Resources.cs-CZ.resx
@@ -235,15 +235,15 @@
Vstup musí být jedna hodnota nebo nevnořený seznam.
- • Min and Max values must be different.
+ • Minimální a maximální hodnoty se musí lišit.
- • Values must be a list of numbers or a single number ≥ 2.
+ • Hodnoty musí být seznam čísel nebo jedno číslo ≥ 2.
- • Control points for the selected curve are not valid.
+ • Řídicí body pro vybranou křivku nejsou platné.
- • X and Y inputs must be single numbers (not lists).
+ • Vstupy X a Y musí být jednotlivá čísla (ne seznamy).
\ No newline at end of file
diff --git a/src/Libraries/CoreNodes/Properties/Resources.de-DE.resx b/src/Libraries/CoreNodes/Properties/Resources.de-DE.resx
index dbe0c5cb450..95c2ab6db80 100644
--- a/src/Libraries/CoreNodes/Properties/Resources.de-DE.resx
+++ b/src/Libraries/CoreNodes/Properties/Resources.de-DE.resx
@@ -235,15 +235,15 @@
Eingabe muss ein einzelner Wert oder eine nicht verschachtelte Liste sein.
- • Min and Max values must be different.
+ • Mindest- und Maximalwerte müssen unterschiedlich sein.
- • Values must be a list of numbers or a single number ≥ 2.
+ • Werte müssen eine Liste von Zahlen oder eine einzelne Zahl ≥ 2 sein.
- • Control points for the selected curve are not valid.
+ • Steuerpunkte für die ausgewählte Kurve sind nicht gültig.
- • X and Y inputs must be single numbers (not lists).
+ • X- und Y-Eingaben müssen einzelne Zahlen sein (keine Listen).
\ No newline at end of file
diff --git a/src/Libraries/CoreNodes/Properties/Resources.es-ES.resx b/src/Libraries/CoreNodes/Properties/Resources.es-ES.resx
index 66cc315689c..a5fb24400bf 100644
--- a/src/Libraries/CoreNodes/Properties/Resources.es-ES.resx
+++ b/src/Libraries/CoreNodes/Properties/Resources.es-ES.resx
@@ -235,15 +235,15 @@
La entrada debe ser un único valor o una lista no anidada.
- • Min and Max values must be different.
+ • Los valores mínimo y máximo deben ser diferentes.
- • Values must be a list of numbers or a single number ≥ 2.
+ • Los valores deben ser una lista de números o un solo número ≥ 2.
- • Control points for the selected curve are not valid.
+ • Los puntos de control de la curva seleccionada no son válidos.
- • X and Y inputs must be single numbers (not lists).
+ • Las entradas X e Y deben ser números únicos (no listas).
\ No newline at end of file
diff --git a/src/Libraries/CoreNodes/Properties/Resources.fr-FR.resx b/src/Libraries/CoreNodes/Properties/Resources.fr-FR.resx
index b6abe654b34..ebd6409f1e5 100644
--- a/src/Libraries/CoreNodes/Properties/Resources.fr-FR.resx
+++ b/src/Libraries/CoreNodes/Properties/Resources.fr-FR.resx
@@ -235,15 +235,15 @@
L'entrée doit être une valeur unique ou une liste non imbriquée.
- • Min and Max values must be different.
+ • Les valeurs Min et Max doivent être différentes.
- • Values must be a list of numbers or a single number ≥ 2.
+ • Les valeurs doivent être indiquées sous forme de liste de nombres ou en un seul nombre ≥ 2.
- • Control points for the selected curve are not valid.
+ • Les points de contrôle de la courbe sélectionnée ne sont pas valides.
- • X and Y inputs must be single numbers (not lists).
+ • Les entrées X et Y doivent être des nombres uniques (et non des listes).
\ No newline at end of file
diff --git a/src/Libraries/CoreNodes/Properties/Resources.it-IT.resx b/src/Libraries/CoreNodes/Properties/Resources.it-IT.resx
index 624f61ac9f4..cd6df8254f6 100644
--- a/src/Libraries/CoreNodes/Properties/Resources.it-IT.resx
+++ b/src/Libraries/CoreNodes/Properties/Resources.it-IT.resx
@@ -235,15 +235,15 @@
L'input deve essere un singolo valore o un elenco non nidificato.
- • Min and Max values must be different.
+ • I valori minimo e massimo devono essere diversi.
- • Values must be a list of numbers or a single number ≥ 2.
+ • I valori devono essere un elenco di numeri o un numero singolo ≥ 2.
- • Control points for the selected curve are not valid.
+ • I punti di controllo per la curva selezionata non sono validi.
- • X and Y inputs must be single numbers (not lists).
+ • Gli input X e Y devono essere numeri singoli (non elenchi).
\ No newline at end of file
diff --git a/src/Libraries/CoreNodes/Properties/Resources.ja-JP.resx b/src/Libraries/CoreNodes/Properties/Resources.ja-JP.resx
index 7c802c1358e..5d52e241744 100644
--- a/src/Libraries/CoreNodes/Properties/Resources.ja-JP.resx
+++ b/src/Libraries/CoreNodes/Properties/Resources.ja-JP.resx
@@ -235,15 +235,15 @@
入力は単一の値またはネストされていないリストである必要があります。
- • Min and Max values must be different.
+ • 最小値と最大値は異なる値である必要があります。
- • Values must be a list of numbers or a single number ≥ 2.
+ • 値は数値のリストまたは ≥ 2 の単一の数値である必要があります。
- • Control points for the selected curve are not valid.
+ • 選択した曲線の制御点が無効です。
- • X and Y inputs must be single numbers (not lists).
+ • X と Y の入力値は(リストではなく)単一の数値である必要があります。
\ No newline at end of file
diff --git a/src/Libraries/CoreNodes/Properties/Resources.ko-KR.resx b/src/Libraries/CoreNodes/Properties/Resources.ko-KR.resx
index 99fd8ac9d26..e0a10cb318a 100644
--- a/src/Libraries/CoreNodes/Properties/Resources.ko-KR.resx
+++ b/src/Libraries/CoreNodes/Properties/Resources.ko-KR.resx
@@ -235,15 +235,15 @@
입력은 단일 값 또는 내포되지 않은 리스트여야 합니다.
- • Min and Max values must be different.
+ • 최소값과 최대값은 달라야 합니다.
- • Values must be a list of numbers or a single number ≥ 2.
+ • 값은 숫자 리스트이거나 2 이상의 단일 숫자여야 합니다.
- • Control points for the selected curve are not valid.
+ • 선택한 곡선의 제어점이 유효하지 않습니다.
- • X and Y inputs must be single numbers (not lists).
+ • X 및 Y 입력은 리스트가 아닌 단일 숫자여야 합니다.
\ No newline at end of file
diff --git a/src/Libraries/CoreNodes/Properties/Resources.pl-PL.resx b/src/Libraries/CoreNodes/Properties/Resources.pl-PL.resx
index c92057e8839..5ba29f120c4 100644
--- a/src/Libraries/CoreNodes/Properties/Resources.pl-PL.resx
+++ b/src/Libraries/CoreNodes/Properties/Resources.pl-PL.resx
@@ -235,15 +235,15 @@
Dane wejściowe muszą być pojedynczą wartością lub listą niezagnieżdżoną.
- • Min and Max values must be different.
+ • Wartości minimalne i maksymalne muszą się różnić.
- • Values must be a list of numbers or a single number ≥ 2.
+ • Wartości muszą być listą liczb lub pojedynczą liczbą ≥ 2.
- • Control points for the selected curve are not valid.
+ • Punkty sterowania dla wybranej krzywej nie są prawidłowe.
- • X and Y inputs must be single numbers (not lists).
+ • Dane wejściowe X i Y muszą być pojedynczymi liczbami (nie listami).
\ No newline at end of file
diff --git a/src/Libraries/CoreNodes/Properties/Resources.pt-BR.resx b/src/Libraries/CoreNodes/Properties/Resources.pt-BR.resx
index 7c2c7334147..95e0bcf9d09 100644
--- a/src/Libraries/CoreNodes/Properties/Resources.pt-BR.resx
+++ b/src/Libraries/CoreNodes/Properties/Resources.pt-BR.resx
@@ -235,15 +235,15 @@
A entrada deve ser um valor único ou uma lista não aninhada.
- • Min and Max values must be different.
+ • Os valores mínimo e máximo devem ser diferentes.
- • Values must be a list of numbers or a single number ≥ 2.
+ • Os valores devem ser uma lista de números ou um número único ≥ 2.
- • Control points for the selected curve are not valid.
+ • Os pontos de controle da curva selecionada não são válidos.
- • X and Y inputs must be single numbers (not lists).
+ • As entradas X e Y devem ser números únicos (não listas).
\ No newline at end of file
diff --git a/src/Libraries/CoreNodes/Properties/Resources.ru-RU.resx b/src/Libraries/CoreNodes/Properties/Resources.ru-RU.resx
index 0d873a172f7..bf054b05771 100644
--- a/src/Libraries/CoreNodes/Properties/Resources.ru-RU.resx
+++ b/src/Libraries/CoreNodes/Properties/Resources.ru-RU.resx
@@ -235,15 +235,15 @@
Входное значение должно быть одним значением или не являться вложенным списком.
- • Min and Max values must be different.
+ • Минимальное и максимальное значения должны отличаться.
- • Values must be a list of numbers or a single number ≥ 2.
+ • Значения должны быть списком чисел или одиночным числом ≥ 2.
- • Control points for the selected curve are not valid.
+ • Недопустимые управляющие точки для выбранной кривой.
- • X and Y inputs must be single numbers (not lists).
+ • Входные данные X и Y должны быть одиночными числами (не списками).
\ No newline at end of file
diff --git a/src/Libraries/CoreNodes/Properties/Resources.zh-CN.resx b/src/Libraries/CoreNodes/Properties/Resources.zh-CN.resx
index 4334a9c0902..2b3f6f39ea4 100644
--- a/src/Libraries/CoreNodes/Properties/Resources.zh-CN.resx
+++ b/src/Libraries/CoreNodes/Properties/Resources.zh-CN.resx
@@ -235,15 +235,15 @@
输入必须是单个值或非嵌套列表。
- • Min and Max values must be different.
+ • 最小值和最大值必须不同。
- • Values must be a list of numbers or a single number ≥ 2.
+ • 值必须是数字列表或单个数字 ≥ 2。
- • Control points for the selected curve are not valid.
+ • 选定曲线的控制点无效。
- • X and Y inputs must be single numbers (not lists).
+ • X 和 Y 输入必须是单个数字(而不是列表)。
\ No newline at end of file
diff --git a/src/Libraries/CoreNodes/Properties/Resources.zh-TW.resx b/src/Libraries/CoreNodes/Properties/Resources.zh-TW.resx
index cc56da38a3b..b70dc8b6529 100644
--- a/src/Libraries/CoreNodes/Properties/Resources.zh-TW.resx
+++ b/src/Libraries/CoreNodes/Properties/Resources.zh-TW.resx
@@ -235,15 +235,15 @@
輸入必須是單一值或非巢狀清單。
- • Min and Max values must be different.
+ • 最小值和最大值必須不同。
- • Values must be a list of numbers or a single number ≥ 2.
+ • 值必須是一個數字清單或一個 ≥ 2 的數字。
- • Control points for the selected curve are not valid.
+ • 所選曲線的控制點無效。
- • X and Y inputs must be single numbers (not lists).
+ • X 和 Y 輸入必須是一個數字 (不是清單)。
\ No newline at end of file
diff --git a/src/Libraries/DSOfficeUtilities/OpenXmlHelper.cs b/src/Libraries/DSOfficeUtilities/OpenXmlHelper.cs
index 3ef14d347b6..75e1b83243c 100644
--- a/src/Libraries/DSOfficeUtilities/OpenXmlHelper.cs
+++ b/src/Libraries/DSOfficeUtilities/OpenXmlHelper.cs
@@ -163,17 +163,21 @@ internal static bool Write(string filePath, string sheetName, object[][] data, i
}
Row row;
+ //This case is when we need to append a new row at the end of the spreadsheet
if (rowsIndex >= rows.Count)
{
// Add a new row to the end
row = new Row() { RowIndex = currentRowIndex };
sheetData.AppendChild(row);
}
+ //This case is when there are empty rows before or in between the populated rows
else if (rows[rowsIndex].RowIndex > currentRowIndex)
{
// Add a new row before this one
row = new Row() { RowIndex = currentRowIndex };
- sheetData.InsertBefore(rows[rowsIndex], row);
+
+ //This is the method definition - InsertBefore(newChild, referenceChild), so we need to pass row as first argument
+ sheetData.InsertBefore(row, rows[rowsIndex]);
}
else
{
@@ -608,6 +612,14 @@ private static void SetCellValue(object value, Cell cell, SharedStringTable shar
{
// The string is not in the table, so we add it
sharedStringTable.AppendChild(new SharedStringItem(new Text((string)value)));
+
+ //Means that the current (row, column) is probably empty so we should start from 0
+ if (sharedStringTable.Count == null)
+ {
+ sharedStringTable.Count = 0;
+ sharedStringTable.UniqueCount = 0;
+ }
+
index = (int)sharedStringTable.Count.Value;
// Yes, you need to update these manually
sharedStringTable.Count++;
diff --git a/src/NodeAutoCompleteViewExtension/Properties/Resources.Designer.cs b/src/NodeAutoCompleteViewExtension/Properties/Resources.Designer.cs
index dd736790326..18f548ff19d 100644
--- a/src/NodeAutoCompleteViewExtension/Properties/Resources.Designer.cs
+++ b/src/NodeAutoCompleteViewExtension/Properties/Resources.Designer.cs
@@ -59,5 +59,41 @@ internal Resources() {
resourceCulture = value;
}
}
+
+ ///
+ /// Looks up a localized string similar to Cluster.
+ ///
+ public static string Cluster {
+ get {
+ return ResourceManager.GetString("Cluster", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Node AutoComplete View Extension.
+ ///
+ public static string ExtensionName {
+ get {
+ return ResourceManager.GetString("ExtensionName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Node Type Match.
+ ///
+ public static string NodeTypeMatch {
+ get {
+ return ResourceManager.GetString("NodeTypeMatch", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Single.
+ ///
+ public static string Single {
+ get {
+ return ResourceManager.GetString("Single", resourceCulture);
+ }
+ }
}
}
diff --git a/src/NodeAutoCompleteViewExtension/Properties/Resources.cs-CZ.resx b/src/NodeAutoCompleteViewExtension/Properties/Resources.cs-CZ.resx
index ffba7e34c4f..515f027380b 100644
--- a/src/NodeAutoCompleteViewExtension/Properties/Resources.cs-CZ.resx
+++ b/src/NodeAutoCompleteViewExtension/Properties/Resources.cs-CZ.resx
@@ -117,7 +117,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Cluster
+
Automatické dokončování uzlů rozšíření pohledu
+
+ Shoda typů uzlů
+
+
+ Jeden
+
\ No newline at end of file
diff --git a/src/NodeAutoCompleteViewExtension/Properties/Resources.de-DE.resx b/src/NodeAutoCompleteViewExtension/Properties/Resources.de-DE.resx
index 179591e5541..170a275c50c 100644
--- a/src/NodeAutoCompleteViewExtension/Properties/Resources.de-DE.resx
+++ b/src/NodeAutoCompleteViewExtension/Properties/Resources.de-DE.resx
@@ -117,7 +117,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Cluster
+
Ansichtserweiterung der automatischen Blockvervollständigung
+
+ Blocktypübereinstimmung
+
+
+ Einzeln
+
\ No newline at end of file
diff --git a/src/NodeAutoCompleteViewExtension/Properties/Resources.en-US.resx b/src/NodeAutoCompleteViewExtension/Properties/Resources.en-US.resx
index cac2e189f4a..ce5e315cd87 100644
--- a/src/NodeAutoCompleteViewExtension/Properties/Resources.en-US.resx
+++ b/src/NodeAutoCompleteViewExtension/Properties/Resources.en-US.resx
@@ -117,7 +117,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Cluster
+
Node AutoComplete View Extension
+
+ Node Type Match
+
+
+ Single
+
\ No newline at end of file
diff --git a/src/NodeAutoCompleteViewExtension/Properties/Resources.es-ES.resx b/src/NodeAutoCompleteViewExtension/Properties/Resources.es-ES.resx
index 9319fdd3ede..01143343ecd 100644
--- a/src/NodeAutoCompleteViewExtension/Properties/Resources.es-ES.resx
+++ b/src/NodeAutoCompleteViewExtension/Properties/Resources.es-ES.resx
@@ -117,7 +117,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Clúster
+
Extensión de vista de Autocompletar nodo
+
+ Coincidencia de tipo de nodo
+
+
+ Simple
+
\ No newline at end of file
diff --git a/src/NodeAutoCompleteViewExtension/Properties/Resources.fr-FR.resx b/src/NodeAutoCompleteViewExtension/Properties/Resources.fr-FR.resx
index f377b9f680b..c7f0e59396b 100644
--- a/src/NodeAutoCompleteViewExtension/Properties/Resources.fr-FR.resx
+++ b/src/NodeAutoCompleteViewExtension/Properties/Resources.fr-FR.resx
@@ -117,7 +117,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Regroupements
+
Extension de vue de saisie automatique des noeuds
+
+ Correspondance du type de noeud
+
+
+ Unique
+
\ No newline at end of file
diff --git a/src/NodeAutoCompleteViewExtension/Properties/Resources.it-IT.resx b/src/NodeAutoCompleteViewExtension/Properties/Resources.it-IT.resx
index 9114b496069..2a67bc9807c 100644
--- a/src/NodeAutoCompleteViewExtension/Properties/Resources.it-IT.resx
+++ b/src/NodeAutoCompleteViewExtension/Properties/Resources.it-IT.resx
@@ -117,7 +117,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Cluster
+
Estensione vista Completamento automatico nodi
+
+ Corrispondenza tipo di nodo
+
+
+ Singolo
+
\ No newline at end of file
diff --git a/src/NodeAutoCompleteViewExtension/Properties/Resources.ja-JP.resx b/src/NodeAutoCompleteViewExtension/Properties/Resources.ja-JP.resx
index 8e6258fa69c..c371d04c757 100644
--- a/src/NodeAutoCompleteViewExtension/Properties/Resources.ja-JP.resx
+++ b/src/NodeAutoCompleteViewExtension/Properties/Resources.ja-JP.resx
@@ -117,7 +117,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ クラスター
+
ノード オートコンプリート ビュー拡張機能
+
+ ノード タイプ一致
+
+
+ 単一
+
\ No newline at end of file
diff --git a/src/NodeAutoCompleteViewExtension/Properties/Resources.ko-KR.resx b/src/NodeAutoCompleteViewExtension/Properties/Resources.ko-KR.resx
index c57ed73d759..907be594015 100644
--- a/src/NodeAutoCompleteViewExtension/Properties/Resources.ko-KR.resx
+++ b/src/NodeAutoCompleteViewExtension/Properties/Resources.ko-KR.resx
@@ -117,7 +117,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 클러스터
+
노드 자동 완성 뷰 확장
+
+ 노드 유형 일치
+
+
+ 단일
+
\ No newline at end of file
diff --git a/src/NodeAutoCompleteViewExtension/Properties/Resources.pl-PL.resx b/src/NodeAutoCompleteViewExtension/Properties/Resources.pl-PL.resx
index b6da7543ef9..e40208c6194 100644
--- a/src/NodeAutoCompleteViewExtension/Properties/Resources.pl-PL.resx
+++ b/src/NodeAutoCompleteViewExtension/Properties/Resources.pl-PL.resx
@@ -117,7 +117,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Podgrupa
+
Rozszerzenie widoku autouzupełniania węzłów
+
+ Zgodność typu węzła
+
+
+ Jeden
+
\ No newline at end of file
diff --git a/src/NodeAutoCompleteViewExtension/Properties/Resources.pt-BR.resx b/src/NodeAutoCompleteViewExtension/Properties/Resources.pt-BR.resx
index f10edaacc46..87b32f7d3b1 100644
--- a/src/NodeAutoCompleteViewExtension/Properties/Resources.pt-BR.resx
+++ b/src/NodeAutoCompleteViewExtension/Properties/Resources.pt-BR.resx
@@ -117,7 +117,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Agrupamento
+
Extensão da vista de preenchimento automático de nós
+
+ Correspondência do tipo nó
+
+
+ Único
+
\ No newline at end of file
diff --git a/src/NodeAutoCompleteViewExtension/Properties/Resources.resx b/src/NodeAutoCompleteViewExtension/Properties/Resources.resx
index cac2e189f4a..ce5e315cd87 100644
--- a/src/NodeAutoCompleteViewExtension/Properties/Resources.resx
+++ b/src/NodeAutoCompleteViewExtension/Properties/Resources.resx
@@ -117,7 +117,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Cluster
+
Node AutoComplete View Extension
+
+ Node Type Match
+
+
+ Single
+
\ No newline at end of file
diff --git a/src/NodeAutoCompleteViewExtension/Properties/Resources.ru-RU.resx b/src/NodeAutoCompleteViewExtension/Properties/Resources.ru-RU.resx
index ca07db7c170..5b3efcab89b 100644
--- a/src/NodeAutoCompleteViewExtension/Properties/Resources.ru-RU.resx
+++ b/src/NodeAutoCompleteViewExtension/Properties/Resources.ru-RU.resx
@@ -117,7 +117,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Кластер
+
Расширение вида «Автозаполнение узла»
+
+ Соответствие типа узла
+
+
+ Один ВЭ
+
\ No newline at end of file
diff --git a/src/NodeAutoCompleteViewExtension/Properties/Resources.zh-CN.resx b/src/NodeAutoCompleteViewExtension/Properties/Resources.zh-CN.resx
index 223a7129d2e..134ec828279 100644
--- a/src/NodeAutoCompleteViewExtension/Properties/Resources.zh-CN.resx
+++ b/src/NodeAutoCompleteViewExtension/Properties/Resources.zh-CN.resx
@@ -117,7 +117,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 簇
+
节点自动完成视图扩展
+
+ 节点类型匹配
+
+
+ 单个
+
\ No newline at end of file
diff --git a/src/NodeAutoCompleteViewExtension/Properties/Resources.zh-TW.resx b/src/NodeAutoCompleteViewExtension/Properties/Resources.zh-TW.resx
index b86669793b2..1af1128b88c 100644
--- a/src/NodeAutoCompleteViewExtension/Properties/Resources.zh-TW.resx
+++ b/src/NodeAutoCompleteViewExtension/Properties/Resources.zh-TW.resx
@@ -117,7 +117,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 組件
+
節點自動完成視圖延伸
+
+ 節點類型相符
+
+
+ 單一
+
\ No newline at end of file
diff --git a/src/NodeAutoCompleteViewExtension/ViewModels/NodeAutoCompleteBarViewModel.cs b/src/NodeAutoCompleteViewExtension/ViewModels/NodeAutoCompleteBarViewModel.cs
index 9a276db560d..c02e406dc09 100644
--- a/src/NodeAutoCompleteViewExtension/ViewModels/NodeAutoCompleteBarViewModel.cs
+++ b/src/NodeAutoCompleteViewExtension/ViewModels/NodeAutoCompleteBarViewModel.cs
@@ -20,10 +20,6 @@
using Dynamo.Utilities;
using Dynamo.Wpf.ViewModels;
using Greg;
-using J2N.Text;
-using Lucene.Net.Documents;
-using Lucene.Net.QueryParsers.Classic;
-using Lucene.Net.Search;
using Newtonsoft.Json;
using ProtoCore.AST.AssociativeAST;
using ProtoCore.Mirror;
@@ -32,12 +28,10 @@
using Dynamo.Wpf.Utilities;
using Dynamo.ViewModels;
using System.Reflection;
-using Dynamo.Controls;
-using Dynamo.Core;
using Dynamo.Graph.Workspaces;
using Dynamo.Graph;
using System.Windows.Media;
-using System.Windows.Media.Imaging;
+using Dynamo.Selection;
namespace Dynamo.NodeAutoComplete.ViewModels
{
@@ -126,6 +120,7 @@ public bool HideAutocompleteMethodOptions
}
}
+
private IEnumerable dropdownResults;
///
/// Cluster autocomplete search results.
@@ -195,7 +190,9 @@ public int SelectedIndex
}
set
{
- if(selectedIndex != value && value >= 0)
+ /*don't try to add a node if the index is out of range or a selection is not made yet (-1)
+ an index of -1 occurs when using the switch to change between modes.*/
+ if (selectedIndex != value && value >= 0 && selectedIndex != -1)
{
ReAddNode(value);
}
@@ -349,6 +346,7 @@ public bool DisplayLowConfidence
internal MLNodeClusterAutoCompletionResponse FullResults { private set; get; }
internal List FullSingleResults { set; get; }
+ private Guid LastRequestGuid;
///
/// Constructor
@@ -712,11 +710,11 @@ internal IEnumerable GetSingleAutocompleteResults()
// These default suggestions will be populated based on the port type.
if (!objectTypeMatchingElements.Any())
{
- return DefaultAutoCompleteCandidates().Select(x => new SingleResultItem(x));
+ return DefaultAutoCompleteCandidates().Select(x => new SingleResultItem(x.Model, 1.0));
}
else
{
- return objectTypeMatchingElements.Select(x => new SingleResultItem(x));
+ return objectTypeMatchingElements.Select(x => new SingleResultItem(x, 1.0));
}
}
}
@@ -731,131 +729,134 @@ internal void DeleteTransientNodes()
if (transientNodes.Any())
{
dynamoViewModel.Model.ExecuteCommand(new DynamoModel.DeleteModelCommand(transientNodes.Select(x => x.Id), true));
-
- //remove the initial layout of the transient nodes from the undo stack
+ //remove the deletion of the elements from the undo stack
wsViewModel.Model.UndoRecorder.PopFromUndoGroup();
- //remove the deletion of the transient nodes from the undo stack
+ //remove the layout of the elements from the undo stack
wsViewModel.Model.UndoRecorder.PopFromUndoGroup();
}
}
// Add Cluster from server result into the workspace
- internal void AddCluster(ClusterResultItem ClusterResultItem)
+ internal void AddCluster(ClusterResultItem clusterResultItem)
{
- NodeViewModel targetNodeFromCluster = null;
+ if (clusterResultItem == null || clusterResultItem.Topology == null)
+ return;
- var node = PortViewModel.NodeViewModel;
- var wsViewModel = node.WorkspaceViewModel;
+ List createdClusterItems = new List();
+
+ var workspaceViewModel = PortViewModel.NodeViewModel.WorkspaceViewModel;
+ var workspaceModel = workspaceViewModel.Model;
+ var dynamoModel = PortViewModel.NodeViewModel.DynamoViewModel.Model;
+ var entryNodeId = clusterResultItem.Topology.Nodes.ElementAtOrDefault(clusterResultItem.EntryNodeIndex)?.Id;
- //lock undo/redo
+ // Lock undo/redo
ToggleUndoRedoLocked(true);
+ // Delete any existing transient nodes
DeleteTransientNodes();
- // A map of the cluster result v.s. actual nodes created for node connection look up
- var clusterMapping = new Dictionary();
- // Convert topology to actual cluster
- var clusterNodes = ClusterResultItem.Topology.Nodes.ToList();
- var clusterConnections = ClusterResultItem.Topology.Connections.ToList();
+ // Map to store created nodes for connection lookup
+ var createdNodes = new Dictionary();
- List> nodeStacks = NodeAutoCompleteUtilities.ComputeNodePlacementHeuristics(clusterConnections, clusterNodes);
+ // Create nodes from the cluster topology
+ var offset = PortViewModel.NodeViewModel.X + PortViewModel.NodeViewModel.NodeModel.Width;
- //node to connect to from query node
- var entryNodeId = ClusterResultItem.Topology.Nodes.Any() ? ClusterResultItem.Topology.Nodes.ToList()[ClusterResultItem.EntryNodeIndex].Id : string.Empty;
-
- //store our nodes and wires to allow for one undo
- List newNodesAndWires = new List();
- Dictionary createdNodes = new Dictionary();
+ List> nodeStacks = NodeAutoCompleteUtilities.ComputeNodePlacementHeuristics(clusterResultItem.Topology.Connections.ToList(), clusterResultItem.Topology.Nodes.ToList());
- double xoffset = node.X + node.NodeModel.Width;
foreach (var nodeStack in nodeStacks)
{
- xoffset += node.NodeModel.Width;
- foreach(var newNode in nodeStack)
+ offset += PortViewModel.NodeViewModel.NodeModel.Width;
+ foreach (var nodeItem in nodeStack)
{
- // Retrieve assembly name and node full name from type.id.
- var typeInfo = new NodeModelTypeId(newNode.Type.Id);
-
- //create node with guid from the cluster response for matching later
- dynamoViewModel.Model.ExecuteCommand(new DynamoModel.CreateNodeCommand(Guid.NewGuid().ToString(), typeInfo.FullName, xoffset, node.NodeModel.Y, false, false, true));
-
- //disallow the node creation command from the undo group, we group node creation and wires below
- wsViewModel.Model.UndoRecorder.PopFromUndoGroup();
-
- var nodeFromCluster = wsViewModel.Nodes.LastOrDefault();
- createdNodes.Add(newNode.Id,nodeFromCluster);
- newNodesAndWires.Add(nodeFromCluster.NodeModel);
-
- nodeFromCluster.IsHidden = true;
- clusterMapping.Add(newNode.Id, nodeFromCluster);
+ var typeInfo = new NodeModelTypeId(nodeItem.Type.Id);
+ var newNode = dynamoModel.CreateNodeFromNameOrType(Guid.NewGuid(), typeInfo.FullName, true);
+ if (newNode != null)
+ {
+ newNode.X = offset; // Adjust X position
+ newNode.Y = PortViewModel.NodeViewModel.NodeModel.Y; // Adjust Y position
+ workspaceModel.AddAndRegisterNode(newNode);
+ createdNodes[nodeItem.Id] = newNode;
+ createdClusterItems.Add(newNode);
+
+ var newNodeViewModel = workspaceViewModel.Nodes.Last();
+ newNodeViewModel.IsHidden = true; // Hide the node initially
+ }
}
}
- if (createdNodes.Any())
- {
- targetNodeFromCluster = createdNodes[entryNodeId];
- }
-
- clusterConnections.ForEach(connection =>
+ // Connect the cluster to the original node and port
+ if (entryNodeId != null && createdNodes.TryGetValue(entryNodeId, out var entryNode))
{
- // Connect the nodes
- var sourceNode = clusterMapping[connection.StartNode.NodeId].NodeModel;
- var targetNode = clusterMapping[connection.EndNode.NodeId].NodeModel;
- // The port index is 1- based (currently a hack and not expected from service)
- var sourcePort = sourceNode.OutPorts.FirstOrDefault(p => p.Index == connection.StartNode.PortIndex - 1);
- var targetPort = targetNode.InPorts.FirstOrDefault(p => p.Index == connection.EndNode.PortIndex - 1);
-
- if (targetPort != null && targetPort.Connectors.Count == 0)
+ var entryPortIndex = clusterResultItem.EntryNodeInPort;
+ if (entryNode.InPorts.Count > entryPortIndex)
{
- var connector = ConnectorModel.Make(sourceNode, targetNode, connection.StartNode.PortIndex - 1, connection.EndNode.PortIndex - 1);
-
- newNodesAndWires.Add(connector);
+ //only connect to the entry node when it does not have connections already.
+ if (!entryNode.InPorts[entryPortIndex].Connectors.Any())
+ {
+ var entryConnector = ConnectorModel.Make(PortViewModel.NodeViewModel.NodeModel, entryNode, 0, entryPortIndex);
+ if (entryConnector != null)
+ {
+ entryConnector.IsHidden = true;
+ var entryConnectorViewModel = workspaceViewModel.Connectors.First(c => c.ConnectorModel.Equals(entryConnector));
+ entryConnectorViewModel.IsConnecting = true;
+ createdClusterItems.Add(entryConnector);
+ }
+ }
}
+ }
- });
-
- // Connect the cluster to the original node and port
- if (targetNodeFromCluster != null && targetNodeFromCluster.InPorts.Any())
+ // Create connections between nodes
+ foreach (var connection in clusterResultItem.Topology.Connections)
{
- var newConnector = ConnectorModel.Make(node.NodeModel, targetNodeFromCluster.NodeModel, PortViewModel.PortModel.Index,
- ClusterResultItem.EntryNodeInPort);
+ if (createdNodes.TryGetValue(connection.StartNode.NodeId, out var sourceNode) &&
+ createdNodes.TryGetValue(connection.EndNode.NodeId, out var targetNode))
+ {
+ var sourcePortIndex = connection.StartNode.PortIndex - 1;
+ var targetPortIndex = connection.EndNode.PortIndex - 1;
- var lastConnector = wsViewModel.Connectors.Last();
+ if (sourceNode.OutPorts.Count > sourcePortIndex && targetNode.InPorts.Count > targetPortIndex)
+ {
+ if (!targetNode.InPorts[targetPortIndex].Connectors.Any())
+ {
+ var newConnector = ConnectorModel.Make(sourceNode, targetNode, sourcePortIndex, targetPortIndex);
- //check if the last connector is the one we just made
- if (lastConnector.ConnectorModel.GUID.Equals(newConnector.GUID))
- {
- //set connector to be connecting until complete
- lastConnector.IsConnecting = true;
- newNodesAndWires.Add(newConnector);
+ if (newConnector != null)
+ {
+ newConnector.IsHidden = true; // Hide the connector initially
+ createdClusterItems.Add(newConnector);
+ }
+ }
+ }
}
}
- // Make connectors invisible ( just like the cluster nodes ) before they get a chance to be drawn.
- var clusterNodesModel = clusterMapping.Values.ToList();
- clusterNodesModel.ForEach(nodeInCluster => nodeInCluster?.NodeModel?.AllConnectors?.ToList().ForEach(connector =>
- {
- if (connector != null) connector.IsHidden = true;
- }));
-
- //Finalizer will make cluster nodes and their connections visible after autolayout has determined their final positions.
- Action finalizer = () =>
- {
- clusterNodesModel.ForEach(nodeInCluster =>
+ //add the new items to the undo recorder (this ensures the elements are valid at this point in time before any other manipulation occurs)
+ DynamoModel.RecordUndoModels(workspaceModel, createdClusterItems);
+
+ // Perform auto-layout for the newly added nodes
+ NodeAutoCompleteUtilities.PostAutoLayoutNodes(
+ workspaceViewModel.DynamoViewModel.CurrentSpace,
+ PortViewModel.NodeViewModel.NodeModel,
+ createdNodes.Values,
+ false,
+ false,
+ false,
+ () =>
{
- nodeInCluster.IsHidden = false;
- nodeInCluster.NodeModel?.AllConnectors?.ToList().ForEach(connector =>
+ // Finalize visibility of nodes and connectors
+ foreach (var node in createdNodes.Values)
{
- if (connector != null) connector.IsHidden = !PreferenceSettings.Instance.ShowConnector;
- });
+ var matchingNode = workspaceViewModel.Nodes.FirstOrDefault(n => n.NodeModel.GUID.Equals(node.GUID));
+ if (matchingNode != null)
+ {
+ matchingNode.IsHidden = false;
+ }
+ foreach (var connector in node.AllConnectors)
+ {
+ connector.IsHidden = !PreferenceSettings.Instance.ShowConnector;
+ }
+ }
});
- };
-
- // AutoLayout should be called after all nodes are connected.
- NodeAutoCompleteUtilities.PostAutoLayoutNodes(wsViewModel.DynamoViewModel.CurrentSpace, node.NodeModel, clusterNodesModel.Select(x => x.NodeModel), false, false, false, finalizer);
-
- //record all node and wire creation as one undo
- DynamoModel.RecordUndoModels(wsViewModel.Model, newNodesAndWires);
}
///
@@ -873,16 +874,24 @@ internal void PopulateAutoComplete()
DropdownResults = null;
}
+ //this should run on the UI thread, so thread safety is not a concern
+ LastRequestGuid = Guid.NewGuid();
+ var myRequest = LastRequestGuid;
+
+ //start a background thread to make the http request
Task.Run(() =>
{
- if (IsSingleAutocomplete)
+ List fullSingleResults = null;
+ MLNodeClusterAutoCompletionResponse fullResults = null;
+
+ if (IsSingleAutocomplete || !IsDisplayingMLRecommendation)
{
- FullSingleResults = GetSingleAutocompleteResults().ToList();
- FullResults = new MLNodeClusterAutoCompletionResponse
+ fullSingleResults = GetSingleAutocompleteResults().ToList();
+ fullResults = new MLNodeClusterAutoCompletionResponse
{
Version = "0.0",
- NumberOfResults = FullSingleResults.Count,
- Results = FullSingleResults.Select(x => new ClusterResultItem
+ NumberOfResults = fullSingleResults.Count,
+ Results = fullSingleResults.Select(x => new ClusterResultItem
{
Description = x.Description,
Title = x.Description,
@@ -901,11 +910,17 @@ internal void PopulateAutoComplete()
}
else
{
- FullResults = GetGenericAutocompleteResult(nodeClusterAutocompleteMLEndpoint);
+ fullResults = GetGenericAutocompleteResult(nodeClusterAutocompleteMLEndpoint);
}
dynamoViewModel.UIDispatcher.BeginInvoke(() =>
{
+ if(LastRequestGuid != myRequest)
+ {
+ //a newer request came, we're no longer interested in the results of this one
+ //only latest request has the right to be committed to the UI and internal data structures
+ return;
+ }
if (!IsOpen)
{
// view disappeared while the background thread was waiting for the server response.
@@ -913,8 +928,11 @@ internal void PopulateAutoComplete()
return;
}
+ FullSingleResults = fullSingleResults ?? FullSingleResults;
+ FullResults = fullResults ?? FullResults;
+
IEnumerable comboboxResults;
- if (IsSingleAutocomplete)
+ if (IsSingleAutocomplete || !IsDisplayingMLRecommendation)
{
//getting bitmaps from resources necessarily has to be done in the UI thread
Dictionary dict = [];
@@ -945,11 +963,10 @@ internal void PopulateAutoComplete()
// this runs synchronously on the UI thread, so the UI can't disappear during execution
DropdownResults = comboboxResults;
SelectedIndex = 0;
- if (QualifiedResults.Any())
- {
- var ClusterResultItem = QualifiedResults.First();
- AddCluster(ClusterResultItem);
- }
+
+ var ClusterResultItem = QualifiedResults.First();
+ AddCluster(ClusterResultItem);
+
});
});
//Tracking Analytics when raising Node Autocomplete with the Recommended Nodes option selected (Machine Learning)
@@ -983,14 +1000,22 @@ internal IEnumerable DefaultAutoCompleteCandidates()
}
}
+ private void OnPreferencesChanged()
+ {
+ RaisePropertyChanged(nameof(IsDisplayingMLRecommendation));
+ PopulateAutoComplete();
+ }
+
private void SubscribeWindowEvents()
{
dynamoViewModel.CurrentSpaceViewModel.Model.NodeRemoved += NodeViewModel_Removed;
+ dynamoViewModel.PreferenceSettings.AutocompletePreferencesChanged += OnPreferencesChanged;
}
private void UnsubscribeWindowEvents()
{
dynamoViewModel.CurrentSpaceViewModel.Model.NodeRemoved -= NodeViewModel_Removed;
+ dynamoViewModel.PreferenceSettings.AutocompletePreferencesChanged -= OnPreferencesChanged;
}
internal void NodeViewModel_Removed(NodeModel node)
diff --git a/src/NodeAutoCompleteViewExtension/Views/NodeAutoCompleteBarView.xaml b/src/NodeAutoCompleteViewExtension/Views/NodeAutoCompleteBarView.xaml
index eec1b141955..a0b82309fad 100644
--- a/src/NodeAutoCompleteViewExtension/Views/NodeAutoCompleteBarView.xaml
+++ b/src/NodeAutoCompleteViewExtension/Views/NodeAutoCompleteBarView.xaml
@@ -4,6 +4,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ui="clr-namespace:Dynamo.UI;assembly=DynamoCoreWpf"
+ xmlns:properties="clr-namespace:Dynamo.NodeAutoComplete.Properties"
xmlns:local="clr-namespace:Dynamo.PackageManager.UI;assembly=DynamoCoreWpf"
xmlns:dynconverters="clr-namespace:Dynamo.Controls;assembly=DynamoCoreWpf"
mc:Ignorable="d"
@@ -77,7 +78,7 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/DynamoCoreWpf3Tests/NodeAutoCompleteSearchTests.cs b/test/DynamoCoreWpf3Tests/NodeAutoCompleteSearchTests.cs
index 1f065989eaf..5951f108d53 100644
--- a/test/DynamoCoreWpf3Tests/NodeAutoCompleteSearchTests.cs
+++ b/test/DynamoCoreWpf3Tests/NodeAutoCompleteSearchTests.cs
@@ -115,10 +115,10 @@ public void NodeSuggestions_CanAutoCompleteInCustomNodeWorkspace()
Assert.AreEqual(0, suggestions.Count());
// Show Node AutoCompleteSearchBar in custom node workspace
- ViewModel.CurrentSpaceViewModel.OnRequestNodeAutoCompleteSearch(ShowHideFlags.Show);
+ ViewModel.CurrentSpaceViewModel.OnRequestNodeAutoCompleteSearch();
DispatcherUtil.DoEvents();
var currentWs = View.ChildOfType();
- Assert.IsTrue(currentWs.NodeAutoCompleteSearchBar.IsOpen);
+ Assert.IsTrue(ViewModel.CurrentSpaceViewModel.NodeAutoCompleteSearchViewModel.IsOpen);
}
[Test]
@@ -253,14 +253,10 @@ public void NodeSuggestions_InputPortZeroTouchNode_AreCorrect()
}
// Show Node AutoCompleteSearchBar
- ViewModel.CurrentSpaceViewModel.OnRequestNodeAutoCompleteSearch(ShowHideFlags.Show);
+ ViewModel.CurrentSpaceViewModel.OnRequestNodeAutoCompleteSearch();
DispatcherUtil.DoEvents();
var currentWs = View.ChildOfType();
- Assert.IsTrue(currentWs.NodeAutoCompleteSearchBar.IsOpen);
-
- // Hide Node AutoCompleteSearchBar
- ViewModel.CurrentSpaceViewModel.OnRequestNodeAutoCompleteSearch(ShowHideFlags.Hide);
- Assert.IsFalse(currentWs.NodeAutoCompleteSearchBar.IsOpen);
+ Assert.IsTrue(ViewModel.CurrentSpaceViewModel.NodeAutoCompleteSearchViewModel.IsOpen);
}
[Test]
@@ -553,13 +549,13 @@ public void CloseNodeAutocompleteWhenParentNodeDeleted()
// Get the matching node elements for the specific node port.
searchViewModel.PopulateAutoCompleteCandidates();
// Show Node AutoCompleteSearchBar
- ViewModel.CurrentSpaceViewModel.OnRequestNodeAutoCompleteSearch(ShowHideFlags.Show);
+ ViewModel.CurrentSpaceViewModel.OnRequestNodeAutoCompleteSearch();
//remove the parent node
searchViewModel.dynamoViewModel.CurrentSpaceViewModel.Model.RemoveAndDisposeNode(nodeView.ViewModel.NodeModel);
var currentWs = View.ChildOfType();
//confirm if the AutoCompleteSearchBar is closed.
- Assert.IsFalse(currentWs.NodeAutoCompleteSearchBar.IsOpen);
+ Assert.IsFalse(ViewModel.CurrentSpaceViewModel.NodeAutoCompleteSearchViewModel.IsOpen);
}
diff --git a/test/Libraries/DynamoMSOfficeTests/ExcelTests.cs b/test/Libraries/DynamoMSOfficeTests/ExcelTests.cs
index f3c919767fc..a42467234a0 100644
--- a/test/Libraries/DynamoMSOfficeTests/ExcelTests.cs
+++ b/test/Libraries/DynamoMSOfficeTests/ExcelTests.cs
@@ -1448,5 +1448,32 @@ public static void OpemXML_ImportExcelTest()
string cellValueWithoutFormula = data[1][2].ToString();
Assert.AreEqual(cellValueWithFormula, cellValueWithoutFormula);
}
+
+ [Test]
+ [Category("UnitTests")]
+ public static void OpenXML_ImportExcelTestWhenHavingEmptyRow()
+ {
+ // The spreadsheet OpenXML-ImportExcelEmptyRows contains empty rows
+ string filePath = Path.Combine(TestDirectory, @"core\importExport\OpenXML-ImportExcelEmptyRows.xlsx");
+ var data = Data.OpenXMLImportExcel(filePath, "Sheet1", 0, 0, false);
+
+ //Validates that the spreadsheet was imported successfully (not sending any exception)
+ Assert.That(data.Length > 0);
+ }
+
+ [Test]
+ [Category("UnitTests")]
+ public static void OpenXML_ExportExcelTestWhenHavingEmptyRow()
+ {
+ //The spreadsheet OpenXML-ExportExcelEmptyRows.xlsx contains at the first rows text but later numbers
+ string filePath = Path.Combine(TestDirectory, @"core\importExport\OpenXML-ExportExcelEmptyRows.xlsx");
+
+ //Create a object array with strings (previous was generating a exception this case, when using just numbers the exception was not generated)
+ object[][] data = [["21", "22"], ["22", "23"], ["23", "24"], ["24", "25"], ["25", "26"], ["26", "27"], ["27", "28"], ["28", "29"]];
+
+ //Validates that the data array was successfully inserted to the excel file (not sending any exception)
+ var result = Data.OpenXMLExportExcel(filePath, "Sheet1", data, 1, 1);
+ Assert.IsTrue(result);
+ }
}
}
diff --git a/test/core/importExport/OpenXML-ExportExcelEmptyRows.xlsx b/test/core/importExport/OpenXML-ExportExcelEmptyRows.xlsx
new file mode 100644
index 00000000000..147572366a7
Binary files /dev/null and b/test/core/importExport/OpenXML-ExportExcelEmptyRows.xlsx differ
diff --git a/test/core/importExport/OpenXML-ImportExcelEmptyRows.xlsx b/test/core/importExport/OpenXML-ImportExcelEmptyRows.xlsx
new file mode 100644
index 00000000000..297f1bc2f0d
Binary files /dev/null and b/test/core/importExport/OpenXML-ImportExcelEmptyRows.xlsx differ