# Dynamo Python Primer

## Dynamo Python Primer

- [Take Dynamo Further 🚀](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/readme.md): Using Python will take your Dynamo definitions to the next level
- [1 Hello Python 🐍](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/hello-python.md): Welcome to the Dynamo Python Primer!
- [1.1 Why Should I Learn to Code?](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/hello-python/why-should-i-learn-to-code.md): Visual programming is the first step in becoming a proficient coder
- [1.2 Python Introduction](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/hello-python/python-introduction.md): Python is the most popular programming language in the world
- [1.3 What is IronPython?](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/hello-python/what-is-ironpython.md): IronPython is simply a dialect of the Python language
- [2 Seeing The Bigger Picture 🔭](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/seeing-the-bigger-picture.md): Programming often involves several moving parts
- [2.1 Context Matters](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/seeing-the-bigger-picture/context-matters.md): Learning a programming language is just the first step
- [2.2 What is an API?](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/seeing-the-bigger-picture/what-is-an-api.md): The Application Programming Interface is your window into an application
- [2.3 The .NET Framework](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/seeing-the-bigger-picture/what-is-the-.net-framework.md): .NET is a large suite of resources for software developers on Windows systems.
- [2.4 Object-Oriented Programming](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/seeing-the-bigger-picture/object-oriented-programming.md): OOP is a widely-adopted programming paradigm
- [3 Getting Started 🛴](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/getting-started.md): Enough talk - let's go write some code!
- [3.1 Dynamo's Python Node](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/getting-started/using-dynamos-python-node.md): The Python Script lets you write and execute IronPython code in Dynamo
- [3.2 Boilerplate Setup Code](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/getting-started/boilerplate-setup-code.md): Boilerplate code does all of the initial setup so you can start coding
- [3.3 Basics: Input and Output](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/getting-started/basics-input-and-output.md): Python nodes work like other nodes; they can take inputs and return outputs
- [3.4 Common Errors](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/getting-started/3.6-common-errors.md): We all get errors - no big deal! Here are some errors you're likely to encounter.
- [4 Revit-Specific Topics 🏡](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics.md)
- [4.1 Introduction to Revit's API](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/introduction-to-revits-api.md): Revit's API has been developed over nearly two decades; let's get to know it!
- [4.2 How to Read Revit's API Documentation](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/how-to-read-revits-api-docs.md): Revit's API is large and so are its documents; learn to navigate them here 🛶
- [4.3 Doc, UIDoc, App, UIApp](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/doc-uidoc-app-uiapp.md): What's up, Doc? Get to know these important handles you'll use all the time!
- [4.4 Unwrapping Revit Elements](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/unwrapping-revit-elements.md): Revit elements are like bananas - best unwrapped before they are consumed ��
- [4.5 The FilteredElementCollector](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/fetching-revit-elements.md): One of the most powerful tools in Revit API fetches elements - fast!
- [4.6 Geometry Conversion Methods](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/3.5-geometry-conversion-methods.md): Dynamo geometry and Revit geometry might seem similar but are different!
- [4.7 Working With Parameters](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/working-with-parameters.md): Accessing parameters is one of the fundamental skills you’ll need to get up and running with the Revit API. However, the Revit parameter system itself is somewhat complex.
- [Family Parameters](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/working-with-parameters/instance-parameters.md): Families are an intrinsic part of any Revit model; being able to access their parameters is a vitally important skill when coding for Revit.
- [Global Parameters](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/working-with-parameters/global-parameters.md): Global parameters are accessible by any element in the model
- [Project Information Parameters](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/working-with-parameters/project-information-parameters.md): These parameters are a bit meta - they're information about the document they're a part of!
- [Group Parameters](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/working-with-parameters/group-parameters.md): It's nice to feel like a part of something bigger 🌍
- [Built-In Parameters](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/working-with-parameters/built-in-parameters.md): These are hard-baked into the Revit software - we can't define or delete them
- [4.8 Working With Transactions](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/working-with-transactions.md): Using Transactions is easy and you won't get very far without them!
- [4.9 Opening & Closing External Files](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/opening-and-closing-external-files.md): Opening and closing files 'headlessly' unlocked some powerful workflows
- [4.10 Prompting UI Selection](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/prompting-ui-selection.md): Tell me what you need...
- [4.11 Working With Units](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/working-with-units.md): Feet, Inches, Meters and Millimetres
- [4.12 Built-In Categories](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/built-in-categories.md): A finer-grain version of Revit's Category system
- [4.13 Family Acrobatics](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/family-acrobatics.md): Family -> FamilyType -> FamilyInstance -> FamilyType -> Family
- [4.14 Feedback: TaskDialogs](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/4-revit-specific-topics/4.15-feedback-taskdialogs.md): TaskDialogs will give users quick-and-dirty visual feedback
- [5 Glossary 📚](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/5-glossary.md): Technical words, jargon and whatchamacallits 🤷‍♂️
- [About This Primer 👋](https://dynamopythonprimer.gitbook.io/dynamo-python-primer/about-this-primer.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on a page URL with the `ask` query parameter:
```
GET https://dynamopythonprimer.gitbook.io/dynamo-python-primer/readme.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.
