Dynamo
Primer for v2.0
한국어
한국어
  • 정보
  • 소개
    • Dynamo의 정의 및 작동 방식
    • Primer 사용자 안내서, Dynamo Community 및 플랫폼
  • Dynamo 설정
  • 사용자 인터페이스
    • 작업공간
    • 라이브러리
  • 노드 및 와이어
  • 필수 노드 및 개념
    • 노드의 색인
    • 계산 방식 설계를 위한 형상
      • 형상 개요
      • 벡터, 평면 및 좌표계
      • 점
      • 곡선
      • 표면
      • 솔리드
      • 메쉬
    • 프로그램의 빌딩 블록
      • 데이터
      • 수학
      • 논리
      • 문자열
      • 색상
    • 리스트로 설계
      • 리스트란 무엇입니까?
      • 리스트 작업
      • 리스트의 리스트
      • n차원 리스트
    • Dynamo의 사전
      • 사전이란
      • 사전 노드
      • 코드 블록의 사전
      • Revit 사용 사례
  • 사용자 노드 및 패키지
    • 사용자 노드
      • 사용자 노드 소개
      • 사용자 노드 작성
      • 라이브러리에 게시
    • 패키지
      • 패키지 소개
      • 패키지 성공 사례 - Mesh Toolkit
      • 패키지 개발
      • 패키지 게시하기
      • Zero-Touch 가져오기
  • Revit용 Dynamo
    • Revit 연결
    • 선택
    • 편집
    • 작성
    • 사용자화
    • 문서화
  • Dynamo for Civil 3D
    • Civil 3D 연결
    • 시작하기
    • 노드 라이브러리
    • 샘플 워크플로우
      • 도로
        • 등주 배치
      • 토지
        • 서비스 배치
      • 유틸리티
        • 구조물 이름 바꾸기
      • 레일
        • 클리어런스 엔벨로프
      • 측량
        • 점 그룹 관리
    • 고급 항목
      • 객체 바인딩
      • Python 및 Civil 3D
    • Dynamo 플레이어
    • 유용한 패키지
    • 리소스
  • Forma 베타의 Dynamo
    • Forma에서 Dynamo Player 설정
    • Dynamo Player에서 그래프 추가 및 공유
    • Dynamo Player에서 그래프 실행
    • Dynamo 컴퓨팅 서비스와 Desktop Dynamo의 차이점
  • Dynamo의 코딩
    • 코드 블록과 DesignScript
      • Code Block이란
      • DesignScript 구문
      • 축약형
      • 함수
    • DesignScript를 사용한 형상
      • DesignScript 형상 기본 사항
      • 기하학적 원형
      • 벡터 수학
      • 곡선: 보간 및 제어점
      • 전환, 회전 및 기타 변환
      • 표면: 보간, 제어점, 로프트, 회전
      • 기하학적 매개변수화
      • 교차 및 자르기
      • 기하학적 부울
      • Python 점 생성기
    • Python
      • Python 노드
      • Python 및 Revit
      • 자체 Python 템플릿 설정
    • 언어 변경 사항
  • 모범 사례
    • 그래프 전략
    • 스크립팅 전략
    • 스크립팅 참조
    • 프로그램 관리
    • Dynamo에서 대규모 데이터 세트로 효율적으로 작업
  • 샘플 워크플로우
    • 시작하기 워크플로우
      • 파라메트릭 꽃병
      • 어트랙터 점
    • 개념 색인
  • 개발자 입문서
    • 소스에서 Dynamo 빌드하기
      • 소스에서 DynamoRevit 빌드하기
      • Dynamo의 종속성 관리 및 업데이트
    • Dynamo를 위한 개발
      • 시작하기
      • Zero-Touch 사례 연구 - 그리드 노드
      • Zero-Touch 노드에서 Python 스크립트 실행하기(C#)
      • Zero-Touch로 한 단계 더 나아가기
      • 고급 Dynamo 노드 사용자 정의
      • Dynamo 패키지에서 COM(interop) 유형 사용
      • NodeModel 사례 연구 - 사용자 지정 UI
      • Dynamo 2.x용 패키지 및 Dynamo 라이브러리 업데이트하기
      • Dynamo 3.x용 패키지 및 Dynamo 라이브러리 업데이트하기
      • 확장
      • Dynamo 2.0+에 대한 사용자 패키지 구성 정의
      • Dynamo 명령행 인터페이스
      • Dynamo 통합
      • Dynamo For Revit을 위한 개발
      • 패키지 게시하기
      • Visual Studio에서 패키지 빌드하기
      • 패키지로 제공되는 확장
    • 끌어오기 요청
    • 테스트 기대치
    • 예제
  • 부록
    • 질문과 대답(FAQ)
    • 시각적 프로그래밍 및 Dynamo
    • 리소스
    • 릴리즈 정보
    • 유용한 패키지
    • 예제 파일
    • 호스트 통합 맵
    • PDF 다운로드
    • Dynamo 키보드 바로 가기
Powered by GitBook
On this page
  • 리스트 작업
  • 조회
  • 작업
  • 연습
  • 리스트 작업
  • List.Count
  • List.GetItemAtIndex
  • List.Reverse
  • List.ShiftIndices
  • List.FilterByBooleanMask
Edit on GitHub
Export as PDF
  1. 필수 노드 및 개념
  2. 리스트로 설계

리스트 작업

Previous리스트란 무엇입니까?Next리스트의 리스트

Last updated 2 months ago

리스트 작업

지금까지 리스트가 무엇인지 확인했으므로 리스트에서 수행할 수 있는 작업에 대해 설명하겠습니다. 리스트가 하나의 게임 카드 세트라고 생각해 보십시오. 세트는 리스트이며, 각 카드는 하나의 항목을 나타냅니다.

조회

리스트에서는 어떤 조회를 만들 수 있을까요? 이러한 조회에서는 기존 특성을 확인합니다.

  • 한 세트에 들어 있는 카드의 수는? 52.

  • 짝을 이루는 패의 수는? 4.

  • 재료? 종이.

  • 길이는? 3.5" 또는 89mm.

  • 폭은? 2.5" 또는 64mm.

작업

리스트에서 수행할 수 있는 작업은 무엇일까요? 작업을 수행하면 해당 작업을 기준으로 리스트가 변경됩니다.

  • 세트를 섞을 수 있습니다.

  • 값별로 세트를 정렬할 수 있습니다.

  • 짝을 이루는 패별로 세트를 정렬할 수 있습니다.

  • 세트를 나눌 수 있습니다.

  • 각 사람에게 카드를 나눠주기 위해 세트를 나눌 수 있습니다.

  • 세트에서 특정 카드를 선택할 수 있습니다.

위에 나열된 모든 작업에는 일반 데이터 리스트로 작업할 수 있도록 비슷한 Dynamo 노드가 있습니다. 아래 단원에는 리스트에서 수행할 수 있는 기본적인 작업 중 일부가 나와 있습니다.

연습

리스트 작업

아래 링크를 클릭하여 예제 파일을 다운로드하십시오.

전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.

아래 이미지는 두 원 사이에 선을 그려 기본 리스트 작업을 표현하는 기준 그래프입니다. 리스트 내에서 데이터를 관리하는 방법을 살펴보고 아래의 리스트 작업을 통해 시각적 결과를 표시해 보겠습니다.

  1. 값이 500;인 Code Block으로 시작합니다.

  2. Point.ByCoordinates 노드의 x 입력에 연결합니다.

  3. 이전 단계의 노드를 Plane.ByOriginNormal 노드의 원점 입력에 연결합니다.

  4. Circle.ByPlaneRadius 노드를 사용하여 이전 단계의 노드를 평면 입력에 연결합니다.

  5. Code Block을 사용하여 radius에 대해 값 50;을 지정합니다. 다음은 작성할 첫 번째 원입니다.

  6. Geometry.Translate 노드를 사용하여 Z 방향으로 최대 100개 단위만큼 원을 이동합니다.

  7. Code Block 노드에서 코드 줄 0..1..#10;을 사용하여 0과 1 사이의 10개 숫자 범위를 정의합니다.

  8. 이전 단계의 code block을 두 Curve.PointAtParameter 노드의 param 입력에 연결합니다. Circle.ByPlaneRadius를 최상위 노드의 곡선 입력에 연결하고 Geometry.Translate를 그 아래 노드의 곡선 입력에 연결합니다.

  9. Line.ByStartPointEndPoint를 사용하여 두 Curve.PointAtParameter 노드를 연결합니다.

List.Count

아래 링크를 클릭하여 예제 파일을 다운로드하십시오.

전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.

List.Count 노드는 간단합니다. 리스트의 값 개수를 계산하고 해당 수를 반환합니다. 이 노드는 리스트의 리스트로 작업할 경우 미묘한 차이가 있으며, 이 내용은 다음 섹션에서 살펴보겠습니다.

  1. **List.Count ****** 노드에서는 Line.ByStartPointEndPoint 노드의 줄 수를 반환합니다. 이 경우 해당 값은 원래 Code Block 노드에서 작성된 점 수와 일치하는 10입니다.

List.GetItemAtIndex

아래 링크를 클릭하여 예제 파일을 다운로드하십시오.

전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.

List.GetItemAtIndex는 기본적으로 리스트의 항목을 조회하는 기본적인 방법입니다.

  1. 먼저 Line.ByStartPointEndPoint 노드를 마우스 오른쪽 버튼으로 클릭하여 해당 미리보기를 끕니다.

  2. List.GetItemAtIndex 노드를 사용하여 색인 "0" 또는 줄 리스트의 첫 번째 항목을 선택합니다.

슬라이더 값을 0에서 9 사이로 변경하여 List.GetItemAtIndex를 통해 다른 항목을 선택합니다.

List.Reverse

아래 링크를 클릭하여 예제 파일을 다운로드하십시오.

전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.

List.Reverse 는 리스트의 모든 항목 순서를 반대로 합니다.

  1. 반전된 줄 리스트를 올바르게 시각화하려면 Code Block을 0..1..#50;으로 변경하여 더 많은 줄을 작성합니다.

  2. Line.ByStartPointEndPoint 노드를 복제하고 Curve.PointAtParameter 및 두 번째 Line.ByStartPointEndPoint 사이에 List.Reverse 노드를 삽입합니다.

  3. Watch3D 노드를 사용하여 두 가지 다른 결과를 미리 봅니다. 첫 번째 항목에서는 반전된 리스트가 없는 결과를 보여 줍니다. 줄은 인접한 점에 수직으로 연결됩니다. 그러나 반전된 리스트에서는 모든 점을 다른 리스트에 반대 순서로 연결합니다.

List.ShiftIndices

아래 링크를 클릭하여 예제 파일을 다운로드하십시오.

전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.

List.ShiftIndices는 틀기 또는 나선형 패턴이나 기타 유사한 데이터 조작을 작성하는 데 유용한 도구입니다. 이 노드에서는 리스트의 항목을 지정된 색인만큼 이동합니다.

  1. 반전 리스트와 동일한 프로세스에서 Curve.PointAtParameter 및 Line.ByStartPointEndPoint에 List.ShiftIndices를 삽입합니다.

  2. Code Block을 사용하여 리스트를 1개 색인만큼 이동하기 위해 값 "1"을 지정했습니다.

  3. 변경된 정도는 미세하지만 다른 점 세트에 연결할 때 하단 Watch3D 노드의 모든 줄이 1개 색인만큼 이동되었습니다.

예를 들어 Code Block을 더 큰 값인 "30" 으로 변경하면 대각선이 크게 달라진다는 것을 알 수 있습니다. 이 경우 이동은 카메라의 홍채처럼 작동하여 원래의 원통형 형식에서 틀기가 작성됩니다.

List.FilterByBooleanMask

아래 링크를 클릭하여 예제 파일을 다운로드하십시오.

전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.

List.FilterByBooleanMask는 부울 리스트나 "true" 또는 "false" 값을 기준으로 특정 항목을 제거합니다.

"true" 또는 "false" 값 리스트를 작성하려면 좀 더 많은 작업이 필요합니다.

  1. Code Block을 사용하여 0..List.Count(list); 구문으로 표현식을 정의합니다. Curve.PointAtParameter 노드를 list 입력에 연결합니다. code block록 장에서 이 설정에 대해 좀 더 자세히 설명하겠지만, 이 경우에는 코드 줄에서 Curve.PointAtParameter 노드의 각 색인을 나타내는 리스트를 제공합니다.

  2. %** (modulus)** 노드를 사용하여 code block 의 출력을 x 입력에 연결하고 4 값을 y 입력에 연결합니다. 이렇게 하면 색인 리스트를 4로 나눈 나머지가 표시됩니다. Modulus는 패턴 작성에 매우 유용한 노드입니다. 모든 값은 가능한 나머지 4개(0, 1, 2, 3)로 표시됩니다.

  3. %** (modulus)** 노드에서 0 값은 색인이 4로 나누어떨어짐을 의미합니다(0, 4, 8 등). == 노드를 사용하면 "0" 값을 기준으로 테스트하여 나누어떨어지는지 테스트할 수 있습니다.

  4. Watch 노드에서는 _true,false,false,false..._로 표시되는 true/false 패턴이 있음을 나타냅니다.

  5. 이 true/false 패턴을 사용하여 두 List.FilterByBooleanMask 노드의 마스크 입력에 연결합니다.

  6. Curve.PointAtParameter 노드를 List.FilterByBooleanMask의 각 리스트 입력에 연결합니다.

  7. Filter.ByBooleanMask의 출력은 "in" 및 _"out"_으로 표시됩니다. "In" 은 마스크 값이 "true" 인 값을 나타내고 "out" 은 마스크 값이 "false" 인 값을 나타냅니다. Line.ByStartPointEndPoint 노드의 "in" 출력을 startPoint 및 endPoint 입력에 연결하여 필터링된 선 리스트를 작성했습니다.

  8. Watch3D 노드에서는 점보다 선 수가 더 적은 것을 나타냅니다. true 값만 필터링하여 노드의 25%만 선택했습니다.

사진 출처:

Christian Gidlöf
7KB
List-Operations.dyn
8KB
List-Count.dyn
8KB
List-GetItemAtIndex.dyn
8KB
List-Reverse.dyn
8KB
List-ShiftIndices.dyn
11KB
List-FilterByBooleanMask.dyn
카드
개수
연습
연습
연습
연습