From b09da88e570acfa1d58b52b1fb8b47aac1762e1d Mon Sep 17 00:00:00 2001 From: eleniv3d <43600924+eleniv3d@users.noreply.github.com> Date: Mon, 8 Apr 2024 18:19:59 +0200 Subject: [PATCH] WIP-ADD Dovetail to diffcheck_joints.ghx --- .../dataset/02_Helpers/diffcheck_joints.ghx | 27702 +++++++++++++++- 1 file changed, 27366 insertions(+), 336 deletions(-) diff --git a/assets/dataset/02_Helpers/diffcheck_joints.ghx b/assets/dataset/02_Helpers/diffcheck_joints.ghx index 0a3a0b03..0380af61 100644 --- a/assets/dataset/02_Helpers/diffcheck_joints.ghx +++ b/assets/dataset/02_Helpers/diffcheck_joints.ghx @@ -48,10 +48,10 @@ - 360 - 47 + 1244 + -1058 - 0.641154945 + 0.3346867 @@ -105,9 +105,9 @@ - 128 + 506 - + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 @@ -254,7 +254,7 @@ - + """Provides a scripting component. Inputs: x: The x script variable @@ -882,6 +882,7 @@ class connections_zones(component): 1867 1410 + true true true 2 @@ -1224,7 +1225,7 @@ class connections_zones(component): - + from ghpythonlib.componentbase import executingcomponent as component import Grasshopper, GhPython __author__ = "petras" @@ -1297,6 +1298,7 @@ class MyComponent(component): 835 874 + true true true 2 @@ -1682,7 +1684,7 @@ class MyComponent(component): - + from ghpythonlib.componentbase import executingcomponent as component import Grasshopper, GhPython import System @@ -1733,6 +1735,7 @@ class MyComponent(component): return (_plines_0,_plines_1, _lines, _insertion_vectors, _joints_per_face, _three_valence, _adjacency) GhPython provides a Python script component + true true true 2 @@ -2038,7 +2041,7 @@ class MyComponent(component): - + """get joints ids and connections areas between elements""" __author__ = "petras vestartas" @@ -2181,6 +2184,7 @@ class connections_zones(component): 835 874 + true true true 2 @@ -2356,8 +2360,9 @@ class connections_zones(component): - + Reduce the complexity of a tree by merging the outermost branches. + true 9989e4b9-f55a-47a5-986f-5f8448bf47c9 Trim Tree Trim @@ -2965,7 +2970,7 @@ class connections_zones(component): 10 0 0 - 0 + 2 @@ -2979,8 +2984,9 @@ class connections_zones(component): - + Retrieve a specific branch from a data tree. + true e9be2a0a-16c7-4ef6-a754-e17ba924493d true Tree Branch @@ -3094,8 +3100,9 @@ class connections_zones(component): - + Perform a solid difference on two Brep sets. + true 9b3c39e3-4bc9-45c7-94a0-044cfbbc7553 Solid Difference SDiff @@ -3464,8 +3471,9 @@ class connections_zones(component): - + Perform a solid union on a set of Breps. + true b7d321e3-82e5-4c97-a3b5-abc3ac8fbf38 Solid Union SUnion @@ -3943,7 +3951,7 @@ class connections_zones(component): - + 1 255;255;0;0 @@ -3954,7 +3962,9 @@ class connections_zones(component): a3a7d60e-46a5-4c90-a6bb-acc265d47a19 3a72b264-9802-47cd-84da-6282b522715f 932e21d0-94fa-4858-a2a6-9f68a42b25bd - 5 + 50bab5de-91b5-4eb9-8deb-4a2bd9f9ad48 + 1ab4bee3-a7bb-4fe8-aab6-666910c4063b + 7 b6c7e10d-05db-4deb-a91d-5c9a9d9312d8 Group @@ -3972,7 +3982,7 @@ class connections_zones(component): - + 1 255;255;0;0 @@ -3983,7 +3993,9 @@ class connections_zones(component): f50a45b0-962d-4c44-9e16-e712ed4d7d84 1b02df4f-2afc-41c8-9130-0a11330f2ec7 7c91ef57-984c-4987-a198-a6aaa86ceaef - 5 + f7fe01db-2e8f-4e72-81ed-055c68d596d6 + a33b721f-6bdc-4d5b-9d93-01d336f01f94 + 7 e0aa23ad-6b8e-4b85-8f6f-158cce91d79e Group @@ -4001,7 +4013,7 @@ class connections_zones(component): - + 1 255;255;0;0 @@ -4012,7 +4024,9 @@ class connections_zones(component): 37533f19-c224-4f60-8128-24402bdea310 9e7b5e7e-8505-4179-9544-936e9e93c6f1 5c965f78-0525-4314-89d8-3c737b371ee6 - 5 + 8c2b84a9-a6ee-44da-83db-722553c8309e + ea3691ac-1623-4673-afb2-8d7d0957d2d8 + 7 2c77d405-a11e-4618-90f4-6a118dc49aca Group @@ -4758,7 +4772,7 @@ class MyComponent(component): - + from ghpythonlib.componentbase import executingcomponent as component import Grasshopper, GhPython import math @@ -4822,6 +4836,7 @@ class joint_parameters_component(component): 1162 1094 + true true true 2 @@ -5236,7 +5251,7 @@ class joint_parameters_component(component): - + __author__ = "damien" __version__ = "2024.3.31" @@ -5285,6 +5300,7 @@ for i in range(len(wireframe)): 2126 1552 + true true false false @@ -5560,8 +5576,9 @@ for i in range(len(wireframe)): - + Weave a set of input data using a custom pattern. + true 489f7d03-65e8-4655-81d9-f4ca1d7533d7 Weave Weave @@ -5742,8 +5759,9 @@ for i in range(len(wireframe)): - + Convert a curve to a polyline. + true 589bbb84-b9e0-4528-8d9a-4195514418a0 Curve To Polyline ToPoly @@ -5998,8 +6016,9 @@ for i in range(len(wireframe)): - + Extrude curves and surfaces along a vector. + true 4830bfff-6bfd-428a-b7af-eefbc65d6b53 Extrude Extr @@ -6198,8 +6217,9 @@ for i in range(len(wireframe)): - + Translate (move) an object along a vector. + true 2695e2af-e17b-4643-9189-7b7d4f38ef48 Move Move @@ -6359,8 +6379,9 @@ for i in range(len(wireframe)): - + Retrieve a specific branch from a data tree. + true 55f74331-ccb9-4454-b9e2-aaea4ba130fc true Tree Branch @@ -6578,10 +6599,11 @@ for i in range(len(wireframe)): - + false Bake geometry to the document with the specified attributes 0 + true e69d0ea6-6d7d-46e7-85e0-6bc7f90d8e78 Bake Geometry Bake @@ -7478,7 +7500,7 @@ for i in range(len(wireframe)): - + 1 255;255;0;0 @@ -7489,7 +7511,9 @@ for i in range(len(wireframe)): c2cfc8a6-77de-4e30-a0cb-e266c8c40f5a 6b5f951c-eb95-4ea2-b541-8bcb575949c0 5719d0fd-145d-4398-81ab-3312fd3e413f - 5 + a7d2d9bf-2e29-449c-976e-56ef4d18a5de + d14b1019-dcd3-4292-9cea-f9e993be5551 + 7 b6349d5e-8fb1-4397-a9aa-563d477d375e Group @@ -7507,7 +7531,7 @@ for i in range(len(wireframe)): - + 1 255;255;0;0 @@ -7518,7 +7542,9 @@ for i in range(len(wireframe)): bcd6171e-678d-485d-8c96-419b40265d1f 442c8dda-eb93-4fa8-8441-fde031042e23 5f64c6ff-6e7c-4e76-a4c7-a23c8b4137c8 - 5 + 81b26286-1830-4105-878c-1f309cd1fd1b + 02140991-e355-44e6-bcc2-d6b450248129 + 7 1b2729f4-b781-4d64-8066-4d602ddcdfad Group @@ -8187,7 +8213,7 @@ class MyComponent(component): - + 1 255;255;0;0 @@ -8198,7 +8224,9 @@ class MyComponent(component): a59e036a-940e-49e4-b6ac-37f766b85364 53b73dfe-f351-4d02-b5e3-5b80a7563b70 c8d6f605-d037-4eff-ad34-b70d7a9f4905 - 5 + 1502e58d-d969-438f-8ec8-a5998b52c364 + 42b70baf-85e5-4a6b-bd31-55189196eb8a + 7 47c8aca0-0e77-4429-8933-2c5d5a6cca68 Group @@ -8461,28 +8489,29 @@ class MyComponent(component): - 1167 - 764 + 1168 + 776 77 - 84 + 104 - 1199 - 806 + 1200 + 828 - - 4 + + 5 2e3ab970-8545-46bb-836c-1c11e5610bce 8ec86459-bf01-4409-baee-174d0d2b13d0 8ec86459-bf01-4409-baee-174d0d2b13d0 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 1 8ec86459-bf01-4409-baee-174d0d2b13d0 - + Index of Gate stream @@ -8497,14 +8526,14 @@ class MyComponent(component): - 1169 - 766 + 1170 + 778 15 20 - 1178 - 776 + 1179 + 788 @@ -8546,14 +8575,14 @@ class MyComponent(component): - 1169 - 786 + 1170 + 798 15 20 - 1178 - 796 + 1179 + 808 @@ -8575,14 +8604,14 @@ class MyComponent(component): - 1169 - 806 + 1170 + 818 15 20 - 1178 - 816 + 1179 + 828 @@ -8604,14 +8633,42 @@ class MyComponent(component): - 1169 - 826 + 1170 + 838 + 15 + 20 + + + 1179 + 848 + + + + + + + + 2 + Input stream at index 3 + 46aa3424-760f-4984-8800-bc1095015e51 + false + Stream 3 + 3 + true + 0 + + + + + + 1170 + 858 15 20 - 1178 - 836 + 1179 + 868 @@ -8624,7 +8681,7 @@ class MyComponent(component): 8ff304b1-2044-45e9-a7d6-9eea735aeb0f false Stream - S(2) + S(3) false 0 @@ -8632,14 +8689,14 @@ class MyComponent(component): - 1214 - 766 + 1215 + 778 28 - 80 + 100 - 1228 - 806 + 1229 + 828 @@ -8669,28 +8726,29 @@ class MyComponent(component): - 1170 - 854 + 1173 + 933 77 - 84 + 104 - 1202 - 896 + 1205 + 985 - - 4 + + 5 2e3ab970-8545-46bb-836c-1c11e5610bce 8ec86459-bf01-4409-baee-174d0d2b13d0 8ec86459-bf01-4409-baee-174d0d2b13d0 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 1 8ec86459-bf01-4409-baee-174d0d2b13d0 - + Index of Gate stream @@ -8705,14 +8763,14 @@ class MyComponent(component): - 1172 - 856 + 1175 + 935 15 20 - 1181 - 866 + 1184 + 945 @@ -8754,14 +8812,14 @@ class MyComponent(component): - 1172 - 876 + 1175 + 955 15 20 - 1181 - 886 + 1184 + 965 @@ -8783,14 +8841,14 @@ class MyComponent(component): - 1172 - 896 + 1175 + 975 15 20 - 1181 - 906 + 1184 + 985 @@ -8812,14 +8870,42 @@ class MyComponent(component): - 1172 - 916 + 1175 + 995 + 15 + 20 + + + 1184 + 1005 + + + + + + + + 2 + Input stream at index 3 + 969d63fe-293b-4224-aa9f-2a3cdfcaff6b + false + Stream 3 + 3 + true + 0 + + + + + + 1175 + 1015 15 20 - 1181 - 926 + 1184 + 1025 @@ -8832,7 +8918,7 @@ class MyComponent(component): da9093a9-a1e3-415c-a896-23d0cd558bf9 false Stream - S(2) + S(3) false 0 @@ -8840,14 +8926,14 @@ class MyComponent(component): - 1217 - 856 + 1220 + 935 28 - 80 + 100 - 1231 - 896 + 1234 + 985 @@ -8878,14 +8964,14 @@ class MyComponent(component): - 994 - 1096 + 996 + 1144 160 20 - 994.764 - 1096.287 + 996.7709 + 1144.695 @@ -8894,10 +8980,10 @@ class MyComponent(component): 3 1 1 - 2 + 3 0 0 - 2 + 3 @@ -9423,9 +9509,8 @@ class MyComponent(component): - + Merge a bunch of data streams - true f898feb4-b767-460b-a868-e661986c8aca Merge Merge @@ -9434,14 +9519,14 @@ class MyComponent(component): - 712 - 1619 + 709 + 1814 72 64 - 750 - 1651 + 747 + 1846 @@ -9471,14 +9556,14 @@ class MyComponent(component): - 714 - 1621 + 711 + 1816 21 20 - 726 - 1631 + 723 + 1826 @@ -9500,14 +9585,14 @@ class MyComponent(component): - 714 - 1641 + 711 + 1836 21 20 - 726 - 1651 + 723 + 1846 @@ -9529,14 +9614,14 @@ class MyComponent(component): - 714 - 1661 + 711 + 1856 21 20 - 726 - 1671 + 723 + 1866 @@ -9556,14 +9641,14 @@ class MyComponent(component): - 765 - 1621 + 762 + 1816 17 60 - 773.5 - 1651 + 770.5 + 1846 @@ -9787,7 +9872,7 @@ class MyComponent(component): - + 1 255;255;0;0 @@ -9798,7 +9883,9 @@ class MyComponent(component): 3529a5f3-db35-4f90-ad6a-848119725458 51967614-777c-4845-ab9d-9eb2dad27909 56d9f7cb-7bdf-47d0-94c7-d62c8cca2fb2 - 5 + 1658aa54-4a66-4356-94e6-d9479f15f83c + 0ff4a98a-54c3-4980-945a-64ff4e5b12bb + 7 4cbc7928-07eb-445d-a896-216e98b1c2a0 Group @@ -9816,7 +9903,7 @@ class MyComponent(component): - + 1 255;255;0;0 @@ -9827,7 +9914,9 @@ class MyComponent(component): fd37f640-c3da-45ed-b0e8-7b40ae7e303d 7024b434-ed05-4ab1-b9cd-a96d9db5043f 3f9dc348-1c19-4f66-958c-27d1f4c07aae - 5 + 2afa7eee-d6c2-438b-a157-8519489c5407 + 250e3383-3964-4c82-a314-6c6d01f3eb0a + 7 15e78247-b0fd-4ba0-a865-4ce86e4cb37e Group @@ -10307,92 +10396,6 @@ class MyComponent(component): - - d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 - Curve - - - - - Contains a collection of generic curves - 1 - 782f64e8-79fe-445d-99b4-e3e98f806b57 - Curve - cuts0 - false - 0 - - - - - - 301 - 1619 - 50 - 20 - - - 326.0439 - 1629.379 - - - - - - 1 - - - - - 4 - {0} - - - - - -1 - - Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweDxfojUA3vs4hfsf0DE9xMnjsucB/asDOjggv28mSDw1/78GRBgcIDweR1APvW+VVL7v56pAaaaG0M/PgAA - - 00000000-0000-0000-0000-000000000000 - - - - - -1 - - Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweCxPUTqgT128Qv2PyDi+4kTx2XOA3tWBnRwwX7eTBD4a3/+DAgwOED4vA4gn+59s+z4/3qmBphqbgz9+AAA - - 00000000-0000-0000-0000-000000000000 - - - - - -1 - - Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweDxfojUhf3YxR/s/wER30+cOC5zLuxnZUAHF+znzQSBv/bnz4AAgwOEz+sA8umtZ7bX/9czNcBUc2PoxwcA - - 00000000-0000-0000-0000-000000000000 - - - - - -1 - - Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweCxPUTqwn7s4g/2/4CI7ydOHJc5F/azMqCDC/bzZoLAX/vzZ0CAwQHC53UA+VTnwvvc//VMDTDV3Bj68QEA - - 00000000-0000-0000-0000-000000000000 - - - - - - - - - - - 57da07bd-ecab-415d-9d86-af36d7073abc Number Slider @@ -10437,79 +10440,11 @@ class MyComponent(component): - - - d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 - Curve - - - - - Contains a collection of generic curves - 1 - c575c24f-23c7-4997-9a20-bc5b9b2f795c - Curve - cuts1 - false - 0 - - - - - - 301 - 1643 - 50 - 20 - - - 326.5151 - 1653.019 - - - - - - 1 - - - - - 2 - {0} - - - - - -1 - - Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweDxfojUBXsc4vt/QMT3EymOyxx7VgZ08MD+/BkQYHCA0CxQWsAB5NNk6U1L/9czNcBUc2PoxwcA - - 00000000-0000-0000-0000-000000000000 - - - - - -1 - - Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweCxPUTqgj0O8f0/IOL7iRTHZY49KwM6eGB//gwIMDhAaBYoLeAA8ulU3QT5//VMDTDV3Bj68QEA - - 00000000-0000-0000-0000-000000000000 - - - - - - - - - - - - - 410755b1-224a-4c1e-a407-bf32fb45ea7e - 00000000-0000-0000-0000-000000000000 - solver + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + solver @@ -10602,7 +10537,7 @@ class MyComponent(component): true 1 true - 782f64e8-79fe-445d-99b4-e3e98f806b57 + 87961de4-ec84-4775-b07c-df96c27cfac9 1 9ba89ec2-5315-435f-a621-b66c5fa2f301 1 @@ -10635,7 +10570,7 @@ class MyComponent(component): true 1 true - c575c24f-23c7-4997-9a20-bc5b9b2f795c + 3358800a-fbee-492f-8019-80ae3499129d 1 9ba89ec2-5315-435f-a621-b66c5fa2f301 1 @@ -10747,7 +10682,7 @@ class MyComponent(component): - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -10793,14 +10728,14 @@ class MyComponent(component): - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group - + 1 255;255;0;0 @@ -10811,7 +10746,8 @@ class MyComponent(component): 808e6b8d-a39f-40e2-957a-ecfcba5b4690 44edad09-c1b0-45c9-a998-13920bafa895 5519e4cf-dab6-45a7-93d3-0098d1557340 - 5 + a7538fdf-1047-4a55-93e7-97f4e82826de + 6 b560884b-8308-4590-b1ad-1c3df87bfcc9 Group @@ -10822,7 +10758,7 @@ class MyComponent(component): - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -10868,14 +10804,14 @@ class MyComponent(component): - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group - + 1 150;170;135;255 @@ -10887,7 +10823,9 @@ class MyComponent(component): 0c3c7a0d-f428-40f7-b343-0d890f9fc810 6d46da31-6852-4f44-8fc0-aa10276f821c 5030a7c1-3f73-4854-8421-0e81917e0ac7 - 6 + 9ace7d96-99a6-4564-bed6-48edb28c84ba + 665ec34d-a26d-4453-84e2-d2a96f90e7e0 + 8 9a755139-a5b1-457e-86c9-b45474d571d5 Group @@ -10898,7 +10836,7 @@ class MyComponent(component): - + 2844fec5-142d-4381-bd5d-4cbcef6d6fed Sketch @@ -12238,7 +12176,7 @@ class MyComponent(component): - + 7f6a9d34-0470-4bb7-aadd-07496bcbe572 Point On Curve @@ -12270,15 +12208,16 @@ class MyComponent(component): - + cc14daa5-911a-4fcc-8b3b-1149bf7f2eeb Point List - + Displays details about lists of points + true 50af1fa5-fcee-4e4d-a092-d296a2d02308 Point List Point List @@ -12358,7 +12297,7 @@ class MyComponent(component): - + 57da07bd-ecab-415d-9d86-af36d7073abc Number Slider @@ -12403,15 +12342,16 @@ class MyComponent(component): - + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 Curve - + Contains a collection of generic curves + true 4f34c073-2f40-4128-aef7-46b9066ccb53 Curve Curve @@ -12438,15 +12378,16 @@ class MyComponent(component): - + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 Curve - + Contains a collection of generic curves + true 8b51da49-9030-4127-ba93-17bbec6675a1 Curve Curve @@ -12473,7 +12414,7 @@ class MyComponent(component): - + 59e0b89a-e487-49f8-bab8-b5bab16be14c Panel @@ -12526,7 +12467,7 @@ class MyComponent(component): - + 59e0b89a-e487-49f8-bab8-b5bab16be14c Panel @@ -12579,7 +12520,7 @@ class MyComponent(component): - + aced9701-8be9-4860-bc37-7e22622afff4 9bde5adf-1aa6-414c-a1d4-8832edea1934 @@ -12587,10 +12528,11 @@ class MyComponent(component): - + true Add floating labels to all components, with a few exceptions. Double-click to activate/deactivate, see right click menu for options. true + true 976e9a79-f06d-432b-af96-57682df47f1b Bifocals Bifocals @@ -12642,7 +12584,7 @@ class MyComponent(component): - + 59e0b89a-e487-49f8-bab8-b5bab16be14c Panel @@ -12695,7 +12637,7 @@ class MyComponent(component): - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -12748,7 +12690,7 @@ class MyComponent(component): - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -12801,7 +12743,7 @@ class MyComponent(component): - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -12854,7 +12796,7 @@ class MyComponent(component): - + 59e0b89a-e487-49f8-bab8-b5bab16be14c Panel @@ -12907,7 +12849,7 @@ class MyComponent(component): - + 59e0b89a-e487-49f8-bab8-b5bab16be14c Panel @@ -12960,7 +12902,7 @@ class MyComponent(component): - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -13013,7 +12955,7 @@ class MyComponent(component): - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -13038,7 +12980,7 @@ class MyComponent(component): - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -13091,7 +13033,7 @@ class MyComponent(component): - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -13116,7 +13058,7 @@ class MyComponent(component): - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -13169,7 +13111,7 @@ class MyComponent(component): - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -13222,7 +13164,7 @@ class MyComponent(component): - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -13275,7 +13217,7 @@ class MyComponent(component): - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -13328,7 +13270,7 @@ class MyComponent(component): - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -13381,7 +13323,7 @@ class MyComponent(component): - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -13434,7 +13376,7 @@ class MyComponent(component): - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -13487,7 +13429,7 @@ class MyComponent(component): - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -13540,7 +13482,7 @@ class MyComponent(component): - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -13593,7 +13535,7 @@ class MyComponent(component): - + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe Scribble @@ -13646,7 +13588,7 @@ class MyComponent(component): - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -13671,7 +13613,7 @@ class MyComponent(component): - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -13696,7 +13638,7 @@ class MyComponent(component): - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -13721,7 +13663,7 @@ class MyComponent(component): - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -13746,7 +13688,7 @@ class MyComponent(component): - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -13771,7 +13713,7 @@ class MyComponent(component): - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -13796,7 +13738,7 @@ class MyComponent(component): - + c552a431-af5b-46a9-a8a4-0fcbc27ef596 Group @@ -13821,6 +13763,27094 @@ class MyComponent(component): + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 87961de4-ec84-4775-b07c-df96c27cfac9 + Curve + cuts0 + false + 0 + + + + + + 320 + 1621 + 50 + 20 + + + 345.0985 + 1631.488 + + + + + + 1 + + + + + 4 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweDxfojUA3vs4hfsf0DE9xMnjsucB/asDOjggv28mSDw1/78GRBgcIDweR1APvW+VVL7v56pAaaaG0M/PgAA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweCxPUTqgT128Qv2PyDi+4kTx2XOA3tWBnRwwX7eTBD4a3/+DAgwOED4vA4gn+59s+z4/3qmBphqbgz9+AAA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweDxfojUhf3YxR/s/wER30+cOC5zLuxnZUAHF+znzQSBv/bnz4AAgwOEz+sA8umtZ7bX/9czNcBUc2PoxwcA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweCxPUTqwn7s4g/2/4CI7ydOHJc5F/azMqCDC/bzZoLAX/vzZ0CAwQHC53UA+VTnwvvc//VMDTDV3Bj68QEA + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 3358800a-fbee-492f-8019-80ae3499129d + Curve + cuts1 + false + 0 + + + + + + 312 + 1643 + 50 + 20 + + + 337.1025 + 1653.728 + + + + + + 1 + + + + + 2 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweDxfojUBXsc4vt/QMT3EymOyxx7VgZ08MD+/BkQYHCA0CxQWsAB5NNk6U1L/9czNcBUc2PoxwcA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweCxPUTqgj0O8f0/IOL7iRTHZY49KwM6eGB//gwIMDhAaBYoLeAA8ulU3QT5//VMDTDV3Bj68QEA + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 48f9c889-594d-4b7a-86d3-1c44d38dc1ad + Curve + cuts0 + false + 0 + + + + + + 268 + 3645 + 50 + 20 + + + 293.7338 + 3655.505 + + + + + + 1 + + + + + 2 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EGEKtInpVz0TgybUY7//MzGIQP347Mp1P/eXlwX3P2UQaGZU+uA3Z/ftP0D5j1B5AXYGGPhgbwwGj/dD+A/2o4nbw8QXzASBl/txiTOggAf750DE7XGJE7AXLs7OgA4+2K9eBQJMDhCazQEatVBaACou5AAKKdk1t0/9r2dqgOnmxjBvFIxsAAA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EGEKtInpVz0TgybUY7//MzGIQP347Mp1P/eXlwX3P2UQaGZU+uA3Z/ftP0D5j1B5AXYGGPhgbwwGj/dD+A/s0cTtYeILZoLAy/24xBlQwAP7ORBxe1ziBOyFi7MzoIMP9qtXgQCTA4Rmc4BGLZQWgIoLOYBC6owKV/H/eqYGmG5uDPNGwcgGAA== + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 3c3bf22d-6774-446c-bf94-1b16f29fb675 + Curve + cuts1 + false + 0 + + + + + + 269 + 3669 + 50 + 20 + + + 294.3843 + 3679.47 + + + + + + 1 + + + + + 2 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EGEKtInpVz0TgybUY7//MzGIQP347Mp1P/eXlwX3P2UQaGZU+uA3Z/ftP0D5j1B5AXYGGPiw3xgMHttD+A/2L5gJAi8xxOdAxRlQAFzcHpc41Jz9MHE0e3GJw+1lRzI1JBQEntqvAoNP9hD+XyifyQHC53WA8IUcQCH1V+RM5/96pgaYGdwMo2AUIAMA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EGEKtInpVz0TgybUY7//MzGIQP347Mp1P/eXlwX3P2UQaGZU+uA3Z/ftP0D5j1B5AXYGGPiw3xgMHttD+A/sF8wEgZcY4nOg4gwoAC5uj0scas5+mDiavbjE4fayI5kaEgoCT+1XgcEnewj/L5TP5ADh8zpA+EIOoJDSmSNr8L+eqQFmBjfDKBgFyAAA + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + solver + + + + + """Provides a scripting component. + Inputs: + x: The x script variable + y: The y script variable + Output: + a: The a output variable""" + +__author__ = "petras" +__version__ = "2023.04.02" + +from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +import Rhino +from Rhino.Geometry import Polyline, Point3d +#from compas_rhino import conversions +import System + +import time +from ctypes import * +#from compas_wood.ctypes_conversion import * + +def list_polylines_coord(polylines, scale = 10): + f = [] + v = [] + for polyline in polylines: + f.append(len(polyline)) + for point in polyline: + v.append(point[0]*scale) + v.append(point[1]*scale) + v.append(point[2]*scale) + #v.extend(point) + _f = (c_size_t * len(f))(*f) + _v = (c_float * len(v))(*v) + return _f, c_size_t(len(f)), _v, c_size_t(len(v)) + + +def lists_vectors_coord(vectors): + faces = [len(v) for v in vectors] + f = (c_size_t * len(vectors))(*faces) + v = [coord for vec in vectors for point in vec for coord in point] + + v_s = c_size_t(len(v)) # * sizeof(c_float) + v = (c_float * len(v))(*v) + return f, c_size_t(len(vectors)), v, v_s + + +def lists_numbers_coord(numbers): + v_s = 0 + f_s = len(numbers) + f = (c_size_t * len(numbers))() + + for i in range(len(numbers)): + f[i] = len(numbers[i]) + v_s += len(numbers[i]) * 1 + + v = (c_int * v_s)() + + count = 0 + for i in range(len(numbers)): + for j in range(len(numbers[i])): + v[count] = numbers[i][j] + count += 1 + + return f, c_size_t(f_s), v, c_size_t(v_s) + + +def list_ints_coord(numbers): + f_s = len(numbers) + f = [0.0] * f_s + for i in range(f_s): + f[i] = numbers[i] + return (c_int * len(f))(*f), c_size_t(f_s) + + +def list_numbers_coord(numbers): + f_s = len(numbers) + f = [0.0] * f_s + for i in range(f_s): + f[i] = numbers[i] + return (c_float * len(f))(*f), c_size_t(f_s) + + + +def coord_polylines_lists(groups_f, groups_f_s, out_f, out_f_s, out_v, out_v_s): + polylines = [ + [Polyline([]) for j in range(groups_f[i])] for i in range(groups_f_s.value) + ] + + a = 0 + b = 0 + pline_count = 0 + num_points = 3 + num_groups = groups_f_s.value + + points = [] + for i in range(0, out_v_s.value, num_points): + #points.append([out_v[i]*0.1, out_v[i + 1]*0.1, out_v[i + 2]*0.1]) + points.append(Point3d(out_v[i]*0.1, out_v[i + 1]*0.1, out_v[i + 2]*0.1)) + num_points_per_polyline = out_f[pline_count] + + if len(points) == num_points_per_polyline: + for j in range(a, groups_f_s.value): + if groups_f[j] > 0: + a = j + break + + polylines[a][b] = Polyline(points) + points = [] + num_polylines_per_group = groups_f[a] + if b == (num_polylines_per_group - 1): + a += 1 + b = 0 + else: + b += 1 + pline_count += 1 + + return polylines + + +def coord_numbers_lists(out_f, out_f_s, out_v, out_v_s): + + # create Python objects + ids = [[] for _ in range(out_f_s.value)] + + for i in range(out_f_s.value): + ids[i] = [None] * out_f[i] + if out_f[i] == 0: + return + + # fill array with points + a = 0 + b = 0 + for i in range(0, out_v_s.value): + ids[a][b] = out_v[i] + if b == (out_f[a] - 1): + a += 1 + b = 0 + else: + b += 1 + + return ids + + + +class connections_zones(component): + + bbox = Rhino.Geometry.BoundingBox.Unset + lines = [] + insertion_vectors_current = [] + joint_per_face_current_text_entity = [] + polylines = [] + + def DrawViewportWires(self, args): + #GrasshopperDocument = Grasshopper.Instances.ActiveCanvas.Document + #is_selected = False + """ + for _ in GrasshopperDocument.Objects: + is_selected = _.Attributes.Selected + """ + #col = args.WireColour_Selected if is_selected else args.WireColour; + col = args.WireColour + line_weight = args.DefaultCurveThickness; + try: + for polyline in self.polylines: + args.Display.DrawPolyline(polyline, col, line_weight) + """ + plane = Plane.WorldXY + for line in self.lines: + args.Display.DrawLineArrow(line, Color.FromArgb(207, 0, 90), 2, 100) + for insertionVectorsCurrent in self.insertion_vectors_current: + if(insertionVectorsCurrent.Length<0.05): + continue + args.Display.DrawLine(insertionVectorsCurrent, Color.FromArgb(0, 0, 0), 5) + for jointPerFaceCurrent in self.joint_per_face_current_text_entity: + result, plane = Rhino.RhinoDoc.ActiveDoc.Views.ActiveView.ActiveViewport.GetCameraFrame() + plane.Origin=(jointPerFaceCurrent.Plane.Origin) + args.Display.Draw3dText(jointPerFaceCurrent.PlainText, jointPerFaceCurrent.MaskColor, plane, jointPerFaceCurrent.TextHeight, "Arial", False, False,Rhino.DocObjects.TextHorizontalAlignment.Center, Rhino.DocObjects.TextVerticalAlignment.BottomOfTop) + """ + except Exception, e: + System.Windows.Forms.MessageBox.Show(str(e), "script error") + + def get_ClippingBox(self): + return self.bbox + + def RunScript(self, _data, _join_p, _scale, _extension, _find, _get, _custom_joints, _custom_types): + # ============================================================================== + # clear input + # ============================================================================== + self.bbox = Rhino.Geometry.BoundingBox.Unset + self.lines = [] + self.insertion_vectors_current = [] + self.joint_per_face_current_text_entity = [] + self.polylines = [] + # ============================================================================== + # input + # ============================================================================== + if(_data is None): + return + + input_polylines = [] + if( _data[0] != 0): + #convert to compas polylines + for i in _data[0]: + for j in i: + input_polylines.append(j)#(conversions.polyline_to_compas(j)) + + input_vectors = [] + if(_data[1] != None): + for i in _data[1]: + list = [] + for j in i: + list.append(j)#(conversions.vector_to_compas(j)) + input_vectors.append(list) + + joint_parameters = [ + 300, 0.5, 3, # 1-9 ss_e_ip (side-to-side edge in-plane) + 50, 0.64, 15, # 10-19 ss_e_op (side-to-side edge out-of-plane) + 450, 0.5, 20, # 20-29 ts_e_p (top-to-side edge plane) + 300, 0.5, 30, # 30-39 cr_c_ip (cross cutting in-plane) + 6, 0.95, 40, # 40-49 tt_e_p (top-to-top edge plane) + 300, 0.5, 58, # 50-59 ss_e_r (side-to-side edge rotated) + 300, 1.0, 60 # 60-69 b (boundary) + ] + + for i in range(0, len(_join_p)): + if(i%3==0): + joint_parameters[i] = _join_p[i]*10 + else: + joint_parameters[i] = _join_p[i]*1 + + + search = id = max(min(2, _find), 0) + + scale = [1,1,1] + for i in range(0, len(_scale)): + scale[i] = _scale[i] + + output_type = _get if _get != None else 4 + + extension = [0,0,0] + + if(len(_extension)>2): + extension = [] + for i in _extension: + extension.append(i*10) + + + + input_adjacency = [] + if(len(_data[4])>0): + for i in _data[4]: + for j in i: + input_adjacency.append(j) + + ############################################################################################################ + # Load inputs and perform conversion + ############################################################################################################ + + # input geometry + # input_polylines = data_set_plates.annen_small_polylines() + # print(len(input_polylines)) + ( + in_polyline_pairs_f, + in_polyline_pairs_f_s, + in_polyline_pairs_v, + in_polyline_pairs_v_s, + ) = list_polylines_coord(input_polylines) + + + #input_vectors = data_set_plates.annen_small_edge_directions() + + ( + in_vectors_f, + in_vectors_f_s, + in_vectors_v, + in_vectors_v_s, + ) = lists_vectors_coord(input_vectors) + + + + input_joints = _data[2]#data_set_plates.annen_small_edge_joints() + # print(len(input_joints)) + ( + in_joints_f, + in_joints_f_s, + in_joints_v, + in_joints_v_s, + ) = lists_numbers_coord(input_joints) + + input_three_valence =_data[3]#(data_set_plates.annen_small_three_valance_element_indices_and_instruction() ) + + # print(len(input_three_valence)) + + ( + in_three_valence_f, + in_three_valence_f_s, + in_three_valence_v, + in_three_valence_v_s, + ) = lists_numbers_coord(input_three_valence) + + #input_adjacency = [] + + ( + in_adjancency_v, + in_adjancency_v_s, + ) = list_ints_coord(input_adjacency) + + # input parameters + ( + in_joint_parameters_v, + in_joint_parameters_v_s, + ) = list_numbers_coord(joint_parameters) + + in_search_type = c_int(search) + ( + in_scale_v, + in_scale_v_s, + ) = list_numbers_coord(scale) + + in_output_type = c_int(output_type) + + ############################################################################################################# + # custom joint types + ############################################################################################################# + + input_joint_polyline_pairs = [] + ( + in_joint_polyline_pairs_f, + in_joint_polyline_pairs_f_s, + in_joint_polyline_pairs_v, + in_joint_polyline_pairs_v_s + ) = list_polylines_coord(_custom_joints,1) + + + input_joint_types = [] + ( + in_joint_types_v, + in_joint_types_v_s + ) = list_ints_coord(_custom_types) + ############################################################################################################# + # output parameters + ############################################################################################################# + + + # output + + # out polylines + out_plines_groups_f = POINTER(c_size_t)() + out_plines_groups_f_s = c_size_t() + out_plines_out_f = POINTER(c_size_t)() + out_plines_out_f_s = c_size_t() + out_plines_out_v = POINTER(c_float)() + out_plines_out_v_s = c_size_t() + + # out types + out_types_f = POINTER(c_size_t)() + out_types_f_s = c_size_t() + out_types_v = POINTER(c_int)() + out_types_v_s = c_size_t() + + # global_parameters + ( + in_joint_volume_parameters_v, + in_joint_volume_parameters_v_s, + ) = list_numbers_coord(extension) + + face_to_face_side_to_side_joints_dihedral_angle = c_float(130.0) + + ############################################################################################################ + # Load library and declare function signature + ############################################################################################################ + + + if System.Environment.OSVersion.Platform == System.PlatformID.Win32NT: + #print("Windows") + lib_ = cdll.LoadLibrary("C:/compas_wood/libgmp-10.dll") + lib = cdll.LoadLibrary("C:/compas_wood/pinvoke_wood.dll") + elif System.Environment.OSVersion.Platform == System.PlatformID.Unix: + #print("macOS") + lib = cdll.LoadLibrary("/Users/compas_wood/libpinvoke_wood.dylib") + else: + print("Unknown operating system") + + + lib.ctypes_get_connection_zones_with_custom_joints.restype = None + lib.ctypes_get_connection_zones_with_custom_joints.argtypes = [ + # input geometry + # polylines + POINTER(c_size_t), + POINTER(c_size_t), # if a value is passed by reference, it must be a pointer + POINTER(c_float), + POINTER(c_size_t), # if a value is passed by reference, it must be a pointer + # vectors + POINTER(c_size_t), + POINTER(c_size_t), + POINTER(c_float), + POINTER(c_size_t), + # joints + POINTER(c_size_t), + POINTER(c_size_t), + POINTER(c_int), + POINTER(c_size_t), + # three valence + POINTER(c_size_t), + POINTER(c_size_t), + POINTER(c_int), + POINTER(c_size_t), + # adjacency + POINTER(c_int), + POINTER(c_size_t), + #custom joints + POINTER(c_size_t), + POINTER(c_size_t), # if a value is passed by reference, it must be a pointer + POINTER(c_float), + POINTER(c_size_t), # if a value is passed by reference, it must be a pointer + #custom joints types + POINTER(c_int), + POINTER(c_size_t), + # input parameters + POINTER(c_float), + POINTER(c_size_t), + # search_type + POINTER(c_int), + # scale + POINTER(c_float), + POINTER(c_size_t), + # output_type + POINTER(c_int), + # output + # polylines + POINTER(POINTER(c_size_t)), + POINTER(c_size_t), + POINTER(POINTER(c_size_t)), + POINTER(c_size_t), + POINTER(POINTER(c_float)), + POINTER(c_size_t), + # types + POINTER(POINTER(c_size_t)), + POINTER(c_size_t), + POINTER(POINTER(c_int)), + POINTER(c_size_t), + # global_parameters + POINTER(c_float), # joint volume + POINTER(c_size_t), # joint volume + POINTER(c_float) # dihedral angle to switch between in-plane and out-of-plane jointery default is 150 degrees + ] + + # generate joints + start_time = time.time() + ############################################################################################################ + # Call the function + # https://stackoverflow.com/questions/4145775/how-do-i-convert-a-python-list-into-a-c-array-by-using-ctypes + # https://stackoverflow.com/questions/53265216/python-ctypes-type-conversion + ############################################################################################################ + + + lib.ctypes_get_connection_zones_with_custom_joints( + # input geometry + # polylines + in_polyline_pairs_f, + byref(in_polyline_pairs_f_s), + in_polyline_pairs_v, + byref(in_polyline_pairs_v_s), + # vectors + in_vectors_f, + byref(in_vectors_f_s), + in_vectors_v, + byref(in_vectors_v_s), + # joints + in_joints_f, + byref(in_joints_f_s), + in_joints_v, + byref(in_joints_v_s), + # three_valence + in_three_valence_f, + byref(in_three_valence_f_s), + in_three_valence_v, + byref(in_three_valence_v_s), + # adjacency + in_adjancency_v, + byref(in_adjancency_v_s), + + #custom joints + in_joint_polyline_pairs_f, + byref(in_joint_polyline_pairs_f_s), # if a value is passed by reference, it must be a pointer + in_joint_polyline_pairs_v, + byref(in_joint_polyline_pairs_v_s), # if a value is passed by reference, it must be a pointer + #custom joints types + in_joint_types_v, + byref(in_joint_types_v_s), + + # input parameters + # joint_parameters + in_joint_parameters_v, + byref(in_joint_parameters_v_s), + # search_type + byref(in_search_type), + # scale + in_scale_v, + byref(in_scale_v_s), + # output_type + byref(in_output_type), + + + # output + # polylines + byref(out_plines_groups_f), + byref(out_plines_groups_f_s), + byref(out_plines_out_f), + byref(out_plines_out_f_s), + byref(out_plines_out_v), + byref(out_plines_out_v_s), + # types + byref(out_types_f), + byref(out_types_f_s), + byref(out_types_v), + byref(out_types_v_s), + # global_parameters + in_joint_volume_parameters_v, + byref(in_joint_volume_parameters_v_s), + byref(face_to_face_side_to_side_joints_dihedral_angle), + ) + """ + + print(out_plines_groups_f[0]) + out_polylines = [] + """ + out_polylines = coord_polylines_lists( + out_plines_groups_f, + out_plines_groups_f_s, + out_plines_out_f, + out_plines_out_f_s, + out_plines_out_v, + out_plines_out_v_s, + ) + + + def temp_coord_numbers_lists(out_f, out_f_s, out_v, out_v_s): + + # create Python objects + ids = [[] for _ in range(out_f_s.value)] + + + + for i in range(out_f_s.value): + #print(i, out_f_s.value) + ids[i] = [None] * out_f[i] + if out_f[i] == 0: + break + + #print( ids) + # fill array with points + a = 0 + b = 0 + #for i in range(0, out_v_s.value): + # print( out_v[i]) + """ + ids[a][b] = out_v[i] + if b == (out_f[a] - 1): + a += 1 + b = 0 + else: + b += 1 + """ + + return ids + + _cuts = coord_numbers_lists( + out_types_f, out_types_f_s, out_types_v, out_types_v_s + ) + """ + print _cuts + print out_types_f, out_types_f_s, out_types_v, out_types_v_s + print out_types_v[0] + print out_types_f[0] + """ + print( + "\n______________________________________ %s ms ______________________________________" + % round((time.time() - start_time) * 1000.0, 2) + ) + + + + + + + # ============================================================================== + # output + # ============================================================================== + _plines = [] + self.bbox = Rhino.Geometry.BoundingBox.Unset + # nest two times the result and add to the tree + for i in range(0, len(out_polylines)): + list = [] + for j in range(0, len(out_polylines[i])): + list.append(out_polylines[i][j])#(conversions.polyline_to_rhino(out_polylines[i][j])) + self.polylines.append(list[-1]) + self.bbox.Union(list[-1].BoundingBox) + _plines.append(list) + + _data = [[_plines,_data[1],_data[2],_data[3],_data[4],_data[5],_cuts]] + #print(_cuts) + + ############################################################################################################ + # release the memory + ############################################################################################################ + + # release output of polylines + lib.release_size_t(byref(out_plines_groups_f), True) + lib.release_size_t(byref(out_plines_out_f), True) + lib.release_float(byref(out_plines_out_v), True) + + # release output of types + lib.release_size_t(byref(out_types_f), True) + lib.release_int(byref(out_types_v), True) + + + return _data + Provides a scripting component. + + 224 + 229 + + + 1867 + 1410 + + true + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAMFJREFUSEu1kNENwjAMRDMCIzACI7EZIzECIzBC8Zkaue7Fzoc56anp6cVWOyTbn6FlJ7TshJad0LITWnZCy07GPRQZcB+hy4CvWVnykyUrS7yvyZacZEm2hPkatmQqS9iSzNf4JaUsKf3b/vSByOSLcP0eD5n5OvtthyIY/hRWfThw9dOqSzbcfkXl23C45aU4vPL9cJBemg03oh+Hg8MLsEvgtXcZ3o/DwakAEJk8I/Np2QktO6FlJ7TshJZNjO0DWCm6HFfh+bgAAAAASUVORK5CYII= + + false + 1e3df9d4-1a0a-43a1-9e27-04b48dd66ab3 + true + true + solver + solver + + + + + + 1549 + 3488 + 148 + 164 + + + 1644 + 3570 + + + + + + 8 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + true + collection of inputs that represent the elements, insertion vectors, joint types and adjacency, use input_set commonent to group these inputs + 3e142fcf-e8ed-4e6e-bdbe-c3a2be8c5142 + _data + _data + true + 0 + true + 6c0947db-d5fd-46a5-b958-16dcd658882d + 1 + 35915213-5534-4277-81b8-1bdc9e7383d2 + 1 + + + + + + 1551 + 3490 + 78 + 20 + + + 1591.5 + 3500 + + + + + + + + 1 + true + joint parameters + 0b41e952-57e3-404e-8c13-b124c1b2af98 + _joint_p + _joint_p + true + 1 + true + 759ed98d-c941-4514-86b0-c9538da7d360 + 1 + 39fbc626-7a01-46ab-a18e-ec1c0c41685b + 1 + + + + + + 1551 + 3510 + 78 + 20 + + + 1591.5 + 3520 + + + + + + + + 1 + true + scale of joint, default is [1,1,1] + dd75622d-4314-4775-9062-f9c2d3cc6adb + _scale + _scale + true + 1 + true + 0 + 39fbc626-7a01-46ab-a18e-ec1c0c41685b + 1 + + + + + + 1551 + 3530 + 78 + 20 + + + 1591.5 + 3540 + + + + + + + + 1 + true + extension by distance, plates often has [0,0,10], whereas beams [10,10,10], default is [0,0,0] + 3aeccb46-7113-47c9-9b59-6f7dae315ed5 + _extension + _extension + true + 1 + true + 0 + 39fbc626-7a01-46ab-a18e-ec1c0c41685b + 1 + + + + + + 1551 + 3550 + 78 + 20 + + + 1591.5 + 3560 + + + + + + + + true + search_type search type 0 - side-to-side, 1 - cross, 2 - both + e7944530-aa5f-473a-9dc2-2f38a683426c + _find + _find + true + 0 + true + 1905dc7b-38f2-456b-b3b6-70f55668caea + 1 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + 1551 + 3570 + 78 + 20 + + + 1591.5 + 3580 + + + + + + + + true + output_type 0 - outlines | 1 - lines | 2 - areas | 3 - volumes | 4 - merged geometry of joints + 45eb8bf9-00de-437c-8da2-74c0322a8c8d + _get + _get + true + 0 + true + 5a342967-e9f5-4ee1-87c1-211304759bdc + 1 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + 1551 + 3590 + 78 + 20 + + + 1591.5 + 3600 + + + + + + + + 1 + true + Script variable solver + 5725d3fd-db68-4583-8b5b-115aa61120f6 + _custom_joints + _custom_joints + true + 1 + true + 08c7a082-dec9-4d7f-b796-0d6ebfcced22 + 1 + 66fa617b-e3e8-4480-9f1e-2c0688c1d21b + 1 + + + + + + 1551 + 3610 + 78 + 20 + + + 1591.5 + 3620 + + + + + + + + 1 + true + Script variable solver + 4d37e470-b5c7-4b74-a08d-0c61d18a0ff8 + _custom_types + _custom_types + true + 1 + true + 02ad6dfb-b392-43f0-bd83-57dd9d312852 + 1 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + 1551 + 3630 + 78 + 20 + + + 1591.5 + 3640 + + + + + + + + user input_get component to ungroup all the data to the individual data-trees + 6e348f00-36ba-42ba-9dda-25233477f55a + _data + _data + false + 0 + + + + + + 1659 + 3490 + 36 + 160 + + + 1677 + 3570 + + + + + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + input_set + + + + + from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +__author__ = "petras" +__version__ = "2023.04.02" + + +import System +import Rhino +import rhinoscriptsyntax as rs +import ghpythonlib.treehelpers as th +from Rhino.Geometry import Polyline +from Rhino.Geometry import Vector3d +from Rhino.Geometry import Plane + +class MyComponent(component): + + def get_plane(self, _polyline, _orientation_point): + + len = _polyline.Count - 1 + normal = Vector3d(0,0,0) + + for i in range((_polyline.Count - 1)): + num = ((i - 1) + len) % len + item1 = ((i + 1) + len) % len + point3d =_polyline[num] + point3d1 =_polyline[item1] + item2 = _polyline[i] + normal = normal + Vector3d.CrossProduct(Vector3d(item2 - point3d), Vector3d(point3d1 - item2)) + + normal.Unitize() + plane = Plane(_polyline.CenterPoint(), normal) + if(plane.DistanceTo(_orientation_point)<0): + plane.Flip() + + return plane + + + + def RunScript(self, _plines, _insertion_vectors, _joints_per_face, _three_valence, _adjacency): + + + + plines = [] + planes = [] + if( _plines.DataCount > 0): + for i in range(_plines.BranchCount): + plines.append(_plines.Branch(i)) + # create planes for orientation + + planes.append(self.get_plane(_plines.Branch(i)[0],_plines.Branch(i)[1][0])) + + insertion_vectors = th.tree_to_list(_insertion_vectors) if _insertion_vectors.DataCount > 0 else [] + joints_per_face = th.tree_to_list(_joints_per_face) if _joints_per_face.DataCount > 0 else [] + three_valence = th.tree_to_list(_three_valence) if _three_valence.DataCount > 0 else [] + adjacency = th.tree_to_list(_adjacency) if _adjacency.DataCount > 0 else [] + + # output + _data = [[plines,insertion_vectors,joints_per_face,three_valence,adjacency, planes]] + + + # return outputs if you have them; here I try it for you: + return _data + + GhPython provides a Python script component + + 190 + 190 + + + 835 + 874 + + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAHtJREFUSEvtkrENgDAMBD0CIzACGzMCIzACozAC/BeOEuSYoACVT7oGrD8K5C8WeLzsBhMrtI56TUSgZuLzwAytgx6Lv2iAfGAd5vKm5WN2OMKCuwjf8YZ4EY5P0KQWyccVK+KOK9eINa7kkaZxRSPeuMLIo/EgCIICkRN37tA7eL9YrAAAAABJRU5ErkJggg== + + false + 3dc056a8-f843-47a3-988b-b341cc79ec27 + true + true + input_set + input_set + + + + + + 1219 + 3405 + 148 + 104 + + + 1314 + 3457 + + + + + + 5 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 2 + true + a data-tree of polyline pairs + 17c51a36-dad2-4659-ba1e-95d70dbf5e7d + _polylines + _polylines + true + 2 + true + de787858-5bad-470a-9ef2-ad30c2f78d8e + 1 + 66fa617b-e3e8-4480-9f1e-2c0688c1d21b + 1 + + + + + + 1221 + 3407 + 78 + 20 + + + 1261.5 + 3417 + + + + + + + + 2 + true + Script input _vectors. + f422b365-a4dd-46e3-8415-81c4b4a18117 + _vectors + _vectors + true + 2 + true + 0 + 15a50725-e3d3-4075-9f7c-142ba5f40747 + 1 + + + + + + 1221 + 3427 + 78 + 20 + + + 1261.5 + 3437 + + + + + + + + 2 + true + Script input _joint_types. + 2d551220-8c26-4d4d-8c7b-4fa1a3a691b9 + _joint_types + _joint_types + true + 2 + true + 0 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + 1221 + 3447 + 78 + 20 + + + 1261.5 + 3457 + + + + + + + + 2 + true + Script input _three_valence. + 02ba4035-3b44-4323-a8da-3f8873cf6a68 + _three_valence + _three_valence + true + 2 + true + 0 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + 1221 + 3467 + 78 + 20 + + + 1261.5 + 3477 + + + + + + + + 2 + true + Script input _adjacency. + e40c0962-cde7-4b71-b3d8-1f2438db6877 + _adjacency + _adjacency + true + 2 + true + 0 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + 1221 + 3487 + 78 + 20 + + + 1261.5 + 3497 + + + + + + + + Script output _data. + 6c0947db-d5fd-46a5-b958-16dcd658882d + _data + _data + false + 0 + + + + + + 1329 + 3407 + 36 + 100 + + + 1347 + 3457 + + + + + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 1905dc7b-38f2-456b-b3b6-70f55668caea + Number Slider + + false + 0 + + + + + + 1211 + 3563 + 160 + 20 + + + 1211.509 + 3563.355 + + + + + + 3 + 1 + 1 + 2 + 0 + 0 + 2 + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 5a342967-e9f5-4ee1-87c1-211304759bdc + Number Slider + + false + 0 + + + + + + 1214 + 3611 + 160 + 20 + + + 1214.628 + 3611.148 + + + + + + 3 + 1 + 1 + 10 + 0 + 0 + 3 + + + + + + + + + 59e0b89a-e487-49f8-bab8-b5bab16be14c + Panel + + + + + A panel for custom notes and text values + 2f33bfa5-fc06-43cd-9b02-2ff57d1626ee + Panel + + false + 0 + 0 + 100 +0.5 +39 + + + + + + 819 + 3515 + 55 + 67 + + 0 + 0 + 0 + + 819.7816 + 3515.667 + + + + + + + 255;255;255;255 + + true + true + false + false + false + true + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + input_get + + + + + from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +import System + +__author__ = "petras" +__version__ = "2023.04.02" + +import ghpythonlib.treehelpers as th +from Rhino.Geometry import Polyline +import Rhino +import rhinoscriptsyntax as rs + +class MyComponent(component): + + def RunScript(self, _data, _split): + + if(_data is None): + return + + split = True if _split is None else _split + + _plines_0 = Grasshopper.DataTree[Rhino.Geometry.Curve]() + _plines_1 = Grasshopper.DataTree[Rhino.Geometry.Curve]() + _lines = Grasshopper.DataTree[Rhino.Geometry.Curve]() + if(split == False): + for i in range(len(_data[0])): + for j in range(len(_data[0][i])): + _plines_0.Add(_data[0][i][j].ToNurbsCurve(),Grasshopper.Kernel.Data.GH_Path(i)) + else: + for i in range(len(_data[0])): + for j in range(len(_data[0][i])): + if(_data[0][i][j].Count == 2): + _lines.Add(_data[0][i][j].ToNurbsCurve(),Grasshopper.Kernel.Data.GH_Path(i)) + else: + if(j%2==0): + print(_data[0][i][j]) + _plines_0.Add(_data[0][i][j].ToNurbsCurve(),Grasshopper.Kernel.Data.GH_Path(i)) + else: + _plines_1.Add(_data[0][i][j].ToNurbsCurve(),Grasshopper.Kernel.Data.GH_Path(i)) + # + + _insertion_vectors = th.list_to_tree(_data[1]) + _joints_per_face = th.list_to_tree(_data[2]) + _three_valence = th.list_to_tree(_data[3]) + _adjacency =th.list_to_tree(_data[4]) + + # return outputs if you have them; here I try it for you: + return (_plines_0,_plines_1, _lines, _insertion_vectors, _joints_per_face, _three_valence, _adjacency) + + GhPython provides a Python script component + true + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAJJJREFUSEvtjcsJgDAQBVOCdaQd059HvaUES/BTgNpJzCY+YSUGA6KXHXiwh2VGfYX1cy+PnCd923ZuWbdXRi5yRnVEAmy/BGxtTPIZG6fZaa3D6E79YOQiZ1RHKr/hLgK5/2loucghHw4nIxm5yEEykpMDFrmRAxZ5IgdnJCMHIVIiByHil5MD+imSC4IgMJTaAXHnQUmI0rVmAAAAAElFTkSuQmCC + + false + aeab23e6-c49d-454c-ab9c-0f0f29698b6c + true + true + input_get + input_get + + + + + + 1850 + 3533 + 179 + 144 + + + 1900 + 3605 + + + + + + 2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 7 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + true + collection of inputs that represent the elements, insertion vectors, joint types and adjacency, use input_set commonent to group these inputs + 8d97a0d6-936e-4ebb-b9c4-df38f21d82c0 + _data + _data + true + 0 + true + 6e348f00-36ba-42ba-9dda-25233477f55a + 1 + 35915213-5534-4277-81b8-1bdc9e7383d2 + 1 + + + + + + 1852 + 3535 + 33 + 70 + + + 1870 + 3570 + + + + + + + + true + Script input _split. + 32e7630b-5c54-4f36-93ae-c4119d8bcf3d + _split + _split + true + 0 + true + 0 + d60527f5-b5af-4ef6-8970-5f96fe412559 + 1 + + + + + + 1852 + 3605 + 33 + 70 + + + 1870 + 3640 + + + + + + + + Script output _plines_0. + ee269db3-9955-488b-a414-2411820fdc15 + 2 + _plines_0 + _plines_0 + false + 0 + + + + + + 1915 + 3535 + 112 + 20 + + + 1963 + 3545 + + + + + + + + Script output _plines_1. + db60993d-aaa1-4625-8875-c536fc709be5 + 2 + _plines_1 + _plines_1 + false + 0 + + + + + + 1915 + 3555 + 112 + 20 + + + 1963 + 3565 + + + + + + + + Script output _lines. + e1f6e9a2-8d7b-4492-b9a0-e0515ea6ee04 + 2 + _lines + _lines + false + 0 + + + + + + 1915 + 3575 + 112 + 20 + + + 1963 + 3585 + + + + + + + + Script output _insertion_vectors. + 303547cb-0fc9-4308-b336-8d735954dfee + _insertion_vectors + _insertion_vectors + false + 0 + + + + + + 1915 + 3595 + 112 + 20 + + + 1963 + 3605 + + + + + + + + Script output _joints_per_face. + 40360709-0fb5-4b5e-a3af-40e92fdce853 + _joints_per_face + _joints_per_face + false + 0 + + + + + + 1915 + 3615 + 112 + 20 + + + 1963 + 3625 + + + + + + + + Script output _three_valence. + 4047a423-46f3-4191-8d35-6173c71535db + _three_valence + _three_valence + false + 0 + + + + + + 1915 + 3635 + 112 + 20 + + + 1963 + 3645 + + + + + + + + Script output _adjacency. + b2bd68d1-0d18-43ea-944d-59e7d3a450fe + _adjacency + _adjacency + false + 0 + + + + + + 1915 + 3655 + 112 + 20 + + + 1963 + 3665 + + + + + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + loft_brep + + + + + """get joints ids and connections areas between elements""" + +__author__ = "petras vestartas" +__version__ = "2023.03.31" + + +from ghpythonlib.componentbase import executingcomponent as component +import Rhino.RhinoDoc +import Rhino.Geometry +import Rhino.RhinoMath +from System.Drawing import Color + + +class connections_zones(component): + def loft_polylines_with_holes(self, curves0, curves1, color): + """Loft polylines with holes + + Parameters + ---------- + curves0 : list[rg.Polyline] + curves1 : list[rg.Polyline] + + Returns + ------- + rg.Brep + brep as lofted polylines and cap them + """ + + ############################################################################### + # user input + ############################################################################### + + if(curves0 == [None]): + return + if(curves1 == [None]): + return + print(curves0) + if(len(curves0) == 0): + return + if(len(curves1) == 0): + return + + flag = len(curves0) is not 0 if True else len(curves1) != 0 + if flag: + curves = [] + curves2 = [] + + flag0 = len(curves1) == 0 + flag1 = len(curves0) == 0 and len(curves1) != 0 + flag2 = len(curves0) and len(curves1) + + if flag0: + for i in range(len(curves0)): + if float(i) >= float(len(curves0)) * 0.5: + curves2.Add(curves0[i]) + else: + curves.Add(curves0[i]) + elif flag1: + for i in range(0, len(curves1), 2): + curves.Add(curves1[i]) + curves2.Add(curves1[i + 1]) + elif flag2: + curves = curves0 + curves2 = curves1 + + curves0 = curves + curves1 = curves2 + + ############################################################################### + # Create mesh of the bottom face + ############################################################################### + brep_bottom = Rhino.Geometry.Brep.CreatePlanarBreps( + curves0, Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance*100 + )[0] + + + brep_top = Rhino.Geometry.Brep.CreatePlanarBreps( + curves1, Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance*100 + )[0] + + ############################################################################### + # Create lofts + ############################################################################### + breps_to_join = [brep_bottom, brep_top] + for i in range(len(curves0)): + wall = Rhino.Geometry.Brep.CreateFromLoft( + [curves0[i], curves1[i]], + Rhino.Geometry.Point3d.Unset, + Rhino.Geometry.Point3d.Unset, + Rhino.Geometry.LoftType.Normal, + False, + )[0] + breps_to_join.append(wall) + + ############################################################################### + # Join Brep + ############################################################################### + solid = Rhino.Geometry.Brep.JoinBreps( + breps_to_join, Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance*10 + )[0] + + faces = [] + for i in range(solid.Faces.Count): + faces.append(solid.Faces[i].DuplicateFace(False)) + + solid = Rhino.Geometry.Brep.JoinBreps( + faces, Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance*10 + )[0] + + + if solid: + solid.Faces.SplitKinkyFaces(Rhino.RhinoMath.DefaultAngleTolerance, True) + + if (Rhino.Geometry.BrepSolidOrientation.Inward is solid.SolidOrientation): + solid.Flip(); + + + if(color is not None): + for i in range(solid.Faces.Count): + solid.Faces[i].PerFaceColor = color + else: + for i in range(solid.Faces.Count): + if i < 2: + solid.Faces[i].PerFaceColor = Color.LightGray # Color.LightGray + else: + solid.Faces[i].PerFaceColor = Color.DeepPink + + return solid + + def RunScript(self, _p0, _p1, _c): + if _p0 and _p1: + return self.loft_polylines_with_holes(_p0, _p1, _c) + + get joints ids and connections areas between elements + + 152 + 152 + + + 835 + 874 + + true + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAA4tJREFUSEu1VVlIVVEUFX9E/BExQ8TUMPtySiQDEe1LMlEoUjNCyCybwDJCc7acspxySM1eojlmJphpSWJKhRGSFs/IEjGiAZuoHN5zt9fV87rvviv204HFu2ffs9c6e7rPjIj+K1SNa4GXByNQBf4mZ5WGtQASxhIDGyVgNxJROic4ODh88PXdWszPgfJ3sjO4KR6+MAZkwB52Iz+lc19ERBSVlFVQ/JFjC05OzuTu7vHO3z+gkd+FM6xBwMDhAYUvRFYX4AVnyi+4OHu/f4DevJ0i7cQrGhp+RJr6RjqVeEYHQY7wO4vCYRI+Mv81BWKCg3eMtnfc7iyvrF6CgBqEoLW1NdnY2AyyX8YKphgg0jCaGRFGApaWluPpGdmdY+Mv8y4UFun4VyJsbb9FjU2thKiErbOrG6kjF5eNIFwNnwwCvJxZ4OfjJyN5TJBRc1UzARKQgby4tPzzlZq6mQIWZvGl4ycSKCU1nXx8fPXsW8UQUQCIAKRDBgErK6vKoKDt0909vcUQ6L3XrykquayHAIvSpaLS37ALcVvbdcv24jJEUgcOAV5GTSAZvb23NNjb2xNDz86L3Ekzh+OPLra0dUhRQAyiEEhKTn3g6ekl2UeePkMt5tYU4OUM4/OxF1Kuq2uvUcLJ0+Tntw0vadfuPRR78JAuM+v85M7QsJkDsXH6wYfDkkj0vv1Ik3ROAa1BAODh0oIYTnIgFbAj56GhYWRubk6paZlSbfC+qaWdEJGKQKORAK8YJtAJ4pzcAqlbxF4g7lA8im7Yo7PQsuxvmAk5/j7wAe7redwYjqiHo+OGH2yngIBASRB2RINIhACQkXmOXF03JcmJDbzyDRe7SxChBivfpGlGCt9yQUw4TzMln03TY+Du9PRRfUMTubltnpZzCRhvuAO4txdBgvTY2a3/xraveAdx1EGIc6G1N5rb7tbWXX/N7TqHNMm5BEwMnJZZkXukycLCYoxFvAAWlGqESFaepdmoqKrRsMB7JRdgYkBacEMQ5eUXEqaWbz+PfmcRQ+H5nI4nuxkCkZF7R1mwUskFmBp4JjBsmAkQCYh2FXZ0EgYSAvwl+AU/JZfEp2bkgo3itlFR0YurtSsEcSYrO+cmX2hCjQdQNQK4ESMcfzb40wFZSEjoPAqNIUMkmAlO30du70Q1DkDVqAZe0r8ZaoSph6AMqukBVI3/Cl74sOWqvVsGmf0BNhRAzQsekLsAAAAASUVORK5CYII= + + false + 91c7d9c8-d4f8-4168-a698-e95006e4538a + true + true + loft_brep + loft_b + + + + + + 2199 + 3533 + 95 + 64 + + + 2240 + 3565 + + + + + + 3 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + true + polylines with holes, bottom + 01de1bc2-771e-4545-aae5-b740fdbd4822 + _p0 + _p0 + true + 1 + true + ee269db3-9955-488b-a414-2411820fdc15 + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + 2201 + 3535 + 24 + 20 + + + 2214.5 + 3545 + + + + + + + + 1 + true + polylines with holes, top + 2275a7aa-9d23-4753-acf3-9adba5b0bdc5 + _p1 + _p1 + true + 1 + true + db60993d-aaa1-4625-8875-c536fc709be5 + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + 2201 + 3555 + 24 + 20 + + + 2214.5 + 3565 + + + + + + + + true + color, if given all the brep is colorized else only the sides, this is useful for boolean difference + f8110352-687f-4df8-adba-2da53b635d24 + _c + _c + true + 0 + true + a9f6dc19-87b3-4a38-95b3-b3d67ba14508 + 1 + 24b1d1a3-ab79-498c-9e44-c5b14607c4d3 + 1 + + + + + + 2201 + 3575 + 24 + 20 + + + 2214.5 + 3585 + + + + + + + + lofted and capped brep with holes + 7405b2f6-9b67-4bf7-8ee4-1fffd5545913 + _brep + _brep + false + 0 + + + + + + 2255 + 3535 + 37 + 60 + + + 2273.5 + 3565 + + + + + + + + + + + + + + 1177d6ee-3993-4226-9558-52b7fd63e1e3 + Trim Tree + + + + + Reduce the complexity of a tree by merging the outermost branches. + true + 8863f15a-a0aa-4c36-bf32-0f78c8d3a6e3 + Trim Tree + Trim + + + + + + 2351 + 3553 + 65 + 44 + + + 2383 + 3575 + + + + + + 2 + Data tree to flatten + b4ebe073-d5ac-4148-8249-0bb0c476aff4 + Tree + T + false + 7405b2f6-9b67-4bf7-8ee4-1fffd5545913 + 1 + + + + + + 2353 + 3555 + 15 + 20 + + + 2362 + 3565 + + + + + + + + Number of outermost branches to merge + 2ab74172-a8e5-4312-a7bb-9a9d44721ffb + Depth + D + false + 0 + + + + + + 2353 + 3575 + 15 + 20 + + + 2362 + 3585 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + 2 + Trimmed data tree + e5c7f0cf-745f-4dba-910c-6a45da180626 + Tree + T + false + 0 + + + + + + 2398 + 3555 + 16 + 40 + + + 2406 + 3575 + + + + + + + + + + + + 9c53bac0-ba66-40bd-8154-ce9829b9db1a + Colour Swatch + + + + + Colour (palette) swatch + a9f6dc19-87b3-4a38-95b3-b3d67ba14508 + Colour Swatch + Swatch + false + 0 + + 255;0;149;255 + + + + + + + 2082 + 3625 + 88 + 20 + + + 2082.583 + 3625.351 + + + + + + + + + + 59e0b89a-e487-49f8-bab8-b5bab16be14c + Panel + + + + + A panel for custom notes and text values + 14fca39b-b99b-4367-84ce-cf2e5a1f4749 + Panel + + false + 0 + 0 + 100 +0.5 +29 + + + + + + 820 + 3448 + 55 + 67 + + 0 + 0 + 0 + + 820.2633 + 3448.526 + + + + + + + 255;255;255;255 + + true + true + false + false + false + true + + + + + + + + + 59e0b89a-e487-49f8-bab8-b5bab16be14c + Panel + + + + + A panel for custom notes and text values + fb22d917-d227-4899-9c59-688de601c120 + Panel + + false + 0 + 0 + 100 +0.5 +9 + + + + + + 820 + 3379 + 55 + 67 + + 0 + 0 + 0 + + 820.4674 + 3379.693 + + + + + + + 255;255;255;255 + + true + true + false + false + false + true + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 3e94942c-eb80-46bb-9a88-14a6607fc575 + Number Slider + + false + 0 + + + + + + 154 + 3691 + 171 + 20 + + + 154.2443 + 3691.437 + + + + + + 3 + 1 + 1 + 100 + 0 + 0 + 9 + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + a7e1e2a2-62ee-4add-b8a3-10a01fbb2d40 + Number Slider + + false + 0 + + + + + + 207 + 3867 + 160 + 20 + + + 207.1858 + 3867.186 + + + + + + 3 + 1 + 1 + 100 + 0 + 0 + 29 + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 9403902a-3bce-46d9-a526-15ba43e8c1ee + Number Slider + + false + 0 + + + + + + -677 + 3454 + 160 + 20 + + + -676.475 + 3454.479 + + + + + + 3 + 1 + 1 + 10 + 0 + 0 + 1 + + + + + + + + + 3a710c1e-1809-4e19-8c15-82adce31cd62 + Tree Branch + + + + + Retrieve a specific branch from a data tree. + true + d2fb79e4-7ae2-466a-9473-636a110a8dbf + true + Tree Branch + Branch + + + + + + 2499 + 3505 + 63 + 44 + + + 2529 + 3527 + + + + + + 2 + Data Tree + 699528ae-56d6-4d94-9dd8-bfe3e9be20b9 + Tree + T + false + e5c7f0cf-745f-4dba-910c-6a45da180626 + 1 + + + + + + 2501 + 3507 + 13 + 20 + + + 2509 + 3517 + + + + + + + + Data tree branch path + 8a1782a6-fb1c-4256-98b6-91e88accdec1 + Path + P + false + 9403902a-3bce-46d9-a526-15ba43e8c1ee + 1 + + + + + + 2501 + 3527 + 13 + 20 + + + 2509 + 3537 + + + + + + + + 2 + Branch at {P} + 4ca465bc-e2fd-4fd2-a1f6-956760c0c034 + Branch + B + false + 0 + + + + + + 2544 + 3507 + 16 + 40 + + + 2552 + 3527 + + + + + + + + + + + + fab11c30-2d9c-4d15-ab3c-2289f1ae5c21 + Solid Difference + + + + + Perform a solid difference on two Brep sets. + 8aa212a8-6517-4a3a-b926-fdd4d369566d + Solid Difference + SDiff + + + + + + 2737 + 3495 + 65 + 44 + + + 2768 + 3517 + + + + + + 1 + First Brep set + 4484564f-6b25-43ee-8cd5-3bea3fcf9a5f + Breps A + A + false + ce018159-0336-4244-8cd9-43c949a7157d + 1 + + + + + + 2739 + 3497 + 14 + 20 + + + 2747.5 + 3507 + + + + + + + + 1 + Second Brep set + 41ff29c7-d15a-4afb-beff-023ff0d99f6c + Breps B + B + false + 460093f6-48e1-4e72-a22b-57eee8d43632 + 1 + + + + + + 2739 + 3517 + 14 + 20 + + + 2747.5 + 3527 + + + + + + + + 1 + Difference result + f679a23c-7172-466a-b638-bd34d0072189 + Result + R + false + 0 + + + + + + 2783 + 3497 + 17 + 40 + + + 2791.5 + 3517 + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 8ec41a42-c6cc-4e46-a9f9-027505d703cf + Curve + cuts1 + false + 0 + + + + + + 260 + 4212 + 50 + 20 + + + 285.0816 + 4222.438 + + + + + + 1 + + + + + 6 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCF8x8sH8XKHT+n7eHyjFwQ8WFwPSF/TDx52B19+150cSfQsWPoZmDy3xWBgT4ANX7B0x/t/8Bpv9D+ewOIJ9u+S7e+r+eqQHVfcQCAA== + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCF8x8sH8XKHT+n7c3MQaBx/bcUHEhMH1hP0z8OVjdfXteNPGnUPFjaObgMp+VAQE+QPX+AdPf7X+A6f9QPrsD2Kem7zP+1zM1wPRwM5ACAA== + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDCAcy8sH8DKHT+n7eHSD2wxyG+XwEqLgClCYjjMseelQEdfLD/BVbz3f4vmGZ2gPDZHUA+5UgvXf2/nqkBppobQz8+AAA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCA8x8sv8HKHT+P7aHSD2wxyG+XwAqzgOlCYjjMseelQEdfLCHRA6TA4TmgtJCDiCfWmwSVP5fz9QAU82NoR8fAAA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECiARQq/8/bQ4QuQOkH9jjE9x+AinNAxPcTEMdljj0rAzr4YM8Epn/YQyKJxQHC53AA+VRxm7Dd/3qmBphqbgz9+AAA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDiByhU/j+2fwOlIVIP7HGI75cA00/seSD0fgLiuMyxZ2VABx/smcD0D3tIJLE4QPgcDiCfZm26nPy/nqkBppobQz8+AAA= + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 92610cfa-95e7-402b-8f6e-c82d95bac16b + Curve + cuts0 + false + 0 + + + + + + 251 + 4166 + 50 + 20 + + + 276.5425 + 4176.624 + + + + + + 1 + + + + + 6 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAwwcMEeQj+wZ0ABcPH9aOL7CYjjMgcuzook+wEUM//v2/8B09/tf4Dp/1A+uwPIpwYy87f8r2dqgOnhZiAFAAA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAwwcMEeQj+wNwaDx/vRxPejie8nII7LHLg4wm4Ghg+gmPl/3/4PmP5u/wNM/4fy2R1APu3W0L31v56pAaaHm4EUAAA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEBCAcy8sH8DKHT+n98PkXqwH4e4/QMI3/4DceK4zNnPyoAOPtgzgekf9pBIYnGA8DkcQD49sS9y6v96pgaYam4M/fgAAA== + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDiByhU/j/ezwIWerIfIvVgPw5xewj9xF6FOHFc5uxnZUAHH+yZwPQPe0gksThA+BwOIJ/+X3Hf6X89UwNMNTeGfnwAAA== + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDiAShU/p/frwEWumAPkXqwH4c4lL5gz0GcOC5z9rMyoIMP9r/Aar/b/wXTzA4QPrsDyKdVbVH2/+uZGmCquTH04wMA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8GT/H1Do/H9sD+E/2I9DHEo/sWeB0gTEcZmzH2E3DHywh0QOkwOE5oLSQg4gny7bJPjifz1TA0w1N4Z+fAAA + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 3b297b50-4bef-44b6-8dd2-55ccc9ca83b1 + Number Slider + + false + 0 + + + + + + 174 + 4252 + 160 + 20 + + + 174.8443 + 4252.083 + + + + + + 3 + 1 + 1 + 100 + 0 + 0 + 39 + + + + + + + + + 10434a15-da85-4281-bb64-a2b3a995b9c6 + Solid Union + + + + + Perform a solid union on a set of Breps. + true + e2d269aa-b608-4833-b88d-0744732646ff + Solid Union + SUnion + + + + + + 2642 + 3513 + 64 + 28 + + + 2672 + 3527 + + + + + + 1 + Breps to union + b304eccd-1465-4dd0-96a9-90aae42cd62d + Breps + B + false + 4ca465bc-e2fd-4fd2-a1f6-956760c0c034 + 1 + + + + + + 2644 + 3515 + 13 + 24 + + + 2652 + 3527 + + + + + + + + 1 + Union result + 460093f6-48e1-4e72-a22b-57eee8d43632 + Result + R + false + 0 + + + + + + 2687 + 3515 + 17 + 24 + + + 2695.5 + 3527 + + + + + + + + + + + + 3cadddef-1e2b-4c09-9390-0e8f78f7609f + Merge + + + + + Merge a bunch of data streams + true + 43eded47-ab5c-44bd-97c3-b39841070a73 + Merge + Merge + + + + + + 765 + 3765 + 72 + 64 + + + 803 + 3797 + + + + + + 3 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 2 + Data stream 1 + e1544744-acec-4000-9a0d-c7c0286d31d6 + false + Data 1 + D1 + true + 40f0d80a-77c4-488a-bf51-c63776912cba + 1 + + + + + + 767 + 3767 + 21 + 20 + + + 779 + 3777 + + + + + + + + 2 + Data stream 2 + adc7474c-08b5-43c6-b106-0d0eb6d34d9a + false + Data 2 + D2 + true + f94a07f0-5873-483a-9849-fb7a205eaf1c + 1 + + + + + + 767 + 3787 + 21 + 20 + + + 779 + 3797 + + + + + + + + 2 + Data stream 3 + 179a2a3c-ec38-4e12-b191-ccd3fb071547 + false + Data 3 + D3 + true + ef2b0a95-f858-4d69-ac03-18c1214168b2 + 1 + + + + + + 767 + 3807 + 21 + 20 + + + 779 + 3817 + + + + + + + + 2 + Result of merge + df07b09e-d225-41d2-9434-0e0b0a62574c + Result + R + false + 0 + + + + + + 818 + 3767 + 17 + 60 + + + 826.5 + 3797 + + + + + + + + + + + + + + 3cadddef-1e2b-4c09-9390-0e8f78f7609f + Merge + + + + + Merge a bunch of data streams + true + cf400057-5c4d-4ba5-99d5-ec1844bf3253 + Merge + Merge + + + + + + 758 + 3941 + 72 + 64 + + + 796 + 3973 + + + + + + 3 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 2 + Data stream 1 + af0ded1b-9c73-480c-9047-8c134f254194 + false + Data 1 + D1 + true + f5f7cbd2-2fc6-463c-9758-3a340625a2ea + 1 + + + + + + 760 + 3943 + 21 + 20 + + + 772 + 3953 + + + + + + + + 2 + Data stream 2 + 564ae1b6-d6f9-41df-9391-9fc3799721e1 + false + Data 2 + D2 + true + 45c60cc3-19ad-4291-9332-450329214fc6 + 1 + + + + + + 760 + 3963 + 21 + 20 + + + 772 + 3973 + + + + + + + + 2 + Data stream 3 + 7692f6ab-afe2-4a8e-bd48-0dba3bfa9872 + false + Data 3 + D3 + true + c8d27472-db3f-41d0-981d-1ebe65b57a7c + 1 + + + + + + 760 + 3983 + 21 + 20 + + + 772 + 3993 + + + + + + + + 2 + Result of merge + a92a8b7e-cb73-4731-b978-37a04f1e205b + Result + R + false + 0 + + + + + + 811 + 3943 + 17 + 60 + + + 819.5 + 3973 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;255;255 + + A group of Grasshopper objects + 6b1ea716-0435-443c-b619-558dcf361931 + 48f9c889-594d-4b7a-86d3-1c44d38dc1ad + 3c3bf22d-6774-446c-bf94-1b16f29fb675 + 3e94942c-eb80-46bb-9a88-14a6607fc575 + 8dae4e11-0ece-4540-8462-4a262db68187 + cef72e71-5e0c-4280-acf6-16ed6816d824 + a2c724da-1ebf-4dcd-95bf-3bb6bd389daf + a7e1e2a2-62ee-4add-b8a3-10a01fbb2d40 + e032e801-c8cc-4569-a681-e5b8f3797397 + 8ec41a42-c6cc-4e46-a9f9-027505d703cf + 92610cfa-95e7-402b-8f6e-c82d95bac16b + 3b297b50-4bef-44b6-8dd2-55ccc9ca83b1 + 43eded47-ab5c-44bd-97c3-b39841070a73 + cf400057-5c4d-4ba5-99d5-ec1844bf3253 + 18b15521-862c-4361-bc47-c1b56ac67a91 + 5c0775e9-6f65-49e8-bc8d-ac52e9983606 + 73af52ef-9348-4c1d-b2da-f71787e7e3e8 + 17 + 470e202b-f9c6-4858-b72d-36bda8f672a4 + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;255;255 + + A group of Grasshopper objects + fee8f4e0-9e4c-4998-bfee-c192ef547725 + 2f33bfa5-fc06-43cd-9b02-2ff57d1626ee + 14fca39b-b99b-4367-84ce-cf2e5a1f4749 + 01331772-32f9-4c5b-a338-f084ebe05964 + fb22d917-d227-4899-9c59-688de601c120 + 29dc9e9d-6fbd-4231-aba7-ee5561465623 + 6fae05f3-2104-4d37-b49e-6dc7e2de1389 + 2421a515-612b-47ac-81d1-780a53757dd6 + 3326d13f-bb35-4f80-ba26-c19a8984becd + 9 + a2f70b9e-2ab6-449e-8d92-be9b1cd0fe8a + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;0;0 + + A group of Grasshopper objects + 48f9c889-594d-4b7a-86d3-1c44d38dc1ad + 3c3bf22d-6774-446c-bf94-1b16f29fb675 + a3a7d60e-46a5-4c90-a6bb-acc265d47a19 + 3a72b264-9802-47cd-84da-6282b522715f + 932e21d0-94fa-4858-a2a6-9f68a42b25bd + fa2dd1e9-83b1-486b-8800-adbc62d4b1cc + 13eb7b5d-aad3-46b4-a1de-6016f29ce99c + 7 + 9eba3e4a-79e2-4e15-96e2-7eef4f371984 + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;0;0 + + A group of Grasshopper objects + cef72e71-5e0c-4280-acf6-16ed6816d824 + a2c724da-1ebf-4dcd-95bf-3bb6bd389daf + f50a45b0-962d-4c44-9e16-e712ed4d7d84 + 1b02df4f-2afc-41c8-9130-0a11330f2ec7 + 7c91ef57-984c-4987-a198-a6aaa86ceaef + 8a075058-7deb-4d96-aec0-5ab720733787 + 74329c13-cd69-49b6-aa07-321a68a2d549 + 7 + 752506c1-2950-4e56-88cb-2d1276f797c6 + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;0;0 + + A group of Grasshopper objects + 8ec41a42-c6cc-4e46-a9f9-027505d703cf + 92610cfa-95e7-402b-8f6e-c82d95bac16b + 37533f19-c224-4f60-8128-24402bdea310 + 9e7b5e7e-8505-4179-9544-936e9e93c6f1 + 5c965f78-0525-4314-89d8-3c737b371ee6 + ad1be4c9-01f8-44c9-a66d-37715e5e936e + f6321ea6-41b6-4396-b79e-af31ddabcbac + 7 + 6115e0d5-dd9e-464b-a50c-928600419a16 + Group + + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + solver + + + + + from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +import System +import Rhino +import rhinoscriptsyntax as rs +from Rhino.Geometry import Polyline, Point3d + +class MyComponent(component): + + def RunScript(self, _cuts0, _cuts1, _type): + + + _custom_joints = [] + _custom_types = [] + type = 39 if _type is None else _type + + for i in range(len(_cuts0)): + _custom_joints.append(_cuts0[i]) + _custom_types.append(type) + + for i in range(len(_cuts1)): + _custom_joints.append(_cuts1[i]) + _custom_types.append(-type) + + + # return outputs if you have them; here I try it for you: + return (_custom_joints, _custom_types) + + GhPython provides a Python script component + true + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAT9JREFUSEvNkrFqAkEURfcbtjelVkYbSSM2ktrESArFH7CLkD5YGEglgTQhkHxCCKROm5Bmv8BYiZWlIEgm7252hp31jiYwggNn2Xdn5h14TKCU2ik09AkNfUJDn9DQJzT0CQ19QkMXsk7y+UKUpVqtddh5QEMXsq4u+pfq+eXVgLrZbD2x84CGLiAYXt+o8dfEgHq/BTLjNz3rMAxnTJDLHcz1GVCpHI30/d9PEAyEsg7TyLJm/v7xaQlQp/dHt3eqXj+eyr1YoptMhKWwJpFlNdwGJPKqvtEzvp80gQA/axLkrJGLRICLVAAsCTLWyMVfBCCWCD3Ujcap4f7h0WqI+qx1vtD7Mn9VLB6ix0YBgGSVyeJXkxagLpXKmLl1TtgqoDBBMpIseypAs3ana0DtVfAPLEGU2vBFZAS7QwU/eZV5j2Rlwm4AAAAASUVORK5CYII= + + false + 18b15521-862c-4361-bc47-c1b56ac67a91 + true + true + solver + solver + + + + + + 426 + 3655 + 152 + 64 + + + 480 + 3687 + + + + + + 3 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + true + cuts for removal from the first beam + 1f424ae5-87e4-4645-b3a4-0bbb1ecba73c + _cuts0 + _cuts0 + true + 1 + true + 48f9c889-594d-4b7a-86d3-1c44d38dc1ad + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + 428 + 3657 + 37 + 20 + + + 448 + 3667 + + + + + + + + 1 + true + Script input _cuts1. + 015e0521-5342-476d-9432-4e3fd675842d + _cuts1 + _cuts1 + true + 1 + true + 3c3bf22d-6774-446c-bf94-1b16f29fb675 + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + 428 + 3677 + 37 + 20 + + + 448 + 3687 + + + + + + + + true + Script input _type. + 5385130b-3c82-43c5-8109-87acb670c6f5 + _type + _type + true + 0 + true + 3e94942c-eb80-46bb-9a88-14a6607fc575 + 1 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + 428 + 3697 + 37 + 20 + + + 448 + 3707 + + + + + + + + Script output _custom_joints. + 40f0d80a-77c4-488a-bf51-c63776912cba + _custom_joints + _custom_joints + false + 0 + + + + + + 495 + 3657 + 81 + 30 + + + 535.5 + 3672 + + + + + + + + Script output _custom_types. + f5f7cbd2-2fc6-463c-9758-3a340625a2ea + _custom_types + _custom_types + false + 0 + + + + + + 495 + 3687 + 81 + 30 + + + 535.5 + 3702 + + + + + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + solver + + + + + from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +import System +import Rhino +import rhinoscriptsyntax as rs +from Rhino.Geometry import Polyline, Point3d + +class MyComponent(component): + + def RunScript(self, _cuts0, _cuts1, _type): + + + _custom_joints = [] + _custom_types = [] + type = 39 if _type is None else _type + + for i in range(len(_cuts0)): + _custom_joints.append(_cuts0[i]) + _custom_types.append(type) + + for i in range(len(_cuts1)): + _custom_joints.append(_cuts1[i]) + _custom_types.append(-type) + + + # return outputs if you have them; here I try it for you: + return (_custom_joints, _custom_types) + + GhPython provides a Python script component + true + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAT9JREFUSEvNkrFqAkEURfcbtjelVkYbSSM2ktrESArFH7CLkD5YGEglgTQhkHxCCKROm5Bmv8BYiZWlIEgm7252hp31jiYwggNn2Xdn5h14TKCU2ik09AkNfUJDn9DQJzT0CQ19QkMXsk7y+UKUpVqtddh5QEMXsq4u+pfq+eXVgLrZbD2x84CGLiAYXt+o8dfEgHq/BTLjNz3rMAxnTJDLHcz1GVCpHI30/d9PEAyEsg7TyLJm/v7xaQlQp/dHt3eqXj+eyr1YoptMhKWwJpFlNdwGJPKqvtEzvp80gQA/axLkrJGLRICLVAAsCTLWyMVfBCCWCD3Ujcap4f7h0WqI+qx1vtD7Mn9VLB6ix0YBgGSVyeJXkxagLpXKmLl1TtgqoDBBMpIseypAs3ana0DtVfAPLEGU2vBFZAS7QwU/eZV5j2Rlwm4AAAAASUVORK5CYII= + + false + 5c0775e9-6f65-49e8-bc8d-ac52e9983606 + true + true + solver + solver + + + + + + 447 + 3811 + 152 + 64 + + + 501 + 3843 + + + + + + 3 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + true + cuts for removal from the first beam + d38bb2d2-9382-4d66-b8fe-4eb80b703152 + _cuts0 + _cuts0 + true + 1 + true + d9ce5f82-f68e-4e21-b2e4-e024d1e454c3 + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + 449 + 3813 + 37 + 20 + + + 469 + 3823 + + + + + + + + 1 + true + Script input _cuts1. + 1634ee31-3adf-4810-b304-c850f26a7970 + _cuts1 + _cuts1 + true + 1 + true + b6e1a597-3d47-4830-8279-8d4ff4a74b5d + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + 449 + 3833 + 37 + 20 + + + 469 + 3843 + + + + + + + + true + Script input _type. + 7caeebf6-6eb9-425c-ba7d-96c56885587b + _type + _type + true + 0 + true + a7e1e2a2-62ee-4add-b8a3-10a01fbb2d40 + 1 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + 449 + 3853 + 37 + 20 + + + 469 + 3863 + + + + + + + + Script output _custom_joints. + f94a07f0-5873-483a-9849-fb7a205eaf1c + _custom_joints + _custom_joints + false + 0 + + + + + + 516 + 3813 + 81 + 30 + + + 556.5 + 3828 + + + + + + + + Script output _custom_types. + 45c60cc3-19ad-4291-9332-450329214fc6 + _custom_types + _custom_types + false + 0 + + + + + + 516 + 3843 + 81 + 30 + + + 556.5 + 3858 + + + + + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + solver + + + + + from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +import System +import Rhino +import rhinoscriptsyntax as rs +from Rhino.Geometry import Polyline, Point3d + +class MyComponent(component): + + def RunScript(self, _cuts0, _cuts1, _type): + + + _custom_joints = [] + _custom_types = [] + type = 39 if _type is None else _type + + for i in range(len(_cuts0)): + _custom_joints.append(_cuts0[i]) + _custom_types.append(type) + + for i in range(len(_cuts1)): + _custom_joints.append(_cuts1[i]) + _custom_types.append(-type) + + + # return outputs if you have them; here I try it for you: + return (_custom_joints, _custom_types) + + GhPython provides a Python script component + true + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAT9JREFUSEvNkrFqAkEURfcbtjelVkYbSSM2ktrESArFH7CLkD5YGEglgTQhkHxCCKROm5Bmv8BYiZWlIEgm7252hp31jiYwggNn2Xdn5h14TKCU2ik09AkNfUJDn9DQJzT0CQ19QkMXsk7y+UKUpVqtddh5QEMXsq4u+pfq+eXVgLrZbD2x84CGLiAYXt+o8dfEgHq/BTLjNz3rMAxnTJDLHcz1GVCpHI30/d9PEAyEsg7TyLJm/v7xaQlQp/dHt3eqXj+eyr1YoptMhKWwJpFlNdwGJPKqvtEzvp80gQA/axLkrJGLRICLVAAsCTLWyMVfBCCWCD3Ujcap4f7h0WqI+qx1vtD7Mn9VLB6ix0YBgGSVyeJXkxagLpXKmLl1TtgqoDBBMpIseypAs3ana0DtVfAPLEGU2vBFZAS7QwU/eZV5j2Rlwm4AAAAASUVORK5CYII= + + false + 73af52ef-9348-4c1d-b2da-f71787e7e3e8 + true + true + solver + solver + + + + + + 452 + 4181 + 152 + 64 + + + 506 + 4213 + + + + + + 3 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + true + cuts for removal from the first beam + 7380577d-e399-4f3d-baf2-17b3ca9b898f + _cuts0 + _cuts0 + true + 1 + true + 92610cfa-95e7-402b-8f6e-c82d95bac16b + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + 454 + 4183 + 37 + 20 + + + 474 + 4193 + + + + + + + + 1 + true + Script input _cuts1. + 503728ed-00a4-41f1-be74-4bbd3eaf2552 + _cuts1 + _cuts1 + true + 1 + true + 8ec41a42-c6cc-4e46-a9f9-027505d703cf + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + 454 + 4203 + 37 + 20 + + + 474 + 4213 + + + + + + + + true + Script input _type. + 3445648e-f83d-4085-bcc2-e07f009b25a8 + _type + _type + true + 0 + true + 3b297b50-4bef-44b6-8dd2-55ccc9ca83b1 + 1 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + 454 + 4223 + 37 + 20 + + + 474 + 4233 + + + + + + + + Script output _custom_joints. + ef2b0a95-f858-4d69-ac03-18c1214168b2 + _custom_joints + _custom_joints + false + 0 + + + + + + 521 + 4183 + 81 + 30 + + + 561.5 + 4198 + + + + + + + + Script output _custom_types. + c8d27472-db3f-41d0-981d-1ebe65b57a7c + _custom_types + _custom_types + false + 0 + + + + + + 521 + 4213 + 81 + 30 + + + 561.5 + 4228 + + + + + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + joint_parameters + + + + + from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +import math + +class joint_parameters_component(component): + def RunScript( + self, + _ss_e_ip, + _ss_e_op, + _ts_e_p, + _cr_c_ip, + _tt_e_p, + _ss_e_r, + _b + + ): + + joint_parameters = [ + 300, 0.5, 3, # 1-9 ss_e_ip (side-to-side edge in-plane) + 50, 0.64, 15, # 10-19 ss_e_op (side-to-side edge out-of-plane) + 450, 0.5, 20, # 20-29 ts_e_p (top-to-side edge plane) + 300, 0.5, 30, # 30-39 cr_c_ip (cross cutting in-plane) + 6, 0.95, 40, # 40-49 tt_e_p (top-to-top edge plane) + 300, 0.5, 58, # 50-59 ss_e_r (side-to-side edge rotated) + 300, 1.0, 60 # 60-69 b (boundary) + ] + + for i in range(len(_ss_e_ip)): + joint_parameters[0*3+i] = _ss_e_ip[i] + + for i in range(len(_ss_e_op)): + joint_parameters[1*3+i] = _ss_e_op[i] + + for i in range(len(_ts_e_p)): + joint_parameters[2*3+i] = _ts_e_p[i] + + for i in range(len(_cr_c_ip)): + joint_parameters[3*3+i] = _cr_c_ip[i] + + if(math.floor(joint_parameters[3*3+2]) == 38): + joint_parameters[3*3+2]= 30 + + for i in range(len(_tt_e_p)): + joint_parameters[4*3+i] = _tt_e_p[i] + + for i in range(len(_ss_e_r)): + joint_parameters[5*3+i] = _ss_e_r[i] + + for i in range(len(_b)): + joint_parameters[6*3+i] = _b[i] + + _joint_p = joint_parameters + + return _joint_p + GhPython provides a Python script component + + 5512 + 392 + + + 1162 + 1094 + + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAIBJREFUSEvtk9sJgDAMRTuCIzqCmziCIziCIziS5igpRZr0wwd+5MKBNqT3fDVFIpHIjzIL/Xl0MwrsdsfNDl3s5SzCJniSSWAHVsGS0MEOnTkqsCRluVKTaDmYAigltXKllJTl4AqAB165gmS4zKApuEsImnwr4IcyeBI6305KO9yWtVGwBUR9AAAAAElFTkSuQmCC + + false + 3326d13f-bb35-4f80-ba26-c19a8984becd + true + true + joint_parameters + joint_parameters + + + + + + 954 + 3428 + 100 + 144 + + + 1020 + 3500 + + + + + + 7 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + true + side-to-side in-plane joint parameters + eb264ca6-5902-4cc4-a8fe-c835c894e425 + _ss_e_ip + _ss_e_ip + true + 1 + true + fb22d917-d227-4899-9c59-688de601c120 + 1 + 39fbc626-7a01-46ab-a18e-ec1c0c41685b + 1 + + + + + + 956 + 3430 + 49 + 20 + + + 982 + 3440 + + + + + + + + 1 + true + Script input _ss_e_op. + 9220d7ec-31b1-4dbe-9d96-98bf78bec49f + _ss_e_op + _ss_e_op + true + 1 + true + 0 + 39fbc626-7a01-46ab-a18e-ec1c0c41685b + 1 + + + + + + 956 + 3450 + 49 + 20 + + + 982 + 3460 + + + + + + + + 1 + true + Script input _ts_e_p. + 63b3fc70-c9f1-4fb1-b3c2-2d6abe720532 + _ts_e_p + _ts_e_p + true + 1 + true + 14fca39b-b99b-4367-84ce-cf2e5a1f4749 + 1 + 39fbc626-7a01-46ab-a18e-ec1c0c41685b + 1 + + + + + + 956 + 3470 + 49 + 20 + + + 982 + 3480 + + + + + + + + 1 + true + Script input _cr_c_ip. + e6f3daf0-5b3a-4e6b-a7e3-ae190a0fecd7 + _cr_c_ip + _cr_c_ip + true + 1 + true + 2f33bfa5-fc06-43cd-9b02-2ff57d1626ee + 1 + 39fbc626-7a01-46ab-a18e-ec1c0c41685b + 1 + + + + + + 956 + 3490 + 49 + 20 + + + 982 + 3500 + + + + + + + + 1 + true + Script input _tt_e_p. + 1e07fb2b-fc23-4877-85bb-47adf4fc4fef + _tt_e_p + _tt_e_p + true + 1 + true + 0 + 39fbc626-7a01-46ab-a18e-ec1c0c41685b + 1 + + + + + + 956 + 3510 + 49 + 20 + + + 982 + 3520 + + + + + + + + 1 + true + Script input _ss_e_r. + cef65493-4a1a-474a-9847-1cec7b9391da + _ss_e_r + _ss_e_r + true + 1 + true + 0 + 39fbc626-7a01-46ab-a18e-ec1c0c41685b + 1 + + + + + + 956 + 3530 + 49 + 20 + + + 982 + 3540 + + + + + + + + 1 + true + Script input _b. + 4073db13-5363-449a-ba26-358a0dcfee92 + _b + _b + true + 1 + true + 0 + 39fbc626-7a01-46ab-a18e-ec1c0c41685b + 1 + + + + + + 956 + 3550 + 49 + 20 + + + 982 + 3560 + + + + + + + + Script output p. + 759ed98d-c941-4514-86b0-c9538da7d360 + p + p + false + 0 + + + + + + 1035 + 3430 + 17 + 140 + + + 1043.5 + 3500 + + + + + + + + + + + + + + 59e0b89a-e487-49f8-bab8-b5bab16be14c + Panel + + + + + A panel for custom notes and text values + f2456ab4-3362-46b7-81bd-d8a0127e8e67 + Panel + height + false + 0 + 0 + 100 + + + + + + 346 + 3196 + 50 + 38 + + 0 + 0 + 0 + + 346.7537 + 3196.176 + + + + + + + 255;255;250;90 + + true + true + true + false + false + true + + + + + + + + + 59e0b89a-e487-49f8-bab8-b5bab16be14c + Panel + + + + + A panel for custom notes and text values + cfa173d2-a2dd-42c3-9157-99ad03cc3fed + Panel + width + false + 0 + 0 + 150 + + + + + + 345 + 3229 + 53 + 38 + + 0 + 0 + 0 + + 345.7615 + 3229.315 + + + + + + 3 + + 255;255;250;90 + + true + true + true + false + false + true + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + GhPython Script + + + + + __author__ = "damien" +__version__ = "2024.3.31" + +import Rhino + +rectangles_side_a = [] +rectangles_side_b = [] +extrusion_direction = [] +brep_basis = [] + +helpers =[] + +for i in range(len(wireframe)): + + #calculate perpendicular vector to input wireframe + perp_vectors = Rhino.Geometry.Vector3d.CrossProduct(wireframe[i].Direction,Rhino.Geometry.Vector3d(0,1,0)) + perp_vectors.Unitize() + + #copy curve direction + direction_copy = wireframe[i].Direction + direction_copy.Unitize() + + shifted_start = Rhino.Geometry.Point3d(wireframe[i].From - Rhino.Geometry.Point3d(height * direction_copy)) + basis_point = Rhino.Geometry.Point3d.Add(wireframe[i].From, perp_vectors*(height/2)+Rhino.Geometry.Vector3d(0,width/2,0)) + + origin_plane = Rhino.Geometry.Plane(basis_point, wireframe[i].Direction,Rhino.Geometry.Vector3d(0,1,0)) + helpers.append(origin_plane) + + rectangles_side_a.append(Rhino.Geometry.Rectangle3d(origin_plane,wireframe[i].Length,-1*width)) + + points_side_b = Rhino.Geometry.Point3d.Add(basis_point,perp_vectors*-1*height) + planes_side_b = Rhino.Geometry.Plane(points_side_b,wireframe[i].Direction,Rhino.Geometry.Vector3d(0,1,0)) + rectangles_side_b.append(Rhino.Geometry.Rectangle3d(planes_side_b,wireframe[i].Length,-1*width)) + + shifted_point_side_b_brep = points_side_b + (Rhino.Geometry.Point3d(direction_copy*height)) * (-1) + plane_side_b_brep = Rhino.Geometry.Plane(shifted_point_side_b_brep,wireframe[i].Direction,Rhino.Geometry.Vector3d(0,1,0)) + brep_basis.append(Rhino.Geometry.Rectangle3d(plane_side_b_brep,wireframe[i].Length + height*2, -1*width)) + + extrusion_direction.append(origin_plane.ZAxis*height) + GhPython provides a Python script component + + 6674 + 531 + + + 2126 + 1552 + + true + false + false + 0548af92-b565-4223-88b3-66e0e51a64df + false + true + GhPython Script + Python + + + + + + 514 + 3197 + 191 + 104 + + + 586 + 3249 + + + + + + 3 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 5 + 3ede854e-c753-40eb-84cb-b48008f14fd4 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + true + The x script variable + d548874b-071a-4f2a-a704-7cbeffb7cfb5 + height + height + true + 0 + true + f2456ab4-3362-46b7-81bd-d8a0127e8e67 + 1 + 48d01794-d3d8-4aef-990e-127168822244 + + + + + + 516 + 3199 + 55 + 33 + + + 545 + 3215.667 + + + + + + + + true + Script input width. + 679e8662-ff5a-474b-9871-4945c2a3bab5 + width + width + true + 0 + true + cfa173d2-a2dd-42c3-9157-99ad03cc3fed + 1 + 48d01794-d3d8-4aef-990e-127168822244 + + + + + + 516 + 3232 + 55 + 33 + + + 545 + 3249 + + + + + + + + 1 + true + Script input wireframe. + 74e0aaac-725d-4a26-86ab-e4d0c4768002 + wireframe + wireframe + true + 1 + true + bd03f279-ba8e-42aa-b856-4844f3aa86f5 + 1 + f802a8cd-e699-4a94-97ea-83b5406271de + + + + + + 516 + 3265 + 55 + 34 + + + 545 + 3282.333 + + + + + + + + The execution information, as output and error streams + 67df6258-d087-4f50-9998-99be29ad701d + out + out + false + 0 + + + + + + 601 + 3199 + 102 + 20 + + + 652 + 3209 + + + + + + + + Script output rectangles_side_a. + 3b2ba299-d9a3-432f-9c7f-7158983122b7 + rectangles_side_a + rectangles_side_a + false + 0 + + + + + + 601 + 3219 + 102 + 20 + + + 652 + 3229 + + + + + + + + Script output rectangles_side_b. + 9fa1a9b6-da87-49dd-bdcf-539c28be6a38 + rectangles_side_b + rectangles_side_b + false + 0 + + + + + + 601 + 3239 + 102 + 20 + + + 652 + 3249 + + + + + + + + Script output brep_basis. + 2f59a11c-ee44-4d18-818f-a7a2d94cab8c + brep_basis + brep_basis + false + 0 + + + + + + 601 + 3259 + 102 + 20 + + + 652 + 3269 + + + + + + + + Script output extrusion_direction. + 769cbb1f-ae4c-42f1-92b7-3c07ae4ce99a + extrusion_direction + extrusion_direction + false + 0 + + + + + + 601 + 3279 + 102 + 20 + + + 652 + 3289 + + + + + + + + + + + + + + 50faccbd-9c92-4175-a5fa-d65e36013db6 + Weave + + + + + Weave a set of input data using a custom pattern. + bd1acc50-481f-4819-9533-cd50e7c75ec2 + Weave + Weave + false + + + + + + 774 + 3192 + 67 + 64 + + + 804 + 3224 + + + + + + 3 + 2e3ab970-8545-46bb-836c-1c11e5610bce + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + Weave pattern of input indices + cd0cdfa6-2ada-492e-a749-4fd59927e920 + Pattern + P + false + 0 + + + + + + 776 + 3194 + 13 + 20 + + + 784 + 3204 + + + + + + 1 + + + + + 2 + {0} + + + + + 0 + + + + + 1 + + + + + + + + + + + 1 + Input stream 0 + 21d858c0-d618-4661-b1b9-7fe3c1937f30 + false + Stream 0 + 0 + false + 3b2ba299-d9a3-432f-9c7f-7158983122b7 + 1 + + + + + + 776 + 3214 + 13 + 20 + + + 784 + 3224 + + + + + + + + 1 + Input stream 1 + 97d13ab7-b699-4853-bc46-65cf8b630a20 + false + Stream 1 + 1 + false + 9fa1a9b6-da87-49dd-bdcf-539c28be6a38 + 1 + + + + + + 776 + 3234 + 13 + 20 + + + 784 + 3244 + + + + + + + + 1 + Weave result + 537d9553-de90-4298-96ac-1804ed4d67e4 + Weave + W + false + 0 + + + + + + 819 + 3194 + 20 + 60 + + + 829 + 3224 + + + + + + + + + + + + + + 2956d989-3599-476f-bc92-1d847aff98b6 + Curve To Polyline + + + + + Convert a curve to a polyline. + 39aa5c44-1266-4472-9217-2470618e232e + Curve To Polyline + ToPoly + + + + + + 896 + 3212 + 70 + 104 + + + 933 + 3264 + + + + + + Curve to simplify + 2367e539-ec66-4df4-a479-59d0ca8f655d + Curve + C + false + 537d9553-de90-4298-96ac-1804ed4d67e4 + 1 + + + + + + 898 + 3214 + 20 + 20 + + + 909.5 + 3224 + + + + + + + + Deviation tolerance + a19dbb57-4828-40f9-9b1d-4be238a4de90 + Tolerance (distance) + Td + false + 0 + + + + + + 898 + 3234 + 20 + 20 + + + 909.5 + 3244 + + + + + + 1 + + + + + 1 + {0} + + + + + 0 + + + + + + + + + + + Angle tolerance in radians + 1cdd54ef-d0cf-494e-9e69-192785fa5142 + Tolerance (angle) + Ta + false + 0 + false + + + + + + 898 + 3254 + 20 + 20 + + + 909.5 + 3264 + + + + + + 1 + + + + + 1 + {0} + + + + + 0 + + + + + + + + + + + Optional minimum allowed segment length + dd900ddf-7e35-4918-a692-6f204d6b3d27 + MinEdge + E- + true + 0 + + + + + + 898 + 3274 + 20 + 20 + + + 909.5 + 3284 + + + + + + + + Optional maximum allowed segment length + e2dc94e8-8c37-447d-aeac-c34e4de7b941 + MaxEdge + E+ + true + 0 + + + + + + 898 + 3294 + 20 + 20 + + + 909.5 + 3304 + + + + + + + + Converted curve + de787858-5bad-470a-9ef2-ad30c2f78d8e + Polyline + P + false + 0 + + + + + + 948 + 3214 + 16 + 50 + + + 956 + 3239 + + + + + + + + Number of polyline segments + f80bc632-2cb8-40dd-a780-0ecbcd90ccf7 + Segments + S + false + 0 + + + + + + 948 + 3264 + 16 + 50 + + + 956 + 3289 + + + + + + + + + + + + 962034e9-cc27-4394-afc4-5c16e3447cf9 + Extrude + + + + + Extrude curves and surfaces along a vector. + true + 6f1f7da2-9b72-4b16-a9b5-2eaf329cb67b + Extrude + Extr + + + + + + 1479 + 3318 + 65 + 44 + + + 1511 + 3340 + + + + + + Profile curve or surface + 97ac0794-b305-4e48-9a00-45ce1f267d42 + Base + B + false + 2f59a11c-ee44-4d18-818f-a7a2d94cab8c + 1 + + + + + + 1481 + 3320 + 15 + 20 + + + 1490 + 3330 + + + + + + + + Extrusion direction + 4ae73390-2df5-484a-b25b-489a83b95a07 + Direction + D + false + 769cbb1f-ae4c-42f1-92b7-3c07ae4ce99a + 1 + + + + + + 1481 + 3340 + 15 + 20 + + + 1490 + 3350 + + + + + + + + Extrusion result + 15b0c92d-7785-463c-8fb2-cc143a1ac702 + Extrusion + E + false + 0 + + + + + + 1526 + 3320 + 16 + 40 + + + 1534 + 3340 + + + + + + + + + + + + b648d933-ddea-4e75-834c-8f6f3793e311 + Cap Holes + + + + + Cap all planar holes in a Brep. + 52c04c7e-58f3-4dc6-9793-8aa50d6dd344 + Cap Holes + Cap + + + + + + 1582 + 3326 + 99 + 28 + + + 1612 + 3340 + + + + + + Brep to cap + e0f23f35-cf9b-484e-89f0-5cdc5a388d11 + Brep + B + false + 15b0c92d-7785-463c-8fb2-cc143a1ac702 + 1 + + + + + + 1584 + 3328 + 13 + 24 + + + 1592 + 3340 + + + + + + + + Capped Brep + 8dcf9bb1-61a7-4634-ae2d-fa28864ad8be + 2 + Brep + B + false + true + 0 + + + + + + 1627 + 3328 + 52 + 24 + + + 1635 + 3340 + + + + + + + + + + + + e9eb1dcf-92f6-4d4d-84ae-96222d60f56b + Move + + + + + Translate (move) an object along a vector. + true + 69fce28c-9e81-40b3-9ef1-56ced83b4f20 + Move + Move + + + + + + 2861 + 3505 + 67 + 44 + + + 2893 + 3527 + + + + + + Base geometry + 1f3ed9a4-d93d-4b2c-bc39-876f4b153d17 + Geometry + G + true + f679a23c-7172-466a-b638-bd34d0072189 + 1 + + + + + + 2863 + 3507 + 15 + 20 + + + 2872 + 3517 + + + + + + + + Translation vector + 41c669b2-cc7a-403c-b89a-6f3212bbf023 + Motion + T + false + 0 + + + + + + 2863 + 3527 + 15 + 20 + + + 2872 + 3537 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0 + 2000 + 0 + + + + + + + + + + + + Translated geometry + 895a36d1-630f-4c77-9585-cb22dd56eef1 + Geometry + G + false + 0 + + + + + + 2908 + 3507 + 18 + 20 + + + 2917 + 3517 + + + + + + + + Transformation data + be98b3a1-09f9-49d0-8624-02bc067f6257 + Transform + X + false + 0 + + + + + + 2908 + 3527 + 18 + 20 + + + 2917 + 3537 + + + + + + + + + + + + 3a710c1e-1809-4e19-8c15-82adce31cd62 + Tree Branch + + + + + Retrieve a specific branch from a data tree. + true + 971e9ffd-7d78-459b-a8ea-d16230b223c0 + true + Tree Branch + Branch + + + + + + 2501 + 3424 + 63 + 44 + + + 2531 + 3446 + + + + + + 2 + Data Tree + 241a8ab9-f427-4938-9707-2646b0306e1a + Tree + T + false + 8dcf9bb1-61a7-4634-ae2d-fa28864ad8be + 1 + + + + + + 2503 + 3426 + 13 + 20 + + + 2511 + 3436 + + + + + + + + Data tree branch path + 827db273-8511-471c-878e-2def03f120ba + Path + P + false + 9403902a-3bce-46d9-a526-15ba43e8c1ee + 1 + + + + + + 2503 + 3446 + 13 + 20 + + + 2511 + 3456 + + + + + + + + 2 + Branch at {P} + ce018159-0336-4244-8cd9-43c949a7157d + Branch + B + false + 0 + + + + + + 2546 + 3426 + 16 + 40 + + + 2554 + 3446 + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + bd03f279-ba8e-42aa-b856-4844f3aa86f5 + Curve + Crv + false + 0 + + + + + + 345 + 3270 + 50 + 24 + + + 370.2205 + 3282.177 + + + + + + 1 + + + + + 3 + {0} + + + + + -1 + 38d72989-2545-4e90-8202-18939bac21b9 + + + + + -1 + 716345c9-73c4-4d7d-8780-6a7c4df5b527 + + + + + -1 + c0874bca-1d68-4e43-9f1d-ee243973e516 + + + + + + + + + + + + + ebf1ed47-70c4-4d5b-af5d-55956eb1dffc + 5f86fa9f-c62b-50e8-157b-b454ef3e00fa + Bake Geometry + + + + + false + Bake geometry to the document with the specified attributes + 0 + true + 083e1e0e-2191-4051-b054-3fd8cd3b33b0 + Bake Geometry + Bake + false + + + + + + 2991 + 3485 + 61 + 64 + + + 3038 + 3517 + + + + + + Set to true to bake objects to the document with the specified attributes. This component is designed for regular Grasshopper geometry - if you have special objects to bake, such as lights, hatches, or blocks, use their dedicated creation components. + 4937d0d2-8e95-4f91-bbc7-ef9983a3c091 + Bake? + bake + false + 0 + + + + + + 2993 + 3487 + 30 + 20 + + + 3009.5 + 3497 + + + + + + 1 + + + + + 1 + {0} + + + + + true + + + + + + + + + + + The Grasshopper geometry to bake + 91db7751-f8e4-49e6-908e-8cbba34d1b0e + Geometry + geo + false + 895a36d1-630f-4c77-9585-cb22dd56eef1 + 1 + + + + + + 2993 + 3507 + 30 + 20 + + + 3009.5 + 3517 + + + + + + + + The Attributes to assign the geometry + a2a38bf2-d0b0-489d-9e65-3ebfc55c2f63 + Attributes + att + true + 0 + + + + + + 2993 + 3527 + 30 + 20 + + + 3009.5 + 3537 + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 0b9e56c5-e245-452e-b084-f40448610221 + Curve + cuts1 + false + 0 + + + + + + -1109 + 5285 + 50 + 20 + + + -1083.512 + 5295.408 + + + + + + 1 + + + + + 2 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrCBjznspTNB+YD/P96jfGcnH+6FyDJfO3dDl84OL26OJ71+IJi4MMWc/ujm4zGdlQAD2t+vT+Os+2Ld8C9/Mbs/gwAHmc0BpHgeQT3vP++n/r2dqgOnhZiAFAAA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrCBjznspTNB+YD/P96jfGcnH+4N2yLW+Dnxgf+ncDV0+P7i4PZr4/oVo4sIQc/ajm4PLfFYGBGB/uz6Nv+6Dfcu38M3s9gwOHGA+B5TmcQD5dLZkrs//eqYGmB5uBlIAAA== + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 1d7945f1-517e-43de-9c94-f99681fd12ef + Curve + cuts0 + false + 0 + + + + + + -1109 + 5261 + 50 + 20 + + + -1083.359 + 5271.973 + + + + + + 1 + + + + + 6 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEBiWkmJbnv6C3smsNCD/VA5hlyJp1kT7R7YM6KJF0LFf4FC8/99e5j4LKg56OK4zGdlQAdf7Fu+hW9mt2dygNBcDk6/V99slhd0APm096NFz/96pgaYam4M/fgAAA== + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEBiRkmJbnv6C3tIwDzYH7RDrvV14AP7fImnWRPtHtgzoIkXQ8X/gELz/317mPgcqDno4rjMZ2VAB1/sW76Fb2a3Z3KA0FwOTr9X32yWF3QA+fRNlkfy/3qmBphqbgz9+AAA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDiyMJ5XpNTX+z/Cwqd//f3Q+UYZrvyd8y1ebD/H5r4TKg4hPfAHiZ+CGoOujgu81kZ0MEX+5Zv4ZvZ7ZkcIDSXg9Pv1Teb5QUdQD49HLE99H89UwNMNTeGfnwAAA== + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEBiwpb9myalvthvkfLTfQHDg/1BO+RaXwc+sE+PMPgwx+YBhngqVLzPnLdg/7/79jDxPqg56OK4zGdlQAdf7Fu+hW9mt2dygNBcDk6/V99slhd0APm0eNpRvf/1TA0w1dwY+vEBAA== + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECiWmSd+8OqF/YQoQ/2QTvkWl8HPthfCRHfz4QmXgsV/wMKzf/398PEy6HmQAL4AVwcl/msDAgANur/d6gaFgeo86C0iAPIp3X5h8L/1zM1wPRwM5ACAA== + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECiWmSd+8OqF/YQoQ9QmoGhEiK+nwlNvBYq/gcUmv/v74eJl0PNgQTwA7g4LvNZGRAAbNT/71A5Fgeo86C0iAPIp8GByZ7/65kaYHq4GUgBAA== + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 4c307f10-649e-47c8-81f1-36097b250f69 + Number Slider + + false + 0 + + + + + + -1166 + 5308 + 160 + 20 + + + -1165.011 + 5308.833 + + + + + + 3 + 1 + 1 + 100 + 0 + 0 + 29 + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 5c59dbc7-39a4-41ee-bef9-5610f803e27b + Curve + cuts1 + false + 0 + + + + + + -1121 + 5406 + 50 + 20 + + + -1095.978 + 5416.527 + + + + + + 1 + + + + + 2 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCF8x8sP8iKHT+37eHyjFwQ8XZoDRM/DlUHSOa+FOo+F00c3CZz8qAAB+gcn/A9Hf7H2D6P5TP7gDyaaFeftT/eqYGVPcRCwA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCF8x8sP8SKHT+37c3MQaBx/bcUHE2KA0Tfw5Vx4gm/hQqfg/NHFzmszIgwAeo3B8w/d3+B5j+D+WzO4B82sJX/ft/PVMDTA83AykAAA== + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + a2fb67b0-44f0-4b61-9b84-831b79be5d7d + Curve + cuts0 + false + 0 + + + + + + -1120 + 5382 + 50 + 20 + + + -1094.294 + 5392.756 + + + + + + 1 + + + + + 2 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCF8x8sP8iKHT+37eHyjFwQ8XZoDRM/DlUHSOa+FOo+F00c3CZz8qAAB+gcn/A9Hf7H2D6P5TP7gDyaaFeftT/eqYGVPcRCwA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8GA/lLY3BoPH+9HE96OJ2xMQx2UOXBxhNwPDB1DM/L9v/wdMf7f/Aab/Q/nsDiCfGiRlNv6vZ2qA6eFmIAUAAA== + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 944826e0-380b-4eca-bf33-49e9406fc6ce + Number Slider + + false + 0 + + + + + + -1142 + 5432 + 160 + 20 + + + -1141.649 + 5432.815 + + + + + + 3 + 1 + 1 + 100 + 0 + 0 + 39 + + + + + + + + + 3cadddef-1e2b-4c09-9390-0e8f78f7609f + Merge + + + + + Merge a bunch of data streams + true + 6912800b-9d29-489b-8dce-831b898fc3d1 + Merge + Merge + + + + + + -599 + 5130 + 72 + 64 + + + -561 + 5162 + + + + + + 3 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 2 + Data stream 1 + ba6fd9d3-0403-4cc3-8351-af041917a439 + false + Data 1 + D1 + true + a8ab56db-595a-43c3-b705-f03e8b039132 + 1 + + + + + + -597 + 5132 + 21 + 20 + + + -585 + 5142 + + + + + + + + 2 + Data stream 2 + ad27c019-0704-451e-a14f-2777e46a6608 + false + Data 2 + D2 + true + 75cbd7b1-ddeb-439b-a62a-9a912b07116c + 1 + + + + + + -597 + 5152 + 21 + 20 + + + -585 + 5162 + + + + + + + + 2 + Data stream 3 + 7c8dfc7d-f6a6-45d1-983b-93a2a4499a68 + false + Data 3 + D3 + true + 2f3d705f-832d-45aa-9369-f475242e5b65 + 1 + + + + + + -597 + 5172 + 21 + 20 + + + -585 + 5182 + + + + + + + + 2 + Result of merge + bfc9ad2a-0b48-4d7c-8cc6-3a8b6462c45d + Result + R + false + 0 + + + + + + -546 + 5132 + 17 + 60 + + + -537.5 + 5162 + + + + + + + + + + + + + + 3cadddef-1e2b-4c09-9390-0e8f78f7609f + Merge + + + + + Merge a bunch of data streams + true + a93f944b-234f-40a7-aeed-1bac867d8fc7 + Merge + Merge + + + + + + -608 + 5264 + 72 + 64 + + + -570 + 5296 + + + + + + 3 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 2 + Data stream 1 + 96657684-6685-4160-8a14-08272650d81b + false + Data 1 + D1 + true + 74ee4854-6381-4657-bb22-5096eca4e410 + 1 + + + + + + -606 + 5266 + 21 + 20 + + + -594 + 5276 + + + + + + + + 2 + Data stream 2 + cb71d95c-5696-4b78-821d-f58affb88fcb + false + Data 2 + D2 + true + 4ecd7618-f914-4b94-9601-9bc11e2f1dfc + 1 + + + + + + -606 + 5286 + 21 + 20 + + + -594 + 5296 + + + + + + + + 2 + Data stream 3 + dd3ef2a9-6e92-4402-9aa9-9dab059f91a2 + false + Data 3 + D3 + true + b12becff-7d20-4b27-aae6-4c81f7ceeb66 + 1 + + + + + + -606 + 5306 + 21 + 20 + + + -594 + 5316 + + + + + + + + 2 + Result of merge + dae44df7-c4c1-43f2-a0ee-227b0e2dd49c + Result + R + false + 0 + + + + + + -555 + 5266 + 17 + 60 + + + -546.5 + 5296 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;255;255 + + A group of Grasshopper objects + 6b1ea716-0435-443c-b619-558dcf361931 + 4637b9e3-bc29-4957-baef-30677f5a7f21 + 30f5cec6-50cf-4576-85dc-4fa2394bd70f + 96cb553d-d0cd-4b49-8f74-d7da9be90d58 + 8dae4e11-0ece-4540-8462-4a262db68187 + 0b9e56c5-e245-452e-b084-f40448610221 + 1d7945f1-517e-43de-9c94-f99681fd12ef + 4c307f10-649e-47c8-81f1-36097b250f69 + e032e801-c8cc-4569-a681-e5b8f3797397 + 5c59dbc7-39a4-41ee-bef9-5610f803e27b + a2fb67b0-44f0-4b61-9b84-831b79be5d7d + 944826e0-380b-4eca-bf33-49e9406fc6ce + 6912800b-9d29-489b-8dce-831b898fc3d1 + a93f944b-234f-40a7-aeed-1bac867d8fc7 + f3f994fe-d4d2-4c25-9238-61233599a9a5 + 1f450af1-dc34-4bb5-a889-193d58411860 + 238a803f-cb8f-4907-97bc-88c6e9e0d949 + 41cc60e3-b93b-4651-8ec3-a6e1c7a5ad9f + 005e5630-194e-431d-89a2-cd1d004fbf29 + 79fc1660-42f7-416b-9a71-f49f3961bd9e + 0ae48c96-2b94-43c7-b5e7-d3045678952c + ee8ffd9c-57e2-489f-9dc5-12dd321cbd88 + 22 + 2da52ccc-2d21-4f14-9025-ab975a6bec8f + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;0;0 + + A group of Grasshopper objects + 0b9e56c5-e245-452e-b084-f40448610221 + 1d7945f1-517e-43de-9c94-f99681fd12ef + c2cfc8a6-77de-4e30-a0cb-e266c8c40f5a + 6b5f951c-eb95-4ea2-b541-8bcb575949c0 + 5719d0fd-145d-4398-81ab-3312fd3e413f + 3a0bac26-b9ff-4895-8d1e-a026b4f1b0c6 + 6e7015dc-7cf5-47a2-9e1a-77a23e3556e9 + 7 + ccf9d248-8ebf-471d-b254-c1a78fe2ac67 + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;0;0 + + A group of Grasshopper objects + 5c59dbc7-39a4-41ee-bef9-5610f803e27b + a2fb67b0-44f0-4b61-9b84-831b79be5d7d + bcd6171e-678d-485d-8c96-419b40265d1f + 442c8dda-eb93-4fa8-8441-fde031042e23 + 5f64c6ff-6e7c-4e76-a4c7-a23c8b4137c8 + f5784031-fb52-4c4d-8b89-e99251b77773 + c538e824-cc91-4f74-aa8c-76a1dd900ce2 + 7 + 3c92f1ff-894a-44b4-b3b9-0f80ff195a30 + Group + + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + solver + + + + + from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +import System +import Rhino +import rhinoscriptsyntax as rs +from Rhino.Geometry import Polyline, Point3d + +class MyComponent(component): + + def RunScript(self, _cuts0, _cuts1, _type): + + + _custom_joints = [] + _custom_types = [] + type = 39 if _type is None else _type + + for i in range(len(_cuts0)): + _custom_joints.append(_cuts0[i]) + _custom_types.append(type) + + for i in range(len(_cuts1)): + _custom_joints.append(_cuts1[i]) + _custom_types.append(-type) + + + # return outputs if you have them; here I try it for you: + return (_custom_joints, _custom_types) + + GhPython provides a Python script component + true + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAT9JREFUSEvNkrFqAkEURfcbtjelVkYbSSM2ktrESArFH7CLkD5YGEglgTQhkHxCCKROm5Bmv8BYiZWlIEgm7252hp31jiYwggNn2Xdn5h14TKCU2ik09AkNfUJDn9DQJzT0CQ19QkMXsk7y+UKUpVqtddh5QEMXsq4u+pfq+eXVgLrZbD2x84CGLiAYXt+o8dfEgHq/BTLjNz3rMAxnTJDLHcz1GVCpHI30/d9PEAyEsg7TyLJm/v7xaQlQp/dHt3eqXj+eyr1YoptMhKWwJpFlNdwGJPKqvtEzvp80gQA/axLkrJGLRICLVAAsCTLWyMVfBCCWCD3Ujcap4f7h0WqI+qx1vtD7Mn9VLB6ix0YBgGSVyeJXkxagLpXKmLl1TtgqoDBBMpIseypAs3ana0DtVfAPLEGU2vBFZAS7QwU/eZV5j2Rlwm4AAAAASUVORK5CYII= + + false + 1f450af1-dc34-4bb5-a889-193d58411860 + true + true + solver + solver + + + + + + -927 + 5249 + 152 + 64 + + + -873 + 5281 + + + + + + 3 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + true + cuts for removal from the first beam + 9ac06644-2747-4ef0-beb1-8edc1f0a414b + _cuts0 + _cuts0 + true + 1 + true + 1d7945f1-517e-43de-9c94-f99681fd12ef + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -925 + 5251 + 37 + 20 + + + -905 + 5261 + + + + + + + + 1 + true + Script input _cuts1. + 23e511b9-7fba-411a-b166-7a9c85402144 + _cuts1 + _cuts1 + true + 1 + true + 0b9e56c5-e245-452e-b084-f40448610221 + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -925 + 5271 + 37 + 20 + + + -905 + 5281 + + + + + + + + true + Script input _type. + 89401b37-c08a-47ce-bee7-eb8eb780d041 + _type + _type + true + 0 + true + 4c307f10-649e-47c8-81f1-36097b250f69 + 1 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + -925 + 5291 + 37 + 20 + + + -905 + 5301 + + + + + + + + Script output _custom_joints. + 75cbd7b1-ddeb-439b-a62a-9a912b07116c + _custom_joints + _custom_joints + false + 0 + + + + + + -858 + 5251 + 81 + 30 + + + -817.5 + 5266 + + + + + + + + Script output _custom_types. + 4ecd7618-f914-4b94-9601-9bc11e2f1dfc + _custom_types + _custom_types + false + 0 + + + + + + -858 + 5281 + 81 + 30 + + + -817.5 + 5296 + + + + + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + solver + + + + + from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +import System +import Rhino +import rhinoscriptsyntax as rs +from Rhino.Geometry import Polyline, Point3d + +class MyComponent(component): + + def RunScript(self, _cuts0, _cuts1, _type): + + + _custom_joints = [] + _custom_types = [] + type = 39 if _type is None else _type + + for i in range(len(_cuts0)): + _custom_joints.append(_cuts0[i]) + _custom_types.append(type) + + for i in range(len(_cuts1)): + _custom_joints.append(_cuts1[i]) + _custom_types.append(-type) + + + # return outputs if you have them; here I try it for you: + return (_custom_joints, _custom_types) + + GhPython provides a Python script component + true + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAT9JREFUSEvNkrFqAkEURfcbtjelVkYbSSM2ktrESArFH7CLkD5YGEglgTQhkHxCCKROm5Bmv8BYiZWlIEgm7252hp31jiYwggNn2Xdn5h14TKCU2ik09AkNfUJDn9DQJzT0CQ19QkMXsk7y+UKUpVqtddh5QEMXsq4u+pfq+eXVgLrZbD2x84CGLiAYXt+o8dfEgHq/BTLjNz3rMAxnTJDLHcz1GVCpHI30/d9PEAyEsg7TyLJm/v7xaQlQp/dHt3eqXj+eyr1YoptMhKWwJpFlNdwGJPKqvtEzvp80gQA/axLkrJGLRICLVAAsCTLWyMVfBCCWCD3Ujcap4f7h0WqI+qx1vtD7Mn9VLB6ix0YBgGSVyeJXkxagLpXKmLl1TtgqoDBBMpIseypAs3ana0DtVfAPLEGU2vBFZAS7QwU/eZV5j2Rlwm4AAAAASUVORK5CYII= + + false + 238a803f-cb8f-4907-97bc-88c6e9e0d949 + true + true + solver + solver + + + + + + -930 + 5388 + 152 + 64 + + + -876 + 5420 + + + + + + 3 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + true + cuts for removal from the first beam + d650a554-e01b-472a-b9fa-9136338f9687 + _cuts0 + _cuts0 + true + 1 + true + a2fb67b0-44f0-4b61-9b84-831b79be5d7d + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -928 + 5390 + 37 + 20 + + + -908 + 5400 + + + + + + + + 1 + true + Script input _cuts1. + 5841a430-b9a3-4791-b409-6f6c444ec890 + _cuts1 + _cuts1 + true + 1 + true + 5c59dbc7-39a4-41ee-bef9-5610f803e27b + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -928 + 5410 + 37 + 20 + + + -908 + 5420 + + + + + + + + true + Script input _type. + 94a9a35c-af8a-4400-8fe1-8555724ca0c4 + _type + _type + true + 0 + true + 944826e0-380b-4eca-bf33-49e9406fc6ce + 1 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + -928 + 5430 + 37 + 20 + + + -908 + 5440 + + + + + + + + Script output _custom_joints. + 2f3d705f-832d-45aa-9369-f475242e5b65 + _custom_joints + _custom_joints + false + 0 + + + + + + -861 + 5390 + 81 + 30 + + + -820.5 + 5405 + + + + + + + + Script output _custom_types. + b12becff-7d20-4b27-aae6-4c81f7ceeb66 + _custom_types + _custom_types + false + 0 + + + + + + -861 + 5420 + 81 + 30 + + + -820.5 + 5435 + + + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 005e5630-194e-431d-89a2-cd1d004fbf29 + Curve + cuts0 + false + 0 + + + + + + -1100 + 5108 + 50 + 20 + + + -1074.45 + 5118.742 + + + + + + 1 + + + + + 2 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EGEKtInpVz0TgybUY7//MzGIQP347Mp1P/eXlwX3P2UQaGZU+uA3Z/ftP0D5j1B5AXYGGPhgbwwGj/dD+A/2o4nbw8QXzASBl/vRxedAxWeB6ZPo4vYzIOL70cUJ2AsXR7gV4ebVq0CAyQFCszlAoxZKC0DFhRxAIbVeuFvrfz1TA0w3N4Z5o2BkAwA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EGEKtInpVz0TgybUY7//MzGIQP347Mp1P/eXlwX3P2UQaGZU+uA3Z/ftP0D5j1B5AXYGGPhgbwwGj/dD+A/s0cTtYeILZoLAy/3o4nOg4rPA9El0cfsZEPH96OIE7IWLI9yKcPPqVSDA5ACh2RygUQulBaDiQg6gkKqbHTX5fz1TA0w3N4Z5o2BkAwA= + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 79fc1660-42f7-416b-9a71-f49f3961bd9e + Curve + cuts1 + false + 0 + + + + + + -1100 + 5137 + 50 + 20 + + + -1074.795 + 5147.898 + + + + + + 1 + + + + + 2 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EGEKtInpVz0TgybUY7//MzGIQP347Mp1P/eXlwX3P2UQaGZU+uA3Z/ftP0D5j1B5AXYGGPiw3xgMHttD+A/2L5gJAi8xxOdAxWeB6ZPo4vYzIOL70cWh5sDF0ezFJQ43H+FWBoaQUBB4ar8KDD7ZQ/h/oXwmBwif1wHCF3IAhVSdyMQJ/+uZGmBmcDOMglGADAA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EGEKtInpVz0TgybUY7//MzGIQP347Mp1P/eXlwX3P2UQaGZU+uA3Z/ftP0D5j1B5AXYGGPiw3xgMHttD+A/sF8wEgZcY4nOg4rPA9El0cfsZEPH96OJQc+DiaPbiEoebj3ArA0NIKAg8tV8FBp/sIfy/UD6TA4TP6wDhCzmAQmr9HAfN//VMDTAzuBlGwShABgA= + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 0ae48c96-2b94-43c7-b5e7-d3045678952c + Number Slider + + false + 0 + + + + + + -1157 + 5163 + 171 + 20 + + + -1156.994 + 5163.69 + + + + + + 3 + 1 + 1 + 100 + 0 + 0 + 9 + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;0;0 + + A group of Grasshopper objects + 005e5630-194e-431d-89a2-cd1d004fbf29 + 79fc1660-42f7-416b-9a71-f49f3961bd9e + a59e036a-940e-49e4-b6ac-37f766b85364 + 53b73dfe-f351-4d02-b5e3-5b80a7563b70 + c8d6f605-d037-4eff-ad34-b70d7a9f4905 + a6049248-01f4-4aaf-8ad7-df7877e59e48 + e81ac9d7-8010-4c77-bb6c-6e6013288dc9 + 7 + ee8ffd9c-57e2-489f-9dc5-12dd321cbd88 + Group + + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + solver + + + + + from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +import System +import Rhino +import rhinoscriptsyntax as rs +from Rhino.Geometry import Polyline, Point3d + +class MyComponent(component): + + def RunScript(self, _cuts0, _cuts1, _type): + + + _custom_joints = [] + _custom_types = [] + type = 39 if _type is None else _type + + for i in range(len(_cuts0)): + _custom_joints.append(_cuts0[i]) + _custom_types.append(type) + + for i in range(len(_cuts1)): + _custom_joints.append(_cuts1[i]) + _custom_types.append(-type) + + + # return outputs if you have them; here I try it for you: + return (_custom_joints, _custom_types) + + GhPython provides a Python script component + true + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAT9JREFUSEvNkrFqAkEURfcbtjelVkYbSSM2ktrESArFH7CLkD5YGEglgTQhkHxCCKROm5Bmv8BYiZWlIEgm7252hp31jiYwggNn2Xdn5h14TKCU2ik09AkNfUJDn9DQJzT0CQ19QkMXsk7y+UKUpVqtddh5QEMXsq4u+pfq+eXVgLrZbD2x84CGLiAYXt+o8dfEgHq/BTLjNz3rMAxnTJDLHcz1GVCpHI30/d9PEAyEsg7TyLJm/v7xaQlQp/dHt3eqXj+eyr1YoptMhKWwJpFlNdwGJPKqvtEzvp80gQA/axLkrJGLRICLVAAsCTLWyMVfBCCWCD3Ujcap4f7h0WqI+qx1vtD7Mn9VLB6ix0YBgGSVyeJXkxagLpXKmLl1TtgqoDBBMpIseypAs3ana0DtVfAPLEGU2vBFZAS7QwU/eZV5j2Rlwm4AAAAASUVORK5CYII= + + false + 41cc60e3-b93b-4651-8ec3-a6e1c7a5ad9f + true + true + solver + solver + + + + + + -945 + 5104 + 152 + 64 + + + -891 + 5136 + + + + + + 3 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + true + cuts for removal from the first beam + 623cde27-d54c-434f-847e-6ec6b1869856 + _cuts0 + _cuts0 + true + 1 + true + 005e5630-194e-431d-89a2-cd1d004fbf29 + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -943 + 5106 + 37 + 20 + + + -923 + 5116 + + + + + + + + 1 + true + Script input _cuts1. + ed27af18-e1c8-485a-b66b-41a613232ee7 + _cuts1 + _cuts1 + true + 1 + true + 79fc1660-42f7-416b-9a71-f49f3961bd9e + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -943 + 5126 + 37 + 20 + + + -923 + 5136 + + + + + + + + true + Script input _type. + b0621ac2-7311-4db2-b75b-39cd9433a4af + _type + _type + true + 0 + true + 0ae48c96-2b94-43c7-b5e7-d3045678952c + 1 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + -943 + 5146 + 37 + 20 + + + -923 + 5156 + + + + + + + + Script output _custom_joints. + a8ab56db-595a-43c3-b705-f03e8b039132 + _custom_joints + _custom_joints + false + 0 + + + + + + -876 + 5106 + 81 + 30 + + + -835.5 + 5121 + + + + + + + + Script output _custom_types. + 74ee4854-6381-4657-bb22-5096eca4e410 + _custom_types + _custom_types + false + 0 + + + + + + -876 + 5136 + 81 + 30 + + + -835.5 + 5151 + + + + + + + + + + + + + + eeafc956-268e-461d-8e73-ee05c6f72c01 + Stream Filter + + + + + Filters a collection of input streams + true + af6ce8ad-ac96-4911-b2c7-5ca4cd2e3882 + Stream Filter + Filter + + + + + + 1221 + 3784 + 77 + 104 + + + 1253 + 3836 + + + + + + 5 + 2e3ab970-8545-46bb-836c-1c11e5610bce + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + Index of Gate stream + b9f6e4b0-9a6b-4c88-af57-6cd81361b13a + Gate + G + false + 486eb1c9-5988-46e3-8ef0-adc4af4173f2 + 1 + + + + + + 1223 + 3786 + 15 + 20 + + + 1232 + 3796 + + + + + + 1 + + + + + 1 + {0} + + + + + 0 + + + + + + + + + + + 2 + Input stream at index 0 + 28fbf3ec-9636-4ecb-8b32-c3daa5677e41 + false + Stream 0 + 0 + true + df07b09e-d225-41d2-9434-0e0b0a62574c + 1 + + + + + + 1223 + 3806 + 15 + 20 + + + 1232 + 3816 + + + + + + + + 2 + Input stream at index 1 + 27c47b81-9e13-4699-bbd7-16e23a488e1d + false + Stream 1 + 1 + true + bfc9ad2a-0b48-4d7c-8cc6-3a8b6462c45d + 1 + + + + + + 1223 + 3826 + 15 + 20 + + + 1232 + 3836 + + + + + + + + 2 + Input stream at index 2 + 22c25ab1-3635-4ee6-b848-f0734aeeb388 + false + Stream 2 + 2 + true + 1f1be814-8852-48f7-a47d-afe16cba6369 + 1 + + + + + + 1223 + 3846 + 15 + 20 + + + 1232 + 3856 + + + + + + + + 2 + Input stream at index 3 + 38fa0efe-9b97-49ea-9733-14ab2a20a656 + false + Stream 3 + 3 + true + a76d1cb8-9caa-431d-9e53-e8972fa7be1e + 1 + + + + + + 1223 + 3866 + 15 + 20 + + + 1232 + 3876 + + + + + + + + 2 + Filtered stream + 08c7a082-dec9-4d7f-b796-0d6ebfcced22 + false + Stream + S(0) + false + 0 + + + + + + 1268 + 3786 + 28 + 100 + + + 1282 + 3836 + + + + + + + + + + + + + + eeafc956-268e-461d-8e73-ee05c6f72c01 + Stream Filter + + + + + Filters a collection of input streams + true + c3157ffa-9a00-4162-ae5a-7e03f7766eed + Stream Filter + Filter + + + + + + 1226 + 3941 + 77 + 104 + + + 1258 + 3993 + + + + + + 5 + 2e3ab970-8545-46bb-836c-1c11e5610bce + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + Index of Gate stream + 52b547c5-09f1-44e2-8d94-85f473296dd9 + Gate + G + false + 486eb1c9-5988-46e3-8ef0-adc4af4173f2 + 1 + + + + + + 1228 + 3943 + 15 + 20 + + + 1237 + 3953 + + + + + + 1 + + + + + 1 + {0} + + + + + 0 + + + + + + + + + + + 2 + Input stream at index 0 + 351f7587-e604-42de-93c5-b8128ca8633d + false + Stream 0 + 0 + true + a92a8b7e-cb73-4731-b978-37a04f1e205b + 1 + + + + + + 1228 + 3963 + 15 + 20 + + + 1237 + 3973 + + + + + + + + 2 + Input stream at index 1 + 384d454b-6e74-4857-8af0-3a396e467abe + false + Stream 1 + 1 + true + dae44df7-c4c1-43f2-a0ee-227b0e2dd49c + 1 + + + + + + 1228 + 3983 + 15 + 20 + + + 1237 + 3993 + + + + + + + + 2 + Input stream at index 2 + f9bf27e3-b5f9-4b14-835e-cc11ab9bf206 + false + Stream 2 + 2 + true + 4e897313-bb65-4423-9623-08bf936fe352 + 1 + + + + + + 1228 + 4003 + 15 + 20 + + + 1237 + 4013 + + + + + + + + 2 + Input stream at index 3 + 09c4ba23-d48d-4b4d-b6e2-05b03314ecbe + false + Stream 3 + 3 + true + f64ba0f1-17cd-4640-ab68-b1386377b35c + 1 + + + + + + 1228 + 4023 + 15 + 20 + + + 1237 + 4033 + + + + + + + + 2 + Filtered stream + 02ad6dfb-b392-43f0-bd83-57dd9d312852 + false + Stream + S(0) + false + 0 + + + + + + 1273 + 3943 + 28 + 100 + + + 1287 + 3993 + + + + + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 486eb1c9-5988-46e3-8ef0-adc4af4173f2 + Number Slider + + false + 0 + + + + + + 1049 + 4152 + 160 + 20 + + + 1049.807 + 4152.727 + + + + + + 3 + 1 + 1 + 3 + 0 + 0 + 0 + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;255;255 + + A group of Grasshopper objects + 6b1ea716-0435-443c-b619-558dcf361931 + 4637b9e3-bc29-4957-baef-30677f5a7f21 + 30f5cec6-50cf-4576-85dc-4fa2394bd70f + 96cb553d-d0cd-4b49-8f74-d7da9be90d58 + 8dae4e11-0ece-4540-8462-4a262db68187 + 0b9e56c5-e245-452e-b084-f40448610221 + 1d7945f1-517e-43de-9c94-f99681fd12ef + 4c307f10-649e-47c8-81f1-36097b250f69 + e032e801-c8cc-4569-a681-e5b8f3797397 + 5c59dbc7-39a4-41ee-bef9-5610f803e27b + a2fb67b0-44f0-4b61-9b84-831b79be5d7d + 944826e0-380b-4eca-bf33-49e9406fc6ce + 6912800b-9d29-489b-8dce-831b898fc3d1 + a93f944b-234f-40a7-aeed-1bac867d8fc7 + f3f994fe-d4d2-4c25-9238-61233599a9a5 + 1f450af1-dc34-4bb5-a889-193d58411860 + 238a803f-cb8f-4907-97bc-88c6e9e0d949 + 41cc60e3-b93b-4651-8ec3-a6e1c7a5ad9f + 005e5630-194e-431d-89a2-cd1d004fbf29 + 79fc1660-42f7-416b-9a71-f49f3961bd9e + 0ae48c96-2b94-43c7-b5e7-d3045678952c + ee8ffd9c-57e2-489f-9dc5-12dd321cbd88 + 22 + edfd7c53-b33b-4cc2-b441-2a11eb092523 + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;255;255 + + A group of Grasshopper objects + 6b1ea716-0435-443c-b619-558dcf361931 + 4637b9e3-bc29-4957-baef-30677f5a7f21 + 30f5cec6-50cf-4576-85dc-4fa2394bd70f + 96cb553d-d0cd-4b49-8f74-d7da9be90d58 + 8dae4e11-0ece-4540-8462-4a262db68187 + 0b9e56c5-e245-452e-b084-f40448610221 + 1d7945f1-517e-43de-9c94-f99681fd12ef + 4c307f10-649e-47c8-81f1-36097b250f69 + e032e801-c8cc-4569-a681-e5b8f3797397 + 5c59dbc7-39a4-41ee-bef9-5610f803e27b + a2fb67b0-44f0-4b61-9b84-831b79be5d7d + 944826e0-380b-4eca-bf33-49e9406fc6ce + 6912800b-9d29-489b-8dce-831b898fc3d1 + a93f944b-234f-40a7-aeed-1bac867d8fc7 + f3f994fe-d4d2-4c25-9238-61233599a9a5 + 1f450af1-dc34-4bb5-a889-193d58411860 + 238a803f-cb8f-4907-97bc-88c6e9e0d949 + 41cc60e3-b93b-4651-8ec3-a6e1c7a5ad9f + 005e5630-194e-431d-89a2-cd1d004fbf29 + 79fc1660-42f7-416b-9a71-f49f3961bd9e + 0ae48c96-2b94-43c7-b5e7-d3045678952c + ee8ffd9c-57e2-489f-9dc5-12dd321cbd88 + 22 + 6df9a55c-dac7-4a72-b3a1-513bb324ee2f + Group + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 63257ad0-5136-4a0e-a023-1fe956aaca39 + Curve + cuts0 + false + 0 + + + + + + -1038 + 5670 + 50 + 20 + + + -1012.387 + 5680.126 + + + + + + 1 + + + + + 8 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8GC/VraD5v//9/dD+BfsoeL2BMTt0cT3ExCHm4OwGwY+QNUyOEAoDigt4ADyqfKx4sr/9UwNMNXcGPrxAQA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEACEiAP9mtlO2j+/39/P0Tqgf0/UGj9v29PQNweJo5mDi5xuDmsDOjgA1QPgwOE4oDSAg4gn9q/+bvofz1TA0w1N4Z+fAAA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8GC/VraD5v//9/dD+Beg9AN7AuL2aOL7CYjDzUHYDQMfoHoYHCAUB5QWcAD5VELvI8v/eqYGmGpuDP34AAA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEACEiAP9mtlO2j+/39/PwOU/w8UWv/v2xMQt4eJo5mDSxxuDisDOvgA1cPgAKE4oLSAA8inLCz19//XMzXAVHNj6McHAA== + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCBcx8sN/AGAQe72eA8l2Smg9JyX3Yr4Mm7gAVt4KI28PEf4BC9//9/WZo4rjMZ2VAgJYjbK2mNg/sS6du++ob+Nv+zm+ZmC3bGR3KwHxuB5BPV5kWxP6vZ2qA6eFmIAUAAA== + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCBcx8sN/AGAQe74dIPbB3SWo+JCX3Yb8OmrgDVNwKIm4PE/8BCt3/9/eboYnjMp+VAQFajrC1mto8sC+duu2rb+Bv+zu/ZWK2bGd0KAPzuR1APp1495PC/3qmBpgebgZSAAA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8MDeGAwe74fy9zslNR+SkvtASNweJo5mDi5xuDkIuxkYWo6wtZraPLAvnbrtq2/gb/s7v2VitmxndCgD87kdQD515rfw/1/P1ADTw81ACgAA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8MDeGAwe74fxnZKaD0nJfSAkbg8TRzMHlzjcHITdDAwtR9haTW0e2JdO3fbVN/C3/Z3fMjFbtjM6lIH53A4gn1Y832X0v56pAaaHm4EUAAA= + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 6aec60e0-5ef8-427b-b55a-f08c2df10f94 + Curve + cuts1 + false + 0 + + + + + + -1039 + 5695 + 50 + 20 + + + -1013.012 + 5705.759 + + + + + + 1 + + + + + 2 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8GC/VraD5v//9/dD+Beg9AN7AuL2aOL7CYjDzUHYDQMfoHoYHCAUB5QWcAD5VELvI8v/eqYGmGpuDP34AAA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8GC/VraD5v//9/dD+BfsoeL2BMTt0cT3ExCHm4OwGwY+QNUyOEAoDigt4ADyqfKx4sr/9UwNMNXcGPrxAQA= + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + bf7df467-49b5-48e6-81e9-ff570115cc15 + Number Slider + + false + 0 + + + + + + -1149 + 5718 + 160 + 20 + + + -1148.202 + 5718.396 + + + + + + 3 + 1 + 1 + 100 + 0 + 0 + 29 + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + aa79120c-68bf-415f-85ad-6038feef3241 + Curve + cuts1 + false + 0 + + + + + + -1038 + 5805 + 50 + 20 + + + -1012.482 + 5815.27 + + + + + + 1 + + + + + 2 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCF8x8sP8iKHT+37eHyjFwQ8XZoDRM/DlUHSOa+FOo+F00c3CZz8qAAB+gcn/A9Hf7H2D6P5TP7gDyaaFeftT/eqYGVPcRCwA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCF8x8sP8SKHT+37c3MQaBx/bcUHE2KA0Tfw5Vx4gm/hQqfg/NHFzmszIgwAeo3B8w/d3+B5j+D+WzO4B82sJX/ft/PVMDTA83AykAAA== + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + f0eb83a1-5963-42e6-8f3c-6913c01387c3 + Curve + cuts0 + false + 0 + + + + + + -1038 + 5784 + 50 + 20 + + + -1012.446 + 5794.718 + + + + + + 1 + + + + + 2 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCF8x8sP8iKHT+37eHyjFwQ8XZoDRM/DlUHSOa+FOo+F00c3CZz8qAAB+gcn/A9Hf7H2D6P5TP7gDyaaFeftT/eqYGVPcRCwA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8GA/lLY3BoPH+9HE96OJ2xMQx2UOXBxhNwPDB1DM/L9v/wdMf7f/Aab/Q/nsDiCfGiRlNv6vZ2qA6eFmIAUAAA== + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + a0592e36-dc2f-41d4-b028-ff640ca76b69 + Number Slider + + false + 0 + + + + + + -1149 + 5831 + 160 + 20 + + + -1148.136 + 5831.193 + + + + + + 3 + 1 + 1 + 100 + 0 + 0 + 39 + + + + + + + + + 3cadddef-1e2b-4c09-9390-0e8f78f7609f + Merge + + + + + Merge a bunch of data streams + d24b89f5-22a1-4cef-ba34-9b8b2e66ca5d + Merge + Merge + + + + + + -632 + 5752 + 72 + 64 + + + -594 + 5784 + + + + + + 3 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 2 + Data stream 1 + 769a9205-02d4-4e32-98c6-af6911f40ff3 + false + Data 1 + D1 + true + 901d9c9f-89d7-4bc7-8133-7392c4232334 + 1 + + + + + + -630 + 5754 + 21 + 20 + + + -618 + 5764 + + + + + + + + 2 + Data stream 2 + 4f6ead6e-e4a9-4e02-94b9-029105758423 + false + Data 2 + D2 + true + d0454776-cf29-4c9d-beea-f4a105af88cb + 1 + + + + + + -630 + 5774 + 21 + 20 + + + -618 + 5784 + + + + + + + + 2 + Data stream 3 + 3153c351-71da-4e46-92e9-b08dd458a2c1 + false + Data 3 + D3 + true + a5f585a4-9e0b-4eb8-a3a7-07365f4e4844 + 1 + + + + + + -630 + 5794 + 21 + 20 + + + -618 + 5804 + + + + + + + + 2 + Result of merge + 1f1be814-8852-48f7-a47d-afe16cba6369 + Result + R + false + 0 + + + + + + -579 + 5754 + 17 + 60 + + + -570.5 + 5784 + + + + + + + + + + + + + + 3cadddef-1e2b-4c09-9390-0e8f78f7609f + Merge + + + + + Merge a bunch of data streams + true + 54513bd6-b247-4d8a-bb35-4bd84f1424a2 + Merge + Merge + + + + + + -629 + 5654 + 72 + 64 + + + -591 + 5686 + + + + + + 3 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 2 + Data stream 1 + 78278fc4-2436-4fc0-bbfd-fa68ded09bac + false + Data 1 + D1 + true + 4c868bae-c656-4e90-bc00-dfd0f4dcd799 + 1 + + + + + + -627 + 5656 + 21 + 20 + + + -615 + 5666 + + + + + + + + 2 + Data stream 2 + e60ce1ee-7bd2-4e2c-9865-e081e67fd523 + false + Data 2 + D2 + true + 138a47c8-a6a9-48cd-9fb1-d83cd4ab29a1 + 1 + + + + + + -627 + 5676 + 21 + 20 + + + -615 + 5686 + + + + + + + + 2 + Data stream 3 + 3800fd43-1018-4a8b-ba02-d53d2f61a6d8 + false + Data 3 + D3 + true + 0dd2c4d3-7487-4c97-8a36-53b5ab2ee91e + 1 + + + + + + -627 + 5696 + 21 + 20 + + + -615 + 5706 + + + + + + + + 2 + Result of merge + 4e897313-bb65-4423-9623-08bf936fe352 + Result + R + false + 0 + + + + + + -576 + 5656 + 17 + 60 + + + -567.5 + 5686 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;255;255 + + A group of Grasshopper objects + 6b1ea716-0435-443c-b619-558dcf361931 + 4637b9e3-bc29-4957-baef-30677f5a7f21 + 30f5cec6-50cf-4576-85dc-4fa2394bd70f + 96cb553d-d0cd-4b49-8f74-d7da9be90d58 + 8dae4e11-0ece-4540-8462-4a262db68187 + 63257ad0-5136-4a0e-a023-1fe956aaca39 + 6aec60e0-5ef8-427b-b55a-f08c2df10f94 + bf7df467-49b5-48e6-81e9-ff570115cc15 + e032e801-c8cc-4569-a681-e5b8f3797397 + aa79120c-68bf-415f-85ad-6038feef3241 + f0eb83a1-5963-42e6-8f3c-6913c01387c3 + a0592e36-dc2f-41d4-b028-ff640ca76b69 + d24b89f5-22a1-4cef-ba34-9b8b2e66ca5d + 54513bd6-b247-4d8a-bb35-4bd84f1424a2 + f3f994fe-d4d2-4c25-9238-61233599a9a5 + 0d67efb8-f2bc-446c-bb85-bfc3588c3e29 + f3a36b91-2067-4370-a75b-881372a64a04 + 9fb124fc-2163-426d-bf27-31c059ba2ecc + 782f64e8-79fe-445d-99b4-e3e98f806b57 + c575c24f-23c7-4997-9a20-bc5b9b2f795c + 1fe54166-de12-4c19-bbe9-23a497804dc5 + b560884b-8308-4590-b1ad-1c3df87bfcc9 + 22 + 1e2b83bc-b353-4378-a973-35e5de5a5d7a + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;0;0 + + A group of Grasshopper objects + 63257ad0-5136-4a0e-a023-1fe956aaca39 + 6aec60e0-5ef8-427b-b55a-f08c2df10f94 + 3529a5f3-db35-4f90-ad6a-848119725458 + 51967614-777c-4845-ab9d-9eb2dad27909 + 56d9f7cb-7bdf-47d0-94c7-d62c8cca2fb2 + 4adb9374-576f-4137-b171-78ca8505dc5b + a9caff69-125f-47b8-b7f0-85ed7c2357ce + 7 + 56d6f281-fb1f-42d9-8f48-217fa49bf0e8 + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;0;0 + + A group of Grasshopper objects + aa79120c-68bf-415f-85ad-6038feef3241 + f0eb83a1-5963-42e6-8f3c-6913c01387c3 + fd37f640-c3da-45ed-b0e8-7b40ae7e303d + 7024b434-ed05-4ab1-b9cd-a96d9db5043f + 3f9dc348-1c19-4f66-958c-27d1f4c07aae + e4d85f48-fa9a-421a-96ea-fd7b88508a4d + 326ce7f6-fcee-4a4c-905f-893002596a8b + 7 + 6187da9a-cba7-4c5e-a2dd-5940e404590f + Group + + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + solver + + + + + from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +import System +import Rhino +import rhinoscriptsyntax as rs +from Rhino.Geometry import Polyline, Point3d + +class MyComponent(component): + + def RunScript(self, _cuts0, _cuts1, _type): + + + _custom_joints = [] + _custom_types = [] + type = 39 if _type is None else _type + + for i in range(len(_cuts0)): + _custom_joints.append(_cuts0[i]) + _custom_types.append(type) + + for i in range(len(_cuts1)): + _custom_joints.append(_cuts1[i]) + _custom_types.append(-type) + + + # return outputs if you have them; here I try it for you: + return (_custom_joints, _custom_types) + + GhPython provides a Python script component + true + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAT9JREFUSEvNkrFqAkEURfcbtjelVkYbSSM2ktrESArFH7CLkD5YGEglgTQhkHxCCKROm5Bmv8BYiZWlIEgm7252hp31jiYwggNn2Xdn5h14TKCU2ik09AkNfUJDn9DQJzT0CQ19QkMXsk7y+UKUpVqtddh5QEMXsq4u+pfq+eXVgLrZbD2x84CGLiAYXt+o8dfEgHq/BTLjNz3rMAxnTJDLHcz1GVCpHI30/d9PEAyEsg7TyLJm/v7xaQlQp/dHt3eqXj+eyr1YoptMhKWwJpFlNdwGJPKqvtEzvp80gQA/axLkrJGLRICLVAAsCTLWyMVfBCCWCD3Ujcap4f7h0WqI+qx1vtD7Mn9VLB6ix0YBgGSVyeJXkxagLpXKmLl1TtgqoDBBMpIseypAs3ana0DtVfAPLEGU2vBFZAS7QwU/eZV5j2Rlwm4AAAAASUVORK5CYII= + + false + 0d67efb8-f2bc-446c-bb85-bfc3588c3e29 + true + true + solver + solver + + + + + + -911 + 5655 + 152 + 64 + + + -857 + 5687 + + + + + + 3 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + true + cuts for removal from the first beam + 7de38e2a-0326-4719-a602-c28fc0047996 + _cuts0 + _cuts0 + true + 1 + true + 63257ad0-5136-4a0e-a023-1fe956aaca39 + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -909 + 5657 + 37 + 20 + + + -889 + 5667 + + + + + + + + 1 + true + Script input _cuts1. + cae7ce99-80a1-465a-b679-3f080714830c + _cuts1 + _cuts1 + true + 1 + true + 6aec60e0-5ef8-427b-b55a-f08c2df10f94 + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -909 + 5677 + 37 + 20 + + + -889 + 5687 + + + + + + + + true + Script input _type. + 0a759bd4-3f30-4662-b724-d4e7ce98089a + _type + _type + true + 0 + true + bf7df467-49b5-48e6-81e9-ff570115cc15 + 1 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + -909 + 5697 + 37 + 20 + + + -889 + 5707 + + + + + + + + Script output _custom_joints. + d0454776-cf29-4c9d-beea-f4a105af88cb + _custom_joints + _custom_joints + false + 0 + + + + + + -842 + 5657 + 81 + 30 + + + -801.5 + 5672 + + + + + + + + Script output _custom_types. + 138a47c8-a6a9-48cd-9fb1-d83cd4ab29a1 + _custom_types + _custom_types + false + 0 + + + + + + -842 + 5687 + 81 + 30 + + + -801.5 + 5702 + + + + + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + solver + + + + + from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +import System +import Rhino +import rhinoscriptsyntax as rs +from Rhino.Geometry import Polyline, Point3d + +class MyComponent(component): + + def RunScript(self, _cuts0, _cuts1, _type): + + + _custom_joints = [] + _custom_types = [] + type = 39 if _type is None else _type + + for i in range(len(_cuts0)): + _custom_joints.append(_cuts0[i]) + _custom_types.append(type) + + for i in range(len(_cuts1)): + _custom_joints.append(_cuts1[i]) + _custom_types.append(-type) + + + # return outputs if you have them; here I try it for you: + return (_custom_joints, _custom_types) + + GhPython provides a Python script component + true + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAT9JREFUSEvNkrFqAkEURfcbtjelVkYbSSM2ktrESArFH7CLkD5YGEglgTQhkHxCCKROm5Bmv8BYiZWlIEgm7252hp31jiYwggNn2Xdn5h14TKCU2ik09AkNfUJDn9DQJzT0CQ19QkMXsk7y+UKUpVqtddh5QEMXsq4u+pfq+eXVgLrZbD2x84CGLiAYXt+o8dfEgHq/BTLjNz3rMAxnTJDLHcz1GVCpHI30/d9PEAyEsg7TyLJm/v7xaQlQp/dHt3eqXj+eyr1YoptMhKWwJpFlNdwGJPKqvtEzvp80gQA/axLkrJGLRICLVAAsCTLWyMVfBCCWCD3Ujcap4f7h0WqI+qx1vtD7Mn9VLB6ix0YBgGSVyeJXkxagLpXKmLl1TtgqoDBBMpIseypAs3ana0DtVfAPLEGU2vBFZAS7QwU/eZV5j2Rlwm4AAAAASUVORK5CYII= + + false + f3a36b91-2067-4370-a75b-881372a64a04 + true + true + solver + solver + + + + + + -921 + 5775 + 152 + 64 + + + -867 + 5807 + + + + + + 3 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + true + cuts for removal from the first beam + 9df19a76-3b1d-4945-895c-be15e8e42b02 + _cuts0 + _cuts0 + true + 1 + true + f0eb83a1-5963-42e6-8f3c-6913c01387c3 + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -919 + 5777 + 37 + 20 + + + -899 + 5787 + + + + + + + + 1 + true + Script input _cuts1. + 4c0bd46f-a457-4304-8b24-2007fe8f9af8 + _cuts1 + _cuts1 + true + 1 + true + aa79120c-68bf-415f-85ad-6038feef3241 + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -919 + 5797 + 37 + 20 + + + -899 + 5807 + + + + + + + + true + Script input _type. + ecb8c5d7-b204-42bd-8fa7-a29fd4c173b4 + _type + _type + true + 0 + true + a0592e36-dc2f-41d4-b028-ff640ca76b69 + 1 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + -919 + 5817 + 37 + 20 + + + -899 + 5827 + + + + + + + + Script output _custom_joints. + a5f585a4-9e0b-4eb8-a3a7-07365f4e4844 + _custom_joints + _custom_joints + false + 0 + + + + + + -852 + 5777 + 81 + 30 + + + -811.5 + 5792 + + + + + + + + Script output _custom_types. + 0dd2c4d3-7487-4c97-8a36-53b5ab2ee91e + _custom_types + _custom_types + false + 0 + + + + + + -852 + 5807 + 81 + 30 + + + -811.5 + 5822 + + + + + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 1fe54166-de12-4c19-bbe9-23a497804dc5 + Number Slider + + false + 0 + + + + + + -1160 + 5610 + 171 + 20 + + + -1159.115 + 5610.171 + + + + + + 3 + 1 + 1 + 100 + 0 + 0 + 9 + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + solver + + + + + from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +import System +import Rhino +import rhinoscriptsyntax as rs +from Rhino.Geometry import Polyline, Point3d + +class MyComponent(component): + + def RunScript(self, _cuts0, _cuts1, _type): + + + _custom_joints = [] + _custom_types = [] + type = 39 if _type is None else _type + + for i in range(len(_cuts0)): + _custom_joints.append(_cuts0[i]) + _custom_types.append(type) + + for i in range(len(_cuts1)): + _custom_joints.append(_cuts1[i]) + _custom_types.append(-type) + + + # return outputs if you have them; here I try it for you: + return (_custom_joints, _custom_types) + + GhPython provides a Python script component + + 5365 + 245 + + + 1110 + 1094 + + true + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAT9JREFUSEvNkrFqAkEURfcbtjelVkYbSSM2ktrESArFH7CLkD5YGEglgTQhkHxCCKROm5Bmv8BYiZWlIEgm7252hp31jiYwggNn2Xdn5h14TKCU2ik09AkNfUJDn9DQJzT0CQ19QkMXsk7y+UKUpVqtddh5QEMXsq4u+pfq+eXVgLrZbD2x84CGLiAYXt+o8dfEgHq/BTLjNz3rMAxnTJDLHcz1GVCpHI30/d9PEAyEsg7TyLJm/v7xaQlQp/dHt3eqXj+eyr1YoptMhKWwJpFlNdwGJPKqvtEzvp80gQA/axLkrJGLRICLVAAsCTLWyMVfBCCWCD3Ujcap4f7h0WqI+qx1vtD7Mn9VLB6ix0YBgGSVyeJXkxagLpXKmLl1TtgqoDBBMpIseypAs3ana0DtVfAPLEGU2vBFZAS7QwU/eZV5j2Rlwm4AAAAASUVORK5CYII= + + false + 9fb124fc-2163-426d-bf27-31c059ba2ecc + true + true + solver + solver + + + + + + -932 + 5564 + 152 + 64 + + + -878 + 5596 + + + + + + 3 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + true + cuts for removal from the first beam + d8fa400a-839c-478b-9010-d1f80ce7cb64 + _cuts0 + _cuts0 + true + 1 + true + 932d557b-6087-4121-b511-fa6fda50a3c9 + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -930 + 5566 + 37 + 20 + + + -910 + 5576 + + + + + + + + 1 + true + Script input _cuts1. + d6a7b64e-9bde-4b48-a7d6-2306b521bf88 + _cuts1 + _cuts1 + true + 1 + true + 707119ea-54e7-463a-874c-b1cadfe03ffe + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -930 + 5586 + 37 + 20 + + + -910 + 5596 + + + + + + + + true + Script input _type. + a6922fd9-9e7d-4b6a-adae-90c5ff8e8408 + _type + _type + true + 0 + true + 1fe54166-de12-4c19-bbe9-23a497804dc5 + 1 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + -930 + 5606 + 37 + 20 + + + -910 + 5616 + + + + + + + + Script output _custom_joints. + 901d9c9f-89d7-4bc7-8133-7392c4232334 + _custom_joints + _custom_joints + false + 0 + + + + + + -863 + 5566 + 81 + 30 + + + -822.5 + 5581 + + + + + + + + Script output _custom_types. + 4c868bae-c656-4e90-bc00-dfd0f4dcd799 + _custom_types + _custom_types + false + 0 + + + + + + -863 + 5596 + 81 + 30 + + + -822.5 + 5611 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;255;255 + + A group of Grasshopper objects + 6b1ea716-0435-443c-b619-558dcf361931 + 4637b9e3-bc29-4957-baef-30677f5a7f21 + 30f5cec6-50cf-4576-85dc-4fa2394bd70f + 96cb553d-d0cd-4b49-8f74-d7da9be90d58 + 8dae4e11-0ece-4540-8462-4a262db68187 + 63257ad0-5136-4a0e-a023-1fe956aaca39 + 6aec60e0-5ef8-427b-b55a-f08c2df10f94 + bf7df467-49b5-48e6-81e9-ff570115cc15 + e032e801-c8cc-4569-a681-e5b8f3797397 + aa79120c-68bf-415f-85ad-6038feef3241 + f0eb83a1-5963-42e6-8f3c-6913c01387c3 + a0592e36-dc2f-41d4-b028-ff640ca76b69 + d24b89f5-22a1-4cef-ba34-9b8b2e66ca5d + 54513bd6-b247-4d8a-bb35-4bd84f1424a2 + f3f994fe-d4d2-4c25-9238-61233599a9a5 + 0d67efb8-f2bc-446c-bb85-bfc3588c3e29 + f3a36b91-2067-4370-a75b-881372a64a04 + 9fb124fc-2163-426d-bf27-31c059ba2ecc + 782f64e8-79fe-445d-99b4-e3e98f806b57 + c575c24f-23c7-4997-9a20-bc5b9b2f795c + 1fe54166-de12-4c19-bbe9-23a497804dc5 + b560884b-8308-4590-b1ad-1c3df87bfcc9 + 22 + b79ec7e9-c89c-4397-bd47-78794e6b2700 + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;255;255 + + A group of Grasshopper objects + 6b1ea716-0435-443c-b619-558dcf361931 + 4637b9e3-bc29-4957-baef-30677f5a7f21 + 30f5cec6-50cf-4576-85dc-4fa2394bd70f + 96cb553d-d0cd-4b49-8f74-d7da9be90d58 + 8dae4e11-0ece-4540-8462-4a262db68187 + 63257ad0-5136-4a0e-a023-1fe956aaca39 + 6aec60e0-5ef8-427b-b55a-f08c2df10f94 + bf7df467-49b5-48e6-81e9-ff570115cc15 + e032e801-c8cc-4569-a681-e5b8f3797397 + aa79120c-68bf-415f-85ad-6038feef3241 + f0eb83a1-5963-42e6-8f3c-6913c01387c3 + a0592e36-dc2f-41d4-b028-ff640ca76b69 + d24b89f5-22a1-4cef-ba34-9b8b2e66ca5d + 54513bd6-b247-4d8a-bb35-4bd84f1424a2 + f3f994fe-d4d2-4c25-9238-61233599a9a5 + 0d67efb8-f2bc-446c-bb85-bfc3588c3e29 + f3a36b91-2067-4370-a75b-881372a64a04 + 9fb124fc-2163-426d-bf27-31c059ba2ecc + 782f64e8-79fe-445d-99b4-e3e98f806b57 + c575c24f-23c7-4997-9a20-bc5b9b2f795c + 1fe54166-de12-4c19-bbe9-23a497804dc5 + b560884b-8308-4590-b1ad-1c3df87bfcc9 + 22 + 271d6cac-fa88-4fea-bb59-bf1a5bfd2043 + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 150;170;135;255 + + A group of Grasshopper objects + af6ce8ad-ac96-4911-b2c7-5ca4cd2e3882 + c3157ffa-9a00-4162-ae5a-7e03f7766eed + 486eb1c9-5988-46e3-8ef0-adc4af4173f2 + 0c3c7a0d-f428-40f7-b343-0d890f9fc810 + 6d46da31-6852-4f44-8fc0-aa10276f821c + 5030a7c1-3f73-4854-8421-0e81917e0ac7 + ee667b15-d29b-46dd-a706-867634fa8d0e + 0895fa76-da40-47ae-8e1e-23b55e63898d + 8 + a1ded15e-b681-4ab6-b8d4-3666075a40c0 + Group + + + + + + + + + + + 2844fec5-142d-4381-bd5d-4cbcef6d6fed + Sketch + + + + + A series of doodles + 2cb4d637-46d6-4e3e-9791-6ce163b2f900 + 20 + Sketch + Sketch + + + + + + 998.12 + 3693.866 + 354.314 + 41.61603 + + + + + + + 255;0;0;0 + + 0 + 3 + + + + + + + + 1017.19403076172 + 3696.17797851563 + + + 1015.46002197266 + 3695.02197265625 + + + 1013.14801025391 + 3694.44396972656 + + + 1010.83599853516 + 3693.86596679688 + + + 1008.52398681641 + 3693.86596679688 + + + 1005.05603027344 + 3695.02197265625 + + + 1002.166015625 + 3696.17797851563 + + + 999.85400390625 + 3696.75598144531 + + + 998.697998046875 + 3698.48999023438 + + + 998.119995117188 + 3701.38000488281 + + + 999.276000976563 + 3703.69201660156 + + + 1000.43200683594 + 3706.00396728516 + + + 1001.01000976562 + 3708.31597900391 + + + 1002.74401855469 + 3710.62799072266 + + + 1004.47802734375 + 3711.78399658203 + + + 1006.21197509766 + 3713.51800537109 + + + 1007.94598388672 + 3714.67401123047 + + + 1010.25799560547 + 3715.25201416016 + + + 1013.72601318359 + 3715.83001708984 + + + 1016.61602783203 + 3715.83001708984 + + + 1018.92797851562 + 3715.83001708984 + + + 1021.81799316406 + 3715.83001708984 + + + 1024.7080078125 + 3716.40795898438 + + + 1026.44201660156 + 3717.56396484375 + + + 1027.59802246094 + 3719.29797363281 + + + 1028.75402832031 + 3721.60998535156 + + + 1029.33203125 + 3723.92199707031 + + + 1029.33203125 + 3726.23400878906 + + + 1029.33203125 + 3729.12396240234 + + + 1028.75402832031 + 3731.43597412109 + + + 1027.02001953125 + 3732.59197998047 + + + 1024.7080078125 + 3733.16998291016 + + + 1022.39599609375 + 3733.16998291016 + + + 1020.083984375 + 3733.16998291016 + + + 1017.77197265625 + 3733.16998291016 + + + 1014.88201904297 + 3732.59197998047 + + + 1012.57000732422 + 3731.43597412109 + + + 1010.25799560547 + 3730.85797119141 + + + 1008.52398681641 + 3729.70196533203 + + + 1007.36798095703 + 3727.96795654297 + + 40 + + + + + + 1040.89202880859 + 3703.69201660156 + + + 1040.89202880859 + 3707.15997314453 + + + 1042.04797363281 + 3710.62799072266 + + + 1043.20397949219 + 3713.51800537109 + + + 1043.78198242187 + 3716.98596191406 + + + 1044.93798828125 + 3720.45397949219 + + + 1046.09399414062 + 3723.34399414063 + + + 1047.25 + 3726.23400878906 + + + 1048.40600585937 + 3728.54595947266 + + + 1049.56201171875 + 3731.43597412109 + + + 1050.71801757812 + 3733.16998291016 + + + 1052.45202636719 + 3734.32598876953 + + + 1052.45202636719 + 3732.01397705078 + + + 1053.03002929687 + 3728.54595947266 + + + 1054.18597412109 + 3726.23400878906 + + + 1055.91998291015 + 3723.34399414063 + + + 1057.07598876953 + 3721.60998535156 + + + 1058.2319946289 + 3718.71997070313 + + + 1058.80999755859 + 3716.40795898438 + + + 1059.38800048828 + 3713.51800537109 + + + 1059.96600341796 + 3711.20599365234 + + + 1061.12200927734 + 3708.89398193359 + + + 1063.43402099609 + 3710.62799072266 + + + 1064.01202392578 + 3714.09600830078 + + + 1064.59002685546 + 3716.40795898438 + + + 1065.16802978515 + 3718.71997070313 + + + 1066.32397460937 + 3723.92199707031 + + + 1067.47998046875 + 3727.96795654297 + + + 1068.05798339843 + 3730.27996826172 + + + 1068.63598632812 + 3732.59197998047 + + + 1070.94799804687 + 3732.01397705078 + + + 1072.10400390625 + 3729.12396240234 + + + 1073.26000976562 + 3727.39001464844 + + + 1073.83801269531 + 3725.07800292969 + + + 1074.416015625 + 3722.76599121094 + + + 1074.99401855468 + 3719.29797363281 + + + 1075.57202148437 + 3714.09600830078 + + + 1075.57202148437 + 3711.20599365234 + + + 1075.57202148437 + 3708.31597900391 + + + 1076.15002441406 + 3704.84796142578 + + + 1076.15002441406 + 3701.9580078125 + + + 1076.72802734375 + 3699.64599609375 + + 42 + + + + + + 1087.13201904296 + 3707.15997314453 + + + 1087.71002197265 + 3709.47198486328 + + + 1087.71002197265 + 3712.36199951172 + + + 1087.71002197265 + 3715.25201416016 + + + 1087.71002197265 + 3718.14196777344 + + + 1087.71002197265 + 3721.03198242188 + + + 1087.71002197265 + 3723.92199707031 + + + 1087.71002197265 + 3726.23400878906 + + + 1087.71002197265 + 3728.54595947266 + + + 1087.71002197265 + 3730.85797119141 + + + 1087.71002197265 + 3733.16998291016 + + 11 + + + + + + 1090.59997558593 + 3697.333984375 + + + 1091.17797851562 + 3695.02197265625 + + 2 + + + + + + 1107.9400024414 + 3704.84796142578 + + + 1107.9400024414 + 3708.31597900391 + + + 1107.9400024414 + 3710.62799072266 + + + 1107.9400024414 + 3712.94000244141 + + + 1107.9400024414 + 3716.40795898438 + + + 1107.9400024414 + 3718.71997070313 + + + 1107.9400024414 + 3721.60998535156 + + + 1107.9400024414 + 3723.92199707031 + + + 1107.9400024414 + 3726.81201171875 + + + 1107.9400024414 + 3729.12396240234 + + + 1107.9400024414 + 3731.43597412109 + + + 1108.51800537109 + 3733.74798583984 + + 12 + + + + + + 1100.42602539062 + 3706.00396728516 + + + 1102.16003417968 + 3704.84796142578 + + + 1104.47198486328 + 3704.26995849609 + + + 1106.78399658203 + 3704.26995849609 + + + 1110.25201416015 + 3704.26995849609 + + + 1112.5640258789 + 3704.84796142578 + + + 1114.8759765625 + 3704.84796142578 + + + 1117.18798828125 + 3704.84796142578 + + 8 + + + + + + 1134.52795410156 + 3708.31597900391 + + + 1132.7939453125 + 3707.15997314453 + + + 1130.48205566406 + 3707.15997314453 + + + 1128.16998291015 + 3707.15997314453 + + + 1125.28002929687 + 3708.31597900391 + + + 1122.39001464843 + 3708.89398193359 + + + 1121.23400878906 + 3710.62799072266 + + + 1119.5 + 3711.78399658203 + + + 1118.92199707031 + 3714.09600830078 + + + 1118.34399414062 + 3716.40795898438 + + + 1118.34399414062 + 3719.8759765625 + + + 1119.5 + 3721.60998535156 + + + 1119.5 + 3723.92199707031 + + + 1120.65600585937 + 3725.65600585938 + + + 1121.81201171875 + 3727.39001464844 + + + 1122.96801757812 + 3729.70196533203 + + + 1125.28002929687 + 3730.85797119141 + + + 1127.01397705078 + 3732.01397705078 + + + 1129.90405273437 + 3732.01397705078 + + + 1132.21606445312 + 3731.43597412109 + + + 1133.94995117187 + 3730.27996826172 + + + 1135.68395996093 + 3729.12396240234 + + 22 + + + + + + 1147.82202148437 + 3706.00396728516 + + + 1147.82202148437 + 3709.47198486328 + + + 1147.82202148437 + 3712.36199951172 + + + 1147.82202148437 + 3715.25201416016 + + + 1147.82202148437 + 3719.29797363281 + + + 1147.82202148437 + 3722.18798828125 + + + 1147.82202148437 + 3724.5 + + + 1148.40002441406 + 3727.96795654297 + + + 1148.40002441406 + 3730.27996826172 + + + 1149.55603027343 + 3732.59197998047 + + + 1149.55603027343 + 3734.90399169922 + + 11 + + + + + + 1155.33605957031 + 3702.53601074219 + + + 1155.9140625 + 3706.00396728516 + + + 1156.49206542968 + 3708.31597900391 + + + 1156.49206542968 + 3710.62799072266 + + + 1157.06994628906 + 3713.51800537109 + + + 1157.06994628906 + 3716.40795898438 + + + 1157.06994628906 + 3718.71997070313 + + + 1157.06994628906 + 3721.60998535156 + + + 1157.06994628906 + 3724.5 + + + 1157.06994628906 + 3726.81201171875 + + 10 + + + + + + 1150.13403320312 + 3717.56396484375 + + + 1153.02404785156 + 3717.56396484375 + + + 1155.33605957031 + 3718.14196777344 + + + 1157.64794921875 + 3718.71997070313 + + + 1159.9599609375 + 3718.71997070313 + + 5 + + + + + + 1224.69604492187 + 3701.38000488281 + + + 1228.74206542968 + 3706.00396728516 + + + 1229.89794921875 + 3707.73797607422 + + + 1231.05395507812 + 3710.04998779297 + + + 1231.63195800781 + 3712.94000244141 + + + 1232.78796386718 + 3714.67401123047 + + + 1233.36596679687 + 3716.98596191406 + + + 1234.52197265625 + 3720.45397949219 + + + 1235.67797851562 + 3723.92199707031 + + + 1235.67797851562 + 3726.23400878906 + + + 1235.67797851562 + 3728.54595947266 + + + 1235.09997558593 + 3730.85797119141 + + + 1233.36596679687 + 3732.59197998047 + + + 1230.47595214843 + 3733.16998291016 + + + 1227.00805664062 + 3732.01397705078 + + + 1225.27404785156 + 3730.27996826172 + + + 1224.11804199218 + 3727.39001464844 + + 17 + + + + + + 1215.44799804687 + 3702.53601074219 + + + 1218.33801269531 + 3702.53601074219 + + + 1221.22802734375 + 3702.53601074219 + + + 1224.69604492187 + 3702.53601074219 + + + 1229.31994628906 + 3701.9580078125 + + + 1232.2099609375 + 3701.9580078125 + + + 1235.09997558593 + 3701.38000488281 + + + 1238.56799316406 + 3700.80200195313 + + + 1240.88000488281 + 3699.64599609375 + + + 1243.19201660156 + 3699.64599609375 + + 10 + + + + + + 1254.751953125 + 3708.31597900391 + + + 1253.01806640625 + 3707.15997314453 + + + 1250.7060546875 + 3707.73797607422 + + + 1248.97204589843 + 3710.04998779297 + + + 1247.81604003906 + 3712.36199951172 + + + 1246.66003417968 + 3715.83001708984 + + + 1246.66003417968 + 3718.14196777344 + + + 1247.23803710937 + 3720.45397949219 + + + 1247.81604003906 + 3723.34399414063 + + + 1248.97204589843 + 3725.65600585938 + + + 1250.7060546875 + 3727.96795654297 + + + 1252.44006347656 + 3729.70196533203 + + + 1254.17395019531 + 3730.85797119141 + + + 1256.48596191406 + 3731.43597412109 + + + 1258.79797363281 + 3731.43597412109 + + + 1260.53198242187 + 3730.27996826172 + + + 1262.26599121093 + 3728.54595947266 + + + 1263.42199707031 + 3726.23400878906 + + + 1263.42199707031 + 3723.34399414063 + + + 1263.42199707031 + 3721.03198242188 + + + 1263.42199707031 + 3718.71997070313 + + + 1263.42199707031 + 3715.83001708984 + + + 1262.26599121093 + 3712.94000244141 + + + 1261.68798828125 + 3710.62799072266 + + + 1261.68798828125 + 3708.31597900391 + + + 1259.95397949218 + 3707.15997314453 + + + 1258.21997070312 + 3706.00396728516 + + + 1255.90795898437 + 3706.00396728516 + + + 1253.59594726562 + 3707.15997314453 + + 29 + + + + + + 1269.78002929687 + 3707.73797607422 + + + 1269.78002929687 + 3710.62799072266 + + + 1269.78002929687 + 3714.67401123047 + + + 1269.78002929687 + 3716.98596191406 + + + 1270.35803222656 + 3719.8759765625 + + + 1270.93603515625 + 3723.92199707031 + + + 1271.51403808593 + 3727.96795654297 + + + 1272.67004394531 + 3730.27996826172 + + 8 + + + + + + 1271.51403808593 + 3699.06799316406 + + + 1273.82604980468 + 3698.48999023438 + + 2 + + + + + + 1288.85400390625 + 3704.84796142578 + + + 1288.85400390625 + 3707.73797607422 + + + 1288.85400390625 + 3710.04998779297 + + + 1288.85400390625 + 3712.36199951172 + + + 1289.43200683593 + 3717.56396484375 + + + 1289.43200683593 + 3721.03198242188 + + + 1289.43200683593 + 3723.34399414063 + + + 1289.43200683593 + 3725.65600585938 + + + 1289.43200683593 + 3727.96795654297 + + + 1288.85400390625 + 3730.27996826172 + + 10 + + + + + + 1291.166015625 + 3706.58197021484 + + + 1292.32202148437 + 3708.31597900391 + + + 1294.63403320312 + 3712.36199951172 + + + 1296.36804199218 + 3715.83001708984 + + + 1296.94604492187 + 3718.14196777344 + + + 1298.68005371093 + 3721.60998535156 + + + 1299.25805664062 + 3724.5 + + + 1300.4140625 + 3726.23400878906 + + + 1300.99206542968 + 3728.54595947266 + + + 1302.14794921875 + 3730.85797119141 + + + 1303.30395507812 + 3733.16998291016 + + + 1303.88195800781 + 3730.85797119141 + + + 1303.88195800781 + 3728.54595947266 + + + 1304.4599609375 + 3725.07800292969 + + + 1305.03796386718 + 3722.18798828125 + + + 1305.03796386718 + 3719.8759765625 + + + 1305.03796386718 + 3716.98596191406 + + + 1305.03796386718 + 3714.67401123047 + + + 1305.03796386718 + 3711.78399658203 + + + 1305.61596679687 + 3708.89398193359 + + 20 + + + + + + 1322.37805175781 + 3706.58197021484 + + + 1322.9560546875 + 3708.89398193359 + + + 1322.9560546875 + 3711.20599365234 + + + 1322.9560546875 + 3713.51800537109 + + + 1322.9560546875 + 3715.83001708984 + + + 1322.9560546875 + 3719.29797363281 + + + 1322.9560546875 + 3723.92199707031 + + + 1322.9560546875 + 3726.81201171875 + + + 1322.9560546875 + 3729.12396240234 + + + 1322.9560546875 + 3732.59197998047 + + + 1322.9560546875 + 3735.48199462891 + + + 1322.9560546875 + 3733.16998291016 + + + 1322.9560546875 + 3729.70196533203 + + 13 + + + + + + 1316.02001953125 + 3705.42596435547 + + + 1319.48803710937 + 3706.00396728516 + + + 1322.37805175781 + 3706.58197021484 + + + 1325.84594726562 + 3706.58197021484 + + + 1329.31396484375 + 3706.58197021484 + + + 1331.6259765625 + 3706.58197021484 + + + 1333.93798828125 + 3707.15997314453 + + 7 + + + + + + 1348.38806152343 + 3708.89398193359 + + + 1346.65405273437 + 3707.73797607422 + + + 1344.34204101562 + 3709.47198486328 + + + 1343.76403808593 + 3711.78399658203 + + + 1343.76403808593 + 3714.09600830078 + + + 1344.92004394531 + 3716.98596191406 + + + 1346.07604980468 + 3719.29797363281 + + + 1347.23205566406 + 3721.03198242188 + + + 1349.54406738281 + 3721.60998535156 + + + 1350.69995117187 + 3723.34399414063 + + + 1351.27795410156 + 3726.23400878906 + + + 1351.85595703125 + 3728.54595947266 + + + 1352.43395996093 + 3730.85797119141 + + + 1352.43395996093 + 3733.16998291016 + + + 1350.12194824218 + 3734.32598876953 + + + 1347.23205566406 + 3734.90399169922 + + + 1344.92004394531 + 3734.32598876953 + + + 1342.60803222656 + 3733.74798583984 + + + 1340.8740234375 + 3732.59197998047 + + + 1339.14001464843 + 3731.43597412109 + + + 1338.56201171875 + 3728.54595947266 + + 21 + + + + + + + + + 7f6a9d34-0470-4bb7-aadd-07496bcbe572 + Point On Curve + + + + + Evaluates a curve at a specific location + 9a80fda2-0b2d-4f58-9c1f-a2a933f689f1 + Point On Curve + Point On Curve + false + bd03f279-ba8e-42aa-b856-4844f3aa86f5 + 1 + 0.5 + + + + + + 319.0364 + 3361.532 + 120 + 20 + + + + + + + + + + cc14daa5-911a-4fcc-8b3b-1149bf7f2eeb + Point List + + + + + Displays details about lists of points + bb80d7f0-e017-428b-9dd2-2f4f8e53ff19 + Point List + Point List + + + + + + 466 + 3369 + 68 + 44 + + + 520 + 3391 + + + + + + 1 + Points to display + true + ce1a9c57-1163-4096-bb35-185558b3b8d6 + Points + Points + true + 9a80fda2-0b2d-4f58-9c1f-a2a933f689f1 + 1 + + + + + + 468 + 3371 + 37 + 20 + + + 488 + 3381 + + + + + + + + Optional text size (in Rhino units) + 9ef91166-3f89-4e80-a44a-9c2de87173e2 + Size + Size + true + f5644c67-3a24-4dbe-9ca1-e26d6b3dc1fd + 1 + + + + + + 468 + 3391 + 37 + 20 + + + 488 + 3401 + + + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + f5644c67-3a24-4dbe-9ca1-e26d6b3dc1fd + Number Slider + Number Slider + false + 0 + + + + + + 236 + 3391 + 203 + 20 + + + 236.2014 + 3391.296 + + + + + + 3 + 1 + 1 + 1000 + 0 + 0 + 92 + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + b000820c-bec8-4386-9008-da464e3cc172 + Curve + Curve + false + 3b2ba299-d9a3-432f-9c7f-7158983122b7 + 1 + + + + + + 736 + 3082 + 50 + 24 + + + 761.2716 + 3094.502 + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + 2b762b7f-c352-45f2-9ef6-67e90bedb81f + Curve + Curve + false + 9fa1a9b6-da87-49dd-bdcf-539c28be6a38 + 1 + + + + + + 734 + 3125 + 50 + 24 + + + 759.507 + 3137.444 + + + + + + + + + + 59e0b89a-e487-49f8-bab8-b5bab16be14c + Panel + + + + + A panel for custom notes and text values + 964a3c28-d3c3-4418-9bf9-1fe8a3d6629e + Panel + + false + 0 + de787858-5bad-470a-9ef2-ad30c2f78d8e + 1 + Double click to edit panel content… + + + + + + 1149 + 2984 + 286 + 244 + + 0 + 0 + 0 + + 1149.426 + 2984.061 + + + + + + + 255;255;250;90 + + true + true + true + false + false + true + + + + + + + + + 59e0b89a-e487-49f8-bab8-b5bab16be14c + Panel + + + + + A panel for custom notes and text values + 53468050-8728-459a-a8bc-ce8f6c945555 + Panel + + false + 0 + 08c7a082-dec9-4d7f-b796-0d6ebfcced22 + 1 + Double click to edit panel content… + + + + + + 1422 + 3849 + 328 + 428 + + 0 + 0 + 0 + + 1422.636 + 3849.487 + + + + + + + 255;255;250;90 + + true + true + true + false + false + true + + + + + + + + + aced9701-8be9-4860-bc37-7e22622afff4 + 9bde5adf-1aa6-414c-a1d4-8832edea1934 + Bifocals + + + + + true + Add floating labels to all components, with a few exceptions. Double-click to activate/deactivate, see right click menu for options. + true + ee1337f0-ceb6-45f1-95c3-cdf5ebfad28c + Bifocals + Bifocals + true + + + + + + 2074 + 3092 + 90 + 28 + + + 2150 + 3106 + + + + + + 1 + List of component names to exclude + 75938ff4-41ba-4b4d-920b-7765e63abc5f + Exceptions + Exceptions + true + 0 + + + + + + 2076 + 3094 + 59 + 24 + + + 2107 + 3106 + + + + + + + + + + + + 59e0b89a-e487-49f8-bab8-b5bab16be14c + Panel + + + + + A panel for custom notes and text values + d5cdadf9-7917-4ab8-aaad-d8dae8eefb86 + Panel + + false + 0 + 02ad6dfb-b392-43f0-bd83-57dd9d312852 + 1 + Double click to edit panel content… + + + + + + 1769 + 3845 + 237 + 426 + + 0 + 0 + 0 + + 1769.887 + 3845.19 + + + + + + + 255;255;250;90 + + true + true + true + false + false + true + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + 1576.643 + 3823.601 + + + 1745.625 + 3823.601 + + + 1745.625 + 3847.209 + + + 1576.643 + 3847.209 + + A quick note + Microsoft Sans Serif + ed85d829-60db-455a-898f-f0a0e0d6fd43 + false + Scribble + Scribble + 25 + custome joints + + + + + + 1571.643 + 3818.601 + 178.9819 + 33.6084 + + + 1576.643 + 3823.601 + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + 1828.394 + 3822.028 + + + 1997.999 + 3822.028 + + + 1997.999 + 3843.94 + + + 1828.394 + 3843.94 + + A quick note + Microsoft Sans Serif + 47b0f4cf-34b1-4cbe-a596-961251925a89 + false + Scribble + Scribble + 25 + custome types + + + + + + 1823.394 + 3817.028 + 179.6044 + 31.91162 + + + 1828.394 + 3822.028 + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + 131.857 + 3715.21 + + + 339.1079 + 3715.21 + + + 339.1079 + 3734.204 + + + 131.857 + 3734.204 + + A quick note + Microsoft Sans Serif + 6d980d94-c500-4acb-b70d-d7a990084bdc + false + Scribble + Scribble + 25 + Dovetail if vertical + + + + + + 126.857 + 3710.21 + 217.251 + 28.99414 + + + 131.857 + 3715.21 + + + + + + + + + + 59e0b89a-e487-49f8-bab8-b5bab16be14c + Panel + + + + + A panel for custom notes and text values + 3db11a67-0d4c-456d-94a6-bba2901add0d + Panel + + false + 0 + 40f0d80a-77c4-488a-bf51-c63776912cba + 1 + Double click to edit panel content… + + + + + + 373 + 3452 + 160 + 125 + + 0 + 0 + 0 + + 373.7284 + 3452.178 + + + + + + + 255;255;250;90 + + true + true + true + false + false + true + + + + + + + + + 59e0b89a-e487-49f8-bab8-b5bab16be14c + Panel + + + + + A panel for custom notes and text values + f4ba33f0-870a-43c2-bf78-9be00737599f + Panel + + false + 0 + f5f7cbd2-2fc6-463c-9758-3a340625a2ea + 1 + Double click to edit panel content… + + + + + + 534 + 3452 + 160 + 123 + + 0 + 0 + 0 + + 534.974 + 3452.924 + + + + + + + 255;255;250;90 + + true + true + true + false + false + true + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + 402.7567 + 3604.814 + + + 741.2699 + 3604.814 + + + 741.2699 + 3623.503 + + + 402.7567 + 3623.503 + + A quick note + Microsoft Sans Serif + cd5c9478-ac2d-494a-9066-6e2498d90d6b + false + Scribble + Scribble + 25 + Associate lines with Element + + + + + + 397.7567 + 3599.814 + 348.5132 + 28.68896 + + + 402.7567 + 3604.814 + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 150;255;135;135 + + A group of Grasshopper objects + cd5c9478-ac2d-494a-9066-6e2498d90d6b + 1 + bff10df0-823d-45b6-bae2-cf7b90ce87c2 + Group + + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + 2062.179 + 3993.883 + + + 2202.426 + 3993.883 + + + 2202.426 + 4017.821 + + + 2062.179 + 4017.821 + + A quick note + Microsoft Sans Serif + 2aaf9780-edd3-4a56-9bed-5031a23d6496 + false + Scribble + Scribble + 25 + 3 joint types + + + + + + 2057.179 + 3988.883 + 150.2466 + 33.93799 + + + 2062.179 + 3993.883 + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 3 + + 150;255;135;135 + + A group of Grasshopper objects + 2aaf9780-edd3-4a56-9bed-5031a23d6496 + 1 + 2dc39f15-2097-47df-b77e-776c433ef313 + Group + + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + 1144.213 + 3545.817 + + + 1365.565 + 3545.817 + + + 1365.565 + 3557.214 + + + 1144.213 + 3557.214 + + A quick note + Microsoft Sans Serif + ea28f442-7a60-4212-a03c-e068c4e42679 + false + Scribble + Scribble + 15 + Find both side-2-side and cross + + + + + + 1139.213 + 3540.817 + 231.3525 + 21.39648 + + + 1144.213 + 3545.817 + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + 1310.593 + 3594.758 + + + 1372.036 + 3594.758 + + + 1372.036 + 3605.972 + + + 1310.593 + 3605.972 + + A quick note + Microsoft Sans Serif + a853d049-7d6e-4a68-a178-8b843646b9d6 + false + Scribble + Scribble + 15 + Volumes + + + + + + 1305.593 + 3589.758 + 71.44287 + 21.21338 + + + 1310.593 + 3594.758 + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + 126.286 + 3602.816 + + + 365.1898 + 3602.816 + + + 365.1898 + 3626.485 + + + 126.286 + 3626.485 + + A quick note + Microsoft Sans Serif + 19e494ab-166f-4f24-a93f-05b145a3ef29 + false + Scribble + Scribble + 25 + Scarf Joint if parallel + + + + + + 121.286 + 3597.816 + 248.9038 + 33.66943 + + + 126.286 + 3602.816 + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + 72.06464 + 4126.83 + + + 475.9099 + 4126.83 + + + 475.9099 + 4150.767 + + + 72.06464 + 4150.767 + + A quick note + Microsoft Sans Serif + 69e34551-58ef-4c71-8495-930c0c82deb6 + false + Scribble + Scribble + 25 + Crossed Lap with detail if diagonal + + + + + + 67.06464 + 4121.83 + 413.8452 + 33.9375 + + + 72.06464 + 4126.83 + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + -1297.469 + 5049.06 + + + -919.8564 + 5049.06 + + + -919.8564 + 5072.729 + + + -1297.469 + 5072.729 + + A quick note + Microsoft Sans Serif + 51fa1c0b-048e-4a84-b1ea-56480b64178c + false + Scribble + Scribble + 25 + Scarf Joint with incline if parallel + + + + + + -1302.469 + 5044.06 + 387.6123 + 33.66943 + + + -1297.469 + 5049.06 + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + -1237.096 + 5214.876 + + + -975.6339 + 5214.876 + + + -975.6339 + 5238.546 + + + -1237.096 + 5238.546 + + A quick note + Microsoft Sans Serif + ade306af-db46-4a9a-80e3-97017a6e98cc + false + Scribble + Scribble + 25 + Crossed Lap if vertical + + + + + + -1242.096 + 5209.876 + 271.4624 + 33.66943 + + + -1237.096 + 5214.876 + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + -1211.441 + 5357.72 + + + -986.5139 + 5357.72 + + + -986.5139 + 5381.658 + + + -1211.441 + 5381.658 + + A quick note + Microsoft Sans Serif + d7c3e123-98c1-4a71-a2ac-c51126607804 + false + Scribble + Scribble + 25 + Half Lap if diagonal + + + + + + -1216.441 + 5352.72 + 234.9268 + 33.93799 + + + -1211.441 + 5357.72 + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + -1218.292 + 5749.483 + + + -993.365 + 5749.483 + + + -993.365 + 5773.421 + + + -1218.292 + 5773.421 + + A quick note + Microsoft Sans Serif + cd736f23-d876-4ae5-8d84-5498cfb5c0ef + false + Scribble + Scribble + 25 + Half Lap if diagonal + + + + + + -1223.292 + 5744.483 + 234.9268 + 33.93799 + + + -1218.292 + 5749.483 + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + -1273.748 + 5639.166 + + + -993.3647 + 5639.166 + + + -993.3647 + 5658.159 + + + -1273.748 + 5658.159 + + A quick note + Microsoft Sans Serif + 834b57d0-8dc4-4ac2-bfa4-6695435bea86 + false + Scribble + Scribble + 25 + Mortise Tenon if vertical + + + + + + -1278.748 + 5634.166 + 290.3833 + 28.99365 + + + -1273.748 + 5639.166 + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + -1269.699 + 5507.857 + + + -996.2986 + 5507.857 + + + -996.2986 + 5531.526 + + + -1269.699 + 5531.526 + + A quick note + Microsoft Sans Serif + 3f939800-aee8-495c-8240-8ab8db7a0bd2 + false + Scribble + Scribble + 25 + Mortise tenon if parallel + + + + + + -1274.699 + 5502.857 + 283.4009 + 33.66943 + + + -1269.699 + 5507.857 + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + b6ff9884-5d1e-4edf-b1d9-f83fb812a470 + Curve + cuts0 + false + 0 + + + + + + -1038 + 6175 + 50 + 20 + + + -1012.993 + 6185.427 + + + + + + 1 + + + + + 8 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8GC/VraD5v//9/dD+BfsoeL2BMTt0cT3ExCHm4OwGwY+QNUyOEAoDigt4ADyqfKx4sr/9UwNMNXcGPrxAQA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEACEiAP9mtlO2j+/39/P0Tqgf0/UGj9v29PQNweJo5mDi5xuDmsDOjgA1QPgwOE4oDSAg4gn9q/+bvofz1TA0w1N4Z+fAAA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8GC/VraD5v//9/dD+Beg9AN7AuL2aOL7CYjDzUHYDQMfoHoYHCAUB5QWcAD5VELvI8v/eqYGmGpuDP34AAA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEACEiAP9mtlO2j+/39/PwOU/w8UWv/v2xMQt4eJo5mDSxxuDisDOvgA1cPgAKE4oLSAA8inLCz19//XMzXAVHNj6McHAA== + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCBcx8sN/AGAQe72eA8l2Smg9JyX3Yr4Mm7gAVt4KI28PEf4BC9//9/WZo4rjMZ2VAgJYjbK2mNg/sS6du++ob+Nv+zm+ZmC3bGR3KwHxuB5BPV5kWxP6vZ2qA6eFmIAUAAA== + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCBcx8sN/AGAQe74dIPbB3SWo+JCX3Yb8OmrgDVNwKIm4PE/8BCt3/9/eboYnjMp+VAQFajrC1mto8sC+duu2rb+Bv+zu/ZWK2bGd0KAPzuR1APp1495PC/3qmBpgebgZSAAA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8MDeGAwe74fy9zslNR+SkvtASNweJo5mDi5xuDkIuxkYWo6wtZraPLAvnbrtq2/gb/s7v2VitmxndCgD87kdQD515rfw/1/P1ADTw81ACgAA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8MDeGAwe74fxnZKaD0nJfSAkbg8TRzMHlzjcHITdDAwtR9haTW0e2JdO3fbVN/C3/Z3fMjFbtjM6lIH53A4gn1Y832X0v56pAaaHm4EUAAA= + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 50912d9b-9054-4c4e-9966-c2f83b46aef9 + Curve + cuts1 + false + 0 + + + + + + -1039 + 6201 + 50 + 20 + + + -1013.618 + 6211.06 + + + + + + 1 + + + + + 2 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8GC/VraD5v//9/dD+Beg9AN7AuL2aOL7CYjDzUHYDQMfoHoYHCAUB5QWcAD5VELvI8v/eqYGmGpuDP34AAA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8GC/VraD5v//9/dD+BfsoeL2BMTt0cT3ExCHm4OwGwY+QNUyOEAoDigt4ADyqfKx4sr/9UwNMNXcGPrxAQA= + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + b7b59e90-b8cb-4408-a182-0f7026ee1a50 + Number Slider + + false + 0 + + + + + + -1149 + 6223 + 160 + 20 + + + -1148.808 + 6223.697 + + + + + + 3 + 1 + 1 + 100 + 0 + 0 + 29 + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 806631ed-2db4-4987-ba4f-fa6c6942f87c + Curve + cuts1 + false + 0 + + + + + + -1039 + 6310 + 50 + 20 + + + -1013.088 + 6320.571 + + + + + + 1 + + + + + 2 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCF8x8sP8iKHT+37eHyjFwQ8XZoDRM/DlUHSOa+FOo+F00c3CZz8qAAB+gcn/A9Hf7H2D6P5TP7gDyaaFeftT/eqYGVPcRCwA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCF8x8sP8SKHT+37c3MQaBx/bcUHE2KA0Tfw5Vx4gm/hQqfg/NHFzmszIgwAeo3B8w/d3+B5j+D+WzO4B82sJX/ft/PVMDTA83AykAAA== + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 12dd663a-d6f0-4b50-bcab-575ce88b0532 + Curve + cuts0 + false + 0 + + + + + + -1039 + 6290 + 50 + 20 + + + -1013.052 + 6300.019 + + + + + + 1 + + + + + 2 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrECCF8x8sP8iKHT+37eHyjFwQ8XZoDRM/DlUHSOa+FOo+F00c3CZz8qAAB+gcn/A9Hf7H2D6P5TP7gDyaaFeftT/eqYGVPcRCwA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrAww8GA/lLY3BoPH+9HE96OJ2xMQx2UOXBxhNwPDB1DM/L9v/wdMf7f/Aab/Q/nsDiCfGiRlNv6vZ2qA6eFmIAUAAA== + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + f364ad1b-afb8-43e2-9563-5e1998d0fc3f + Number Slider + + false + 0 + + + + + + -1149 + 6336 + 160 + 20 + + + -1148.742 + 6336.494 + + + + + + 3 + 1 + 1 + 100 + 0 + 0 + 39 + + + + + + + + + 3cadddef-1e2b-4c09-9390-0e8f78f7609f + Merge + + + + + Merge a bunch of data streams + true + 1e1801b1-223c-4aa4-99c1-96a1b2069a71 + Merge + Merge + + + + + + -630 + 6062 + 72 + 64 + + + -592 + 6094 + + + + + + 3 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 2 + Data stream 1 + c813c558-93e7-4e74-a814-2d8f4dd6d303 + false + Data 1 + D1 + true + ad1828dc-861d-457c-9bab-50d8b47972a5 + 1 + + + + + + -628 + 6064 + 21 + 20 + + + -616 + 6074 + + + + + + + + 2 + Data stream 2 + 775b3f5c-19ed-4412-8f9a-ff611f92821f + false + Data 2 + D2 + true + 1ff6cdff-cc15-4277-af0f-007c61adb250 + 1 + + + + + + -628 + 6084 + 21 + 20 + + + -616 + 6094 + + + + + + + + 2 + Data stream 3 + afae2746-d5a1-4864-8dc8-ea47d8c46df2 + false + Data 3 + D3 + true + 872fa6a5-33cc-4b09-93fe-df04cadb0394 + 1 + + + + + + -628 + 6104 + 21 + 20 + + + -616 + 6114 + + + + + + + + 2 + Result of merge + a76d1cb8-9caa-431d-9e53-e8972fa7be1e + Result + R + false + 0 + + + + + + -577 + 6064 + 17 + 60 + + + -568.5 + 6094 + + + + + + + + + + + + + + 3cadddef-1e2b-4c09-9390-0e8f78f7609f + Merge + + + + + Merge a bunch of data streams + true + 92b6d80e-3167-49df-bc89-2a390a4c6e6e + Merge + Merge + + + + + + -630 + 6159 + 72 + 64 + + + -592 + 6191 + + + + + + 3 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 2 + Data stream 1 + 593d7b5e-3fd8-4867-8759-4a478dd57653 + false + Data 1 + D1 + true + 6e79f07b-b0f0-4156-a142-d09f30372071 + 1 + + + + + + -628 + 6161 + 21 + 20 + + + -616 + 6171 + + + + + + + + 2 + Data stream 2 + ec277e32-3a22-4f6c-b97a-361060ce04cc + false + Data 2 + D2 + true + acfafef9-ded5-413b-9509-f3cd91944d18 + 1 + + + + + + -628 + 6181 + 21 + 20 + + + -616 + 6191 + + + + + + + + 2 + Data stream 3 + 4b5e5445-ad2a-4feb-81e2-798433e9f5b4 + false + Data 3 + D3 + true + 75f47349-d455-4420-b4bb-725acaceffe6 + 1 + + + + + + -628 + 6201 + 21 + 20 + + + -616 + 6211 + + + + + + + + 2 + Result of merge + f64ba0f1-17cd-4640-ab68-b1386377b35c + Result + R + false + 0 + + + + + + -577 + 6161 + 17 + 60 + + + -568.5 + 6191 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;255;255 + + A group of Grasshopper objects + 6b1ea716-0435-443c-b619-558dcf361931 + 4637b9e3-bc29-4957-baef-30677f5a7f21 + 30f5cec6-50cf-4576-85dc-4fa2394bd70f + 96cb553d-d0cd-4b49-8f74-d7da9be90d58 + 8dae4e11-0ece-4540-8462-4a262db68187 + b6ff9884-5d1e-4edf-b1d9-f83fb812a470 + 50912d9b-9054-4c4e-9966-c2f83b46aef9 + b7b59e90-b8cb-4408-a182-0f7026ee1a50 + e032e801-c8cc-4569-a681-e5b8f3797397 + 806631ed-2db4-4987-ba4f-fa6c6942f87c + 12dd663a-d6f0-4b50-bcab-575ce88b0532 + f364ad1b-afb8-43e2-9563-5e1998d0fc3f + 1e1801b1-223c-4aa4-99c1-96a1b2069a71 + 92b6d80e-3167-49df-bc89-2a390a4c6e6e + f3f994fe-d4d2-4c25-9238-61233599a9a5 + 2e2915c6-e72f-4d1f-a6d6-5050251e5cd6 + 58fa36f3-6e06-4c8d-81c4-4a611453cbff + 78317799-bd38-4202-a103-acd0a9c4550b + ec2cacab-971a-4370-8952-d8684218dbc0 + 353ed4fd-5dc4-48ca-9d8a-0bed3f4b5c4b + c6c421a8-27fa-463b-a2b8-b3ce3ddf940f + 107263bd-4232-4655-87dc-9271da558665 + 22 + f026049c-33bf-4163-955d-d9627a6538f7 + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;0;0 + + A group of Grasshopper objects + b6ff9884-5d1e-4edf-b1d9-f83fb812a470 + 50912d9b-9054-4c4e-9966-c2f83b46aef9 + 3529a5f3-db35-4f90-ad6a-848119725458 + 51967614-777c-4845-ab9d-9eb2dad27909 + 56d9f7cb-7bdf-47d0-94c7-d62c8cca2fb2 + 4826974c-2fa3-446f-8093-dfe08e3f78d5 + c292294b-c231-47ea-bc6a-789e696d9b39 + 7 + d4b6ef94-10f4-4e7d-827d-443bb8ccf921 + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;0;0 + + A group of Grasshopper objects + 806631ed-2db4-4987-ba4f-fa6c6942f87c + 12dd663a-d6f0-4b50-bcab-575ce88b0532 + fd37f640-c3da-45ed-b0e8-7b40ae7e303d + 7024b434-ed05-4ab1-b9cd-a96d9db5043f + 3f9dc348-1c19-4f66-958c-27d1f4c07aae + 2375bf30-e9d3-4efb-b78b-be319e874266 + 2ebbbcc2-b78d-467c-bc75-cff0924bbd4f + 7 + e30b1693-8223-4a5d-b6bc-64ceede922e6 + Group + + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + solver + + + + + from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +import System +import Rhino +import rhinoscriptsyntax as rs +from Rhino.Geometry import Polyline, Point3d + +class MyComponent(component): + + def RunScript(self, _cuts0, _cuts1, _type): + + + _custom_joints = [] + _custom_types = [] + type = 39 if _type is None else _type + + for i in range(len(_cuts0)): + _custom_joints.append(_cuts0[i]) + _custom_types.append(type) + + for i in range(len(_cuts1)): + _custom_joints.append(_cuts1[i]) + _custom_types.append(-type) + + + # return outputs if you have them; here I try it for you: + return (_custom_joints, _custom_types) + + GhPython provides a Python script component + true + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAT9JREFUSEvNkrFqAkEURfcbtjelVkYbSSM2ktrESArFH7CLkD5YGEglgTQhkHxCCKROm5Bmv8BYiZWlIEgm7252hp31jiYwggNn2Xdn5h14TKCU2ik09AkNfUJDn9DQJzT0CQ19QkMXsk7y+UKUpVqtddh5QEMXsq4u+pfq+eXVgLrZbD2x84CGLiAYXt+o8dfEgHq/BTLjNz3rMAxnTJDLHcz1GVCpHI30/d9PEAyEsg7TyLJm/v7xaQlQp/dHt3eqXj+eyr1YoptMhKWwJpFlNdwGJPKqvtEzvp80gQA/axLkrJGLRICLVAAsCTLWyMVfBCCWCD3Ujcap4f7h0WqI+qx1vtD7Mn9VLB6ix0YBgGSVyeJXkxagLpXKmLl1TtgqoDBBMpIseypAs3ana0DtVfAPLEGU2vBFZAS7QwU/eZV5j2Rlwm4AAAAASUVORK5CYII= + + false + 2e2915c6-e72f-4d1f-a6d6-5050251e5cd6 + true + true + solver + solver + + + + + + -912 + 6160 + 152 + 64 + + + -858 + 6192 + + + + + + 3 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + true + cuts for removal from the first beam + 3693f80b-b323-43ac-a78d-b8d9d8694d81 + _cuts0 + _cuts0 + true + 1 + true + b6ff9884-5d1e-4edf-b1d9-f83fb812a470 + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -910 + 6162 + 37 + 20 + + + -890 + 6172 + + + + + + + + 1 + true + Script input _cuts1. + b75e0256-f714-432b-a4d9-10f55c473d84 + _cuts1 + _cuts1 + true + 1 + true + 50912d9b-9054-4c4e-9966-c2f83b46aef9 + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -910 + 6182 + 37 + 20 + + + -890 + 6192 + + + + + + + + true + Script input _type. + 2f3a5714-a39d-4fa4-9eb1-14d7c5b7b556 + _type + _type + true + 0 + true + b7b59e90-b8cb-4408-a182-0f7026ee1a50 + 1 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + -910 + 6202 + 37 + 20 + + + -890 + 6212 + + + + + + + + Script output _custom_joints. + 1ff6cdff-cc15-4277-af0f-007c61adb250 + _custom_joints + _custom_joints + false + 0 + + + + + + -843 + 6162 + 81 + 30 + + + -802.5 + 6177 + + + + + + + + Script output _custom_types. + acfafef9-ded5-413b-9509-f3cd91944d18 + _custom_types + _custom_types + false + 0 + + + + + + -843 + 6192 + 81 + 30 + + + -802.5 + 6207 + + + + + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + solver + + + + + from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +import System +import Rhino +import rhinoscriptsyntax as rs +from Rhino.Geometry import Polyline, Point3d + +class MyComponent(component): + + def RunScript(self, _cuts0, _cuts1, _type): + + + _custom_joints = [] + _custom_types = [] + type = 39 if _type is None else _type + + for i in range(len(_cuts0)): + _custom_joints.append(_cuts0[i]) + _custom_types.append(type) + + for i in range(len(_cuts1)): + _custom_joints.append(_cuts1[i]) + _custom_types.append(-type) + + + # return outputs if you have them; here I try it for you: + return (_custom_joints, _custom_types) + + GhPython provides a Python script component + true + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAT9JREFUSEvNkrFqAkEURfcbtjelVkYbSSM2ktrESArFH7CLkD5YGEglgTQhkHxCCKROm5Bmv8BYiZWlIEgm7252hp31jiYwggNn2Xdn5h14TKCU2ik09AkNfUJDn9DQJzT0CQ19QkMXsk7y+UKUpVqtddh5QEMXsq4u+pfq+eXVgLrZbD2x84CGLiAYXt+o8dfEgHq/BTLjNz3rMAxnTJDLHcz1GVCpHI30/d9PEAyEsg7TyLJm/v7xaQlQp/dHt3eqXj+eyr1YoptMhKWwJpFlNdwGJPKqvtEzvp80gQA/axLkrJGLRICLVAAsCTLWyMVfBCCWCD3Ujcap4f7h0WqI+qx1vtD7Mn9VLB6ix0YBgGSVyeJXkxagLpXKmLl1TtgqoDBBMpIseypAs3ana0DtVfAPLEGU2vBFZAS7QwU/eZV5j2Rlwm4AAAAASUVORK5CYII= + + false + 58fa36f3-6e06-4c8d-81c4-4a611453cbff + true + true + solver + solver + + + + + + -922 + 6280 + 152 + 64 + + + -868 + 6312 + + + + + + 3 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + true + cuts for removal from the first beam + 0f41c859-c1ae-46cf-b488-b974e5b77948 + _cuts0 + _cuts0 + true + 1 + true + 12dd663a-d6f0-4b50-bcab-575ce88b0532 + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -920 + 6282 + 37 + 20 + + + -900 + 6292 + + + + + + + + 1 + true + Script input _cuts1. + 45f7ddf4-ab26-40e2-a40d-69dcdce155b0 + _cuts1 + _cuts1 + true + 1 + true + 806631ed-2db4-4987-ba4f-fa6c6942f87c + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -920 + 6302 + 37 + 20 + + + -900 + 6312 + + + + + + + + true + Script input _type. + a821b11a-745c-43f1-8877-44be12c488dc + _type + _type + true + 0 + true + f364ad1b-afb8-43e2-9563-5e1998d0fc3f + 1 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + -920 + 6322 + 37 + 20 + + + -900 + 6332 + + + + + + + + Script output _custom_joints. + 872fa6a5-33cc-4b09-93fe-df04cadb0394 + _custom_joints + _custom_joints + false + 0 + + + + + + -853 + 6282 + 81 + 30 + + + -812.5 + 6297 + + + + + + + + Script output _custom_types. + 75f47349-d455-4420-b4bb-725acaceffe6 + _custom_types + _custom_types + false + 0 + + + + + + -853 + 6312 + 81 + 30 + + + -812.5 + 6327 + + + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + ec2cacab-971a-4370-8952-d8684218dbc0 + Curve + cuts0 + false + 0 + + + + + + -1039 + 6065 + 50 + 20 + + + -1013.559 + 6075.014 + + + + + + 1 + + + + + 4 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweDxfhMwfdn+B0R8PyHxBTNBYKc9ujm4xGHmsDIgwHewGgaHCdnvF8bOYXQ4Mk/p6oTzAg4TwXxBB5BPg3i+7Ppfz9QA08PNQAoAAA== + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweCxvQmYvmz/AyK+n5D4gpkgsNMe3Rxc4jBzWBkQ4DtYDYPDhOz3C2PnMDocmad0dcJ5AYeJYL6gA8inS6zUGP7XMzXA9HAzkAIA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweDx/hkzQWDn/h8Q8f2ExE3A9OX96ObgEoeZw8qAAN/BahgcJma/Xxg7h9HhyDylqxPOC0D5gg4gnwr1mbb+r2dqgOnhZiAFAAA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweCx/YyZILBz/w+I+H5C4iZg+vJ+dHNwicPMYWVAgO9gNQwOE7PfL4ydw+hwZJ7S1QnnBaB8QQeQT5/seG7/v56pAaaHm4EUAAA= + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + c6c421a8-27fa-463b-a2b8-b3ce3ddf940f + Number Slider + + false + 0 + + + + + + -1160 + 6115 + 171 + 20 + + + -1159.721 + 6115.472 + + + + + + 3 + 1 + 1 + 100 + 0 + 0 + 9 + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 353ed4fd-5dc4-48ca-9d8a-0bed3f4b5c4b + Curve + cuts1 + false + 0 + + + + + + -1039 + 6088 + 50 + 20 + + + -1013.087 + 6098.654 + + + + + + 1 + + + + + 6 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweDxfojUA/sfEPH9hMRNwPRle3RzcInDzGFlQIDvYDUMDhOy3y+MncPocGSe0tUJ5wUcJoL5gg4gn66wnPr9fz1TA0wPNwMpAAA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweCxPUTqgf0PiPh+QuImYPqyPbo5uMRh5rAyIMB3sBoGhwnZ7xfGzmF0ODJP6eqE8wIOE8F8QQeQT+P43X3/1zM1wPRwM5ACAA== + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweDx/gUzQWCn/Q+I+H5C4hMg4vvRzcElDjOHlQEBvoPVMDhMyH6/MHYOo8OReUpXJ5wXcJgI5gs6gHz69P9V9v/1TA0wPdwMpAAA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweCx/YKZILDT/gdEfD8h8QkQ8f3o5uASh5nDyoAA38FqGBwmZL9fGDuH0eHIPKWrE84LOEwE8wUdQD4VPsm+9389UwNMDzcDKQAA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweDxfhMwfXn/D4j4fkLiEKMe7Ec3B5c4zBxWBgT4DlbD4DAh+/3C2DmMDkfmKV2dcF7AYSKYL+gA8umhxxZP/9czNcD0cDOQAgA= + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweCxvQmYvrz/B0R8PyFxiFEP9qObg0scZg4rAwJ8B6thcJiQ/X5h7BxGhyPzlK5OOC/gMBHMF3QA+dTk6qv4//VMDTA93AykAAA= + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + solver + + + + + from ghpythonlib.componentbase import executingcomponent as component +import Grasshopper, GhPython +import System +import Rhino +import rhinoscriptsyntax as rs +from Rhino.Geometry import Polyline, Point3d + +class MyComponent(component): + + def RunScript(self, _cuts0, _cuts1, _type): + + + _custom_joints = [] + _custom_types = [] + type = 39 if _type is None else _type + + for i in range(len(_cuts0)): + _custom_joints.append(_cuts0[i]) + _custom_types.append(type) + + for i in range(len(_cuts1)): + _custom_joints.append(_cuts1[i]) + _custom_types.append(-type) + + + # return outputs if you have them; here I try it for you: + return (_custom_joints, _custom_types) + + GhPython provides a Python script component + + 5365 + 245 + + + 1110 + 1094 + + true + true + true + 2 + + iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDAAACwwBP0AiyAAAAT9JREFUSEvNkrFqAkEURfcbtjelVkYbSSM2ktrESArFH7CLkD5YGEglgTQhkHxCCKROm5Bmv8BYiZWlIEgm7252hp31jiYwggNn2Xdn5h14TKCU2ik09AkNfUJDn9DQJzT0CQ19QkMXsk7y+UKUpVqtddh5QEMXsq4u+pfq+eXVgLrZbD2x84CGLiAYXt+o8dfEgHq/BTLjNz3rMAxnTJDLHcz1GVCpHI30/d9PEAyEsg7TyLJm/v7xaQlQp/dHt3eqXj+eyr1YoptMhKWwJpFlNdwGJPKqvtEzvp80gQA/axLkrJGLRICLVAAsCTLWyMVfBCCWCD3Ujcap4f7h0WqI+qx1vtD7Mn9VLB6ix0YBgGSVyeJXkxagLpXKmLl1TtgqoDBBMpIseypAs3ana0DtVfAPLEGU2vBFZAS7QwU/eZV5j2Rlwm4AAAAASUVORK5CYII= + + false + 78317799-bd38-4202-a103-acd0a9c4550b + true + true + solver + solver + + + + + + -933 + 6069 + 152 + 64 + + + -879 + 6101 + + + + + + 3 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 1 + true + cuts for removal from the first beam + cffc8603-6074-4d02-87d6-62064b6b5e5e + _cuts0 + _cuts0 + true + 1 + true + ec2cacab-971a-4370-8952-d8684218dbc0 + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -931 + 6071 + 37 + 20 + + + -911 + 6081 + + + + + + + + 1 + true + Script input _cuts1. + 868d5d95-88de-4aa8-9372-75e2d7c73243 + _cuts1 + _cuts1 + true + 1 + true + 353ed4fd-5dc4-48ca-9d8a-0bed3f4b5c4b + 1 + 9ba89ec2-5315-435f-a621-b66c5fa2f301 + 1 + + + + + + -931 + 6091 + 37 + 20 + + + -911 + 6101 + + + + + + + + true + Script input _type. + 54f1a338-7e27-4a11-9ec2-270c4a9ac1b9 + _type + _type + true + 0 + true + c6c421a8-27fa-463b-a2b8-b3ce3ddf940f + 1 + 48d01794-d3d8-4aef-990e-127168822244 + 1 + + + + + + -931 + 6111 + 37 + 20 + + + -911 + 6121 + + + + + + + + Script output _custom_joints. + ad1828dc-861d-457c-9bab-50d8b47972a5 + _custom_joints + _custom_joints + false + 0 + + + + + + -864 + 6071 + 81 + 30 + + + -823.5 + 6086 + + + + + + + + Script output _custom_types. + 6e79f07b-b0f0-4156-a142-d09f30372071 + _custom_types + _custom_types + false + 0 + + + + + + -864 + 6101 + 81 + 30 + + + -823.5 + 6116 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;255;255 + + A group of Grasshopper objects + 6b1ea716-0435-443c-b619-558dcf361931 + 4637b9e3-bc29-4957-baef-30677f5a7f21 + 30f5cec6-50cf-4576-85dc-4fa2394bd70f + 96cb553d-d0cd-4b49-8f74-d7da9be90d58 + 8dae4e11-0ece-4540-8462-4a262db68187 + b6ff9884-5d1e-4edf-b1d9-f83fb812a470 + 50912d9b-9054-4c4e-9966-c2f83b46aef9 + b7b59e90-b8cb-4408-a182-0f7026ee1a50 + e032e801-c8cc-4569-a681-e5b8f3797397 + 806631ed-2db4-4987-ba4f-fa6c6942f87c + 12dd663a-d6f0-4b50-bcab-575ce88b0532 + f364ad1b-afb8-43e2-9563-5e1998d0fc3f + 1e1801b1-223c-4aa4-99c1-96a1b2069a71 + 92b6d80e-3167-49df-bc89-2a390a4c6e6e + f3f994fe-d4d2-4c25-9238-61233599a9a5 + 2e2915c6-e72f-4d1f-a6d6-5050251e5cd6 + 58fa36f3-6e06-4c8d-81c4-4a611453cbff + 78317799-bd38-4202-a103-acd0a9c4550b + ec2cacab-971a-4370-8952-d8684218dbc0 + 353ed4fd-5dc4-48ca-9d8a-0bed3f4b5c4b + c6c421a8-27fa-463b-a2b8-b3ce3ddf940f + 107263bd-4232-4655-87dc-9271da558665 + 22 + b85b2e06-4013-48e7-8756-608151bd3782 + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;0;0 + + A group of Grasshopper objects + ec2cacab-971a-4370-8952-d8684218dbc0 + 353ed4fd-5dc4-48ca-9d8a-0bed3f4b5c4b + 808e6b8d-a39f-40e2-957a-ecfcba5b4690 + 44edad09-c1b0-45c9-a998-13920bafa895 + 5519e4cf-dab6-45a7-93d3-0098d1557340 + 5d4d892e-7e2d-478b-b202-9bced3007789 + 62acaac8-6a4a-48ad-89fd-8a37852f93c8 + 7 + 107263bd-4232-4655-87dc-9271da558665 + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 255;255;0;0 + + A group of Grasshopper objects + 6b1ea716-0435-443c-b619-558dcf361931 + 4637b9e3-bc29-4957-baef-30677f5a7f21 + 30f5cec6-50cf-4576-85dc-4fa2394bd70f + 96cb553d-d0cd-4b49-8f74-d7da9be90d58 + 8dae4e11-0ece-4540-8462-4a262db68187 + b6ff9884-5d1e-4edf-b1d9-f83fb812a470 + 50912d9b-9054-4c4e-9966-c2f83b46aef9 + b7b59e90-b8cb-4408-a182-0f7026ee1a50 + e032e801-c8cc-4569-a681-e5b8f3797397 + 806631ed-2db4-4987-ba4f-fa6c6942f87c + 12dd663a-d6f0-4b50-bcab-575ce88b0532 + f364ad1b-afb8-43e2-9563-5e1998d0fc3f + 1e1801b1-223c-4aa4-99c1-96a1b2069a71 + 92b6d80e-3167-49df-bc89-2a390a4c6e6e + f3f994fe-d4d2-4c25-9238-61233599a9a5 + 2e2915c6-e72f-4d1f-a6d6-5050251e5cd6 + 58fa36f3-6e06-4c8d-81c4-4a611453cbff + 78317799-bd38-4202-a103-acd0a9c4550b + ec2cacab-971a-4370-8952-d8684218dbc0 + 353ed4fd-5dc4-48ca-9d8a-0bed3f4b5c4b + c6c421a8-27fa-463b-a2b8-b3ce3ddf940f + 107263bd-4232-4655-87dc-9271da558665 + 22 + 29f0caf5-31e4-46e6-ad03-76fa96e0c5d0 + Group + + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + -1219.486 + 6261.255 + + + -994.5593 + 6261.255 + + + -994.5593 + 6285.193 + + + -1219.486 + 6285.193 + + A quick note + Microsoft Sans Serif + aec6e605-7316-42be-9fd5-c8d93a27ed1d + false + Scribble + Scribble + 25 + Half Lap if diagonal + + + + + + -1224.486 + 6256.255 + 234.9268 + 33.93799 + + + -1219.486 + 6261.255 + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + -1274.354 + 6144.466 + + + -993.9708 + 6144.466 + + + -993.9708 + 6163.46 + + + -1274.354 + 6163.46 + + A quick note + Microsoft Sans Serif + fab3f91b-0247-4c16-a4c8-239bc31ec8ea + false + Scribble + Scribble + 25 + Mortise Tenon if vertical + + + + + + -1279.354 + 6139.466 + 290.3834 + 28.99414 + + + -1274.354 + 6144.466 + + + + + + + + + + 7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe + Scribble + + + + + true + + -1264.631 + 5998.037 + + + -873.3344 + 5998.037 + + + -873.3344 + 6017.031 + + + -1264.631 + 6017.031 + + A quick note + Microsoft Sans Serif + 7af517f5-d63d-40eb-8899-f48a142baf98 + false + Scribble + Scribble + 25 + Kinda like dowtail but out of scale + + + + + + -1269.631 + 5993.037 + 401.2964 + 28.99414 + + + -1264.631 + 5998.037 + + + + + + + + + + 7f6a9d34-0470-4bb7-aadd-07496bcbe572 + Point On Curve + + + + + Evaluates a curve at a specific location + 415937ea-9fca-4d22-b56c-02f00ce5f467 + Point On Curve + Point On Curve + false + 353ed4fd-5dc4-48ca-9d8a-0bed3f4b5c4b + 1 + 0.5 + + + + + + -983.045 + 5960.956 + 120 + 20 + + + + + + + + + + cc14daa5-911a-4fcc-8b3b-1149bf7f2eeb + Point List + + + + + Displays details about lists of points + 214ee3f6-d727-45e8-80e5-37fdd39c9526 + Point List + Point List + + + + + + -1342 + 6078 + 68 + 44 + + + -1288 + 6100 + + + + + + 1 + Points to display + true + 4f4c63fe-6e5d-4ee0-8605-838d59035fcf + Points + Points + true + 415937ea-9fca-4d22-b56c-02f00ce5f467 + 1 + + + + + + -1340 + 6080 + 37 + 20 + + + -1320 + 6090 + + + + + + + + Optional text size (in Rhino units) + 91631b0b-302c-4671-a729-42ac3b7f86a3 + Size + Size + true + 73cf5765-4cbe-4fc2-9be1-a03bcd00aeeb + 1 + + + + + + -1340 + 6100 + 37 + 20 + + + -1320 + 6110 + + + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 73cf5765-4cbe-4fc2-9be1-a03bcd00aeeb + Number Slider + Number Slider + false + 0 + + + + + + -1562 + 6219 + 203 + 20 + + + -1561.292 + 6219.917 + + + + + + 1 + 1 + 0 + 1 + 0 + 0 + 0.2 + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 932d557b-6087-4121-b511-fa6fda50a3c9 + Curve + cuts0 + false + 0 + + + + + + -1019 + 5561 + 50 + 20 + + + -993.898 + 5571.822 + + + + + + 1 + + + + + 4 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweDxfojUA3vs4hfsf0DE9xMnjsucB/asDOjggv28mSDw1/78GRBgcIDweR1APvW+VVL7v56pAaaaG0M/PgAA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweCxPUTqgT128Qv2PyDi+4kTx2XOA3tWBnRwwX7eTBD4a3/+DAgwOED4vA4gn+59s+z4/3qmBphqbgz9+AAA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweDxfojUhf3YxR/s/wER30+cOC5zLuxnZUAHF+znzQSBv/bnz4AAgwOEz+sA8umtZ7bX/9czNcBUc2PoxwcA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweCxPUTqwn7s4g/2/4CI7ydOHJc5F/azMqCDC/bzZoLAX/vzZ0CAwQHC53UA+VTnwvvc//VMDTDV3Bj68QEA + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + true + 1 + 707119ea-54e7-463a-874c-b1cadfe03ffe + Curve + cuts1 + false + 0 + + + + + + -1027 + 5584 + 50 + 20 + + + -1001.894 + 5594.062 + + + + + + 1 + + + + + 2 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweDxfojUBXsc4vt/QMT3EymOyxx7VgZ08MD+/BkQYHCA0CxQWsAB5NNk6U1L/9czNcBUc2PoxwcA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEDi28VQjiNMH+yNweCxPUTqgj0O8f0/IOL7iRTHZY49KwM6eGB//gwIMDhAaBYoLeAA8ulU3QT5//VMDTDV3Bj68QEA + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + e7cc91c3-0f75-493b-891b-f48f6baa2420 + 1 + 1ab4bee3-a7bb-4fe8-aab6-666910c4063b + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + ad8e5b85-d818-493a-90f4-a5588494043b + 1 + a61953a5-f92a-4c9e-945f-37258f3bcf92 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 0aa032e8-d330-41a2-9bf4-96c0b7e28a70 + 1 + 5ae460fe-0999-4758-b73d-4fa47ed86aae + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + d1d6e2d2-9777-4157-830e-a2888badcd35 + 1 + 3e5f9dc4-8d3b-4816-9975-f7498c25ff3b + Group + input_set + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 44744dbb-28f2-4f29-8732-765394a11294 + 1 + c7943a6d-f17d-457b-93d3-7cab3bb0f756 + Group + input_get + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 3da1a1ae-c617-42b3-ad77-e7d1cb7a9444 + 1 + 2787f20b-e38c-4c12-b382-444f7b391af8 + Group + loft_brep + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 9989e4b9-f55a-47a5-986f-5f8448bf47c9 + 1 + 4a079975-968f-4a66-8b1f-03f38752fd3d + Group + Trim Tree + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 029f8be7-3be6-4ee6-b83e-a73ec4167af2 + 1 + bed5612d-e5e0-40b1-9906-bdf95c01aeb6 + Group + Colour Swatch + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 914daf38-fb93-4292-8221-d18fe8cd113e + 1 + a33b721f-6bdc-4d5b-9d93-01d336f01f94 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + fb6a0d26-37df-476c-bcf3-1794bfdbcaf8 + 1 + ceadce75-a2a8-479f-a930-fc850c5b4fa0 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + e9be2a0a-16c7-4ef6-a754-e17ba924493d + 1 + 5292831d-3be3-4fa9-b069-05779bb25f78 + Group + Tree Branch + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 9b3c39e3-4bc9-45c7-94a0-044cfbbc7553 + 1 + 713ebc5d-855a-42a3-8536-699bdb63cf08 + Group + Solid Difference + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 18ae700d-8794-4504-b149-531e8d821b1b + 1 + ea3691ac-1623-4673-afb2-8d7d0957d2d8 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 5c421aab-ee60-4ca0-b5bb-2535d57d5b5b + 1 + 3b43dff0-9b32-49f7-833c-ef788ce36b46 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + b7d321e3-82e5-4c97-a3b5-abc3ac8fbf38 + 1 + af2a4f5f-d448-4bab-86cb-a380187be8c3 + Group + Solid Union + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + a0b13ad9-52c4-41b5-b4ba-9e031ef32e57 + 1 + 996ab9eb-0698-42dc-a18a-2994aa7c761d + Group + Merge + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 932b76ba-b4b0-4225-903c-be65a0eb40da + 1 + 26d57c4f-2bbb-4839-a566-e61a4054830c + Group + Merge + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + d3e42cfc-1945-4ff6-9942-c936bdb8bd9e + 1 + 4b3add0c-7191-4afc-abfb-624aecda3751 + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 697ba654-4c58-4bbd-b291-242330b689f5 + 1 + aaaafd99-06c7-48d2-aee1-1162d5e063ab + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 94bb2716-f57e-4abc-991e-be3a89dd162f + 1 + 8642a8b9-e848-43c3-b89a-45c69e34eb70 + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + d21abc84-4488-4fc1-a317-ac08aea7c978 + 1 + 3e372273-ada1-4b50-9bb2-49b9eab22f17 + Group + joint_parameters + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + f2a5165d-e1ff-4b86-b1cc-54b9a7121869 + 1 + 1f1f59c7-14b4-4652-bc51-08ca4c53b4cc + Group + GhPython Script + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 489f7d03-65e8-4655-81d9-f4ca1d7533d7 + 1 + 5eada711-6f15-4800-aa82-4a92580727a5 + Group + Weave + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 589bbb84-b9e0-4528-8d9a-4195514418a0 + 1 + 6da8b291-0d08-4fe8-b626-b011dcdfa02c + Group + Curve To Polyline + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 4830bfff-6bfd-428a-b7af-eefbc65d6b53 + 1 + d04d9642-24a2-4991-a46e-fcc4e9e616ad + Group + Extrude + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + bb2b9a0e-b8cd-411e-84ef-011ff308bdaa + 1 + 0619e7f5-0677-4646-b299-bba8c9669a0e + Group + Cap Holes + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 2695e2af-e17b-4643-9189-7b7d4f38ef48 + 1 + 5bb76587-10c7-45f5-9bf4-a5b1a4489eeb + Group + Move + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 55f74331-ccb9-4454-b9e2-aaea4ba130fc + 1 + 58930d4a-2416-4459-9df3-4adab3e01eb6 + Group + Tree Branch + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 7f2fe34c-0f78-474e-8841-6404e2a259f6 + 1 + 328a2579-2a35-4fc9-abe7-4a9f82c15514 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + e69d0ea6-6d7d-46e7-85e0-6bc7f90d8e78 + 1 + 0bb4be3e-7e12-41e4-a760-c441c9ef0c96 + Group + Bake Geometry + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 065f3997-1ee7-4df9-8fec-14ce320f0688 + 1 + d14b1019-dcd3-4292-9cea-f9e993be5551 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 7161c93c-965d-47d0-a978-63b5aa251a41 + 1 + 27dc604d-3640-482a-8e99-53a2aec0d9b2 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + eae7b64d-d7c6-4f8d-9f75-20b629cc1565 + 1 + 02140991-e355-44e6-bcc2-d6b450248129 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 22c8e9f2-e8c3-4b39-b32e-1f3765443482 + 1 + 8047d3de-f69e-42b3-be9a-2a64a6d18e0b + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + d482bedc-92c6-4986-be4f-6fffc0dd89dc + 1 + cf2a2431-296e-4473-9c5c-b1a831be6939 + Group + Merge + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + d8fd74f1-d4e0-4cb3-8b43-0cb12a547e86 + 1 + 4e5a734c-785a-4283-b454-43c9f919e861 + Group + Merge + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + abf479ec-05e1-4ac3-97f0-610d2d67bf61 + 1 + f373b807-23ef-48ec-8b54-123f6030a6c6 + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 2851e17f-f89d-417d-87d3-01191222bb83 + 1 + 7ac5f1cf-d949-404b-b3eb-e38d40df5364 + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 1917eefc-7af2-4471-b2e1-e0d23a87332c + 1 + 42b70baf-85e5-4a6b-bd31-55189196eb8a + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 81bb1a55-f16b-41af-9a7c-ca99f4b3d861 + 1 + 3496e588-d96e-4982-9173-05cdbdb864fb + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + d95d8aac-8e70-4cf6-8f3d-5ab921a674d3 + 1 + 45481e1a-72b2-4014-8f93-75859b8ed420 + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 08b78872-c8ce-4be5-a466-7147ad4240d3 + 1 + 665ec34d-a26d-4453-84e2-d2a96f90e7e0 + Group + Stream Filter + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 2bcd71ef-d9ea-46b4-8d71-e9931cd1ecb2 + 1 + 28fb893c-a744-4a6a-9786-1cb863d8d765 + Group + Stream Filter + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 81fcb78a-f501-4405-9d68-de57180dd00d + 1 + 0ff4a98a-54c3-4980-945a-64ff4e5b12bb + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 2c1c888f-a7c5-456c-b613-97b1b566ddaa + 1 + 16e406fb-6b20-4c1c-83dd-a7a0e2627e9e + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 5293014f-3fbb-4f4f-880b-24ac957be424 + 1 + 250e3383-3964-4c82-a314-6c6d01f3eb0a + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 11834f63-30e4-4fae-970e-ead3eb412315 + 1 + 8dbcbbeb-0311-40d3-993c-a5de87a11979 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + f898feb4-b767-460b-a868-e661986c8aca + 1 + 644942ef-635f-4db9-8a09-49a9bdc6559a + Group + Merge + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 09b55c37-70b8-4751-b0c6-020fa920ddd2 + 1 + f44141bb-28f5-4ad1-85f5-d78ed7192910 + Group + Merge + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 3f14aec4-47fa-49a5-bddb-1cb2660b550f + 1 + fcb23f83-22ad-4e38-bd96-90ac8ec3f92f + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 915bed87-432d-42d4-a32c-6badfa268099 + 1 + eb7b00bf-f1a6-46cc-9f6f-d7b2c22d2b0b + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 817f67d2-520a-4dab-86d8-54d1805bf85f + 1 + d8486f88-3b1e-48ae-9402-b87e8fafabb8 + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + d1aefa0c-f4b6-44fd-a989-4f98f18d9057 + 1 + ba3222c4-6a02-44f8-81f3-ce3503c07e05 + Group + Point On Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 50af1fa5-fcee-4e4d-a092-d296a2d02308 + 1 + 827b6964-02fa-4656-9868-96cc48fa4ff0 + Group + Point List + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 4f34c073-2f40-4128-aef7-46b9066ccb53 + 1 + 44f5d1a6-784f-4ce5-b61c-85df08f1bfdf + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 8b51da49-9030-4127-ba93-17bbec6675a1 + 1 + fbcaf8af-39c1-4b81-b651-affed61a6366 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 87961de4-ec84-4775-b07c-df96c27cfac9 + 1 + 3dbe27d3-08bc-4290-a9bd-cd829591b844 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 3358800a-fbee-492f-8019-80ae3499129d + 1 + 228d6db1-9d02-468f-b6fb-0927426af90d + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 48f9c889-594d-4b7a-86d3-1c44d38dc1ad + 1 + 13eb7b5d-aad3-46b4-a1de-6016f29ce99c + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 3c3bf22d-6774-446c-bf94-1b16f29fb675 + 1 + 2a988980-782d-454a-a920-d19c137aaf68 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 1e3df9d4-1a0a-43a1-9e27-04b48dd66ab3 + 1 + 235b15e2-43c1-466b-ae1f-6ae2a1d7d8f4 + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 3dc056a8-f843-47a3-988b-b341cc79ec27 + 1 + 1616ba1e-7ab5-4555-8323-55c6b34b553a + Group + input_set + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + aeab23e6-c49d-454c-ab9c-0f0f29698b6c + 1 + 483357cb-5c02-4e90-9466-03c4aed00456 + Group + input_get + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 91c7d9c8-d4f8-4168-a698-e95006e4538a + 1 + f39a4692-5b85-4c99-b97c-5de73e13d8cd + Group + loft_brep + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 8863f15a-a0aa-4c36-bf32-0f78c8d3a6e3 + 1 + 98626fd4-533e-4650-8ebf-daa0cfa9af04 + Group + Trim Tree + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + a9f6dc19-87b3-4a38-95b3-b3d67ba14508 + 1 + 567776bc-9c13-4e59-b8e0-632c64c78ddb + Group + Colour Swatch + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + cef72e71-5e0c-4280-acf6-16ed6816d824 + 1 + 74329c13-cd69-49b6-aa07-321a68a2d549 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + a2c724da-1ebf-4dcd-95bf-3bb6bd389daf + 1 + 5cc9b9e4-600b-41b6-8150-3e7ec6a7bef8 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + d2fb79e4-7ae2-466a-9473-636a110a8dbf + 1 + d3cc61a3-ab00-43a6-a8ae-53ed3615ed4c + Group + Tree Branch + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 8aa212a8-6517-4a3a-b926-fdd4d369566d + 1 + 176f6d89-2a1a-4bde-af8f-82699f41bea2 + Group + Solid Difference + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 8ec41a42-c6cc-4e46-a9f9-027505d703cf + 1 + f6321ea6-41b6-4396-b79e-af31ddabcbac + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 92610cfa-95e7-402b-8f6e-c82d95bac16b + 1 + 9e6e8bea-85eb-4513-9f67-edf77fd763da + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + e2d269aa-b608-4833-b88d-0744732646ff + 1 + de6eada2-5898-46b7-9eb6-962a0ee93ccc + Group + Solid Union + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 43eded47-ab5c-44bd-97c3-b39841070a73 + 1 + 6584a762-c944-4f38-86f9-9a3a6c93d5ce + Group + Merge + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + cf400057-5c4d-4ba5-99d5-ec1844bf3253 + 1 + 2b8cfd49-fa23-49ab-9e81-51094344fa56 + Group + Merge + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 18b15521-862c-4361-bc47-c1b56ac67a91 + 1 + bf793c6f-6ed0-4c98-95f8-89411d8dfef5 + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 5c0775e9-6f65-49e8-bc8d-ac52e9983606 + 1 + 2ecef5e8-7124-46eb-a6c4-5cd7265a5214 + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 73af52ef-9348-4c1d-b2da-f71787e7e3e8 + 1 + 868c3399-aca4-4e88-bb8b-55f5f353c308 + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 3326d13f-bb35-4f80-ba26-c19a8984becd + 1 + 7a40d54e-b5da-492d-8ef7-9521a298df8c + Group + joint_parameters + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 0548af92-b565-4223-88b3-66e0e51a64df + 1 + dbe3f3fe-9f5b-43be-b8cb-30ff80d98b1d + Group + GhPython Script + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + bd1acc50-481f-4819-9533-cd50e7c75ec2 + 1 + 138b0a17-5fba-4e44-9928-30b878c44297 + Group + Weave + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 39aa5c44-1266-4472-9217-2470618e232e + 1 + 250e4aeb-70cb-41c1-ae1c-013f5677db83 + Group + Curve To Polyline + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 6f1f7da2-9b72-4b16-a9b5-2eaf329cb67b + 1 + a3984edd-ccda-4118-84d2-70f62607ccff + Group + Extrude + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 52c04c7e-58f3-4dc6-9793-8aa50d6dd344 + 1 + f230f136-00e1-4b09-9b7f-9f870541a474 + Group + Cap Holes + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 69fce28c-9e81-40b3-9ef1-56ced83b4f20 + 1 + f5d795de-ec58-4eea-8d7a-4b2c92726783 + Group + Move + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 971e9ffd-7d78-459b-a8ea-d16230b223c0 + 1 + 03fbfa0f-9824-432d-9551-207eede053f7 + Group + Tree Branch + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + bd03f279-ba8e-42aa-b856-4844f3aa86f5 + 1 + ec6870ea-2930-4d70-859c-4c13572a0abe + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 083e1e0e-2191-4051-b054-3fd8cd3b33b0 + 1 + 77f1bceb-f173-4087-ac72-3a18edaff212 + Group + Bake Geometry + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 0b9e56c5-e245-452e-b084-f40448610221 + 1 + 6e7015dc-7cf5-47a2-9e1a-77a23e3556e9 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 1d7945f1-517e-43de-9c94-f99681fd12ef + 1 + f6731a42-e99a-4dff-bfb5-5500ff4841b6 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 5c59dbc7-39a4-41ee-bef9-5610f803e27b + 1 + c538e824-cc91-4f74-aa8c-76a1dd900ce2 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + a2fb67b0-44f0-4b61-9b84-831b79be5d7d + 1 + e65ba3dc-a7e1-42f2-95cc-a52daff9ad63 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 6912800b-9d29-489b-8dce-831b898fc3d1 + 1 + 689353f4-15a1-4c64-ae72-9444432cbf5f + Group + Merge + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + a93f944b-234f-40a7-aeed-1bac867d8fc7 + 1 + 3a3b4997-5d36-4ee1-880f-92f08e5aa11f + Group + Merge + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 1f450af1-dc34-4bb5-a889-193d58411860 + 1 + d0c2d09f-c5a3-4183-a8de-0f79a27be212 + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 238a803f-cb8f-4907-97bc-88c6e9e0d949 + 1 + 4caa506c-42f9-4feb-955d-cf4e025b861d + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 005e5630-194e-431d-89a2-cd1d004fbf29 + 1 + e81ac9d7-8010-4c77-bb6c-6e6013288dc9 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 79fc1660-42f7-416b-9a71-f49f3961bd9e + 1 + 64ee8b76-0fd9-44ce-9e02-94bdbe585dac + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 41cc60e3-b93b-4651-8ec3-a6e1c7a5ad9f + 1 + eb9cb801-8d12-43ea-bbf1-45dcf1580414 + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + af6ce8ad-ac96-4911-b2c7-5ca4cd2e3882 + 1 + 0895fa76-da40-47ae-8e1e-23b55e63898d + Group + Stream Filter + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + c3157ffa-9a00-4162-ae5a-7e03f7766eed + 1 + 9857fa4c-bb5b-4c62-a69f-5595c5184f1e + Group + Stream Filter + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 63257ad0-5136-4a0e-a023-1fe956aaca39 + 1 + a9caff69-125f-47b8-b7f0-85ed7c2357ce + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 6aec60e0-5ef8-427b-b55a-f08c2df10f94 + 1 + b286f969-8f29-4eb6-8ee9-c8a5e69019b5 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + aa79120c-68bf-415f-85ad-6038feef3241 + 1 + 326ce7f6-fcee-4a4c-905f-893002596a8b + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + f0eb83a1-5963-42e6-8f3c-6913c01387c3 + 1 + 9dc9bbdb-a95d-40ce-a915-2217ac0c5aa6 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + d24b89f5-22a1-4cef-ba34-9b8b2e66ca5d + 1 + 070085c7-beb6-4586-a71c-27553fa07b96 + Group + Merge + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 54513bd6-b247-4d8a-bb35-4bd84f1424a2 + 1 + 017c0108-b430-4f88-889b-28f50c771e73 + Group + Merge + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 0d67efb8-f2bc-446c-bb85-bfc3588c3e29 + 1 + 7b16151f-9016-452e-bd3d-a8f459da9ecf + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + f3a36b91-2067-4370-a75b-881372a64a04 + 1 + 099fae7d-fc46-4cc5-970e-5bf79edb0048 + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 9fb124fc-2163-426d-bf27-31c059ba2ecc + 1 + 3655bb03-d996-45ee-abff-d4588580b2ec + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 9a80fda2-0b2d-4f58-9c1f-a2a933f689f1 + 1 + f162eb75-3aa1-417b-9879-edcb04916bf4 + Group + Point On Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + bb80d7f0-e017-428b-9dd2-2f4f8e53ff19 + 1 + 7281e7f3-7e75-4059-b4d2-62cdae460d3b + Group + Point List + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + b000820c-bec8-4386-9008-da464e3cc172 + 1 + edb47976-1b2b-4d49-b0fa-b5e49e858311 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 2b762b7f-c352-45f2-9ef6-67e90bedb81f + 1 + 2e7d45b5-9320-4ff9-8753-ca1aa4954750 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + b6ff9884-5d1e-4edf-b1d9-f83fb812a470 + 1 + c292294b-c231-47ea-bc6a-789e696d9b39 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 50912d9b-9054-4c4e-9966-c2f83b46aef9 + 1 + eb605ff3-6794-42d3-86fe-40c8dcaa2b67 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 806631ed-2db4-4987-ba4f-fa6c6942f87c + 1 + 2ebbbcc2-b78d-467c-bc75-cff0924bbd4f + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 12dd663a-d6f0-4b50-bcab-575ce88b0532 + 1 + c33ce991-c451-447b-b433-3709a9575d7a + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 1e1801b1-223c-4aa4-99c1-96a1b2069a71 + 1 + 9c155fed-ff4a-4484-b298-10632149e9cc + Group + Merge + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 92b6d80e-3167-49df-bc89-2a390a4c6e6e + 1 + 583c603a-f16f-48da-93ba-757177ffe20f + Group + Merge + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 2e2915c6-e72f-4d1f-a6d6-5050251e5cd6 + 1 + 9ebb158b-4c03-4c20-acee-3d25876f1b2e + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 58fa36f3-6e06-4c8d-81c4-4a611453cbff + 1 + de46501a-16d6-4671-b9bd-f4e26face6cf + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + ec2cacab-971a-4370-8952-d8684218dbc0 + 1 + 62acaac8-6a4a-48ad-89fd-8a37852f93c8 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 353ed4fd-5dc4-48ca-9d8a-0bed3f4b5c4b + 1 + 921d68c5-4abf-4123-93d4-89580f47e81c + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 78317799-bd38-4202-a103-acd0a9c4550b + 1 + fdeaa061-7771-49f6-9546-7e4f3a4c1ea5 + Group + solver + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 415937ea-9fca-4d22-b56c-02f00ce5f467 + 1 + 0f3c0e3f-91a6-4983-8836-842d13c397f7 + Group + Point On Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 214ee3f6-d727-45e8-80e5-37fdd39c9526 + 1 + b7172a05-6267-40a8-9a40-dbd1edf5d8b6 + Group + Point List + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 932d557b-6087-4121-b511-fa6fda50a3c9 + 1 + da427e44-282f-4043-b8fd-aa7a6d67d3f5 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 707119ea-54e7-463a-874c-b1cadfe03ffe + 1 + 324c5444-0cf2-4562-91c1-71fb4f779859 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 73383764-7e23-416e-8817-518ac2bdad63 + 1 + 668b7423-6d01-49ed-98bc-07775b299ceb + Group + Point List + + + + + + + + + + d93100b6-d50b-40b2-831a-814659dc38e3 + Rectangle + + + + + Create a rectangle on a plane + true + 2515929f-6bd3-4a7e-a59c-98964a8dcbef + Rectangle + Rectangle + + + + + + -1472 + 3609 + 131 + 84 + + + -1416 + 3651 + + + + + + Rectangle base plane + 4e015fd7-e68b-498c-8ad7-cd26a06f987b + Plane + Plane + false + 01c6b76e-58d7-4cfa-864c-c272c5194bef + 1 + + + + + + -1470 + 3611 + 39 + 20 + + + -1449 + 3621 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + + + + + + + + + + + + Dimensions of rectangle in plane X direction. + 0575a54b-76c3-483d-8e22-5a0bca064b0a + X Size + X Size + false + 733ad755-6f8e-4e8a-84fe-42413663f773 + 1 + + + + + + -1470 + 3631 + 39 + 20 + + + -1449 + 3641 + + + + + + 1 + + + + + 1 + {0} + + + + + + -1 + 1 + + + + + + + + + + + + Dimensions of rectangle in plane Y direction. + 8b176d8b-5e04-43cc-be10-427662760e23 + Y Size + Y Size + false + 6a317bea-7e73-49e9-ba53-b0b5c7c3a51e + 1 + + + + + + -1470 + 3651 + 39 + 20 + + + -1449 + 3661 + + + + + + 1 + + + + + 1 + {0} + + + + + + -2 + 2 + + + + + + + + + + + + Rectangle corner fillet radius + 24f994ae-778d-4c58-a250-20750e887698 + Radius + Radius + false + 0 + + + + + + -1470 + 3671 + 39 + 20 + + + -1449 + 3681 + + + + + + 1 + + + + + 1 + {0} + + + + + 0 + + + + + + + + + + + Rectangle + aaa0a207-1908-4a20-8aff-2d6be13af395 + Rectangle + Rectangle + false + 0 + + + + + + -1401 + 3611 + 58 + 40 + + + -1372 + 3631 + + + + + + + + Length of rectangle curve + d17b9e8d-35e5-474f-8692-7aed245302a7 + Length + Length + false + 0 + + + + + + -1401 + 3651 + 58 + 40 + + + -1372 + 3671 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 2515929f-6bd3-4a7e-a59c-98964a8dcbef + 1 + 7bd1bbe0-d503-4eda-a03a-f81e6591c2fc + Group + Rectangle + + + + + + + + + + 8cc3a196-f6a0-49ea-9ed9-0cb343a3ae64 + XZ Plane + + + + + World XZ plane. + true + a6ad5b35-ff86-4e43-be83-6969114c39c4 + XZ Plane + XZ Plane + + + + + + -1660 + 3558 + 107 + 28 + + + -1606 + 3572 + + + + + + Origin of plane + ddb95eeb-5fde-41cc-8ceb-aa26a12a8bf0 + Origin + Origin + false + 0 + + + + + + -1658 + 3560 + 37 + 24 + + + -1638 + 3572 + + + + + + 1 + + + + + 1 + {0} + + + + + + + 0 + 0 + 0 + + + + + + + + + + + + World XZ plane + 01c6b76e-58d7-4cfa-864c-c272c5194bef + Plane + Plane + false + 0 + + + + + + -1591 + 3560 + 36 + 24 + + + -1573 + 3572 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + a6ad5b35-ff86-4e43-be83-6969114c39c4 + 1 + 770a5bf0-2193-481c-9f7c-408e846736b9 + Group + XZ Plane + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + cc5518e5-516d-4141-8b38-98f073570944 + Number Slider + Number Slider + false + 0 + + + + + + -2002 + 3775 + 203 + 20 + + + -2001.857 + 3775.116 + + + + + + 3 + 1 + 1 + 1 + 0 + 0 + 1 + + + + + + + + + d1a28e95-cf96-4936-bf34-8bf142d731bf + Construct Domain + + + + + Create a numeric domain from two numeric extremes. + true + c95ec3c6-ad7c-47f0-89a2-621bb2af7ff0 + Construct Domain + Construct Domain + + + + + + -1693 + 3610 + 168 + 44 + + + -1590 + 3632 + + + + + + Start value of numeric domain + 8570ea68-b720-41af-b98e-157501b97231 + -0.5*x + Domain start + Domain start + false + cc5518e5-516d-4141-8b38-98f073570944 + 1 + + + + + + -1691 + 3612 + 86 + 20 + + + -1638.5 + 3622 + + + + + + 1 + + + + + 1 + {0} + + + + + 0 + + + + + + + + + + + End value of numeric domain + cfbf7072-da46-466a-bba5-b83cceb11f2d + 0.5*x + Domain end + Domain end + false + cc5518e5-516d-4141-8b38-98f073570944 + 1 + + + + + + -1691 + 3632 + 86 + 20 + + + -1638.5 + 3642 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + Numeric domain between {A} and {B} + 733ad755-6f8e-4e8a-84fe-42413663f773 + Domain + Domain + false + 0 + + + + + + -1575 + 3612 + 48 + 40 + + + -1551 + 3632 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + c95ec3c6-ad7c-47f0-89a2-621bb2af7ff0 + 1 + 0d422913-3ee1-479a-8253-e9794c95043a + Group + Construct Domain + + + + + + + + + + d1a28e95-cf96-4936-bf34-8bf142d731bf + Construct Domain + + + + + Create a numeric domain from two numeric extremes. + true + b6b6b5f5-6024-4973-b7de-d42c2b383996 + Construct Domain + Construct Domain + + + + + + -1673 + 3685 + 168 + 44 + + + -1570 + 3707 + + + + + + Start value of numeric domain + 7f6330d1-8546-47b3-9ed5-91923ad1158f + -(0.5/5)*x + Domain start + Domain start + false + cc5518e5-516d-4141-8b38-98f073570944 + 1 + + + + + + -1671 + 3687 + 86 + 20 + + + -1618.5 + 3697 + + + + + + 1 + + + + + 1 + {0} + + + + + 0 + + + + + + + + + + + End value of numeric domain + f5e6b9a7-7426-4a7e-b62b-e360d5cb5020 + (0.5/5)*x + Domain end + Domain end + false + cc5518e5-516d-4141-8b38-98f073570944 + 1 + + + + + + -1671 + 3707 + 86 + 20 + + + -1618.5 + 3717 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + Numeric domain between {A} and {B} + 6a317bea-7e73-49e9-ba53-b0b5c7c3a51e + Domain + Domain + false + 0 + + + + + + -1555 + 3687 + 48 + 40 + + + -1531 + 3707 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + b6b6b5f5-6024-4973-b7de-d42c2b383996 + 1 + 2d23d96e-efd0-40a6-8468-9dcfca82042a + Group + Construct Domain + + + + + + + + + + e9eb1dcf-92f6-4d4d-84ae-96222d60f56b + Move + + + + + Translate (move) an object along a vector. + true + 94c3740a-b634-4787-b5ce-063ba1d50593 + Move + Move + + + + + + -1252 + 3648 + 148 + 44 + + + -1180 + 3670 + + + + + + Base geometry + def4b513-fb6b-4367-a51a-62c55d11c617 + Geometry + Geometry + true + aaa0a207-1908-4a20-8aff-2d6be13af395 + 1 + + + + + + -1250 + 3650 + 55 + 20 + + + -1221 + 3660 + + + + + + + + Translation vector + 2ad325c1-efec-4de0-b320-df19d3dbd338 + Motion + Motion + false + 67392be6-f1d1-44f3-9ffa-fb165f784691 + 1 + + + + + + -1250 + 3670 + 55 + 20 + + + -1221 + 3680 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0 + 0 + 10 + + + + + + + + + + + + Translated geometry + 0f9de771-342d-466f-b58c-4f909bf8db8e + Geometry + Geometry + false + 0 + + + + + + -1165 + 3650 + 59 + 20 + + + -1135.5 + 3660 + + + + + + + + Transformation data + a5d57de7-ea6b-4e60-b815-4ba44645b3c6 + Transform + Transform + false + 0 + + + + + + -1165 + 3670 + 59 + 20 + + + -1135.5 + 3680 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 94c3740a-b634-4787-b5ce-063ba1d50593 + 1 + d8a34b96-df3a-42cf-a2b6-322f5dfed30b + Group + Move + + + + + + + + + + 9103c240-a6a9-4223-9b42-dbd19bf38e2b + Unit Z + + + + + Unit vector parallel to the world {z} axis. + true + d8096754-0366-47f5-88d5-2b5dc729568a + Unit Z + Unit Z + + + + + + -1410 + 3740 + 134 + 28 + + + -1356 + 3754 + + + + + + Unit multiplication + ba5b3e63-5e28-479b-8a4e-3244ce48635f + Factor + Factor + false + 566393db-dbc8-491c-9961-249159b7f33b + 1 + + + + + + -1408 + 3742 + 37 + 24 + + + -1388 + 3754 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + World {z} vector + 67392be6-f1d1-44f3-9ffa-fb165f784691 + Unit vector + Unit vector + false + 0 + + + + + + -1341 + 3742 + 63 + 24 + + + -1309.5 + 3754 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + d8096754-0366-47f5-88d5-2b5dc729568a + 1 + c8859aa5-b3c7-4a86-8d56-e1b0dd2fbcdc + Group + Unit Z + + + + + + + + + + 9df5e896-552d-4c8c-b9ca-4fc147ffa022 + Expression + + + + + Evaluate an expression + (0.2)*x + true + 5ad45aa3-8628-485e-905c-6ced4355da6a + Expression + Expression + + + + + + -1617 + 3814 + 141 + 28 + + + -1560 + 3828 + + + + + + 1 + ba80fd98-91a1-4958-b6a7-a94e40e52bdb + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + Expression variable + 94d904bf-8763-4e1c-a83d-dcddcc161f05 + Variable x + x + true + cc5518e5-516d-4141-8b38-98f073570944 + 1 + + + + + + -1615 + 3816 + 12 + 24 + + + -1607.5 + 3828 + + + + + + + + Result of expression + 566393db-dbc8-491c-9961-249159b7f33b + Result + Result + false + 0 + + + + + + -1518 + 3816 + 40 + 24 + + + -1498 + 3828 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 5ad45aa3-8628-485e-905c-6ced4355da6a + 1 + bb05d1ee-1f96-4491-9e0f-9b098892b248 + Group + Expression + + + + + + + + + + e9eb1dcf-92f6-4d4d-84ae-96222d60f56b + Move + + + + + Translate (move) an object along a vector. + true + c1a1049f-9454-4341-bf42-d778a43b3391 + Move + Move + + + + + + -772 + 3941 + 148 + 44 + + + -700 + 3963 + + + + + + Base geometry + b6ee6066-649f-4692-b575-857e91c2e9ac + Geometry + Geometry + true + 7d0154e8-cdab-49aa-a45f-b462a8fe421b + 1 + + + + + + -770 + 3943 + 55 + 20 + + + -741 + 3953 + + + + + + + + Translation vector + 0f2b1c09-3d97-46e0-8853-519d28dc4957 + Motion + Motion + false + 786da999-5781-4cf7-97de-014a41c3f8a6 + 1 + + + + + + -770 + 3963 + 55 + 20 + + + -741 + 3973 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0 + 0 + 10 + + + + + + + + + + + + Translated geometry + cc8bfc97-9575-4a4d-aacd-792cdfb8f657 + Geometry + Geometry + false + 0 + + + + + + -685 + 3943 + 59 + 20 + + + -655.5 + 3953 + + + + + + + + Transformation data + 34f2b576-303b-4517-b75e-89b3240321c8 + Transform + Transform + false + 0 + + + + + + -685 + 3963 + 59 + 20 + + + -655.5 + 3973 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + c1a1049f-9454-4341-bf42-d778a43b3391 + 1 + 43c6ef9d-3636-4ef7-a20f-eb71ef0817e9 + Group + Move + + + + + + + + + + d3d195ea-2d59-4ffa-90b1-8b7ff3369f69 + Unit Y + + + + + Unit vector parallel to the world {y} axis. + true + 19a7a374-fd1e-4628-a043-e4de71dc994d + Unit Y + Unit Y + + + + + + -1211 + 3775 + 150 + 28 + + + -1141 + 3789 + + + + + + Unit multiplication + 1d3b6f6c-e570-4c32-b959-f76c79d99853 + 0.5*x + Factor + Factor + false + cc5518e5-516d-4141-8b38-98f073570944 + 1 + + + + + + -1209 + 3777 + 53 + 24 + + + -1173 + 3789 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + World {y} vector + 786da999-5781-4cf7-97de-014a41c3f8a6 + Unit vector + Unit vector + false + 0 + + + + + + -1126 + 3777 + 63 + 24 + + + -1094.5 + 3789 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 19a7a374-fd1e-4628-a043-e4de71dc994d + 1 + 7f234741-7510-4ff7-b7c8-0e436ab91506 + Group + Unit Y + + + + + + + + + + e9eb1dcf-92f6-4d4d-84ae-96222d60f56b + Move + + + + + Translate (move) an object along a vector. + c36a25bc-c470-4461-b270-f9b44ec02cb6 + Move + Move + + + + + + -761 + 3723 + 148 + 44 + + + -689 + 3745 + + + + + + Base geometry + c34127f3-28e5-472f-b178-3219933a46a9 + Geometry + Geometry + true + cc8bfc97-9575-4a4d-aacd-792cdfb8f657 + 1 + + + + + + -759 + 3725 + 55 + 20 + + + -730 + 3735 + + + + + + + + Translation vector + 7a85b10f-9eba-448a-95bf-8c438b1c1d1c + Motion + Motion + false + 682f1d7f-76f8-410b-91b6-4818ec4cdf2f + 1 + + + + + + -759 + 3745 + 55 + 20 + + + -730 + 3755 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0 + 0 + 10 + + + + + + + + + + + + Translated geometry + 1765e40a-525f-403d-83e3-83128475f649 + Geometry + Geometry + false + 0 + + + + + + -674 + 3725 + 59 + 20 + + + -644.5 + 3735 + + + + + + + + Transformation data + eac038e9-98dd-4bae-a4c8-f4ed4052f6be + Transform + Transform + false + 0 + + + + + + -674 + 3745 + 59 + 20 + + + -644.5 + 3755 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + c36a25bc-c470-4461-b270-f9b44ec02cb6 + 1 + f147398b-887a-4f73-a07a-8e32fa450a10 + Group + Move + + + + + + + + + + 3cadddef-1e2b-4c09-9390-0e8f78f7609f + Merge + + + + + Merge a bunch of data streams + f4280943-d803-4b0d-b008-9ab31bc168ea + Merge + Merge + + + + + + -331 + 3896 + 95 + 104 + + + -293 + 3948 + + + + + + 5 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 2 + Data stream 1 + 59853ff9-e752-4e0c-83a6-9a116530acbd + false + Data 1 + D1 + true + 1765e40a-525f-403d-83e3-83128475f649 + 1 + + + + + + -329 + 3898 + 21 + 20 + + + -317 + 3908 + + + + + + + + 2 + Data stream 2 + 94f885f5-1e9c-4409-8197-1207e0d557e6 + false + Data 2 + D2 + true + c27b78d3-7bbf-45c9-a903-8a3aafb09c90 + 1 + + + + + + -329 + 3918 + 21 + 20 + + + -317 + 3928 + + + + + + + + 2 + Data stream 3 + 687d8fbc-6c21-489e-8633-2ec7146fc099 + false + Data 3 + D3 + true + cc8bfc97-9575-4a4d-aacd-792cdfb8f657 + 1 + + + + + + -329 + 3938 + 21 + 20 + + + -317 + 3948 + + + + + + + + 2 + Data stream 4 + 0331974d-6e96-469b-9ed6-0af12a5a27b7 + false + Data 4 + D4 + true + e65f25f8-7ce9-49e2-b891-360ba1bd46a3 + 1 + + + + + + -329 + 3958 + 21 + 20 + + + -317 + 3968 + + + + + + + + 2 + Data stream 5 + 7e895399-406b-485e-8e94-9b7d30f0b57a + false + Data 5 + D5 + true + 0 + + + + + + -329 + 3978 + 21 + 20 + + + -317 + 3988 + + + + + + + + 2 + Result of merge + 36c24007-8938-4082-997e-62c537f8bb8b + Result + Result + false + 0 + + + + + + -278 + 3898 + 40 + 100 + + + -258 + 3948 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + f4280943-d803-4b0d-b008-9ab31bc168ea + 1 + 52fcfe50-a837-40f6-b7c5-e2727d0fea61 + Group + Merge + + + + + + + + + + 9103c240-a6a9-4223-9b42-dbd19bf38e2b + Unit Z + + + + + Unit vector parallel to the world {z} axis. + true + 49c45c1a-e320-4021-8c57-b021322b4db9 + Unit Z + Unit Z + + + + + + -1293 + 3850 + 134 + 28 + + + -1239 + 3864 + + + + + + Unit multiplication + 782d2a13-016f-4a30-9855-e50e8169478c + Factor + Factor + false + aa725253-c7e7-4b92-9424-42c68d19b4af + 1 + + + + + + -1291 + 3852 + 37 + 24 + + + -1271 + 3864 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + World {z} vector + 682f1d7f-76f8-410b-91b6-4818ec4cdf2f + Unit vector + Unit vector + false + 0 + + + + + + -1224 + 3852 + 63 + 24 + + + -1192.5 + 3864 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 49c45c1a-e320-4021-8c57-b021322b4db9 + 1 + 62b6bda5-cbc3-4b8f-9b87-b8fd8583182c + Group + Unit Z + + + + + + + + + + 9df5e896-552d-4c8c-b9ca-4fc147ffa022 + Expression + + + + + Evaluate an expression + -(0.5/5)*4 * x + true + f536a99e-4f75-46b1-b0b2-b81a093666de + Expression + Expression + + + + + + -1506 + 3850 + 198 + 28 + + + -1421 + 3864 + + + + + + 1 + ba80fd98-91a1-4958-b6a7-a94e40e52bdb + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + Expression variable + 77025e93-0b26-4dd7-8be4-c8814bb2e6a6 + Variable x + x + true + cc5518e5-516d-4141-8b38-98f073570944 + 1 + + + + + + -1504 + 3852 + 12 + 24 + + + -1496.5 + 3864 + + + + + + + + Result of expression + aa725253-c7e7-4b92-9424-42c68d19b4af + Result + Result + false + 0 + + + + + + -1350 + 3852 + 40 + 24 + + + -1330 + 3864 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + f536a99e-4f75-46b1-b0b2-b81a093666de + 1 + d1830a08-3192-4430-826b-fd693ea8887e + Group + Expression + + + + + + + + + + e9eb1dcf-92f6-4d4d-84ae-96222d60f56b + Move + + + + + Translate (move) an object along a vector. + true + 9039c46a-4d49-43fe-b997-971fadfa7e24 + Move + Move + + + + + + -762 + 4025 + 148 + 44 + + + -690 + 4047 + + + + + + Base geometry + 6ff79811-28e2-4aa5-88ca-875488e7208f + Geometry + Geometry + true + cc8bfc97-9575-4a4d-aacd-792cdfb8f657 + 1 + + + + + + -760 + 4027 + 55 + 20 + + + -731 + 4037 + + + + + + + + Translation vector + 1e716761-127f-4ca2-a4bd-652fcb23a34a + Motion + Motion + false + 340d2888-bb2c-41be-9353-2c26a08229c1 + 1 + + + + + + -760 + 4047 + 55 + 20 + + + -731 + 4057 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0 + 0 + 10 + + + + + + + + + + + + Translated geometry + e65f25f8-7ce9-49e2-b891-360ba1bd46a3 + Geometry + Geometry + false + 0 + + + + + + -675 + 4027 + 59 + 20 + + + -645.5 + 4037 + + + + + + + + Transformation data + 39859683-7e19-458b-bbfa-a6e91d9cebd0 + Transform + Transform + false + 0 + + + + + + -675 + 4047 + 59 + 20 + + + -645.5 + 4057 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 9039c46a-4d49-43fe-b997-971fadfa7e24 + 1 + 0cfed893-e25c-4cbe-9598-a0a7ef805d9e + Group + Move + + + + + + + + + + e9eb1dcf-92f6-4d4d-84ae-96222d60f56b + Move + + + + + Translate (move) an object along a vector. + true + e0472aec-59fa-4f96-8e9a-d81fa63ebc09 + Move + Move + + + + + + -775 + 3827 + 148 + 44 + + + -703 + 3849 + + + + + + Base geometry + d5ef6684-9b9e-4a37-aebb-46eac11dc132 + Geometry + Geometry + true + 1765e40a-525f-403d-83e3-83128475f649 + 1 + + + + + + -773 + 3829 + 55 + 20 + + + -744 + 3839 + + + + + + + + Translation vector + 54bef507-464e-4b2c-9ce7-2a616e3fd850 + Motion + Motion + false + 70e93c63-fde8-4675-80ca-ac3303b1e258 + 1 + + + + + + -773 + 3849 + 55 + 20 + + + -744 + 3859 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0 + 0 + 10 + + + + + + + + + + + + Translated geometry + c27b78d3-7bbf-45c9-a903-8a3aafb09c90 + Geometry + Geometry + false + 0 + + + + + + -688 + 3829 + 59 + 20 + + + -658.5 + 3839 + + + + + + + + Transformation data + 52179f8d-cdd2-4037-8328-882ddc915f4f + Transform + Transform + false + 0 + + + + + + -688 + 3849 + 59 + 20 + + + -658.5 + 3859 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + e0472aec-59fa-4f96-8e9a-d81fa63ebc09 + 1 + 6f637874-9146-4675-b17a-d7f0d3d0eff8 + Group + Move + + + + + + + + + + d3d195ea-2d59-4ffa-90b1-8b7ff3369f69 + Unit Y + + + + + Unit vector parallel to the world {y} axis. + true + 8e7faeef-17ce-4420-a4e9-7b2b5fafd798 + Unit Y + Unit Y + + + + + + -1266 + 3945 + 150 + 28 + + + -1196 + 3959 + + + + + + Unit multiplication + 567f918a-c43f-49df-ab3a-05d9485f8b0d + -x + Factor + Factor + false + cc5518e5-516d-4141-8b38-98f073570944 + 1 + + + + + + -1264 + 3947 + 53 + 24 + + + -1228 + 3959 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + World {y} vector + 340d2888-bb2c-41be-9353-2c26a08229c1 + Unit vector + Unit vector + false + 0 + + + + + + -1181 + 3947 + 63 + 24 + + + -1149.5 + 3959 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 8e7faeef-17ce-4420-a4e9-7b2b5fafd798 + 1 + e2d9c617-c8c1-42e6-9abd-fb3d2d0e00f3 + Group + Unit Y + + + + + + + + + + d3d195ea-2d59-4ffa-90b1-8b7ff3369f69 + Unit Y + + + + + Unit vector parallel to the world {y} axis. + true + da421e47-5673-4e67-980a-3354b1e19944 + Unit Y + Unit Y + + + + + + -1272 + 4030 + 150 + 28 + + + -1202 + 4044 + + + + + + Unit multiplication + c0a02d25-5e37-4994-b065-7482ed05ef3a + -x + Factor + Factor + false + cc5518e5-516d-4141-8b38-98f073570944 + 1 + + + + + + -1270 + 4032 + 53 + 24 + + + -1234 + 4044 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + World {y} vector + 70e93c63-fde8-4675-80ca-ac3303b1e258 + Unit vector + Unit vector + false + 0 + + + + + + -1187 + 4032 + 63 + 24 + + + -1155.5 + 4044 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + da421e47-5673-4e67-980a-3354b1e19944 + 1 + 8a92c81f-1b98-41b5-ad55-581551db2805 + Group + Unit Y + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + 1 + d9ce5f82-f68e-4e21-b2e4-e024d1e454c3 + Curve + cuts0 + false + 36c24007-8938-4082-997e-62c537f8bb8b + 1 + + + + + + 250 + 3938 + 50 + 20 + + + 275.0616 + 3948.389 + + + + + + 1 + + + + + 4 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEBC0xgEHtt7QOj9O+RaXwfu2LcfXZzr+uICW67r+22hfELiuMyBibMyoAMLBwidBKVTHVjAdJEDyKcHgx1E/tczNcBUc2PoxwcA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrCDSGAQe23tA6Qy11teBO/btRxf/dmNxgS3X9f3pEP5+QuK4zIGJszKgAwsHCJ0EpVMdWMB0kQPIpw9djA/8r2dqgKnmxtCPDwAA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEBC0xgEHtt7QOj9XNcXF9hyXbdHF98h1/o6cMc+e1son5A4LnNg4qwM6MDCAUInQelUBxYwXeQA8imHVcvb//VMDTDV3Bj68QEA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrCDSGAQe23tAabmriwtsua7bo4tziLe+Dtyxzz4dwt9PSByXOTBxVgZ0YOEAoZOgdKoDC5gucgD5tMw33PB/PVMDTDU3hn58AAA= + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + d9ce5f82-f68e-4e21-b2e4-e024d1e454c3 + 1 + 51594ec5-517e-47c8-888b-0bf1ecaf1453 + Group + Curve + + + + + + + + + + d93100b6-d50b-40b2-831a-814659dc38e3 + Rectangle + + + + + Create a rectangle on a plane + true + 324b49b2-f8ad-4cef-9707-3dae93053d70 + Rectangle + Rectangle + + + + + + -1561 + 4303 + 131 + 84 + + + -1505 + 4345 + + + + + + Rectangle base plane + 93a2d370-24bc-4b0f-ab63-0cb615a59dff + Plane + Plane + false + 8cf7f728-b4b4-4830-9742-18f1195d2498 + 1 + + + + + + -1559 + 4305 + 39 + 20 + + + -1538 + 4315 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + + + + + + + + + + + + Dimensions of rectangle in plane X direction. + 01c60b04-f14d-4800-82a3-2920e1fde158 + X Size + X Size + false + cbf031c2-81a1-42cf-9865-39fe239a937b + 1 + + + + + + -1559 + 4325 + 39 + 20 + + + -1538 + 4335 + + + + + + 1 + + + + + 1 + {0} + + + + + + -1 + 1 + + + + + + + + + + + + Dimensions of rectangle in plane Y direction. + 1e2998a3-dd12-4713-ba85-1ece6ebbac7c + Y Size + Y Size + false + f9a3e19f-c51e-4220-98ef-92d4ef86b491 + 1 + + + + + + -1559 + 4345 + 39 + 20 + + + -1538 + 4355 + + + + + + 1 + + + + + 1 + {0} + + + + + + -2 + 2 + + + + + + + + + + + + Rectangle corner fillet radius + 9f90f869-0884-4ee7-ab65-14087514131d + Radius + Radius + false + 0 + + + + + + -1559 + 4365 + 39 + 20 + + + -1538 + 4375 + + + + + + 1 + + + + + 1 + {0} + + + + + 0 + + + + + + + + + + + Rectangle + ed45233c-f611-4640-b327-35297d894088 + Rectangle + Rectangle + false + 0 + + + + + + -1490 + 4305 + 58 + 40 + + + -1461 + 4325 + + + + + + + + Length of rectangle curve + 8774f820-fa3b-4742-b9d6-e533bf75e86b + Length + Length + false + 0 + + + + + + -1490 + 4345 + 58 + 40 + + + -1461 + 4365 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 324b49b2-f8ad-4cef-9707-3dae93053d70 + 1 + 7281040d-2da5-48fd-8c5b-6e16e682f5ab + Group + Rectangle + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + d60ac4a2-a3d5-4535-9199-feb514659eaf + 1 + c6e9c58e-eeee-4afe-8865-39d48b6fd16a + Group + XZ Plane + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 03c2cd78-fb1d-4536-9583-fcca2d85048d + Number Slider + Number Slider + false + 0 + + + + + + -2147 + 4499 + 203 + 20 + + + -2146.352 + 4499.228 + + + + + + 3 + 1 + 1 + 1 + 0 + 0 + 1 + + + + + + + + + d1a28e95-cf96-4936-bf34-8bf142d731bf + Construct Domain + + + + + Create a numeric domain from two numeric extremes. + true + 9e7af448-1c0d-4c1f-b3f5-c97110f36bb1 + Construct Domain + Construct Domain + + + + + + -1807 + 4322 + 168 + 44 + + + -1704 + 4344 + + + + + + Start value of numeric domain + d29d7bc5-8607-450b-b2c9-3010d391c031 + -0.5*x + Domain start + Domain start + false + 03c2cd78-fb1d-4536-9583-fcca2d85048d + 1 + + + + + + -1805 + 4324 + 86 + 20 + + + -1752.5 + 4334 + + + + + + 1 + + + + + 1 + {0} + + + + + 0 + + + + + + + + + + + End value of numeric domain + 73eef2aa-bd6f-4cc6-aa78-891a3f47b89d + 0.5*x + Domain end + Domain end + false + 03c2cd78-fb1d-4536-9583-fcca2d85048d + 1 + + + + + + -1805 + 4344 + 86 + 20 + + + -1752.5 + 4354 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + Numeric domain between {A} and {B} + cbf031c2-81a1-42cf-9865-39fe239a937b + Domain + Domain + false + 0 + + + + + + -1689 + 4324 + 48 + 40 + + + -1665 + 4344 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 9e7af448-1c0d-4c1f-b3f5-c97110f36bb1 + 1 + 8ddd8a4f-48f0-4eb0-93ad-8197ccd98613 + Group + Construct Domain + + + + + + + + + + d1a28e95-cf96-4936-bf34-8bf142d731bf + Construct Domain + + + + + Create a numeric domain from two numeric extremes. + true + 0f383452-0c8a-43d9-89af-4cc68537670f + Construct Domain + Construct Domain + + + + + + -1789 + 4376 + 168 + 44 + + + -1686 + 4398 + + + + + + Start value of numeric domain + 86ff9055-ea32-489e-99e7-914803ec2992 + -(0.5/5)*x + Domain start + Domain start + false + 03c2cd78-fb1d-4536-9583-fcca2d85048d + 1 + + + + + + -1787 + 4378 + 86 + 20 + + + -1734.5 + 4388 + + + + + + 1 + + + + + 1 + {0} + + + + + 0 + + + + + + + + + + + End value of numeric domain + 1eae8fc2-629a-47c5-929d-6b77b24e7541 + (0.5/5)*x + Domain end + Domain end + false + 03c2cd78-fb1d-4536-9583-fcca2d85048d + 1 + + + + + + -1787 + 4398 + 86 + 20 + + + -1734.5 + 4408 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + Numeric domain between {A} and {B} + f9a3e19f-c51e-4220-98ef-92d4ef86b491 + Domain + Domain + false + 0 + + + + + + -1671 + 4378 + 48 + 40 + + + -1647 + 4398 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 0f383452-0c8a-43d9-89af-4cc68537670f + 1 + 0739d57c-61d4-4527-9062-3aec6d262708 + Group + Construct Domain + + + + + + + + + + e9eb1dcf-92f6-4d4d-84ae-96222d60f56b + Move + + + + + Translate (move) an object along a vector. + 3af13a83-201f-4e2b-8936-f178eb282f6b + Move + Move + + + + + + -899 + 4403 + 148 + 44 + + + -827 + 4425 + + + + + + Base geometry + 7a640ae3-b2b8-464d-b1ea-293a21f91494 + Geometry + Geometry + true + ed45233c-f611-4640-b327-35297d894088 + 1 + + + + + + -897 + 4405 + 55 + 20 + + + -868 + 4415 + + + + + + + + Translation vector + 30a1b1f4-ed73-4fe6-a7f7-d5b6e367845f + Motion + Motion + false + 3563a693-c74b-409c-878a-854ebd3870e8 + 1 + + + + + + -897 + 4425 + 55 + 20 + + + -868 + 4435 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0 + 0 + 10 + + + + + + + + + + + + Translated geometry + 3f7fc9d3-06e7-4a42-a087-45e3c8b419b5 + Geometry + Geometry + false + 0 + + + + + + -812 + 4405 + 59 + 20 + + + -782.5 + 4415 + + + + + + + + Transformation data + e586556b-6edd-493e-9538-02c70bcfab03 + Transform + Transform + false + 0 + + + + + + -812 + 4425 + 59 + 20 + + + -782.5 + 4435 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 3af13a83-201f-4e2b-8936-f178eb282f6b + 1 + 063725b6-e971-4264-b09c-1037e03814f1 + Group + Move + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + bf8047cf-1db2-4ea1-98f3-511733bed8fe + 1 + 8b8778ea-495e-4013-9110-c7c0d0705734 + Group + Unit Z + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + ac06c5c5-275b-4a01-824e-d5ee71795c19 + 1 + 96d8428f-da8a-43d4-9b66-c7ff276e898a + Group + Expression + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 462b7233-e41f-4ad6-980a-ff47a7272f79 + 1 + 748cbca6-8a14-4b43-a5d3-402a1acf5951 + Group + Move + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + ee22f024-13ee-4b96-9e85-a61631e01e04 + 1 + c8d45b46-732b-4358-8e5f-723e508b2286 + Group + Unit Y + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 05f409a1-6db3-4f59-81d3-5233e7583084 + 1 + ab6e1b6b-c722-43e5-914a-b1575b45c1fa + Group + Move + + + + + + + + + + 3cadddef-1e2b-4c09-9390-0e8f78f7609f + Merge + + + + + Merge a bunch of data streams + true + c439458b-ec0b-4a70-8148-881dd07ae24a + Merge + Merge + + + + + + -303 + 4297 + 95 + 144 + + + -265 + 4369 + + + + + + 7 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + 2 + Data stream 1 + 54eb18a0-8f7c-4051-b36c-8a9883e0b0fb + false + Data 1 + D1 + true + fd7d6d04-8a37-4927-9a4b-bc53d969e60a + 1 + + + + + + -301 + 4299 + 21 + 20 + + + -289 + 4309 + + + + + + + + 2 + Data stream 2 + 3902916b-b14d-4098-b5a1-1acfeaa6a22c + false + Data 2 + D2 + true + 87bfc6c1-bc48-4867-97e8-35802982622f + 1 + + + + + + -301 + 4319 + 21 + 20 + + + -289 + 4329 + + + + + + + + 2 + Data stream 3 + 49d0ee73-51cb-405d-9b61-5d483b6d56c3 + false + Data 3 + D3 + true + 34366c17-2ba8-4d55-9bd4-2ec924f092ae + 1 + + + + + + -301 + 4339 + 21 + 20 + + + -289 + 4349 + + + + + + + + 2 + Data stream 4 + 5edb4b9f-d679-4919-b5a9-dc6705b55511 + false + Data 4 + D4 + true + 14a40acd-936c-41da-971e-4d961957fd9d + 1 + + + + + + -301 + 4359 + 21 + 20 + + + -289 + 4369 + + + + + + + + 2 + Data stream 5 + 17b95d25-fdb0-485c-a878-b1206713f1f7 + false + Data 5 + D5 + true + 2feb33fe-3e7c-423a-84db-62591d62e9b1 + 1 + + + + + + -301 + 4379 + 21 + 20 + + + -289 + 4389 + + + + + + + + 2 + Data stream 6 + 0f9e8a04-9f83-40ed-a7e2-9a3b49f21651 + false + Data 6 + D6 + true + 7a4e313c-5b50-4072-8742-ee68c01af589 + 1 + + + + + + -301 + 4399 + 21 + 20 + + + -289 + 4409 + + + + + + + + 2 + Data stream 7 + 5d2125fe-0307-425f-9397-9b6d8ec7a0d7 + false + Data 7 + D7 + true + 0 + + + + + + -301 + 4419 + 21 + 20 + + + -289 + 4429 + + + + + + + + 2 + Result of merge + 2a0e183f-81f7-4338-9726-4986d9671581 + Result + Result + false + 0 + + + + + + -250 + 4299 + 40 + 140 + + + -230 + 4369 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + c439458b-ec0b-4a70-8148-881dd07ae24a + 1 + 0b66e11b-294f-474b-8a27-ad588a8d90a0 + Group + Merge + + + + + + + + + + 9103c240-a6a9-4223-9b42-dbd19bf38e2b + Unit Z + + + + + Unit vector parallel to the world {z} axis. + true + 737748b2-7b5b-4e4a-81bd-089f54c0c6bf + Unit Z + Unit Z + + + + + + -1379 + 4470 + 134 + 28 + + + -1325 + 4484 + + + + + + Unit multiplication + 5b80e524-5b8a-429d-b3a4-36fb5e95cc8d + Factor + Factor + false + 529fa141-a49b-49d1-ae19-2ad962369a5a + 1 + + + + + + -1377 + 4472 + 37 + 24 + + + -1357 + 4484 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + World {z} vector + c2f42a2b-2ea1-4795-a20b-61ab36922605 + Unit vector + Unit vector + false + 0 + + + + + + -1310 + 4472 + 63 + 24 + + + -1278.5 + 4484 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 737748b2-7b5b-4e4a-81bd-089f54c0c6bf + 1 + beb5d6a4-a1f2-44a2-a8ed-5c1233b7e8ec + Group + Unit Z + + + + + + + + + + 9df5e896-552d-4c8c-b9ca-4fc147ffa022 + Expression + + + + + Evaluate an expression + -(0.5/5)*4 * x + true + 86b44b77-4cc7-432a-aac4-8931ccf51317 + Expression + Expression + + + + + + -1607 + 4494 + 198 + 28 + + + -1522 + 4508 + + + + + + 1 + ba80fd98-91a1-4958-b6a7-a94e40e52bdb + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + Expression variable + f5c2195e-7331-4362-913b-473e66a39fa8 + Variable x + x + true + 03c2cd78-fb1d-4536-9583-fcca2d85048d + 1 + + + + + + -1605 + 4496 + 12 + 24 + + + -1597.5 + 4508 + + + + + + + + Result of expression + 529fa141-a49b-49d1-ae19-2ad962369a5a + Result + Result + false + 0 + + + + + + -1451 + 4496 + 40 + 24 + + + -1431 + 4508 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 86b44b77-4cc7-432a-aac4-8931ccf51317 + 1 + bc4d8eec-e2b7-49e4-af34-3bb5d0426514 + Group + Expression + + + + + + + + + + e9eb1dcf-92f6-4d4d-84ae-96222d60f56b + Move + + + + + Translate (move) an object along a vector. + fceacebd-c886-4e00-b7d0-ff02b7f7f22f + Move + Move + + + + + + -901 + 4284 + 148 + 44 + + + -829 + 4306 + + + + + + Base geometry + e60db6ab-86d8-40cf-8f60-8646a47505fc + Geometry + Geometry + true + 3f7fc9d3-06e7-4a42-a087-45e3c8b419b5 + 1 + + + + + + -899 + 4286 + 55 + 20 + + + -870 + 4296 + + + + + + + + Translation vector + 5f91c39d-3439-4ca2-9918-6ee95aca2288 + Motion + Motion + false + c2f42a2b-2ea1-4795-a20b-61ab36922605 + 1 + + + + + + -899 + 4306 + 55 + 20 + + + -870 + 4316 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0 + 0 + 10 + + + + + + + + + + + + Translated geometry + 8407fa58-dcd0-4b4f-83a3-4a623477bbc4 + Geometry + Geometry + false + 0 + + + + + + -814 + 4286 + 59 + 20 + + + -784.5 + 4296 + + + + + + + + Transformation data + f1400eda-5162-4d36-8eec-e3c41a6fb096 + Transform + Transform + false + 0 + + + + + + -814 + 4306 + 59 + 20 + + + -784.5 + 4316 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + fceacebd-c886-4e00-b7d0-ff02b7f7f22f + 1 + 90487bdb-5172-4a56-b1b8-f1146dfbdcdd + Group + Move + + + + + + + + + + e9eb1dcf-92f6-4d4d-84ae-96222d60f56b + Move + + + + + Translate (move) an object along a vector. + 07ddd9e7-b1a7-49db-8dc0-09fa476d6da9 + Move + Move + + + + + + -656 + 4335 + 164 + 44 + + + -568 + 4357 + + + + + + Base geometry + 63c0fc5b-ed49-4ce1-83f3-b033748b1ca0 + Geometry + Geometry + true + 3f7fc9d3-06e7-4a42-a087-45e3c8b419b5 + 1 + + + + + + -654 + 4337 + 71 + 20 + + + -609 + 4347 + + + + + + + + Translation vector + 34a0c3df-0220-4401-8c61-ac08cdae0254 + -x + Motion + Motion + false + 489a7b14-fd35-4253-988f-df2b11e6d65e + 1 + + + + + + -654 + 4357 + 71 + 20 + + + -609 + 4367 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0 + 0 + 10 + + + + + + + + + + + + Translated geometry + 34366c17-2ba8-4d55-9bd4-2ec924f092ae + Geometry + Geometry + false + 0 + + + + + + -553 + 4337 + 59 + 20 + + + -523.5 + 4347 + + + + + + + + Transformation data + efec096a-11f7-49ea-b636-e1d8c2622199 + Transform + Transform + false + 0 + + + + + + -553 + 4357 + 59 + 20 + + + -523.5 + 4367 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 07ddd9e7-b1a7-49db-8dc0-09fa476d6da9 + 1 + 6e8cee15-0a3a-461c-a907-bebac3db015f + Group + Move + + + + + + + + + + d3d195ea-2d59-4ffa-90b1-8b7ff3369f69 + Unit Y + + + + + Unit vector parallel to the world {y} axis. + true + 6f806034-593d-440e-9193-1776705dc379 + Unit Y + Unit Y + + + + + + -1382 + 4636 + 150 + 28 + + + -1312 + 4650 + + + + + + Unit multiplication + f57d12c6-60c2-4fc7-9b6a-52df358cf8ee + -x + Factor + Factor + false + 03c2cd78-fb1d-4536-9583-fcca2d85048d + 1 + + + + + + -1380 + 4638 + 53 + 24 + + + -1344 + 4650 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + World {y} vector + 3e535f8a-97bf-4d34-905e-b07126762031 + Unit vector + Unit vector + false + 0 + + + + + + -1297 + 4638 + 63 + 24 + + + -1265.5 + 4650 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 6f806034-593d-440e-9193-1776705dc379 + 1 + b2677e73-2871-4f7d-bd5a-90f762b8435d + Group + Unit Y + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 0a12ccab-8c8f-4a67-a197-ec2d1d06ed62 + 1 + 386de025-3bd9-4f04-b1a0-1c9628904ccc + Group + Unit Y + + + + + + + + + + d5967b9f-e8ee-436b-a8ad-29fdcecf32d5 + Curve + + + + + Contains a collection of generic curves + 1 + b6e1a597-3d47-4830-8279-8d4ff4a74b5d + Curve + cuts1 + false + 2a0e183f-81f7-4338-9726-4986d9671581 + 1 + + + + + + 255 + 3998 + 50 + 20 + + + 280.4375 + 4008.609 + + + + + + 1 + + + + + 4 + {0} + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEBC0xgEHtt7QOj9O+RaXwfu2LcfXZzr+uICW67r+22hfELiuMyBibMyoAMLBwidBKVTHVjAdJEDyKcHgx1E/tczNcBUc2PoxwcA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrCDSGAQe23tA6Qy11teBO/btRxf/dmNxgS3X9f3pEP5+QuK4zIGJszKgAwsHCJ0EpVMdWMB0kQPIpw9djA/8r2dqgKnmxtCPDwAA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrEBC0xgEHtt7QOj9XNcXF9hyXbdHF98h1/o6cMc+e1son5A4LnNg4qwM6MDCAUInQelUBxYwXeQA8imHVcvb//VMDTDV3Bj68QEA + + 00000000-0000-0000-0000-000000000000 + + + + + -1 + + Y2BkYGD4DwQgGgR4mIBEeFBGZl6+c35ubn6ejkJYalFxZn6erbmesZmekbGxiZmeoZmxqaGOgnNpTklpUaptXmppSVFijo5CQGlSTmayd2plSH52ap6tqamRkYVhqqV5srmpqamxASvIFhmw4Xruqfm5qSVFlXoB+TmVOZl5qc6lRWWpLEAF7GUQC7kSi5IzMstSjVNyOfMLUvPySouSillSEksSQYo4ODiYQG4VUGdgMALS+zn5eTiZgQx+EPEViJl+1TMxvIT66/d/JgYRKPvZlet+7i8vC+5/yiDQzKj0wW/O7tt/gPIbofICrCDSGAQe23tAabmriwtsua7bo4tziLe+Dtyxzz4dwt9PSByXOTBxVgZ0YOEAoZOgdKoDC5gucgD5tMw33PB/PVMDTDU3hn58AAA= + + 00000000-0000-0000-0000-000000000000 + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + b6e1a597-3d47-4830-8279-8d4ff4a74b5d + 1 + e50a0c35-5a81-4216-9bac-9cf204bd79b8 + Group + Curve + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 31a6ff12-25bc-4ef3-a316-5192605b83f0 + 1 + dd0da246-5e2a-4f8e-a214-f290b40a902e + Group + XZ Plane + + + + + + + + + + 8cc3a196-f6a0-49ea-9ed9-0cb343a3ae64 + XZ Plane + + + + + World XZ plane. + true + bbe03915-7202-4c91-ae7d-6e4678797fd8 + XZ Plane + XZ Plane + + + + + + -1930 + 4118 + 107 + 28 + + + -1876 + 4132 + + + + + + Origin of plane + bc47219b-c899-4e07-bc36-16e2c0eaded1 + Origin + Origin + false + 0 + + + + + + -1928 + 4120 + 37 + 24 + + + -1908 + 4132 + + + + + + 1 + + + + + 1 + {0} + + + + + + + 0 + 0 + 0 + + + + + + + + + + + + World XZ plane + c8171d24-8de1-4658-acc9-2031c47786c7 + Plane + Plane + false + 0 + + + + + + -1861 + 4120 + 36 + 24 + + + -1843 + 4132 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + bbe03915-7202-4c91-ae7d-6e4678797fd8 + 1 + 00326e70-9d8c-4d9c-b742-352200f3f0ef + Group + XZ Plane + + + + + + + + + + b7798b74-037e-4f0c-8ac7-dc1043d093e0 + Rotate + + + + + Rotate an object in a plane. + true + e8a270ba-8c3f-478e-bde8-7cf0af5194c2 + Rotate + Rotate + + + + + + -1722 + 4120 + 148 + 64 + + + -1650 + 4152 + + + + + + Base geometry + 8d0f8016-60d2-4a77-9f2c-6469cc7ea862 + Geometry + Geometry + true + c8171d24-8de1-4658-acc9-2031c47786c7 + 1 + + + + + + -1720 + 4122 + 55 + 20 + + + -1691 + 4132 + + + + + + + + Rotation angle in radians + d900a82f-4c60-4e09-952f-0ac7cb9ad548 + Angle + Angle + false + 48a12a29-582d-4ded-b076-a181ff985636 + 1 + false + + + + + + -1720 + 4142 + 55 + 20 + + + -1691 + 4152 + + + + + + 1 + + + + + 1 + {0} + + + + + 1.5707963267948966 + + + + + + + + + + + Rotation plane + cac934d7-757e-434a-ac49-79a3ee164efb + Plane + Plane + false + 0 + + + + + + -1720 + 4162 + 55 + 20 + + + -1691 + 4172 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + + + + + + + + + + + + Rotated geometry + 8cf7f728-b4b4-4830-9742-18f1195d2498 + Geometry + Geometry + false + 0 + + + + + + -1635 + 4122 + 59 + 30 + + + -1605.5 + 4137 + + + + + + + + Transformation data + 35f29bf9-e356-4499-a09e-8c9af7a90f36 + Transform + Transform + false + 0 + + + + + + -1635 + 4152 + 59 + 30 + + + -1605.5 + 4167 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + e8a270ba-8c3f-478e-bde8-7cf0af5194c2 + 1 + e19159e8-ce0a-479c-9c56-61c6dff3a659 + Group + Rotate + + + + + + + + + + a4cd2751-414d-42ec-8916-476ebf62d7fe + Radians + + + + + Convert an angle specified in degrees to radians + c9d69a05-520a-4f7b-a279-95ee688a1878 + Radians + Radians + + + + + + -1919 + 4159 + 129 + 28 + + + -1855 + 4173 + + + + + + Angle in degrees + 03e2bd26-2163-492a-b834-b8d5e5148cc3 + Degrees + Degrees + false + 0e2c411c-ea45-446c-b604-8c1cfbaba6d2 + 1 + + + + + + -1917 + 4161 + 47 + 24 + + + -1892 + 4173 + + + + + + + + Angle in radians + 48a12a29-582d-4ded-b076-a181ff985636 + Radians + Radians + false + 0 + + + + + + -1840 + 4161 + 48 + 24 + + + -1816 + 4173 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + c9d69a05-520a-4f7b-a279-95ee688a1878 + 1 + 19c0c4b3-f9e6-46ac-960b-fbab34d04ac9 + Group + Radians + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + 0e2c411c-ea45-446c-b604-8c1cfbaba6d2 + Number Slider + Number Slider + false + 0 + + + + + + -2138 + 4163 + 203 + 20 + + + -2137.746 + 4163.997 + + + + + + 3 + 1 + 1 + 100 + 0 + 0 + 90 + + + + + + + + + 79f9fbb3-8f1d-4d9a-88a9-f7961b1012cd + Unit X + + + + + Unit vector parallel to the world {x} axis. + f06bd034-20f4-46be-b571-994edc00a885 + Unit X + Unit X + + + + + + -1580 + 4418 + 150 + 28 + + + -1510 + 4432 + + + + + + Unit multiplication + d825c661-4a22-48ea-9db0-781939fe87dc + 0.5*x + Factor + Factor + false + 03c2cd78-fb1d-4536-9583-fcca2d85048d + 1 + + + + + + -1578 + 4420 + 53 + 24 + + + -1542 + 4432 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + World {x} vector + 3563a693-c74b-409c-878a-854ebd3870e8 + Unit vector + Unit vector + false + 0 + + + + + + -1495 + 4420 + 63 + 24 + + + -1463.5 + 4432 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + f06bd034-20f4-46be-b571-994edc00a885 + 1 + d2b1c7e3-383e-4191-bb99-6b4f7eb30bbf + Group + Unit X + + + + + + + + + + 9103c240-a6a9-4223-9b42-dbd19bf38e2b + Unit Z + + + + + Unit vector parallel to the world {z} axis. + true + ce28cb09-2cc3-4c21-8f94-e0ee00445323 + Unit Z + Unit Z + + + + + + -1372 + 4556 + 134 + 28 + + + -1318 + 4570 + + + + + + Unit multiplication + 5d4687d1-8974-437d-9e9c-9e39a54aa875 + Factor + Factor + false + c7e5da34-c7a6-4ab5-b6a4-1e1fdbb40499 + 1 + + + + + + -1370 + 4558 + 37 + 24 + + + -1350 + 4570 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + World {z} vector + f62c9014-f85f-4c61-9682-da87e9c1516c + Unit vector + Unit vector + false + 0 + + + + + + -1303 + 4558 + 63 + 24 + + + -1271.5 + 4570 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + ce28cb09-2cc3-4c21-8f94-e0ee00445323 + 1 + ba942379-b22a-423c-b02f-61ce22fe5458 + Group + Unit Z + + + + + + + + + + 9df5e896-552d-4c8c-b9ca-4fc147ffa022 + Expression + + + + + Evaluate an expression + (0.5/5)*4 * x + true + 1eb187f7-16ea-44a5-b464-a3cbac840a75 + Expression + Expression + + + + + + -1596 + 4580 + 190 + 28 + + + -1515 + 4594 + + + + + + 1 + ba80fd98-91a1-4958-b6a7-a94e40e52bdb + 1 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + Expression variable + 8a90a76d-2016-4041-9c2e-b98104a6b19d + Variable x + x + true + 03c2cd78-fb1d-4536-9583-fcca2d85048d + 1 + + + + + + -1594 + 4582 + 12 + 24 + + + -1586.5 + 4594 + + + + + + + + Result of expression + c7e5da34-c7a6-4ab5-b6a4-1e1fdbb40499 + Result + Result + false + 0 + + + + + + -1448 + 4582 + 40 + 24 + + + -1428 + 4594 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 1eb187f7-16ea-44a5-b464-a3cbac840a75 + 1 + 93668dbf-7787-47b7-9363-df92f5ac48e2 + Group + Expression + + + + + + + + + + e9eb1dcf-92f6-4d4d-84ae-96222d60f56b + Move + + + + + Translate (move) an object along a vector. + 83284873-1afe-4702-9ee7-8f28e45d466e + Move + Move + + + + + + -866 + 4573 + 148 + 44 + + + -794 + 4595 + + + + + + Base geometry + 137b2cde-03ab-44a8-8943-bf4194cc0112 + Geometry + Geometry + true + 3f7fc9d3-06e7-4a42-a087-45e3c8b419b5 + 1 + + + + + + -864 + 4575 + 55 + 20 + + + -835 + 4585 + + + + + + + + Translation vector + b16e2e66-7da2-458e-851b-fa17d3435793 + Motion + Motion + false + f62c9014-f85f-4c61-9682-da87e9c1516c + 1 + + + + + + -864 + 4595 + 55 + 20 + + + -835 + 4605 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0 + 0 + 10 + + + + + + + + + + + + Translated geometry + a8e23884-4a47-4b3f-b2f2-ab2f919747b7 + Geometry + Geometry + false + 0 + + + + + + -779 + 4575 + 59 + 20 + + + -749.5 + 4585 + + + + + + + + Transformation data + 2c7daf24-095a-4ac0-900b-fc2f8bf74a5f + Transform + Transform + false + 0 + + + + + + -779 + 4595 + 59 + 20 + + + -749.5 + 4605 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 83284873-1afe-4702-9ee7-8f28e45d466e + 1 + 9b959f46-e489-42c7-a041-2806d26ad972 + Group + Move + + + + + + + + + + 79f9fbb3-8f1d-4d9a-88a9-f7961b1012cd + Unit X + + + + + Unit vector parallel to the world {x} axis. + 028fc7a8-eb8c-4273-b682-f119b2571d07 + Unit X + Unit X + + + + + + -1140 + 4446 + 134 + 28 + + + -1086 + 4460 + + + + + + Unit multiplication + ac770772-0632-424d-9784-9038e9af34bc + Factor + Factor + false + 03c2cd78-fb1d-4536-9583-fcca2d85048d + 1 + + + + + + -1138 + 4448 + 37 + 24 + + + -1118 + 4460 + + + + + + 1 + + + + + 1 + {0} + + + + + 1 + + + + + + + + + + + World {x} vector + 489a7b14-fd35-4253-988f-df2b11e6d65e + Unit vector + Unit vector + false + 0 + + + + + + -1071 + 4448 + 63 + 24 + + + -1039.5 + 4460 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 028fc7a8-eb8c-4273-b682-f119b2571d07 + 1 + 8d8466c7-8fc4-4a31-825c-2189723f55eb + Group + Unit X + + + + + + + + + + e9eb1dcf-92f6-4d4d-84ae-96222d60f56b + Move + + + + + Translate (move) an object along a vector. + f8c762fc-24a1-42f6-ab7f-f82ccfe8e604 + Move + Move + + + + + + -656 + 4186 + 164 + 44 + + + -568 + 4208 + + + + + + Base geometry + 7f7cf7ee-be5d-45f4-b229-11dd4e65b6a7 + Geometry + Geometry + true + 8407fa58-dcd0-4b4f-83a3-4a623477bbc4 + 1 + + + + + + -654 + 4188 + 71 + 20 + + + -609 + 4198 + + + + + + + + Translation vector + db6b5950-46d2-432f-969d-d2d64027427e + -x + Motion + Motion + false + 489a7b14-fd35-4253-988f-df2b11e6d65e + 1 + + + + + + -654 + 4208 + 71 + 20 + + + -609 + 4218 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0 + 0 + 10 + + + + + + + + + + + + Translated geometry + fd7d6d04-8a37-4927-9a4b-bc53d969e60a + Geometry + Geometry + false + 0 + + + + + + -553 + 4188 + 59 + 20 + + + -523.5 + 4198 + + + + + + + + Transformation data + bacdaf20-e519-4893-b08e-8ebb35c0e2d2 + Transform + Transform + false + 0 + + + + + + -553 + 4208 + 59 + 20 + + + -523.5 + 4218 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + f8c762fc-24a1-42f6-ab7f-f82ccfe8e604 + 1 + 17939ab9-0856-4dcf-af37-ca2d330ad485 + Group + Move + + + + + + + + + + e9eb1dcf-92f6-4d4d-84ae-96222d60f56b + Move + + + + + Translate (move) an object along a vector. + a84ccadb-8112-436f-8031-1788aaf829d0 + Move + Move + + + + + + -664 + 4519 + 164 + 44 + + + -576 + 4541 + + + + + + Base geometry + 34cccc0c-23a9-4bd1-8c8c-1bdcdaa27605 + Geometry + Geometry + true + a8e23884-4a47-4b3f-b2f2-ab2f919747b7 + 1 + + + + + + -662 + 4521 + 71 + 20 + + + -617 + 4531 + + + + + + + + Translation vector + 8de64df6-e4fa-497b-bb9b-5ad08b0d592f + -x + Motion + Motion + false + 489a7b14-fd35-4253-988f-df2b11e6d65e + 1 + + + + + + -662 + 4541 + 71 + 20 + + + -617 + 4551 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0 + 0 + 10 + + + + + + + + + + + + Translated geometry + 2feb33fe-3e7c-423a-84db-62591d62e9b1 + Geometry + Geometry + false + 0 + + + + + + -561 + 4521 + 59 + 20 + + + -531.5 + 4531 + + + + + + + + Transformation data + c2d665ab-f8c8-4b9c-9ce5-1026d0e8ea3f + Transform + Transform + false + 0 + + + + + + -561 + 4541 + 59 + 20 + + + -531.5 + 4551 + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + a84ccadb-8112-436f-8031-1788aaf829d0 + 1 + 6e2f2a42-07a2-4387-9011-bac91a1d9d00 + Group + Move + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + b2708ab7-f97f-40c5-8820-729bc84cdb14 + 1 + 9e9fa963-8425-45fb-bbce-aed55390fdbd + Group + GhPython Script + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + GhPython Script + + + + + import Rhino.Geometry as rg + + + + +#x[0]+= rg.Vector3d(0, 0, -distance) +x[1]+= rg.Vector3d(0, 0, -distance) +x[2]+= rg.Vector3d(0, 0, distance) +#x[3]+= rg.Vector3d(0, 0, distance) +#x[4]+= rg.Vector3d(0, 0, -distance) + +pol = rg.Curve.CreateInterpolatedCurve(x,1) + GhPython provides a Python script component + + 5770 + 650 + + + 1110 + 1094 + + true + false + false + da672692-abe3-4879-bcbf-b43707524f3c + false + true + GhPython Script + GhPython Script + + + + + + -1025 + 3707 + 107 + 44 + + + -961 + 3729 + + + + + + 2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 3ede854e-c753-40eb-84cb-b48008f14fd4 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + true + Script variable Python + e3f9a575-8c6f-4274-9388-006ad103bb91 + x + x + true + 0 + true + 0f9de771-342d-466f-b58c-4f909bf8db8e + 1 + 66fa617b-e3e8-4480-9f1e-2c0688c1d21b + + + + + + -1023 + 3709 + 47 + 20 + + + -998 + 3719 + + + + + + + + true + Script input distance. + 03124435-d8ff-475b-a920-233b205ba954 + y + distance + true + 0 + true + b6309daa-8f09-4537-b139-ddfbfa165fd3 + 1 + 87f87f55-5b71-41f4-8aea-21d494016f81 + + + + + + -1023 + 3729 + 47 + 20 + + + -998 + 3739 + + + + + + + + The execution information, as output and error streams + c66c0f33-aa8e-41f0-8450-26bd2e7461fa + out + out + false + 0 + + + + + + -946 + 3709 + 26 + 20 + + + -933 + 3719 + + + + + + + + Script output pol. + 7d0154e8-cdab-49aa-a45f-b462a8fe421b + a + pol + false + 0 + + + + + + -946 + 3729 + 26 + 20 + + + -933 + 3739 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + da672692-abe3-4879-bcbf-b43707524f3c + 1 + 5e4aec5e-2257-4c0a-b859-fa2496effbed + Group + GhPython Script + + + + + + + + + + 57da07bd-ecab-415d-9d86-af36d7073abc + Number Slider + + + + + Numeric slider for single values + b6309daa-8f09-4537-b139-ddfbfa165fd3 + Number Slider + Number Slider + false + 0 + + + + + + -2475 + 4326 + 203 + 20 + + + -2474.373 + 4326.693 + + true + + + + + 2 + 1 + 0 + 0.1 + 0 + 0 + 0.05 + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + GhPython Script + + + + + import Rhino.Geometry as rg + +x[2]+= rg.Vector3d(0, 0, -distance) +x[3]+= rg.Vector3d(0, 0, -distance) +#x[0]+= rg.Vector3d(0, 0, -distance) +#x[4]+= rg.Vector3d(0, 0, -distance) +pol = rg.Curve.CreateInterpolatedCurve(x,1) + GhPython provides a Python script component + + 5895 + 1297 + + + 1110 + 1094 + + true + false + false + 7f44ef36-dfc8-46db-b062-e683465772a7 + false + true + GhPython Script + GhPython Script + + + + + + -603 + 4258 + 107 + 44 + + + -539 + 4280 + + + + + + 2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 3ede854e-c753-40eb-84cb-b48008f14fd4 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + true + Script variable Python + d8886879-adac-46ad-a6d0-390b6dbccd97 + x + x + true + 0 + true + 8407fa58-dcd0-4b4f-83a3-4a623477bbc4 + 1 + 66fa617b-e3e8-4480-9f1e-2c0688c1d21b + + + + + + -601 + 4260 + 47 + 20 + + + -576 + 4270 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0.5 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + + -0.5 + 0.5 + -0.1 + 0.1 + + Grasshopper.Kernel.Types.GH_Rectangle + + + + + + + + + + + true + Script input distance. + 2d19df12-89dd-4e20-b65a-cc11350c48bb + distance + distance + true + 0 + true + b6309daa-8f09-4537-b139-ddfbfa165fd3 + 1 + 87f87f55-5b71-41f4-8aea-21d494016f81 + + + + + + -601 + 4280 + 47 + 20 + + + -576 + 4290 + + + + + + + + The execution information, as output and error streams + c57a4b62-95b9-4524-9007-45cd8510015c + out + out + false + 0 + + + + + + -524 + 4260 + 26 + 20 + + + -511 + 4270 + + + + + + + + Script output pol. + 87bfc6c1-bc48-4867-97e8-35802982622f + pol + pol + false + 0 + + + + + + -524 + 4280 + 26 + 20 + + + -511 + 4290 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 7f44ef36-dfc8-46db-b062-e683465772a7 + 1 + 87394e78-c580-4323-b42f-fd84d95ad3c5 + Group + GhPython Script + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + e74dd63d-35cc-49e5-9a49-eefdfbf48cf6 + 1 + 73c21f42-8c8f-4e4c-8920-714c8cfc0872 + Group + GhPython Script + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + bf7f37b1-2ecd-41b8-98eb-421d8a77ddb0 + 1 + d24029ed-dbd9-4cdc-9e91-a5e656ddbfc1 + Group + GhPython Script + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 3 + + 150;255;135;135 + + A group of Grasshopper objects + 9403902a-3bce-46d9-a526-15ba43e8c1ee + 1 + cbf57a75-fbe3-41e5-8c9e-d0422e375bba + Group + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + b67fa9c0-2b2f-449d-9cf6-56642e8e16f6 + 1 + fc01748e-3b98-45e6-b3bd-17ddc2c93a20 + Group + GhPython Script + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 06308406-09ca-415f-9027-e755c348ac8a + 1 + e99dd127-9bce-4002-b2d9-f4bdd50fa3ef + Group + Explode + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + GhPython Script + + + + + import Rhino.Geometry as rg + +x[2]+= rg.Vector3d(0, 0, -distance) +x[3]+= rg.Vector3d(0, 0, -distance) +x[1]+= rg.Vector3d(0, 0, distance) +x[0]+= rg.Vector3d(0, 0, distance) +x[4]+= rg.Vector3d(0, 0, distance) +pol = rg.Curve.CreateInterpolatedCurve(x,1) + GhPython provides a Python script component + + 5895 + 1297 + + + 1110 + 1094 + + true + false + false + 91089f2b-63c4-4139-a2e4-322644210208 + false + true + GhPython Script + GhPython Script + + + + + + -610 + 4422 + 107 + 44 + + + -546 + 4444 + + + + + + 2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 3ede854e-c753-40eb-84cb-b48008f14fd4 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + true + Script variable Python + 0ea79a3d-c1b6-46c3-993c-ecb4aa060ff5 + x + x + true + 0 + true + 3f7fc9d3-06e7-4a42-a087-45e3c8b419b5 + 1 + 66fa617b-e3e8-4480-9f1e-2c0688c1d21b + + + + + + -608 + 4424 + 47 + 20 + + + -583 + 4434 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0.5 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + + -0.5 + 0.5 + -0.1 + 0.1 + + Grasshopper.Kernel.Types.GH_Rectangle + + + + + + + + + + + true + Script input distance. + 9a237844-6f58-470f-81ef-12fb58f7295a + distance + distance + true + 0 + true + b6309daa-8f09-4537-b139-ddfbfa165fd3 + 1 + 87f87f55-5b71-41f4-8aea-21d494016f81 + + + + + + -608 + 4444 + 47 + 20 + + + -583 + 4454 + + + + + + + + The execution information, as output and error streams + 8d2cbcdf-2d90-424a-bff8-747e99e1d7c0 + out + out + false + 0 + + + + + + -531 + 4424 + 26 + 20 + + + -518 + 4434 + + + + + + + + Script output pol. + 14a40acd-936c-41da-971e-4d961957fd9d + pol + pol + false + 0 + + + + + + -531 + 4444 + 26 + 20 + + + -518 + 4454 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 91089f2b-63c4-4139-a2e4-322644210208 + 1 + 8acc69f3-f6be-463a-9063-71466cd7bb9e + Group + GhPython Script + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 5aadf3f4-2711-40ec-ac5d-b69e78c024a2 + 1 + 1fb85779-7cf3-481d-a650-9e3e2e0e7f89 + Group + GhPython Script + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 974b7410-0314-49a8-b6a4-264f3b2910d9 + 1 + 4d4f70ef-36df-4ba3-ae2e-c6640c94eb2c + Group + GhPython Script + + + + + + + + + + 410755b1-224a-4c1e-a407-bf32fb45ea7e + 00000000-0000-0000-0000-000000000000 + GhPython Script + + + + + import Rhino.Geometry as rg + +#x[2]+= rg.Vector3d(0, 0, -distance) +#x[3]+= rg.Vector3d(0, 0, -distance) +x[1]+= rg.Vector3d(0, 0, distance) +x[0]+= rg.Vector3d(0, 0, distance) +x[4]+= rg.Vector3d(0, 0, distance) +pol = rg.Curve.CreateInterpolatedCurve(x,1) + GhPython provides a Python script component + + 5895 + 1297 + + + 1110 + 1094 + + true + false + false + 2bcc4248-774c-4c6e-a959-c5ff1e4b3d1f + false + true + GhPython Script + GhPython Script + + + + + + -656 + 4606 + 107 + 44 + + + -592 + 4628 + + + + + + 2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 84fa917c-1ed8-4db3-8be1-7bdc4a6495a2 + 2 + 3ede854e-c753-40eb-84cb-b48008f14fd4 + 8ec86459-bf01-4409-baee-174d0d2b13d0 + + + + + true + Script variable Python + e787a85e-f464-4657-bedf-d5e2063f13c5 + x + x + true + 0 + true + a8e23884-4a47-4b3f-b2f2-ab2f919747b7 + 1 + 66fa617b-e3e8-4480-9f1e-2c0688c1d21b + + + + + + -654 + 4608 + 47 + 20 + + + -629 + 4618 + + + + + + 1 + + + + + 1 + {0} + + + + + + 0.5 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + + -0.5 + 0.5 + -0.1 + 0.1 + + Grasshopper.Kernel.Types.GH_Rectangle + + + + + + + + + + + true + Script input distance. + d9a50e3a-d953-478b-b7d5-9e2fe0123d5e + distance + distance + true + 0 + true + b6309daa-8f09-4537-b139-ddfbfa165fd3 + 1 + 87f87f55-5b71-41f4-8aea-21d494016f81 + + + + + + -654 + 4628 + 47 + 20 + + + -629 + 4638 + + + + + + + + The execution information, as output and error streams + 9e97e4e4-4dba-4955-8846-fe6598e07111 + out + out + false + 0 + + + + + + -577 + 4608 + 26 + 20 + + + -564 + 4618 + + + + + + + + Script output pol. + 7a4e313c-5b50-4072-8742-ee68c01af589 + pol + pol + false + 0 + + + + + + -577 + 4628 + 26 + 20 + + + -564 + 4638 + + + + + + + + + + + + + + c552a431-af5b-46a9-a8a4-0fcbc27ef596 + Group + + + + + 1 + + 0;100;150;75 + + A group of Grasshopper objects + 2bcc4248-774c-4c6e-a959-c5ff1e4b3d1f + 1 + 7f9df636-d43d-4a14-82ac-7d3f21307a57 + Group + GhPython Script + + + + + + + @@ -13828,7 +40858,7 @@ class MyComponent(component): - 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