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
  • 부울
  • 조건문
  • 연습: 논리 및 형상
  • 파트 I: 리스트 필터링
  • 파트 2: 논리에서 형상으로
Edit on GitHub
Export as PDF
  1. 필수 노드 및 개념
  2. 프로그램의 빌딩 블록

논리

Previous수학Next문자열

Last updated 1 month ago

논리 또는 좀 더 구체적으로 말해서 조건부 논리를 사용하면 테스트를 기준으로 하나의 작업 또는 작업 세트를 지정할 수 있습니다. 테스트를 평가한 후에는 프로그램 흐름을 제어하는 데 사용할 수 있는 True 또는 False를 나타내는 부울 값을 얻게 됩니다.

부울

숫자 변수는 여러 숫자의 전체 범위를 포함할 수 있습니다. 부울 변수는 True 또는 False, Yes 또는 No, 1 또는 0과 같이 2개의 값만 포함할 수 있습니다. 이렇게 범위가 제한되어 있기 때문에 부울을 사용하여 계산을 수행하는 경우는 드뭅니다.

조건문

"If" 문은 프로그래밍의 기본 개념입니다. "이것 이 true이면 저것 이 발생하고, 그렇지 않으면 다른 작업 이 발생합니다. 문의 결과 동작은 부울 값에 의해 구동됩니다. 다음과 같은 여러 가지 방법으로 Dynamo에서 "If" 문을 정의할 수 있습니다.

아이콘
이름(구문)
입력
출력

If(If)

test, true, false

결과

Code Block((x?y:z);)

x? y, z

결과

조건문 "If"를 사용하여 이러한 세 가지 노드 각각의 동작에 대한 간단한 예를 살펴보겠습니다.

이 이미지에서 boolean 은 true 로 설정되어 있습니다. 따라서 결과는 "this is the result if true" 문자열이 됩니다. 여기서 If 문을 작성하는 3개의 노드는 동일하게 작동합니다.

다시 한번 말씀드리지만 노드는 동일하게 작동합니다. boolean 이 false 로 변경되면 결과는 원래 If 문에 정의된 대로 숫자 Pi 가 됩니다.

연습: 논리 및 형상

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

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

파트 I: 리스트 필터링

  1. 논리를 사용하여 숫자 리스트를 짝수 리스트와 홀수 리스트로 구분해보겠습니다.

a. Number Range - 캔버스에 숫자 범위를 추가합니다.

b. Numbers - 캔버스에 3개의 숫자 노드를 추가합니다. 각 숫자 노드의 값은 start 의 경우 0.0, end 의 경우 10.0, step 의 경우 1.0 이어야 합니다.

c. Output - 출력은 0-10 범위의 11개 숫자로 이루어진 리스트입니다.

d. Modulo(%)- Number Range를 x 로, 2.0 을 y 로 지정합니다. 그러면 리스트에 포함된 각 숫자를 2로 나눈 나머지가 계산됩니다. 이 리스트의 출력에서는 0과 1이 번갈아 나오는 값 리스트가 제공됩니다.

e. Equality Test(==) - 캔버스에 동일성 테스트를 추가합니다. modulo 출력을 x 입력에, 0.0 을 y 입력에 연결합니다.

f. Watch - 동일성 테스트의 출력은 true와 false가 번갈아 나오는 값의 리스트입니다. 이러한 값은 리스트의 항목을 구분하는 데 사용됩니다. 0(또는 true)은 짝수를 나타내고, 1(또는 false)은 홀수를 나타냅니다.

g. List.FilterByBoolMask - 이 노드에서는 입력 부울을 기준으로 2개의 다른 리스트로 값을 필터링합니다. 원래 number range 를 list 입력에 연결하고 equality test 출력을 mask 입력에 연결합니다. in 출력은 true 값을 나타내고 out 출력은 false 값을 나타냅니다.

h. Watch - 결과적으로 이제 짝수 리스트와 홀수 리스트가 표시됩니다. 논리 연산자를 사용하여 리스트를 패턴으로 구분했습니다.

파트 2: 논리에서 형상으로

첫 번째 연습에서 설정한 논리를 토대로, 이 설정을 모델링 작업에 적용해 보겠습니다.

2. 동일한 노드를 사용하여 이전 연습에서 시작합니다. 유일한 예외는 다음과 같습니다(형식 변경 이외).

a. 이러한 입력 값과 함께 Sequence 노드를 사용합니다.

b. List.FilterByBoolMask에 대한 리스트 내 입력의 연결을 끊었습니다. 지금은 이러한 노드를 그대로 두지만 이는 연습 후반부에서 도움이 될 것입니다.

3. 먼저 위의 이미지에 표시된 것처럼 별도의 그래프 그룹을 만들어 보겠습니다. 이 노드 그룹은 선 곡선을 정의하는 파라메트릭 방정식을 나타냅니다. 몇 가지 참고 사항은 다음과 같습니다.

a. 첫 번째 Number Slider는 파형의 주파수를 나타내며, Min은 1이고, Max는 4이고, Step은 0.01입니다.

b. 두 번째 Number Slider는 파형의 진폭을 나타내며, Min은 0이고, Max는 1이고, Step은 0.01입니다.

c. PolyCurve.ByPoints - 위의 노드 다이어그램이 복사된 경우 결과는 Dynamo 미리보기 뷰포트에서 사인 곡선이 됩니다.

입력 방법: 보다 정적인 특성에 대해서는 숫자 노드를 사용하고 보다 유동적인 특성에는 숫자 슬라이더를 사용합니다. 이 단계를 시작할 때 정의하는 원래 숫자 범위를 유지하겠습니다. 그러나 여기에서 작성하는 사인 곡선은 유동적이어야 합니다. 이러한 슬라이더를 이동하면서 곡선의 진동수와 진폭이 업데이트되는 것을 볼 수 있습니다.

4. 잠시 정의를 확인하기 위해 다음 작업 상황을 참조할 수 있도록 최종 결과를 살펴보겠습니다. 처음에 따로 생성된 두 단계를 이제 연결합니다. 기본 사인 곡선을 사용하여 지퍼 구성요소의 위치를 움직이고, true/false 논리를 사용하여 작은 상자와 큰 상자를 번갈아 표시합니다.

a. Math.RemapRange - 02단계에서 작성한 숫자 시퀀스를 사용하여 범위를 다시 매핑함으로써 새로운 숫자 시리즈를 작성해 보겠습니다. 01단계의 원래 숫자 범위는 0~100입니다. 이러한 숫자의 범위는 각각 newMin 및 newMax 입력을 기준으로 0에서 1까지입니다.

5. Curve.PointAtParameter 노드를 작성한 다음, param 입력으로 04단계의 Math.RemapRange 출력을 연결합니다.

이 단계에서는 곡선을 따라 점을 작성합니다. param 의 입력에서는 이 범위의 값을 찾으므로 숫자를 0에서 1로 다시 매핑했습니다. 값 0 은 시작점을 나타내고 값 1 은 끝점을 나타냅니다. 그 사이의 모든 숫자는 [0,1] 범위 내에서 계산됩니다.

6. Curve.PointAtParameter의 출력을 List.FilterByBoolMask에 연결하여 홀수 및 짝수 색인 리스트를 구분합니다.

a. List.FilterByBoolMask - 이전 단계의 Curve.PointAtParameter를 list 입력에 연결합니다.

b. Watch - in 에 대한 감시 노드와 out 에 대한 감시 노드는 짝수 색인과 홀수 색인을 나타내는 두 개의 리스트가 있음을 보여 줍니다. 이러한 점은 다음 단계에 나와 있는 곡선에서 동일한 방법으로 정렬됩니다.

7. 다음으로 05단계에서 살펴본 List.FilterByBoolMask의 출력 결과를 사용하여 색인에 따른 크기를 가진 형상을 생성합니다.

Cuboid.ByLengths - 위의 이미지에 나와 있는 연결을 다시 작성하여 사인 곡선을 따라 지퍼를 가져옵니다. 여기서 직육면체는 상자에 불과하며, 상자 중심의 곡선 점을 기준으로 해당 크기를 정의합니다. 이제 짝수/홀수 분할 논리가 모델에서 명확히 드러나야 합니다.

a. 짝수 색인의 직육면체 리스트.

b. 홀수 색인의 직육면체 리스트.

지금까지 이 연습에서 살펴본 논리 연산에 따라 형상 치수를 정의하는 프로세스를 프로그래밍해 보았습니다.

73KB
Building Blocks of Programs - Logic.dyn