Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
코드 블록은 Dynamo의 고유한 기능으로서, 시각적 프로그래밍 환경을 문자 기반 환경에 동적으로 연결해 줍니다. 코드 블록은 모든 Dynamo 노드에 액세스할 수 있으며 하나의 노드에서 전체 그래프를 정의할 수 있습니다. 코드 블록은 Dynamo의 기본적인 빌딩 블록이므로 이 장을 자세히 읽어 보십시오.
코드 블록은 Dynamo에서 핵심적으로 사용되는 프로그래밍 언어인 DesignScript를 깊이 있게 볼 수 있는 창입니다. 예비 설계 워크플로우를 지원할 목적으로 완전히 새로 제작된 DesignScript는 사람이 읽을 수 있는 간결한 언어로, 소량의 코드에는 즉각적인 피드백을 제공하고 크고 복잡한 상호작용에 맞게 확장됩니다. 또한 DesignScript는 "내부적으로" Dynamo의 대부분을 구동하는 엔진의 토대를 형성합니다. Dynamo 노드에 포함된 거의 모든 기능과 상호작용은 스크립팅 언어와 일대일 관계가 있으므로, 노드 기반 상호작용과 스크립팅 간에 유연하게 전환할 수 있는 특별한 기능이 있습니다.
초보자를 위해 노드는 DesignScript 학습을 지원할 목적으로 또는 단순히 규모가 더 큰 그래프 섹션의 크기를 줄일 목적으로 자동으로 변환될 수 있습니다. 이 작업은 "Node to Code" 프로세스를 사용하여 수행합니다. 이 프로세스에 대한 자세한 설명은 DesignScript 구문 섹션에 나와 있습니다. 더 숙련된 사용자는 코드 블록을 사용하여 기존 기능과 많은 표준 코딩 패러다임을 활용한 사용자 작성 관계로 구성된 사용자화된 매쉬업을 만들 수 있습니다. 초급자와 고급 사용자 사이에는 방대한 바로 가기 및 코드 조각이 있는데, 바로 이러한 요소가 설계를 가속화해 줍니다. 프로그래머가 아닌 사람에게 '코드 블록'이라는 용어는 생소할 수 있지만 코드 블록은 사용하기 쉽고 강력합니다. 초급 사용자는 최소한의 코딩으로 코드 블록을 효율적으로 사용할 수 있으며, 고급 사용자는 스크립팅된 정의를 지정하여 Dynamo 정의의 다른 위치에서 다시 호출할 수 있습니다.
간단히 말해, 코드 블록은 시각적 스크립팅 환경 내의 문자 스크립팅 인터페이스입니다. 숫자, 문자열, 수식 및 기타 데이터 유형으로 사용할 수 있습니다. 코드 블록은 Dynamo용으로 설계되었으므로 사용자는 코드 블록에서 임의의 변수를 정의할 수 있으며, 이러한 변수는 노드의 입력에 자동으로 추가됩니다.
코드 블록을 사용하면 사용자가 입력 지정 방식을 유연하게 결정할 수 있습니다. 아래에 좌표 (10, 5, 0) 으로 기본 점을 만드는 다양한 방법이 나와 있습니다.
라이브러리의 사용 가능한 함수에 대해 자세히 알아볼 때 라이브러리에서 검색한 후 적절한 노드를 찾는 것보다 "Point.ByCoordinates"를 입력하는 것이 더 빠르다는 것을 알게 될 것입니다. "Point." 를 입력하면 점에 적용할 수 있는 함수 리스트가 Dynamo에 표시됩니다. 이렇게 하면 스크립팅을 더 직관적으로 사용할 수 있으며 Dynamo에서 함수를 적용하는 방식을 배우는 데 도움이 됩니다.
코드 블록은 코어>입력>작업>코드 블록 에서 찾을 수 있습니다. 하지만 단순히 캔버스를 두 번 클릭하기만 하면 코드 블록이 더 빠르게 나타납니다. 이 노드는 너무 자주 사용되어 두 번 클릭 권한이 완전하게 부여되어 있습니다.
코드 블록은 데이터 유형에 대해서도 유연하게 작동합니다. 사용자는 숫자, 문자열, 수식을 빠르게 정의할 수 있으며 코드 블록은 원하는 출력을 제공합니다.
아래 이미지에서는 작업을 수행하는 "구식" 방법이 오랜 걸린다는 것을 알 수 있습니다. 사용자는 인터페이스에서 의도한 노드를 검색하고 노드를 캔버스에 추가한 다음, 데이터를 입력해야 합니다. 코드 블록을 사용하는 경우 사용자는 캔버스를 두 번 클릭하여 노드를 표시하고 기본 구문을 사용하여 올바른 데이터 유형을 입력하면 됩니다.
코드 블록과 비교하여 더 이상 사용되지 않을 것이 거의 확실한 Dynamo 노드의 세 가지는 number, string 및 formula 노드입니다.
"구식"
코드 블록
함수는 코드 블록에서 작성한 후 Dynamo 정의의 다른 위치에서 다시 호출할 수 있습니다. 이를 통해 파라메트릭 파일에 또 다른 제어층이 작성되며, 이는 텍스트 기반 버전의 사용자 노드로 볼 수 있습니다. 이 경우 "parent" 코드 블록에 쉽게 액세스할 수 있으며 그래프의 모든 위치에 배치할 수 있습니다. 와이어는 필요하지 않습니다.
첫 번째 줄에는 키워드 “def”, 그다음에 함수 이름, 괄호로 묶인 입력 이름이 차례로 표시됩니다. 중괄호는 함수의 본문을 정의합니다. "return ="을 사용하여 값을 반환합니다. 함수를 정의하는 Code Block은 다른 Code Block에서 호출되기 때문에 입력 또는 출력 포트가 없습니다.
동일한 파일의 다른 Code Block에서 해당 이름 및 동일한 개수의 인수를 지정하여 함수를 호출합니다. 이 노드는 라이브러리의 기본 제공 노드처럼 작동합니다.
아래 링크를 클릭하여 예제 파일을 다운로드하십시오.
전체 예시 파일 리스트는 부록에서 확인할 수 있습니다.
이 연습에서는 점의 입력 리스트에서 구를 작성하는 일반 정의를 만들겠습니다. 이러한 구의 반지름은 각 점의 Z 특성에 의해 결정됩니다.
각각 0에서 100 사이의 값을 갖는 10개의 값 범위로 시작하겠습니다. 이러한 값을 Point.ByCoordinates 노드에 연결하여 대각선을 작성합니다.
Code Block을 작성하고 정의를 소개합니다.
다음 코드 줄을 사용합니다.
inputPt 는 함수를 구동할 점을 나타내기 위해 지정한 이름입니다. 현재, 이 함수는 아무 기능도 하지 않지만 이후 단계에서 구축할 것입니다.
Code Block 함수에 추가하여 주석과 각 점의 Z 위치를 조회하는 sphereRadius 변수를 배치합니다. inputPt.Z 에는 괄호가 메서드로 필요하지 않습니다. 기존 요소 특성의 조회 이므로 입력이 필요하지 않습니다.