# 什麼是 Code Block

Code Block 是 DesignScript 中的深層視窗，是 Dynamo 程式設計語言的核心。DesignScript 可用於從頭開始進行建置以支援探索式設計工作流程，它是一個可讀且簡要的語言，可為較小的位元碼提供即時意見以也可以用於大型且複雜的互動。DesignScript 還形成在後台驅動 Dynamo 大多數方面之引擎的基礎。因為幾乎 Dynamo 節點的所有功能和互動都與指令碼撰寫語言有一對一的關係，所以有獨特的機會以流暢方式在節點式互動與指令碼撰寫之間轉換。

對於初學者，節點可以自動轉換為文字語法，以協助學習 DesignScript，或單純只是為了縮小較大的圖表部分。使用稱為「要編碼的節點」的流程即可達成。在 [DesignScript 語法一節](/zh-tw/8_coding_in_dynamo/8-1_code-blocks-and-design-script/2-design-script-syntax.md)會說明更多詳細資訊。經驗更豐富的使用者可以使用 Code Block，建立既有功能以及使用許多標準編碼範例的使用者編寫關係的自訂組合。對於初學者和進階使用者之間的使用者，提供了大量的捷徑和程式碼片段可加快您的設計。雖然 Code Block 這個詞彙可能會讓非程式設計師覺得有點難以理解，但它其實很容易使用，而且功能強大。初學者可以在進行最少編碼的情況下使用 Code Block，進階使用者可定義在 Dynamo 定義的其他位置可進行呼叫的指令碼型定義。

### Code Block：簡要概述

簡而言之，Code Block 是視覺指令碼撰寫環境中的文字指令碼撰寫介面。它們可以用作數字、字串、公式和其他資料類型。Code Block 是專為 Dynamo 設計的，因此可以在 Code Block 中定義任意變數，且這些變數會自動新增至節點的輸入：

Code Block 可讓使用者靈活決定如何指定輸入。下面提供了幾種不同方式來使用座標建立基本點 *(10,5,0)*：

!

在您進一步瞭解資源庫中可用的函數後，您可能甚至會發現，鍵入「Point.ByCoordinates」的速度比在資源庫中搜尋和找出正確的節點更快。例如當您鍵入 *Point.* 時，Dynamo 會顯示一個可能函數的清單以套用到點。這可使得指令碼撰寫更直覺，並協助學習如何在 Dynamo 中套用函數。

### 建立 Code Block 節點

您可以透過 *Core>Input>Actions>Code Block* 找到 Code Block。但更快的方式是在圖元區按兩下，Code Block 就會出現。此節點因為經常使用，所以被賦予完整的按兩下權限。

!

### 數字、字串和公式

Code Block 對於資料類型也可以很靈活。使用者可以快速定義數字、字串和公式，Code Block 將提供所需的輸出。

在以下圖像中，您可以看到以「舊」的方式進行的作業有點冗長，使用者在介面中搜尋所需的節點，將節點新增至畫布，然後輸入資料。使用 Code Block 時，使用者可以按兩下畫布以拉取節點，然後使用基本語法鍵入正確資料類型。

number 和 string 節點是 Dynamo 節點的兩個範例，與 Code Block 相比可以說是舊式節點。

!

> 1. 舊式
> 2. Code Block


---

# 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/zh-tw/8_coding_in_dynamo/8-1_code-blocks-and-design-script/1-what-is-a-code-block.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.
