Revit API Using CSharp Python Dynamo AI Plugins Training-1

Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

CADVertex Solutions

A-16 . Whispering Wind . Pashan-Baner Link Road . Pashan . Pune . 411021


www.CADVertex.com [email protected] Phone :+91 9890611694

Revit API Master Course


using CSharp and Python
Learn
CSharp + Dynamo + Python + Machine Learning

Create AI-Powered Plugins for Revit


Create AI-Powered Dynamo Scripts

Download this PDF


17 pages
WhatsApp/Telegram +91 9890611694
eMail: [email protected]
Training Structure
Module 1: Python Programming including LINQ and OOPs.
Module 2: CSharp Programming including LINQ and OOPs.
Module 3: Revit API using CSharp: Deep Dive and Advanced Techniques.
Module 4: Revit API using Python: Deep Dive and Advanced Techniques.
Module 5: Dynamo with Python Nodes + Machine Learning + AI + PyRevit, Python Revit Shell.
Features:
✓ LIVE coaching + recorded videos.
✓ Flexible timings.
✓ Weekday batches.
✓ Weekend batches.
✓ Modern Python programming included.
✓ Unlimited support after training: at no extra cost!
✓ Industry projects.
Highlights:
✓ Daily exercises and review quiz.
✓ Best practices for programming in Revit.
✓ Resume Preparation.
✓ Interview Preparation.
✓ 100 Interview QA.
✓ Job referrals in top companies.
Bonus:
✓ Free study material.
✓ Free sample programs.
✓ Free Dynamo scripts.
✓ Free Python scripts.
✓ Free plugins.
✓ Free Python templates.
Unique:
✓ PyRevit.
✓ AI with Machine Learning.
✓ Revit Python Shell.
✓ CPython3 and IronPython.
✓ PyCharm.
Module 2: Python Programming

1. Installation and Basics

• Installing Python.
• Installing Python Editor.
• Project Explorer, output and error windows.

2. Introduction to programming

• Setting up user interaction and collecting inputs.


• Calculations and output display.
• Using the Math library functions.
• Running Python programs.
• Syntax, Comments, User Input, Print results, and control Program Flow.
• Variables: Float, Integer, String, and Boolean.
• String Variables: Find, Replace, Formatting and Slicing operations.
• Datatypes, Typecasting and Validations.
• Arithmetic Operations.

3. List and Loops

• Lists, Tuples, Dictionaries and Sets.


• List comprehensions.
• List Operations - Slicing and Data Extraction.
• String Operations - Slicing and Manipulations.

• Conditionals : If and Elif.


• Chaining Comparison Operators.
• Loops: For Loop and While Loop.

4. Functions and Modules

• Defining Functions and Arguments.


• Functions: Arguments, Return Statements and values.
• Functions: Optional Arguments.
• Functions: Multiple Return Values.
• Function Help and DocStrings.
• Modules and the Python standard library.
• Importing from modules.
• Creating Aliases.

• Life of variables, global and local variables.


• Lambda functions.

• Errors - syntax, logical and exceptions.


• Exception handling.
• LINQ – Language Integrated Queries, and Lambda functions.
5. Exception Handling

• Try Catch Except.


• Debugging Python Functions.
• Adding breakpoints and inspecting values.
• Determine source of error.
• Troubleshooting and fix errors in the code.

6. Object Oriented Programming

• Creating Classes and objects.


• Methods and Properties.
• __init__() Function.
• __str__() Function.
• The self Parameter.
• Modify Object Properties.
• Inheritance.
• Creating a Parent Class.
• Create a Child or Derived Class.
• Add Properties and Methods.
• Polymorphism.

7. OS Functions

• Installing 3rd party packages using pip.


• Performing File, Folder, Path and operations.
• Manipulating file paths and extensions.
• Handling Files, File Filters.
• Text files - read, append and write with practical applications.
• Storing and retrieving data.
• Folders and Folder operations.

8. Tkinter GUI Programming

• Geometry and mainloop.


Project - Geometric calculator.
• Setting dialog box properties, title, icon, size and location.
• Adding widgets and adjusting their properties and placement.
• Tkinter Datatypes - Double, Integer, Strings, and Boolean.
• Data Type Conversion - tkInter variables and python variables.
• Labels - static and dynamic.
• Entry Textboxes - storing user input from textboxes into variables.
• Setting default values and last used values in text boxes.

• Button widget - formatting and calling functions.


• Check boxes and radio buttons.
9. Advanced GUI Programming

• Listboxes - single selection and multiple selections.


• Listboxes - adding items static and dynamic.
• Listbox selection event binding.
• Listbox display total count and selection count.
• Listbox, remove selected item and remove all items.
• Listbox - add items from textbox.

• Scrollbar - adding scrollbar to a listbox.


• Spinner widget - setting range and layout.
• Scale widget - setting range and layout.

• Images - displaying images in a dialog box.

• File selection dialog.


• Single and multiple files.
• Adding file filters.
• Folder selection dialog.
• Selecting all files from folder dialog.
• Adding file filters for folder dialog.
• Opening files in associated application.

• Message boxes - information, query and warning .


• Configuring single line and multiline messages.
• Button configurations and icon synchronizing.
• Checking message box responses against button configurations.

• Option menu, add and remove items.


• Handling multiple dialogs.
• Adding pulldown menus, adding menu items.
• Cascading menus and adding commands to menu items.
Module 2: CSharp Programming

10. Installing Visual Studio

• Installing an older version.


• Setting the default language.
• Setting the environment and preferences.
• Customizing the layout.
• Solution Explorer, output and error windows.

11. Console applications and introduction to programming

• Selecting a project template.


• Setting up user interaction and collecting inputs.
• Calculations and output display.
• Using the .Net Math library functions.
• Various files and their meaning in the project structure.
• Separating source code from the executable.

12. Creating a Windows Forms Application

• Setting dialog box properties.


• Toolbox and the Properties window.
• Adding controls: Button, TextBox, Label, Checkbox, RadioButton.
• Adding images to PictureBox and other controls.
• Aligning text and images on controls.
• Composite controls: ListBox and ComboBox.
• Adjusting various properties for each type of control.
• Variable types - Double, Integer, String and Boolean.
• Acquiring user input from various controls into variables.

13. File Open dialog and File Save dialogs

• Creating basic, compound and composite file filters.


• Dialog properties and startup paths.
• Reading single and multiple files from a file dialog.
• Opening various type of files using a file dialog.

14. Folder Selection Dialog

• Getting files from folder.


• Filtering file types in a folder dialog.
• IO.Directory functions.
• Anchoring controls to the Form.
15. Message Boxes

• Configuring single line and multiline messages.


• Button and icon selection.
• Using If-Then-Else statements.
• Checking message box responses.

16. Arrays

• Filling arrays and reading array elements.


• Filling ListBoxes with array elements.
• For Loop and ForEach loop.
• ArrayLists and Lists - advantages and limitations.

17. Functions and Subroutines

• Arguments, return types and return values in functions.


• ref and out clauses.
• Enums and constants.
• Errors - syntax, logical and exceptions.
• Exception handling.
• Post-build events.
• Runtime update.
• LINQ – Language Integrated Queries, and Lambda functions.
Select, FindAll, Take, TakeWhile, Skip, SkipWhile, First queries.

18. Object Oriented Programming

• Creating a class.
• Adding member functions.
• Static and non-static methods.
• Class constructor and object variables.
• Public and Private methods.
• Adding member variables.
• Derived class.
• Inheritance and Interfaces.
• Encapsulation.
• Polymorphism and function overloading.
• DLL and EXE, differences and usage.
• Casting – traditional and modern methods.
• Class Attributes.
19. Multi-Form Projects

• Adding Forms to a project.


• Adding Forms to a console application.
• Form objects and invoking Forms.
• Default constructor and modified constructor.
• Exchanging data between Forms.
• Default values in forms.
• Storing and retrieving data.
• Events and Event Handling.

Module 3 : Revit API using CSharp

20. Creating a Plugin

• The Revit API.


• Viewing the Revit API.
• Setting up Visual Studio.
• Add classes and implement interface.
• The IExternalCommand.
• Creating a command.
• Task dialog.
• Task dialog builder.
• Invoking the application in Revit.

21. Plugin Usage

• Registering add-ins.
• Compiling the code.
• Creating a manifest file.
• Lookup and Snoop techniques.

22. Selections in Revit

• Element Selection.
• Retrieving properties of selected elements.
• Selection Filter.
• Filters Basic.
• Get an element using filters.
• Logical Filters.
• Filtering using LINQ techniques.
• Querying the FilteredElementCollector.
• Retrieve Elements and element ids.

23. Working with Revit Elements

• Classifying elements.
• Retrieving element information.
• Filtered Element Collector.
• Creating a collector.
24. Transactions

• Start, commit and rollback transactions.


• Modifying elements.
• Creating families.

• Creating line-based elements.


• Creating loop elements.

25. Parameters

• Parameter Object Hierarchy


• Retrieve Parameter Value
• Set Parameter Value

26. Element Creation

• Project: Creating walls.


• Single Wall Creation
• Multiple Wall Creation
• Floor Creation
• Element locations.
• Point locations and location curves.
• Editing methods.
• Single Transaction.
• Group Transactions.

27. Automating Drafting and Drawing

• Tagging elements.
• Creating automatic element tags.
• Creating sheets.
• Placing views.
• Creating a Plan View.

28. Excel Automation and Integration

• Integrating Revit API with Excel.


• Reading data from Excel and creating objects in Revit.
• Writing out Revit model data to Excel sheets.
• Invoking Excel from CSharp.
• Creating new workbook.
• Connecting to Excel.
• Connecting to existing worksheets.
• Accessing range and cells.
• Writing and reading values from cells.
• Formulas and results.
• Formatting cells - font and layout.
• Excel Macro recording and integration.
❖ Project - Writing Revit Information to Excel.
❖ Project - Reading from Excel into Revit.

Module 4 : Revit API using Python

29. Creating a Plugin

• Element Selection.
• Retrieve Elements and element ids.
• Retrieving properties of selected elements.

• Task Dialogs.
• Configuring Task Dialogs.
• Title, instructions, contents, Header and Footer.
• Command buttons, cancellation, Command buttons.
• Links and Display actions.

• Selection Filter.
• Filters Basic.
• Get an element using filters.
• Filtered Element Collector.
• Inspect Elements inside the collection.
• Built In Categories.
• Filtering using LINQ techniques.
• Querying the Filtered Element Collector.

Project: Adding View Tags.


Project: Move Room Tag to Center.
Project: Adding Sheets in Revit.

• Working with Parameters.


• Reading and Writing Parameters.
• Getting parameters from Revit elements.
• Getting parameter by Name.
• Getting the value from a parameter.
• Setting a Parameter value.
• Family Parameters.
• Built-In Parameters.

• Working with transaction.


• Start, commit and rollback transactions.
• Single Transaction.
• Group Transactions.

• Element Creation.
• Project: Creating walls.
• Single Wall Creation.
• Multiple Wall Creation.
• Floor Creation.
• Element locations.
• Point locations and location curves.
• Editing methods.

• Element Geometry and Vectors.


• Intersecting geometry.
• Vectors and projecting rays.
• Finding shortest distance and interference.

Module 5: AI Programming in Revit API and Dynamo

Highlights:

Dynamo
Machine Learning using Python
Create AI-Powered Revit Plugins
Create AI-Powered Dynamo Nodes
PyRevit
Revit Python Shell
Revit Lookup

30. Dynamo

• What is Dynamo.
• What is Visual Programming.
• Getting Started with Dynamo.
• The Building Blocks of Dynamo.
• Automatic Manual Execution.

• Parts of a Node.
• Node Types: Create, Action, and Query.
• Searching, browsing and adding nodes.
• Quick Nodes.
• Node wiring and data flow.
• Unwiring nodes.

• Grouping and ungrouping.


• Duplicating and renaming nodes.
• Input, output and previews.
• Watching node output.

• DesignScript Language in detail.


• Code blocks.
• Numerical inputs and Sliders.
• Code Vs. Nodes.
• Using Variables in nodes.
• Statements and values.
• Lists and List Slicing.
• Arithmetic and logical Operators.
• Built Functions.
• Custom Functions.
• List Range and indices.
• Graph view and background view.
• Zoom , Pan and rotate graphs.
• Mouse and keyboard shortcuts.
• Creating Custom Nodes.
• Custom Nodes – Computational.
• Custom Nodes – Geometrical.
• Store and Distribute Dynamo Scripts.
• Save and Share Dynamo Custom Notes.

31. Programming Python Nodes in Dynamo

• Input and output wiring.


• Arguments, Arrays and Lists.
• Coupling Output of Python Script to nodes.
• Performing Arithmetic operations in Python nodes.
• Performing Geometrical operations in Python nodes.
• Using Proto Geometry.
• Variables.
• Points and Coordinates.
• List and List Slicing.
• For Loop.
• For Loop with If.
• While Loop.
• Break and Continue.
• Shorthand for Loops.
• Node Lacing and Nested Loops.
• Functions and Arguments.
• Create and Use Python Modules.
• Use Built-in Modules.

32. Using Dynamo with Revit

• Creating geometry - point, lines.


• Creating Revit geometry.
• Lists and Ranges.
• Grids and matrix.
• Lacing techniques.

• Visualizing parameter data.


• Create, Action, Query nodes.
• Filter list by element type.
• Automating repetitive tasks.
• How to create column grids.
• Working with data in Excel.
• Family types and instances.
• Creating custom nodes.

• Boolean Expressions in DesignScript


• Generating Number Range using DesignScript
• Generating Lists Using DesignScript
• Generating multiple geometry Using DesignScript

Project: Working with data in Excel.


Project: Create column grids.

• Using the Dynamo player in Revit

33. Using Python Nodes in Dynamo with Revit API

• Modules and Libraries.


• Using the Revit node library.
• Layout of Python nodes in Dynamo.
• Extracting information from Revit using Python.
• Creating Elements in Revit.
• Revit Objects Vs .Dynamo Objects.
• Convert between Dynamo Geometry and Revit Geometry.

Project: Stair Paths.


Project: Room Finishes.

34. Machine Learning and AI - NumPy - Numerical and Scientific Processing

• Arrays.
• One Dimensional Array.
• Multidimensional Array.
• Create Arrays from Data.
• Create array from Ranges.
• Shape.
• Array Intersection.
• Array Difference.
• Sum.
• Slicing Array.

Pandas - Big Data Processing


• Series.
• DataFrames.
• Dataframe Indexing.
• Dataframe Head, Tail.
• Dataframe Shape.
• Read DataFrame from CSV.
35. Matplotlib - Visualization
• Line Plots.
• Sub Plots.
• Plot Properties - Color, Style.
• Grid, xLabel, yLabel.
• Bar Plots.
• Bar SubPlots and Orientation.
• Scatter Plots and Subplots.
• Mixed Plots and Overlapping.
• Markers and LineWidth.
• Exporting Plots.
• Pie Charts.

36. Decision Trees


• Decision Tree Classifiers
• Dataframe
• Extracting Features & Labels from a Dataframe
• Fitting Features & Labels into a decision algorithm
• Predicting values based on classification
• Dual Classification and Multiclass classification
• Reading CSV data into Dataframes
• Separating input and output
• Dropping frames from dataframes
• Label Encoders
• Fit Transforms
• Predicting results

37. Linear Regression Analysis

• Reading a CSV data file


• Create Linear regression model
• Fit data columns directly to the algorithm
• Determine coefficient and intercept
• Reading bulk inputs data from CSV
• Predicting output for entire column
• Exporting output dataframes to CSV
• Create a scatter plot of the data

38. K-Means Clustering

• Project Clustering Symbol Errors based on Drawing Sheet Zones


• Importing data
• Determining clusters
• Determining the cluster to which a point belongs
• Visualize cluster using scatter plots
• Visualize cluster centers

Project: Integrating Machine Learning Models into Revit Plugins: with Project
Project: Integrating Machine Learning Models into Dynamo Nodes: with Project
39. Revit Lookup

• Download and installation.


• Exploring, Revit objects and values.
• Analyzing current data state.
• Snooping Revit Document.
• Snooping current selection.
• Inspecting Edges, Faces and Linked Elements.
• Manipulating Revit Values and Parameters.

40. Revit Python Shell

• Installation and configuration


• CPython3 and IronPython
• Similarity and differences
• Features and advantages
• Understanding ByteCode
• Create Revit Plugins
• Deploy Plugins using the RpsAddin

41. PyCharm Editor

• How to install and configure.


• Environments and configuration
• Keyboard shortcuts

42. PyRevit

• What is PyRevit?
• How to install?
• Benefits and utilities.
• How to create Plugins using PyRevit.

43. Revit API Docs - How to use?

• Exploring Samples
• How to convert .Net samples to Python.
44. How to use ChatGPT for Revit API Development

45. Useful Dynamo resources

• Best practices for programming in Revit.


• Resume Preparation.
• Interview Preparation.
• 100 Interview QA.

• Free study material.


• Free sample programs.
• Free projects.
• Free Python scripts.
• Free plugins.
• Free Python Templates.

Other eBooks and Training Programs from CADVertex:

❖ CATIA Automation: VB.Net or CSharp or Python


❖ SolidWorks Automation: VB.Net or CSharp or Python
❖ Solid Edge Automation: VB.Net or CSharp or Python
❖ Inventor Automation: VB.Net or CSharp or Python

❖ NX Open: VB.Net or CSharp with Win Forms


❖ NX Open: VB.Net or CSharp with Block UI Styler
❖ Knowledge Fusion
❖ Knowledge Fusion with Block UI Styler

❖ Revit Automation using CSharp.Net + Dynamo


❖ Tekla Automation using CSharp.Net

❖ cMayoCAD: Learn to build a new CAD program from scratch


using a Geometric Modeling Kernel and CSharp

❖ CATIA Automation with Python and Machine Learning


❖ Solid Edge Automation with Python + Machine Learning
❖ SolidWorks Automation with Python + Machine Learning
❖ Inventor Automation with Python + Machine Learning

CADVertex Software
A-16 . Whispering Wind . Pashan-Baner Link Road
Pashan . Pune . 411021

www.CADVertex.com
[email protected]

WhatsApp/Telegram/Call:+91 9890611694
Join
CADVertex
CAD-BIM Automation Group
WhatsApp

Join
CADVertex
CAD-BIM Automation Group
Telegram

Follow

CADVertex on LinkedIn

Follow

CADVertex on Facebook

Follow

CADVertex on Instagram

Phone & Chat + 91 9890611694

eMail [email protected]

Website www.CADVertex.com

You might also like