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
  • 어떤 옵션이 제공됩니까?
  • For Dynamo
  • In Dynamo
  • 장점과 단점은 각각 무엇입니까?
  • Dynamo 버전 관리 및 API 변경 사항 이해하기(1.x → 2.x)
  • 패키지에 바이너리를 배포할 수 있는 권한
  • Dynamo UI 성능 고려 사항
Edit on GitHub
Export as PDF
  1. 개발자 입문서

Dynamo를 위한 개발

PreviousDynamo의 종속성 관리 및 업데이트Next시작하기

Last updated 2 months ago

경험 수준에 관계없이 Dynamo 플랫폼은 모든 사용자가 기여할 수 있도록 설계되었습니다. 다양한 능력과 기술 수준을 대상으로 하는 여러 가지 개발 옵션이 있으며, 각 개발 옵션은 목표에 따라 장단점이 있습니다. 아래에서는 여러 옵션에 대해 간략하게 알아보고 하나의 옵션을 선택하는 방법에 대해 살펴보겠습니다.

세 가지 개발 환경: Visual Studio, Python 편집기 및 코드 블록 DesignScript

어떤 옵션이 제공됩니까?

Dynamo의 개발 옵션은 주로 두 가지 카테고리인 for Dynamo와 in Dynamo로 나뉩니다. 두 가지 카테고리는 다음과 같이 생각할 수 있습니다. "in" Dynamo는 Dynamo IDE를 사용하여 생성한 콘텐츠를 Dynamo에서 사용하는 것을 의미하며, "for" Dynamo는 외부 도구를 사용하여 생성한 콘텐츠를 Dynamo로 가져와서 사용하는 것을 의미합니다. 이 안내서는 for Dynamo 개발에 중점을 두고 있지만, 아래에 모든 프로세스에 대한 리소스가 명시되어 있습니다.

For Dynamo

이러한 노드를 사용하면 최고 수준으로 사용자 지정할 수 있습니다. 많은 패키지가 이 방법으로 빌드되며, 이것은 Dynamo의 소스에 기여하는 데 필요합니다. 패키지를 빌드하는 프로세스는 이 안내서에 설명되어 있습니다.

  • Zero-Touch 노드

  • NodeModel 파생 노드

  • 확장

아래 설명에서는 Visual Studio를 Zero-Touch 및 NodeModel 노드의 개발 환경으로 사용합니다.

Visual Studio 인터페이스와 개발 예정인 프로젝트

In Dynamo

  • 코드 블록은 시각적 프로그래밍 환경에서 DesignScript를 노출하여 유연한 텍스트 스크립트 및 노드 워크플로우를 지원합니다. 코드 블록의 함수는 작업공간의 모든 항목에서 호출할 수 있습니다.

  • 사용자 지정 노드는 노드 모음 또는 전체 그래프를 위한 컨테이너로, 자주 사용하는 루틴을 수집하고 커뮤니티와 공유하는 효과적인 방법입니다.

  • Python 노드는 코드 블록과 유사한, 시각적 프로그래밍 작업공간의 스크립팅 인터페이스입니다. Autodesk.DesignScript 라이브러리는 DesignScript와 유사한 점 표기법을 사용합니다.

Dynamo 작업공간을 통한 개발은 피드백을 즉각적으로 받을 수 있는 강력한 도구입니다.

Python 노드를 사용하여 Dynamo 작업공간에서 개발하기

장점과 단점은 각각 무엇입니까?

Dynamo의 개발 옵션은 복잡한 사용자 지정 요구 사항을 해결하기 위해 설계되었습니다. Python으로 재귀 스크립트를 작성하든 완전히 사용자 지정 가능한 노드 UI를 빌드하든, 시작하고 실행하는 데 필요한 것만 포함하는 코드를 구현할 수 있는 옵션이 있습니다.

Dynamo의 코드 블록, Python 노드 및 사용자 지정 노드

아래에 Dynamo 시각적 프로그래밍 환경에서 코드를 작성할 수 있는 간단한 옵션이 나와 있습니다. Dynamo 시각적 프로그래밍 작업공간은 Python과 DesignScript에 대한 액세스와 사용자 지정 노드 안에 여러 노드를 포함할 수 있는 기능을 제공합니다.

이러한 방법을 사용하여 다음을 수행할 수 있습니다.

  • 설정이 거의 또는 전혀 없는 Python 또는 DesignScript를 작성합니다.

  • Python 라이브러리를 Dynamo로 가져옵니다.

  • 코드 블록, Python 노드 및 사용자 지정 노드를 패키지의 일부로 Dynamo 커뮤니티와 공유합니다.

Zero-Touch 노드

Zero-Touch는 간단한 포인트 앤 클릭 방법으로 C# 라이브러리를 가져오는 것을 의미합니다. Dynamo에서는 .dll의 공용 메서드를 읽고 Dynamo 노드로 변환합니다. Zero-Touch를 사용하여 사용자 지정 노드 및 패키지를 개발할 수 있습니다.

이 방법을 사용하여 다음을 수행할 수 있습니다.

  • C# 메서드를 작성하고 Dynamo에서 메서드를 노드로 손쉽게 사용합니다.

  • C# 라이브러리를 패키지의 노드로 Dynamo 커뮤니티와 공유합니다.

NodeModel 파생 노드

이러한 노드는 Dynamo 구조에서 한 단계 더 들어간 것으로, NodeModel 클래스를 기반으로 하며 C#으로 작성되었습니다. 이 방법이 가장 뛰어난 유연성과 강력한 성능을 제공하기는 하지만, 노드의 대부분의 측면을 명시적으로 정의해야 하고 함수는 별도의 어셈블리에 있어야 합니다.

이 방법을 사용하여 다음을 수행할 수 있습니다.

  • 슬라이더, 이미지, 색상 등을 사용하여 완전히 사용자 지정 가능한 노드 UI를 생성합니다(예: ColorRange 노드)

  • Dynamo 캔버스에서 발생하는 사항에 액세스하고 관련 작업을 수행합니다.

  • 레이싱을 사용자 지정합니다.

  • Dynamo에 패키지로 로드합니다.

Dynamo 버전 관리 및 API 변경 사항 이해하기(1.x → 2.x)

Dynamo는 정기적으로 업데이트되고 있으므로 패키지에서 사용하는 API의 일부가 변경될 수 있습니다. 기존 패키지가 계속 제대로 작동하도록 하려면 이러한 변경 사항을 추적하는 것이 중요합니다.

패키지에 바이너리를 배포할 수 있는 권한

패키지 관리자에 업로드되는 패키지에 .dll이 포함되어 있는지 확인합니다. 패키지 작성자가 .dll을 생성하지 않은 경우, 패키지 작성자에게 해당 .dll을 공유할 수 있는 권한이 있어야 합니다.

패키지에 바이너리가 포함되어 있는 경우 다운로드할 때 사용자에게 패키지에 바이너리가 포함되어 있다는 메시지가 표시되어야 합니다.

Dynamo UI 성능 고려 사항

이 문서를 작성할 당시 Dynamo는 주로 WPF(Windows Presentation Foundation)를 사용하여 UI를 렌더링합니다. WPF는 복잡하고 강력한 xaml/바인딩 기반 시스템입니다. Dynamo는 UI가 복잡하기 때문에 UI 중단이나 메모리 누수가 발생하기 쉬우며 성능이 저하되는 방식으로 그래프 실행과 UI 업데이트가 겹치기 쉽습니다.

입문서에는 와 관련된 안내서가 있습니다.

이러한 프로세스는 시각적 프로그래밍 작업공간에 존재하고 비교적 간단하지만, 모두 Dynamo를 사용자 지정하는 데 사용할 수 있는 옵션입니다. 입문서는 이러한 내용을 광범위하게 다루고 있으며 장에서 스크립팅 팁과 활용 사례를 제공합니다.

코드 블록 예제를 다운로드하거나(마우스 오른쪽 버튼을 클릭하고 다른 이름으로 저장) 에서 자세한 내용을 참조하십시오.

사용자 지정 노드 예제를 다운로드하거나(마우스 오른쪽 버튼을 클릭하고 다른 이름으로 저장) 에서 자세한 내용을 참조하십시오.

Python 노드 예제를 다운로드하거나(마우스 오른쪽 버튼을 클릭하고 다른 이름으로 저장) 에서 자세한 내용을 참조하십시오.

Dynamo용으로 개발되지 않았을 수 있는 라이브러리를 가져와서 입문서에 나와 있는 와 같은 새로운 노드의 모음을 자동으로 작성합니다.

API 변경 사항은 에서 추적할 수 있습니다. 이러한 변경 사항에는 DynamoCore, 라이브러리 및 작업공간에 대한 변경 사항이 포함됩니다.

버전 2.0에서 파일 형식이 XML에서 JSON으로 전환될 예정이며, 이는 예정된 중요 변경 사항 중 하나입니다. NodeModel 파생 노드에는 이제 가 필요하며, 이 생성자가 없으면 Dynamo 2.0에서 열리지 않습니다.

현재 Dynamo의 API 문서()에는 핵심 기능에 대한 설명이 포함되어 있습니다.

를 참조하면 Dynamo 코드를 변경할 때 흔히 발생하는 몇 가지 문제를 방지하는 데 도움을 얻을 수 있습니다.

Zero-Touch 라이브러리 가져오기
스크립팅 전략
입문서
입문서
입문서
Dynamo Github Wiki
JSON 생성자
http://dynamods.github.io/DynamoAPI
Dynamo 성능 고려 사항 Wiki 페이지
A-Forge 예제
세 가지 개발 환경
Visual Studio 인터페이스
Python 노드를 사용하여 Dynamo 작업공간에서 개발하기
코드 블록, Python 스크립트 및 사용자 지정 노드
Zero-Touch 노드
NodeModel 파생 노드
Dynamo API 변경 사항 관련 문서
API 문서