Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Node Output passing null #15049

Open
NonicaTeam opened this issue Mar 23, 2024 · 2 comments
Open

Node Output passing null #15049

NonicaTeam opened this issue Mar 23, 2024 · 2 comments

Comments

@NonicaTeam
Copy link

Dynamo Version

3.0.3

Host

Revit

Operating System

Windows 10

What did you do?

Use a python node run with IronPython 3 engine that output a list from a Windows Form Window.

``

What did you expect to see?

When running in IronPython 2 in previous version the node behaves normal, but with IronPython3 the output shown underneath the node initially show list and when I click to pin the values it shows null. However, the nodes that follow up after this one seems to get the values from the assumed list even though the final output value shown is null.

What did you see instead?

Null value in the ouput of the node

What packages or external references (if any) were used?

Attach the full code:
`
import sys
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

import os.path

clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *

clr.AddReference("RevitAPIUI")
import Autodesk 
from Autodesk.Revit.UI import *

clr.AddReference('System.Drawing')
clr.AddReference('System.Windows.Forms')
import System.Drawing
import System.Windows.Forms

from System.Drawing import *
from System.Reflection import Assembly
from System.Windows.Forms import *

clr.AddReference('System.Data')
from System.Data import *

clr.AddReference("System.Core")
import System.Linq
clr.ImportExtensions(System.Linq)

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager

class Form24(Form):
	def __init__(self, lstSchedule, lstValue, _doc, RVTver):
		self.Font = Font(self.Font.FontFamily, 16, FontStyle.Regular, GraphicsUnit.Pixel)
		roomList = FilteredElementCollector(_doc).OfCategory(BuiltInCategory.OST_Rooms).ToList()
		list_par = []
		list_values = []
		self.width_par = 1
		if len(roomList) > 0:
			sampleRoom = roomList[0]
			if RVTver > 2021:
				for par in sampleRoom.Parameters:
					if par.Definition.GetDataType() == SpecTypeId.Length:
						list_par.Add(par.Definition.Name)
						list_values.Add(par.Definition)
			else:
				for par in sampleRoom.Parameters:
					if par.Definition.ParameterType == ParameterType.Length:
						list_par.Add(par.Definition.Name)
						list_values.Add(par.Definition)
			zipeo = zip(list_par, list_values)
			zipeo = sorted(zipeo, key = lambda x: x[0])
			list_par = [x for x,y in zipeo]
			list_values = [y for x,y in zipeo]
			for txt in list_par:
				potential_wd_par = TextRenderer.MeasureText(txt, self.Font).Width
				if self.width_par < potential_wd_par:
					self.width_par = potential_wd_par
		self._tableData_units = DataTable("Data")
		self._tableData_units.Columns.Add("Key", System.String)
		self._tableData_units.Columns.Add("Value", System.Object)
		list_units = ["in MM","in M","in FT", "in INCH"]
		self._tableData = DataTable("Data")
		self._tableData.Columns.Add("Key", System.String)
		self._tableData.Columns.Add("Value", System.Object)
		self._tableDataPar = DataTable("Data")
		self._tableDataPar.Columns.Add("Key", System.String)
		self._tableDataPar.Columns.Add("Value", System.Object)
		self.width = 0
		for txt in lstSchedule:
			potential_wd = TextRenderer.MeasureText(txt, self.Font).Width
			if self.width < potential_wd:
				self.width = potential_wd
		# populate dataTable
		[self._tableData.Rows.Add(key_, value_ ) for key_, value_ in zip(lstSchedule, lstValue)]
		[self._tableDataPar.Rows.Add(key_, value_ ) for key_, value_ in zip(list_par, list_values)]
		[self._tableData_units.Rows.Add(key_, value_ ) for key_, value_ in zip(list_units, list_units)]
		self.out = []
		self.InitializeComponent()
	
	def InitializeComponent(self):
		self._wall_types = System.Windows.Forms.ComboBox()
		self._units_value = System.Windows.Forms.ComboBox()
		self._drp_parameter = System.Windows.Forms.ComboBox()
		self._radioBtn = System.Windows.Forms.RadioButton()
		self._radioBtn2 = System.Windows.Forms.RadioButton()
		self._button1 = System.Windows.Forms.Button()
		self._txtBox = System.Windows.Forms.NumericUpDown()
		self._txtBlock2 = System.Windows.Forms.Label()
		self._txtBlock3 = System.Windows.Forms.Label()
		self._radioBtn3 = System.Windows.Forms.RadioButton()
		self._radioBtn4 = System.Windows.Forms.RadioButton()
		self._panel = System.Windows.Forms.Panel();
		self.SuspendLayout()
		# 
		# comboBox1
		# 
		self._wall_types.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right
		self._wall_types.Location = System.Drawing.Point(100, 30)
		self._wall_types.Name = "dropDown"
		self._wall_types.DataSource = self._tableData 
		self._wall_types.DisplayMember = "Key"
		self._wall_types.Size = System.Drawing.Size(287, 244)
		self._wall_types.TabIndex = 0
		self._wall_types.DropDownWidth = self.width + 20
		self._wall_types.DropDownStyle = ComboBoxStyle.DropDownList
		# 
		# radiobutton1
		# 
		self._radioBtn.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right
		self._radioBtn.Location = System.Drawing.Point(12, 7)
		self._radioBtn.Name = "radiobutton1"
		self._radioBtn.Size = System.Drawing.Size(230, 20)
		self._radioBtn.Text = "All Rooms in Current View"
		self._radioBtn.Checked = CheckState.Checked
		# 
		# radiobutton2
		# 
		self._radioBtn2.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right
		self._radioBtn2.Location = System.Drawing.Point(242, 7)
		self._radioBtn2.Name = "radiobutton2"
		self._radioBtn2.Size = System.Drawing.Size(155, 20)
		self._radioBtn2.Text = "Selected Rooms"
		# 
		# TextBlock2
		# 
		self._txtBlock2.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left
		self._txtBlock2.Location = System.Drawing.Point(12, 32)
		self._txtBlock2.Name = "txtBlock2"
		self._txtBlock2.Size = System.Drawing.Size(120, 20)
		self._txtBlock2.TabIndex = 1
		self._txtBlock2.Text = "Floor Type:"
		# 
		# TextBlock3
		# 
		self._txtBlock3.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left
		self._txtBlock3.Location = System.Drawing.Point(12, 60)
		self._txtBlock3.Name = "txtBlock3"
		self._txtBlock3.Size = System.Drawing.Size(75, 70)
		self._txtBlock3.TabIndex = 1
		self._txtBlock3.Text = "Height Offset:\n(Level)"
		# 
		# groupBox
		#
		self._panel.Name = "panel_radBtn"
		self._panel.Size = System.Drawing.Size(500, 500)
		# 
		# radiobutton3
		# 
		self._radioBtn3.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right
		self._radioBtn3.Location = System.Drawing.Point(100, 65)
		self._radioBtn3.Name = "value_radiobutton"
		self._radioBtn3.Size = System.Drawing.Size(100, 20)
		self._radioBtn3.Text = "Value"
		self._radioBtn3.Checked = CheckState.Checked
		self._radioBtn3.CheckedChanged += self.radioButton_CheckedChanged
		self._panel.Controls.Add(self._radioBtn3)
		# 
		# _txtBox1
		# 		
		self._txtBox.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right
		self._txtBox.Location = System.Drawing.Point(250, 63)
		self._txtBox.Name = "txtBox"
		self._txtBox.Size = System.Drawing.Size(60, 244)
		self._txtBox.DecimalPlaces = 0
		self._txtBox.TabIndex = 0
		self._txtBox.Value = 0
		self._txtBox.Increment = 1
		self._txtBox.Maximum = 999999999
		self._txtBox.Minimum = -999999999
		# 
		# dropdown units value
		# 
		self._units_value.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right
		self._units_value.Location = System.Drawing.Point(317, 62)
		self._units_value.Name = "units_value_drpdw"
		self._units_value.DataSource = self._tableData_units 
		self._units_value.DisplayMember = "Key"
		self._units_value.Size = System.Drawing.Size(70, 244)
		self._units_value.TabIndex = 0
		self._units_value.DropDownStyle = ComboBoxStyle.DropDownList
		# 
		# radiobutton4
		# 
		self._radioBtn4.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right
		self._radioBtn4.Location = System.Drawing.Point(100, 98)
		self._radioBtn4.Name = "param_radiobutton"
		self._radioBtn4.Size = System.Drawing.Size(160, 20)
		self._radioBtn4.Text = "From Room Par."
		self._radioBtn4.CheckedChanged += self.radioButton_CheckedChanged
		self._panel.Controls.Add(self._radioBtn4)
		# 
		# dropdown parameters
		# 
		self._drp_parameter.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right
		self._drp_parameter.Location = System.Drawing.Point(250, 96)
		self._drp_parameter.Name = "dropDownPar"
		self._drp_parameter.DataSource = self._tableDataPar 
		self._drp_parameter.DisplayMember = "Key"
		self._drp_parameter.Size = System.Drawing.Size(137, 254)
		self._drp_parameter.TabIndex = 0
		self._drp_parameter.DropDownWidth = self.width_par+20
		self._drp_parameter.DropDownStyle = ComboBoxStyle.DropDownList
		self._drp_parameter.Enabled = False
		# 
		# button1
		# 
		self._button1.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right
		self._button1.Location = System.Drawing.Point(12, 127)
		self._button1.Name = "button1"
		self._button1.Size = System.Drawing.Size(376, 27)
		self._button1.TabIndex = 2
		self._button1.Text = "Create Floor/s"
		self._button1.UseVisualStyleBackColor = True
		self._button1.Click += self.Button1Click
		# 
		# Form24
		# 
		self.ClientSize = System.Drawing.Size(399, 168)
		self.MaximizeBox = 0
		self.MinimizeBox = 0
		self.CenterToScreen() 
		self.FormBorderStyle = FormBorderStyle.FixedSingle
		self.Controls.Add(self._button1)
		self.Controls.Add(self._radioBtn)
		self.Controls.Add(self._radioBtn2)
		self.Controls.Add(self._txtBox)
		self.Controls.Add(self._drp_parameter)
		self.Controls.Add(self._units_value)
		self.Controls.Add(self._wall_types)
		self.Controls.Add(self._txtBlock2)
		self.Controls.Add(self._txtBlock3)
		self.Controls.Add(self._panel)
		self.Name = "Create Floor Finish by Room/s"
		self.Text = "Create Floor Finish by Room/s"
		iconFilename = 'C:\\NONICAPRO\\OtherFiles\\System\\Nonicafavicon.ICO'
		if not os.path.exists(iconFilename):
			iconFilename = 'C:\\NONICA\\OtherFiles\\System\\Nonicafavicon.ICO'
		icon = Icon(iconFilename)
		self.Icon = icon
		self.ResumeLayout(False)
	def radioButton_CheckedChanged(self, sender, e):
		if sender.Name.startswith("value"):
			self._txtBox.Enabled = sender.Checked
			self._units_value.Enabled = sender.Checked
		elif sender.Name.startswith("param"):
			self._drp_parameter.Enabled = sender.Checked

	def Button1Click(self, sender, e):
		items = []
		if self._txtBox.Text == "":
			self._txtBox.Value=0
		items.Add(self._radioBtn.Checked)
		items.Add(self._wall_types.SelectedItem['Value'])
		if self._radioBtn3.Checked:
			items.Add(self._txtBox.Value)
			items.Add(self._units_value.SelectedItem['Value'])
			items.Add(None)
		elif self._radioBtn4.Checked:		
			items.Add(None)
			items.Add(None)
			items.Add(self._drp_parameter.SelectedItem['Value'])
		self.out = items
		self.DialogResult = DialogResult.Yes
		self.Close()
input = IN[0]	
doc = DocumentManager.Instance.CurrentDBDocument
uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
app = doc.Application
version = int(app.VersionNumber)
all_types = FilteredElementCollector(doc).OfClass(FloorType).WhereElementIsElementType()

types = []
types_Ids = []
types_Names = []
for type in all_types:
	if not type.IsFoundationSlab:
		types_Ids.append(type.Id)
		types_Names.append(Element.Name.GetValue(type))
zip_typ = zip(types_Names, types_Ids)
zip_typ = sorted(zip_typ, key = lambda x: x[0])

lstSchedules, ValueList = [],[]
if len(zip_typ) == 0:
	task2 = Autodesk.Revit.UI.TaskDialog("Create Floor Finish by Room/s")
	task2.MainInstruction = "No wall type was detected in the model."
	task2.Show()
	OUT=0
else:
	sel_View = doc.ActiveView
	if sel_View.ViewType == ViewType.ProjectBrowser or sel_View.ViewType == ViewType.SystemBrowser:
			sel_View = doc.GetElement(uidoc.GetOpenUIViews()[0].ViewId)
	if sel_View.ViewType == ViewType.FloorPlan or sel_View.ViewType == ViewType.CeilingPlan or sel_View.ViewType == ViewType.AreaPlan or sel_View.ViewType == ViewType.EngineeringPlan:
		all_rooms = [room for room in FilteredElementCollector(doc, sel_View.Id).OfClass(SpatialElement) if isinstance(room, Architecture.Room)]
		if len(all_rooms) !=0:
			for item in zip_typ:
			    lstSchedules.append(item[0])
			    ValueList.append(item[1])
			objForm = Form24(lstSchedules, ValueList, doc, version)
			result_win = objForm.ShowDialog()
			if result_win == DialogResult.Cancel:
				OUT=0
			else:
				Result_check = objForm.out
				OUT = Result_check
		else:
			task2 = Autodesk.Revit.UI.TaskDialog("Create Floor Finish by Room/s")
			task2.MainInstruction = "No rooms were detected in your current Revit view. Please, change your current view."
			task2.Show()
			OUT=0
	else:
		task2 = Autodesk.Revit.UI.TaskDialog("Create Floor Finish by Room/s")
		task2.MainInstruction = "Rooms are not available in Revit in " + str(sel_View.ViewType) + " views. Please, change your current view."
		task2.Show()
		OUT=0

"""
This script is based on Room Finishing by BIM42.
All original code is licensed under MIT License, however all modifications and improvements are licensed under a different license agreement included below:
################################
MIT License
Copyright (c) 2014 Simon Moreau
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
################################
License Agreement
For the use of this script
This License Agreement (this “Agreement” of this “License Agreement”) is made and effective as of the current date (the “Commencement Date”) by and between Estudio Alonso Candau SLP a company organized and existing in Spain with a registered address at Avd.Chafarinas 16 Puerto Rey Vera, Almeria (“Licensor”) and yourself (“Licensee”).
WHEREAS:

  1. Licensee wishes to obtain access and use this script (hereinafter, the “Asset”), and
  2. Licensor is willing to grant to the Licensee a non-exclusive, non-transferable License to use the Asset for the term and specific purpose set forth in this Agreement,
    NOW, THEREFORE, your access to and use of the Service is conditioned on your acceptance of and compliance with these Terms and Conditions. These Terms and Conditions apply to all visitors, users and others who access or use this script.
  3. Definitions
    1.1 “Agreement” means this License Agreement including the attached Schedule.
    1.2 “Confidential Information” means information that:
    a. is by its nature confidential;
    b. is designated in writing by Licensor as confidential;
    c. the Licensee knows or reasonably ought to know is confidential;
    d. Information comprised in or relating to any Intellectual Property Rights of Licensor.
    1.3 “Asset” means the Asset provided by Licensor as specified in Item 6 of the Schedule in the form as stated in Item 7 of the Schedule.
    1.4 “Intellectual Property Rights” means all rights in and to any copyright, trademark, trading name, design, patent, know how (trade secrets) and all other rights resulting from intellectual activity in the industrial, scientific, literary or artistic field and any application or right to apply for registration of any of these rights and any right to protect or enforce any of these rights, as further specified in clause 5.
    1.5 “Party” means a person or business entity who has executed this Agreement; details of the Parties are specified in Item 2 of the Schedule.
    1.6 “Term” means the term of this Agreement commencing on the Commencement Date as specified in Item 4 of the Schedule and expiring on the Expiry Date specified in Item 5 of the Schedule.
  4. License Grant
    2.1 Licensor grants to the Licensee a non-exclusive, non-transferable License for the Term to use the Asset for the specific purpose specified in this Agreement, subject to the terms and conditions set out in this Agreement.
  5. Charges
    3.1 In consideration of the Licensor providing the License under clause 2 of this License Agreement, the Licensee agrees to pay Licensor the amount of the License Charge as specified in Item 9 of the Schedule.
  6. Licensee’s Obligations
    4.1 The Licensee cannot use the Asset, for purposes other than as specified in this Agreement and in Item 8 of the Schedule.
    4.2 The Licensee may permit its employees to use the Asset for the purposes described in Item 8, provided that the Licensee takes all necessary steps and imposes the necessary conditions to ensure that all employees using the Asset do not commercialise or disclose the contents of it to any third person, or use it other than in accordance with the terms of this Agreement.
    4.3 The Licensee will not distribute, sell, License or sub-License, let, trade or expose for sale the Asset to a third party.
    4.4 No copies of the Asset are to be made other than as expressly approved by Licensor.
    4.5 No changes to the Asset or its content may be made by Licensee.
    4.6 The Licensee will provide technological and security measures to ensure that the Asset which the Licensee is responsible for is physically and electronically secure from unauthorised use or access.
    4.7 Licensee shall ensure that the Asset retains all Licensor copyright notices and other proprietary legends and all trademarks or service marks of Licensor.
  7. Intellectual Property Rights
    5.1 All Intellectual Property Rights over and in respect of the Asset are owned by Licensor. The Licensee does not acquire any rights of ownership in the Asset.
  8. Limitation of Liability
    6.1 The Licensee acknowledges and agrees that neither Licensor nor its board members, officers, employees or agents, will be liable for any loss or damage arising out of or resulting from Licensor’s provision of the Asset under this Agreement, or any use of the Asset by the Licensee or its employees; and Licensee hereby releases Licensor to the fullest extent from any such liability, loss, damage or claim.
  9. Confidentiality
    7.1 Neither Party may use, disclose or make available to any third party the other Party’s Confidential Information, unless such use or disclosure is done in accordance with the terms of this Agreement.
    7.2 Each Party must hold the other Party’s Confidential Information secure and in confidence, except to the extent that such Confidential Information:
    a. is required to be disclosed according to the requirements of any law, judicial or legislative body or government agency; or
    b. was approved for release in writing by the other Party, but only to the extent of and subject to such conditions as may be imposed in such written authorisation.
    7.3 This clause 7 will survive termination of this Agreement.
  10. Disclaimers & Release
    8.1 To the extent permitted by law, Licensor will in no way be liable to the Licensee or any third party for any loss or damage, however caused (including through negligence) which may be directly or indirectly suffered in connection with any use of the Asset.
    8.2 The Asset is provided by Licensor on an “as is” basis.
    8.3 Licensor will not be held liable by the Licensee in any way, for any loss, damage or injury suffered by the Licensee or by any other person related to any use of the Asset or any part thereof.
    8.4 Notwithstanding anything contained in this Agreement, in no event shall Licensor be liable for any claims, damages or loss which may arise from the modification, combination, operation or use of the Asset with Licensee computer programs.
    8.5 Licensor does not warrant that the Asset will function in any environment.
    8.6 The Licensee acknowledges that: a. The Asset has not been prepared to meet any specific requirements of any party, including any requirements of Licensee; and b. it is therefore the responsibility of the Licensee to ensure that the Asset meets its own individual requirements.
    8.7 To the extent permitted by law, no express or implied warranty, term, condition or undertaking is given or assumed by Licensor, including any implied warranty of merchantability or fitness for a particular purpose.
  11. Indemnification
    9.1 The Licensee must indemnify, defend and hold harmless Licensor, its board members, officers, employees and agents from and against any and all claims (including third party claims), demands, actions, suits, expenses (including attorney’s fees) and damages (including indirect or consequential loss) resulting in any way from:
    a. Licensee’s and Licensee’s employee’s use or reliance on the Asset,
    b. any breach of the terms of this License Agreement by the Licensee or any Licensee employee, and
    c. any other act of Licensee.
    9.2 This clause 9 will survive termination of this Agreement.
  12. Waiver
    10.1 Any failure or delay by either Party to exercise any right, power or privilege hereunder or to insist upon observance or performance by the other of the provisions of this License Agreement shall not operate or be construed as a waiver thereof.
  13. Governing Law
    11.1 This Agreement will be construed by and governed in accordance with the laws of Spain. The Parties submit to exclusive jurisdiction of the courts of Spain.
  14. Termination
    12.1 This Agreement and the License granted herein commences upon the Commencement Date and is granted for the Term, unless otherwise terminated by Licensor in the event of any of the following:
    a. if the Licensee is in breach of any term of this License Agreement and has not corrected such breach to Licensor’s reasonable satisfaction within 7 days of Licensor’s notice of the same;
    b. if the Licensee becomes insolvent, or institutes (or there is instituted against it) proceedings in bankruptcy, insolvency, reorganization or dissolution, or makes an assignment for the benefit of creditors; or
    c. the Licensee is in breach of clause 5 or 7 of this Agreement.
    12.2 Termination under this clause shall not affect any other rights or remedies Licensor may have.
  15. Assignment
    14.1 Licensee shall not assign any rights of this License Agreement, without the prior written consent of Licensor.
  16. Notices
    15.1 All notices required under this Agreement shall be in writing and shall be deemed given (i) when delivered personally; (ii) five (5) days after mailing, when sent certified mail, return receipt requested and postage prepaid; or (iii) one (1) business day after dispatch, when sent via a commercial overnight carrier, fees prepaid. All notices given by either Party must be sent to the address of the other as first written above (unless otherwise changed by written notice).
  17. Counterparts
    16.1 This Agreement may be executed in any number of counterparts, each of which shall be deemed to be an original and all of which taken together shall constitute one instrument.
  18. Severability
    17.1 The Parties recognize the uncertainty of the law with respect to certain provisions of this Agreement and expressly stipulate that this Agreement will be construed in a manner that renders its provisions valid and enforceable to the maximum extent possible under applicable law. To the extent that any provisions of this Agreement are determined by a court of competent jurisdiction to be invalid or unenforceable, such provisions will be deleted from this Agreement or modified so as to make them enforceable and the validity and enforceability of the remainder of such provisions and of this Agreement will be unaffected.
  19. Entire Agreement
    18.1 This Agreement contains the entire agreement between the Parties and supersedes any previous understanding, commitments or agreements, oral or written. Further, this Agreement may not be modified, changed, or otherwise altered in any respect except by a written agreement signed by both Parties.
    IN WITNESS WHEREOF, this Agreement, including the attached Schedule, was signed by the Parties under the hands of their duly authorized representatives and made effective as of the current date.
    Estudio Alonso Candau SLP,
    Signature
    02/05/2021
    Your signatureby using and accessing this script.
    Signed by accepting these terms.
    Current date.
    """
    `

Stack Trace

No response

Details

No response

Copy link

Thank you for submitting the issue to us. We are sorry to see you get stuck with your workflow. While waiting for our team member to respond, please feel free to browse our forum at https://forum.dynamobim.com/ for more Dynamo related information.

@NonicaTeam
Copy link
Author

A video that may help understand the behaviour:

2024-03-23.10-55-47.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Triage
Development

No branches or pull requests

1 participant