# 노드 라이브러리

앞서 **노드**는 Dynamo 그래프의 핵심 빌딩 블록이며, **라이브러리**에서 논리 그룹으로 구성된다고 언급했습니다. Dynamo for Civil 3D에는 라이브러리에 정렬, 프로파일, 코리더, 블록 참조 등과 같은 AutoCAD 및 Civil 3D 객체 작업을 위한 전용 노드가 포함된 두 개의 카테고리(또는 **선반**)가 있습니다. 라이브러리의 나머지 부분에는 보다 일반적인 성격의 노드가 포함되어 있으며, 이러한 노드는 Dynamo의 모든 "제품"(예: Revit용 Dynamo, Dynamo Sandbox 등) 간에 일관됩니다.

{% hint style="info" %}
코어 Dynamo 라이브러리의 노드 구성 방식에 대한 자세한 내용은 [라이브러리](/ko/3_user_interface/2-library.md) 섹션을 참조하십시오.
{% endhint %}

<figure><img src="/files/j6g43m7dyBrt14AfvlTE" alt="" width="563"><figcaption><p>Dynamo for Civil 3D의 노드 라이브러리</p></figcaption></figure>

> 1. AutoCAD 및 Civil 3D 객체 작업을 위한 특정 노드
> 2. 범용 노드
> 3. 별도로 설치할 수 있는 타사 **패키지**의 노드

{% hint style="warning" %}
AutoCAD 및 Civil 3D 선반 아래에 있는 노드를 사용하면 Dynamo 그래프가 Dynamo for Civil 3D에서만 작동합니다. Dynamo for Civil 3D 그래프를 다른 곳(예: Revit용 Dynamo)에서 열면 이러한 노드는 경고와 함께 플래그가 표시되고 실행되지 않습니다.
{% endhint %}

{% hint style="info" %}
**AutoCAD와 Civil 3D를 위한 별도의 선반이 두 개 있는 이유는 무엇입니까?**

이 구성은 기본 AutoCAD 객체(선, 폴리선, 블록 참조 등)를 위한 노드와 Civil 3D 객체(선형, 코리더, 표면 등)를 위한 노드를 구분합니다. 기술적인 관점에서 볼 때 AutoCAD와 Civil 3D는 서로 다른 두 개의 제품이며, AutoCAD는 기본 응용프로그램이고 Civil 3D는 AutoCAD를 기반으로 하는 제품입니다.
{% endhint %}

## 노드 계층

AutoCAD 및 Civil 3D 노드로 작업하려면 각 선반 내의 객체 계층을 확실히 이해하는 것이 중요합니다. 생물학의 분류법인 계, 문, 강, 목, 과, 속, 종을 기억하십니까? AutoCAD 및 Civil 3D 객체도 유사한 방식으로 분류됩니다. 몇 가지 예를 통해 설명하겠습니다.

### Civil 객체

예로 선형을 사용하겠습니다.

<figure><img src="/files/i8Mmt7n6xDSgiQSZpGkg" alt=""><figcaption></figcaption></figure>

선형의 이름을 변경하는 것이 목표라고 가정해 보겠습니다. 여기에서 다음으로 추가할 노드는 **CivilObject.SetName** 노드입니다.

<figure><img src="/files/Z5E2hu58ha7z863bdPiB" alt=""><figcaption></figcaption></figure>

처음에는 직관적이지 않은 것처럼 보일 수 있습니다. **CivilObject**란 무엇이며, 라이브러리에 **Alignment.SetName** 노드가 없는 이유는 무엇입니까? 이 질문에 대한 답은 *재사용 가능성* 및 *단순성* 과 관련이 있습니다. 생각해 보면, Civil 3D 객체의 이름을 변경하는 절차는 객체가 선형, 코리더, 프로파일이든 다른 어떤 것이든 관계없이 동일합니다. 따라서 본질적으로 모두 동일한 작업을 수행하는 반복 노드(예: **Alignment.SetName, Corridor.SetName, Profile.SetName** 등)를 사용하는 대신, 해당 기능을 단일 노드로 묶는 것이 좋습니다. 이것이 바로 **CivilObject.SetName**의 기능입니다!

이에 대해 생각해 볼 수 있는 또 다른 방법은 *관계* 의 관점에서 생각해 보는 것입니다. 사과와 배가 모두 과일의 종류인 것처럼 선형과 코리더는 모두 **Civil 객체**의 유형입니다. 사과와 배 모두 껍질을 벗길 때 하나의 껍질 벗기는 도구를 사용하는 것처럼, Civil 객체 노드는 모든 유형의 Civil 객체에 적용됩니다. 과일 종류마다 껍질 벗기는 도구가 따로 있다면 주방은 꽤 지저분해질 것입니다! 그런 의미에서 Dynamo 노드 라이브러리는 주방과 같습니다.

### 객체

이제 한 단계 더 나아가 보겠습니다. 정렬의 도면층을 변경한다고 가정합니다. 사용할 노드는 **Object.SetLayer** 노드입니다.

<figure><img src="/files/lVupjehejxVo7VPl0Gyq" alt=""><figcaption></figcaption></figure>

**CivilObject.SetLayer**라는 노드가 없는 이유는 무엇입니까? 앞서 언급한 재사용 가능성 및 단순성의 원칙이 여기에도 동일하게 적용됩니다. *도면층* 특성은 선, 폴리선, 문자, 블록 참조 등 그리거나 삽입할 수 있는 AutoCAD의 모든 객체에 공통적으로 적용되는 특성입니다. 선형 및 코리더와 같은 Civil 3D 객체는 동일한 카테고리에 속하므로 **객체**에 적용되는 모든 노드는 모든 **Civil 객체**에도 사용할 수 있습니다.


---

# 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/dynamo-for-civil-3d/node-library.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.
