Dynamo Python Primer
  • Take Dynamo Further 🚀
  • 1 Hello Python 🐍
    • 1.1 Why Should I Learn to Code?
    • 1.2 Python Introduction
    • 1.3 What is IronPython?
  • 2 Seeing The Bigger Picture 🔭
    • 2.1 Context Matters
    • 2.2 What is an API?
    • 2.3 The .NET Framework
    • 2.4 Object-Oriented Programming
  • 3 Getting Started 🛴
    • 3.1 Dynamo's Python Node
    • 3.2 Boilerplate Setup Code
    • 3.3 Basics: Input and Output
    • 3.4 Common Errors
  • 4 Revit-Specific Topics 🏡
    • 4.1 Introduction to Revit's API
    • 4.2 How to Read Revit's API Documentation
    • 4.3 Doc, UIDoc, App, UIApp
    • 4.4 Unwrapping Revit Elements
    • 4.5 The FilteredElementCollector
    • 4.6 Geometry Conversion Methods
    • 4.7 Working With Parameters
      • Family Parameters
      • Global Parameters
      • Project Information Parameters
      • Group Parameters
      • Built-In Parameters
    • 4.8 Working With Transactions
    • 4.9 Opening & Closing External Files
    • 4.10 Prompting UI Selection
    • 4.11 Working With Units
    • 4.12 Built-In Categories
    • 4.13 Family Acrobatics
    • 4.14 Feedback: TaskDialogs
  • 5 Glossary 📚
  • About This Primer 👋
Powered by GitBook
On this page

Was this helpful?

  1. 4 Revit-Specific Topics 🏡

4.14 Feedback: TaskDialogs

TaskDialogs will give users quick-and-dirty visual feedback

Previous4.13 Family AcrobaticsNext5 Glossary 📚

Last updated 5 years ago

Was this helpful?

Tools Have Audiences

When a user starts using your custom scripts, they might not know when they've finished executing or whether they ran successfully. Even a small element of visual feedback can go a long way in making your tools more usable.

Creating a TaskDialog

are Revit's API class for providing verbose user feedback. They can be executed with a single line of code, like so:

#Boilerplate Code

TaskDialog.Show("Example Title", "Example Text")

Which causes Revit to display this dialog box:

TaskDialogs are useful to provide a level of feedback to a user - perhaps you want to report whether the script ran successfully or encountered any errors.

Customising the TaskDialog

The above example implemented a bare-minimum TaskDialog, but these can also be edited via the class' properties to make something richer, like so:

#Boilerplate Code

task_dialog = TaskDialog("Example Title")
task_dialog.CommonButtons = TaskDialogCommonButtons.Cancel | TaskDialogCommonButtons.Ok | TaskDialogCommonButtons.Close |     TaskDialogCommonButtons.No | TaskDialogCommonButtons.Yes | TaskDialogCommonButtons.Retry | TaskDialogCommonButtons.None
task_dialog.FooterText = "Example Footer Text"
task_dialog.MainInstruction = "Example Main Instruction"
task_dialog.MainContent = "This is the main content for this TaskDialog"

task_dialog.Show()

Which display the following

TaskDialogs