# 예제

Dynamo를 개발하는 방법에 대한 예제를 보려면 아래 리소스를 검토하십시오.

#### 샘플 리포지토리 <a href="#sample-repositories" id="sample-repositories"></a>

이러한 샘플은 자체 프로젝트를 시작하는 데 사용할 수 있는 Visual Studio 템플릿입니다.

* [**ZeroTouchEssentials**](https://github.com/DynamoDS/ZeroTouchEssentials)**:** 기본 ZeroTouch 노드에 대한 템플릿입니다.
  * 여러 출력 반환: [코드](https://github.com/teocomi/HelloDynamo/blob/6c5333d731d58043c12e84cd3244cdbafbe74934/HelloDynamo/HelloNodeModel/HelloNodeModel.cs#L15-L24)
  * Dynamo의 기본 형상 객체 사용: [코드](https://github.com/DynamoDS/ZeroTouchEssentials/blob/9917fd8159afc9e7bdb2944c960155a496e0b2dc/ZeroTouchEssentials/ZeroTouchEssentials.cs#L86-L89)
  * 예제 특성(조회 노드): [코드](https://github.com/DynamoDS/ZeroTouchEssentials/blob/9917fd8159afc9e7bdb2944c960155a496e0b2dc/ZeroTouchEssentials/ZeroTouchEssentials.cs#L48)
* [**HelloDynamo**](https://github.com/teocomi/HelloDynamo)**:** 기본 NodeModel 노드 및 뷰 사용자 지정을 위한 템플릿입니다.
  * 기본 NodeModel 템플릿: [HelloNodeModel.cs](https://github.com/teocomi/HelloDynamo/blob/master/HelloDynamo/HelloNodeModel/HelloNodeModel.cs)
    * 노드 속성 정의(입력/출력 이름, 설명, 유형): [코드](https://github.com/teocomi/HelloDynamo/blob/6c5333d731d58043c12e84cd3244cdbafbe74934/HelloDynamo/HelloNodeModel/HelloNodeModel.cs#L15)
    * 입력이 없는 경우 null 노드 반환: [코드](https://github.com/teocomi/HelloDynamo/blob/6c5333d731d58043c12e84cd3244cdbafbe74934/HelloDynamo/HelloNodeModel/HelloNodeModel.cs#L34-L36)
    * 함수 호출 생성: [코드](https://github.com/teocomi/HelloDynamo/blob/6c5333d731d58043c12e84cd3244cdbafbe74934/HelloDynamo/HelloNodeModel/HelloNodeModel.cs#L39)
  * 기본 NodeModel 뷰 사용자 지정 템플릿: [HelloGui.cs](https://github.com/teocomi/HelloDynamo/blob/master/HelloDynamo/HelloNodeModel/HelloGui.cs), [HelloGuiNodeView.cs](https://github.com/teocomi/HelloDynamo/blob/master/HelloDynamo/HelloNodeModel/HelloGuiNodeView.cs), [Slider.xaml](https://github.com/teocomi/HelloDynamo/blob/master/HelloDynamo/HelloNodeModel/Slider.xaml), [Slider.xaml.cs](https://github.com/teocomi/HelloDynamo/blob/master/HelloDynamo/HelloNodeModel/Slider.xaml.cs)
    * 요소를 업데이트해야 함을 UI에 알림: [코드](https://github.com/teocomi/HelloDynamo/blob/6c5333d731d58043c12e84cd3244cdbafbe74934/HelloDynamo/HelloNodeModel/HelloGui.cs#L27)
    * NodeModel 사용자 지정: [코드](https://github.com/teocomi/HelloDynamo/blob/6c5333d731d58043c12e84cd3244cdbafbe74934/HelloDynamo/HelloNodeModel/HelloGuiNodeView.cs#L11)
    * 슬라이더 속성 정의: [코드](https://github.com/teocomi/HelloDynamo/blob/6c5333d731d58043c12e84cd3244cdbafbe74934/HelloDynamo/HelloNodeModel/Slider.xaml#L10)
    * 슬라이더에 대한 상호 작용 논리 확인: [코드](https://github.com/teocomi/HelloDynamo/blob/master/HelloDynamo/HelloNodeModel/Slider.xaml.cs)
* [**DynamoSamples**](https://github.com/DynamoDS/DynamoSamples)**:** ZeroTouch, 사용자 지정 UI, 테스트 및 뷰 확장을 위한 템플릿입니다.
  * [UI 샘플](https://github.com/DynamoDS/DynamoSamples/tree/master/src/SampleLibraryUI)
    * 기본 사용자 지정 UI 노드 생성: [CustomNodeModel.cs](https://github.com/DynamoDS/DynamoSamples/blob/master/src/SampleLibraryUI/Examples/CustomNodeModel.cs)
    * 드롭다운 메뉴 생성: [DropDown.cs](https://github.com/DynamoDS/DynamoSamples/blob/master/src/SampleLibraryUI/Examples/DropDown.cs)
  * [테스트](https://github.com/DynamoDS/DynamoSamples/tree/master/src/SampleLibraryTests)
    * 시스템 테스트: [HelloDynamoSystemTests.cs](https://github.com/DynamoDS/DynamoSamples/blob/master/src/SampleLibraryTests/HelloDynamoSystemTests.cs)
    * ZeroTouch 테스트: [HelloDynamoZeroTouchTests.cs](https://github.com/DynamoDS/DynamoSamples/blob/master/src/SampleLibraryTests/HelloDynamoZeroTouchTests.cs)
  * [ZeroTouch 예제](https://github.com/DynamoDS/DynamoSamples/tree/master/src/SampleLibraryZeroTouch/Examples):
    * 형상 렌더링에 영향을 주는 `IGraphicItem`을 구현하는 노드를 포함한 ZeroTouch 노드의 예제: [BasicExample.cs](https://github.com/DynamoDS/DynamoSamples/blob/master/src/SampleLibraryZeroTouch/Examples/BasicExample.cs)
    * `IRenderPackage`를 사용하여 형상에 색상을 지정하는 ZeroTouch 노드의 예제: [ColorExample.cs](https://github.com/DynamoDS/DynamoSamples/blob/master/src/SampleLibraryZeroTouch/Examples/ColorExample.cs)
  * [뷰 확장 예제](https://github.com/DynamoDS/DynamoSamples/tree/master/src/SampleViewExtension): MenuItem을 클릭할 때 모델리스 창을 표시하는 IViewExtension 구현
* [**NodeModelsEssentials**](https://github.com/nonoesp/DynamoNodeModelsEssentials)**:** NodeModel을 사용한 고급 Dynamo 패키지 개발을 위한 템플릿입니다.
  * 필수 샘플:
    * [Error](https://github.com/nonoesp/DynamoNodeModelsEssentials/blob/master/src/Essentials/NodeModelsEssentials/EssentialsError.cs)
    * [MultiOperation](https://github.com/nonoesp/DynamoNodeModelsEssentials/blob/master/src/Essentials/NodeModelsEssentials/EssentialsMultiOperation.cs)
    * [Multiply](https://github.com/nonoesp/DynamoNodeModelsEssentials/blob/master/src/Essentials/NodeModelsEssentials/EssentialsMultiply.cs)
    * [Timeout](https://github.com/nonoesp/DynamoNodeModelsEssentials/blob/master/src/Essentials/NodeModelsEssentials/EssentialsTimeout.cs)
  * 형상 샘플:
    * [CustomPreview](https://github.com/nonoesp/DynamoNodeModelsEssentials/blob/master/src/Essentials/NodeModelsEssentials/GeometryCustomPreview.cs)
    * [SurfaceFrom4Points](https://github.com/nonoesp/DynamoNodeModelsEssentials/blob/master/src/Essentials/NodeModelsEssentials/GeometrySurfaceFrom4Points.cs)
    * [UVPlanesOnSurface](https://github.com/nonoesp/DynamoNodeModelsEssentials/blob/master/src/Essentials/NodeModelsEssentials/GeometryUVPlanesOnSurface.cs)
    * [WobblySurface](https://github.com/nonoesp/DynamoNodeModelsEssentials/blob/master/src/Essentials/NodeModelsEssentials/GeometryWobblySurface.cs)
  * UI 샘플:
    * [Button](https://github.com/nonoesp/DynamoNodeModelsEssentials/blob/master/src/Essentials/NodeModelsEssentials/UIButton.cs)
    * [ButtonFunction](https://github.com/nonoesp/DynamoNodeModelsEssentials/blob/master/src/Essentials/NodeModelsEssentials/UIButtonFunction.cs)
    * [CopyableWatch](https://github.com/nonoesp/DynamoNodeModelsEssentials/blob/master/src/Essentials/NodeModelsEssentials/UICopyableWatch.cs)
    * [Slider](https://github.com/nonoesp/DynamoNodeModelsEssentials/blob/master/src/Essentials/NodeModelsEssentials/UISlider.cs)
    * [SliderBound](https://github.com/nonoesp/DynamoNodeModelsEssentials/blob/master/src/Essentials/NodeModelsEssentials/UISliderBound.cs)
    * [State](https://github.com/nonoesp/DynamoNodeModelsEssentials/blob/master/src/Essentials/NodeModelsEssentials/UIState.cs)

[**DynaText**](https://github.com/DynamoDS/DynamoText)**:** Dynamo에서 텍스트를 생성하기 위한 ZeroTouch 라이브러리입니다.

#### 사례 연구 <a href="#case-studies" id="case-studies"></a>

타사 개발자들은 플랫폼에 중요하고 놀라운 기여를 해왔으며, 그 중 대부분은 오픈 소스이기도 합니다. 다음 프로젝트는 Dynamo를 사용하여 수행할 수 있는 작업을 보여주는 훌륭한 예입니다.

**Ladybug**는 EnergyPlus Weather 파일(epw)을 로드, 분석 및 수정하는 Python 라이브러리입니다.

<https://github.com/ladybug-tools/ladybug>

**Honeybee**는 일광(RADIANCE) 및 에너지 해석(EnergyPlus/OpenStudio)의 결과를 생성, 실행 및 시각화하는 Python 라이브러리입니다.

<https://github.com/ladybug-tools/honeybee>

**Bumblebee**는 Excel 및 Dynamo 상호 운용성(GPL)을 위한 플러그인입니다.

<https://github.com/ksobon/Bumblebee>

**Clockwork**는 Revit 관련 작업뿐만 아니라 리스트 관리, 수학적 연산, 문자열 연산, 기하학적 연산(주로 경계 상자, 메쉬, 평면, 점, 표면, UV 및 벡터) 및 패널링과 같은 기타 목적을 위한 사용자 지정 노드의 모음입니다.

<https://github.com/andydandy74/ClockworkForDynamo>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://primer2.dynamobim.org/ko/1_developer_primer_intro/7_examples.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
