Got a minute? We appreciate your feedback:

Graphisoft Learn survey
GDL
About building parametric objects with GDL.

Swap A and B parameters

A_ Smith
Expert

Tbh I feel silly to ask such basic question, but I can't figure out how to swap values for A, B.

If additional parametes are created it's easy to change their values based on constant A, B. Though how to do it when with help of 2 parameters only? preferably main A, B.

 

https://drive.google.com/file/d/1TuKbeIqsUdWjve0QYYlYH62h2HNA5-T7/view?usp=drivesdk

AC 22, 24 | Win 10
1 ACCEPTED SOLUTION
13 REPLIES 13

DGSketcher
Legend

@A_ Smith You need to clarify a bit more about where you are changing the values e.g. param-o or in a GDL script? In gdl you will need to create swap values e.g. a1 & b1 if you don’t want to loose the originals. You could also do a similar thing with Find & Replace.

Apple iMac macOS Sonoma / AC27UKI (most recent builds)

GDL.

In parameter script I planned to swap A, B - at least for now (when "bSwap" is true), without saving original values. Kinda temp=A, A=B, B=temp

 

Originally I wanted to swap values each! time "bSwap" is changed... Just in order to find out why that doesn't work, decided to make it simpler.

AC 22, 24 | Win 10

Lingwisyer
Hero

I would:

 

IF GLOB_MODPAR_NAME = bSwap then
temp = A
A = B
B = temp
PARAMETERS A = A
PARAMETERS B = B
PARAMETERS bSwap = 0
endIF

 

 

Ling.

AC22-23 AUS 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win10 | R5 2600 | 16GB | GTX1660 

Right, but that doesn't work...

AC 22, 24 | Win 10

Try Ling's Parameter Script extract without the 'Parameters bSwap = 0' you will then know if the values are swapped.

Apple iMac macOS Sonoma / AC27UKI (most recent builds)

Well, I know it without deleting that row - it doesn't work as expected. I see that values don't change. Just to be sure, I removed it - all remais the same.

 

Unfortunatelly trying to help without actually checking it, doesn't do the job. Because, it's so simle lines of code (strange to say it though) that can't be wrong. Nevertheless they do not obey.

AC 22, 24 | Win 10

DGSketcher
Legend
One for Grand Master @Peter Baksa I think. There appears to be some value protections in place for A, B & ZZYZX which don't apply to other parameters. 
 
In the following, the values of A1 & B1 swap but the values of A, B & ZZYZX remain static...

 

!PARAMETER SCRIPT
!Create values for bSwap (boolean) and A1 & B1 (real) in the parameters 

	A1 = A
	B1 = B

	PARAMETERS A1 = A1, B1 = B1

	IF GLOB_MODPAR_NAME = "bSwap" THEN 
	
		IF bSwap = 1 THEN
			A = B1
			B = A1
			ZZYZX = A1
		ELSE
			A = A1
			B = B1
			ZZYZX = B1
		ENDIF
		
		PARAMETERS A = A, B = B, ZZYZX = ZZYZX
	
	ENDIF

 

Apple iMac macOS Sonoma / AC27UKI (most recent builds)

Lingwisyer
Hero

Odd... since I have replaced the A, B and ZZYZX values in objects before...

AC22-23 AUS 7000Help Those Help You - Add a Signature
Self-taught, bend it till it breaksCreating a Thread
Win10 | R5 2600 | 16GB | GTX1660 

Solution

If I change the script to following it works for me:

temp_A = A
temp_B = B

IF GLOB_MODPAR_NAME = "bSwap" then
	IF bswap = 1 THEN
		A = temp_B
		B = temp_A
		PARAMETERS A = A
		PARAMETERS B = B
		PARAMETERS bSwap = 0
	ENDIF
endIF
Joachim Suehlo . AC12-27 . MAC OSX 13.5 . WIN11
GDL object creation: b-prisma.de | the MVO driven zone stamp: flexi-zone-stamp

Didn't find the answer?

Check other topics in this Forum

Back to Forum

Read the latest accepted solutions!

Accepted Solutions

Start a new conversation!