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

2024년 10월 17일

이번 포스팅에서는 간단한 예제를 통해 다이나모(Dynamo)에서 N번째 항까지의 총합을 구하는 방법을 소개하고자 합니다. 이를 통해 층고가 주어졌을 때, 각 층의 레벨을 계산하는 방법을 알아보겠습니다.

1. 층고를 이용한 각 층의 레벨 산정

아래는 층고가 주어졌을 때 각 층의 레벨을 산정하는 간단한 예시입니다.

다이나모 층고 예시
이미지 1. 층고 예시 ⓒ디지털디자인포럼
  • 1층 레벨: EL + 500
  • 1층 층고: EL +3,000
  • 2층 층고: EL +4,000
  • 3층 층고: EL +5,000
  • 4층 층고: EL +6,000

이 데이터를 기반으로 각 층의 레벨을 구할 수 있습니다.

각 층의 레벨 산정 방법:

  1. 1층 레벨: EL + 500 (500)
  2. 2층 레벨: EL + 3,500 (500 + 3,000)
  3. 3층 레벨: EL + 7,500 (500 + 3,000 + 4,000)
  4. 4층 레벨: EL + 12,500 (500 + 3,000 + 4,000 + 5,000)
  5. 지붕 레벨: EL + 18,500 (500 + 3,000 + 4,000 + 5,000 + 6,000)

이러한 방식으로 층별 레벨을 계속해서 더해가며 산정할 수 있습니다. 그렇다면 이 과정을 다이나모에서 어떻게 구현할 수 있을까요? 바로 List.Scan 노드를 사용하여 구현할 수 있습니다.

List.Scan을 이용한 총합 계산

List.Scan 노드는 리스트의 각 항목에 대해 누적 연산을 수행하여 n번째 항까지의 총합을 쉽게 구할 수 있습니다. 이 기능은 여러 층의 레벨처럼 누적된 값을 계산할 때 매우 유용합니다.

2. List.Scan 노드 설정

List.Scan 노드를 활용해 각 층의 레벨을 구하는 방법을 단계별로 설명하겠습니다:

List.Scan
이미지 2. List.Scan ⓒ디지털디자인포럼
  1. Reductor에 더하기 기능을 수행하기 위해 + 노드를 연결합니다.
  2. Seed에 첫 번째 항인 500을 입력합니다. (EL+500에서 첫 번째 층의 레벨 값)
  3. List1에 각 층의 층고 값을 차례로 입력합니다. 즉, [3000, 4000, 5000, 6000]을 리스트로 입력합니다.

이렇게 설정한 후 List.Scan 노드를 실행하면, 각 층의 누적 레벨을 순서대로 얻을 수 있습니다.

3. 다른 방법: List.Deconstruct 사용

또 다른 방식으로는 List.Deconstruct 노드를 활용하는 방법이 있습니다. 이 노드는 리스트를 첫 번째 항목과 나머지 항목들로 분리해줍니다. 이를 통해 첫 번째 항은 Seed에, 나머지 항들은 List1에 각각 연결하면 List.Scan 노드와 동일한 결과를 얻을 수 있습니다.

예시

List.Scan
이미지 3. List.Scan ⓒ디지털디자인포럼
  1. List.Deconstruct를 사용해 첫 번째 항과 나머지 항들을 분리합니다.
  2. 첫 번째 항인 500Seed로, 나머지 리스트인 [3000, 4000, 5000, 6000]List1에 연결합니다.
  3. + 노드를 통해 다시 List.Scan과 같은 방식으로 누적합을 계산할 수 있습니다.

4. 요약

  • List.Scan 노드는 리스트의 누적 합을 계산할 때 매우 유용합니다.
  • Seed 값은 첫 번째 항을 입력하고, 나머지 리스트를 List1에 연결하면 됩니다.
  • List.Deconstruct 노드를 사용해 첫 번째 항과 나머지 항을 분리할 수도 있습니다.

이처럼 다이나모에서는 기본 노드만으로도 쉽게 복잡한 누적 계산을 수행할 수 있습니다. 이 방식은 층고, 면적, 하중 등 다양한 누적 계산에 활용될 수 있습니다.


답글 남기기


관련 포스트

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

  • Curve 지오메트리 등분하기

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

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

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

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

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

  • 리스트에서 첫 번째 및 마지막 아이템 추출 방법과 제외한 나머지 리스트 얻기