코드 블럭(Code Block)을 사용해서 범위를 만드는 4가지 방법 (Range, Sequence)

2024년 10월 16일

1. Range 노드와 Sequence 노드

Range vs Sequence
이미지 1. Range vs Sequence ⓒ디지털디자인포럼

Range 노드

Range 노드는 시작 값(Start), 끝(End) 값, 그리고 분할 간격(Step)을 입력으로 받습니다. 그리고 시작 값에서 끝 값까지 일정한 간격으로 값들이 생성됩니다.

예를 들어 [이미지1]의 Range 노드를 보면 다음과 같은데요.

  • 시작 값: 0
  • 끝 값: 50
  • 간격: 5

이 경우 출력은 [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50]이 됩니다.

Sequence 노드

Sequence 노드는 시작 값(start)과 간격(step) 값을 입력받아 지정된 횟수(amount)만큼의 값을 생성합니다.

예를 들어 [이미지1]의 Sequence 노드를 보면 다음과 같은데요.

  • 시작 값: 0
  • 생성할 값의 개수: 10
  • 간격: 3

이 경우 출력은 시작값(0)에서부터 등 간격(3)으로 입력한 개수(10)만큼의 범위를 생성합니다.[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]이 됩니다. Range 노드와 다른 점은 값을 몇 개 생성할지 명확하게 지정할 수 있다는 것입니다.

2. 코드 블록을 사용하여 범위 생성하기

코드 블록(Code Block)은 Dynamo에서 매우 강력한 도구로, 간단한 범위를 쉽게 생성할 수 있습니다. 코드 블록을 사용하면 위에서 학습한 Range와 Sequence 두 가지 노드를 사용하지 않고도 조금 더 자유롭게 범위를 생성할 수 있습니다. 자세한 내용은 아래를 참고해 주세요.

다이나모, 코드블록으로 범위 만들기
이미지 2. 코드블록으로 범위 만들기 ⓒ디지털디자인포럼

방법 1: 0(시작값)부터 등간격 3으로 총 10개의 데이터 리스트 생성

이 방법에서는 0을 시작값으로 하고, 3씩 증가하는 값을 생성하여 총 10개의 데이터를 출력합니다. 중요한 점은 Index가 항상 0부터 시작하기 때문에, 값은 0부터 9까지의 10개 항목으로 구성됩니다.

코드 블록 구문 : 0(시작값)..#10(개수)..3(간격);

이 구문은 Sequence 노드에서 0부터 3의 간격으로 10개의 데이터를 생성하는 것과 동일한 출력을 반환합니다. 생성되는 리스트는 [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]입니다.

방법 2: 0(시작값)부터 50(마지막값)까지 등간격 5씩 증가하는 데이터 리스트 생성

이 방법에서는 0부터 50까지 값이 5씩 증가하는 데이터 리스트를 생성합니다.

코드 블록 구문 : 0(시작값)..50(마지막 값)..5(증가 하는 간격);

이 구문은 Range 노드에서 0부터 50까지 5씩 증가하는 리스트를 생성하는 것과 동일합니다. 생성되는 리스트는 [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50]입니다.
(만약 마지막 값이 52라면 동일한 [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50] 값을 반환하고 57이라면 [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55] 값을 반환)

방법 3: 0(A)부터 5(B)까지 10(N)등분하는 데이터 리스트 생성

이 방법은 0과 5 사이를 10등분하여 데이터를 생성하는 방법입니다. 값들이 균등하게 분포되도록 나누어 리스트를 출력합니다.

코드 블록 구문 : 0(시작값)..5(마지막 값)..#10(등분 할 개수);

이 구문을 사용하면 0부터 5까지의 범위를 10개의 값으로 나누어 생성할 수 있습니다. 생성되는 리스트는 [0, 0.55, 1.11, 1.66, 2.22, 2.77, 3.33, 3.88, 4.44, 5]입니다.

방법 4: 0(시작값)부터 5(마지막값)까지 1씩 증가하는 데이터 리스트 생성

이 방법에서는 0부터 5까지 1씩 증가하는 값을 생성합니다. Dynamo에서 정수 범위의 리스트를 생성하는 데 유용한 방법입니다.

코드 블록 구문 : 0(시작값)..5(마지막 값)

이 구문은 0부터 5까지 1씩 증가하는 리스트를 생성합니다. 생성되는 리스트는 [0, 1, 2, 3, 4, 5]입니다.

3. 다양한 방식으로 코드 블록에서 범위 생성하기

코드 블록에서는 위에서 언급한 방식 외에도 다양한 구문을 사용할 수 있습니다.

다이나모, 코드블록으로 범위 만들기
이미지 3. 코드블록으로 범위 만들기 ⓒ디지털디자인포럼

4.결론

Dynamo에서 Range 노드Sequence 노드는 범위를 생성하는 데 유용한 도구이지만, 코드 블록(Code Block)은 이보다 더 강력하고 유연한 옵션을 제공합니다. Range 노드는 시작 값, 끝 값, 그리고 간격을 통해 범위를 생성하고, Sequence 노드는 항목의 개수를 기반으로 리스트를 만듭니다. 그러나 코드 블록을 사용하면 간결한 구문을 통해 두 노드가 제공하는 기능을 보다 직관적으로 구현할 수 있습니다.

코드 블록을 사용하면 다양한 구문을 통해 특정 개수로 리스트를 나누거나 간격을 지정하는 등, 더 복잡한 데이터 리스트도 쉽게 생성할 수 있습니다. 이러한 유연성 덕분에 Dynamo 내에서 더욱 효율적인 모델링과 데이터 처리가 가능해집니다.

따라서, 코드 블록은 범위를 생성하고 관리하는 데 있어 더욱 강력한 도구가 되며, 이를 활용하면 더 빠르고 간결하게 작업을 진행할 수 있습니다. Dynamo에서 범위를 생성할 때 코드 블록을 적극적으로 활용해 보세요!


답글 남기기


관련 포스트

  • 다이나모에서 구성평면과 벡터 크기 및 방향 확인하는 방법

  • Curve 지오메트리 등분하기

  • 다이나모에서 데이터 타입(Data Type) 이해하기

  • 다이나모에서 리스트 분할하기: List.Chop 및 List.Slice 노드 사용법

  • 다이나모에서 특정 Index의 Item 추출 또는 특정 Item의 Index 추출하기

  • Dynamo에서 True값과 False값 구분하기: List.FilterByBoolMask 사용법

  • Dynamo에서 유형 파라미터 vs 인스턴스 파라미터: 차이점과 사용법

  • Dynamo에서 n번째 항까지의 총합 구하기: List.Scan 사용법