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