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