dynamo, macros & add-ins - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and...

27
DYNAMO, MACROS & ADD-INS

Upload: dominh

Post on 28-Aug-2018

250 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS & ADD-INS

Page 2: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 2

AGENDA

Navigate your way around the computational side of Revit and Dynamo and be more confident in your pursuit of professional excellence.

1. Revit API

2. Why DYNAMO?

3. 0 Touch Nodes

4. Python Script

5. Why MACROS?

6. Why ADD-INS?

7. Languages

WHAT IS IT?

WHAT’S INSIDE?

And Presents!

Page 3: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 3

REVIT API

A set of functions and procedures that allow the creation of applications which access the features or data of an operating system, application, or other service.

WHAT IS IT?

WHAT’S INSIDE?

Code. Lots of code.

Revit API

Revit System

Page 4: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 4

MACROS AD

D-IN

S

DYNAMO*

* Users can contribute by simply writing nodes which they feel should be included out of the box. At this time, a very small subset of the Revit API has been exposed in Dynamo, so we hope that users familiar with the Revit API can contribute in order to expand that domain as well.

0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch

Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes NodesPy

thon

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Page 5: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

WHY DYNAMO?

Page 6: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 6

DYNAMO

PRODUCTIONVANILLA

STANDARD NODES

ARCHILAB

CLOCKWORK

LUNCHBOX

RHYTHM

SPRING

Page 7: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 7

GEOMETRY CREATION

WHAT IS IT?

WHAT’S INSIDE?

T-Spline Dynamo Coffee Table?

Page 8: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 8

DYNAMO Good for me and my whole family!

WHAT’S INSIDE?

Good for me and my whole family!

WHAT’S INSIDE?

Time:

Robustness:

Number of users:

Task size:

Flexibility:

https://forum.dynamobim.com/

STATS:

RESOURCE:

Page 9: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 9

Purge Imported DWGs

.dyn

WHAT’S INSIDE?

Sol Amour

“Try to use as many build-in nodes as possible - makes it easy on your clients downstream.”

Dynamo

Page 10: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 10

Purge Imported DWGsWHAT’S INSIDE? Courtesy of DIMITAR VENKOV @5devene

Dynamo + Zero Touch Nodesc#namespace DynamoNodes

{ public class ImportedInstance { public static List<bool> IsLinked([DefaultArgument(“{}”)] IList elements) { List<bool> value = new List<bool>();

foreach(var ins in elements) { value.Add((((Proto.Element) ins).InternalElement as ImportInstance) .IsLinked); }

return value; } }}

0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes0 Touch Nodes

.dyn

Page 11: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 11

Purge Imported Line Patterns

WHAT’S INSIDE?

Dynamo + Python Script.py

delete = IN[0]

doc = DocumentManager.Instance.CurrentDBDocument

TransactionManager.Instance.EnsureInTransaction(doc)

v d in delete:doc.Delete(Autodesk.Revit.DB.ElementId(d.Id))

TransactionManager.Instance.TransactionTaskDone()

Python ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython ScriptPython Script

.dyn

Page 12: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

WHY MACRO?

Page 13: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO!

Page 14: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 14

INTEGRATION

Dynamo location has been changed from the Add-Ins to the Manage tab. Since Revit 2017 Dynamo now ships with Revit by default.

WHAT IS IT?

WHAT’S INSIDE?

Coincidence!?

Page 15: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 15

MACROS

Time:

Robustness:

Number of users:

Task size:

Flexibility:

https://boostyourbim.wordpress.com/

I know Kung Fu!STATS:

RESOURCE:

WHAT’S INSIDE?

Page 16: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 16

Purge Imported DWGs

FilteredElementCollector

WHAT’S INSIDE?

Macroc#public void DeleteImporatedDWG()

{ Document doc = ActiveUIDocument.Document;

List<ElementId> list = new FilteredElementCollector(doc) .OfClass(typeof(ImportInstance)) .Cast<ImportInstance>() .Where(x => !x.IsLinked) .Select(x => x.Id) .ToList());

using(Transaction t = new Transaction(doc, “Delete Imported DWGs”)) { t.Start(); doc.Delete(list); t.Commit(); }}

MacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacrosMacros

.dyn

FilteredElementCollector

Page 17: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

WHY ADD-INS?

Page 18: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 18

TYPES OF ADD-INS

UI ENHANCEMENT (FREE) PROPRIETARY SOFTWARE (PAID)

SOLUTION TO SPECIFIC

PROBLEM

ANALYSIS SOLUTION

TO SPECIFIC PROBLEM

INTEROP.DATA

EXCHANGE

TOOLBOX COLLECTION

GENERAL UI UPGRADE

SO CORE THAT IT GETS ADOPTED BY REVIT

TOOLBOX COLLECTION

EXCHANGE

ANALYSIS SOLUTION

TO SPECIFIC

Page 19: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 19

ADD-INS This should be built-in!

WHAT’S INSIDE?

Time:

Robustness:

Number of users:

Task size:

Flexibility:

http://thebuildingcoder.typepad.com

STATS:

RESOURCE:

Page 20: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 20

Purge Imported DWGsWHAT’S INSIDE?

Add-In

Add-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-InsAdd-Ins

.dyn

Page 21: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 21

MACROS AD

D-IN

S

DYNAMO

* Users can contribute by simply writing nodes which they feel should be included out of the box. At this time, a very small subset of the Revit API has been exposed in Dynamo, so we hope that users familiar with the Revit API can contribute in order to expand that domain as well.

0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch0 Touch

Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes Nodes NodesPy

thon

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Pyth

on

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Scrip

tSc

ript

Page 22: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 22

LANGUAGE - CHOICE

MACROS PYTHON NODES DYNAMO

WINNERS

DesignScript

0 TOUCH NODES ADD-INS

Page 23: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 23

LANGUAGE - STATIC VS DYNAMIC

STATIC DYNAMIC

• dynamically typed

• concise

• best language for machine learning

• no Intellisense

• general purpose

• named after Monty Python!

• statically typed

• verbose

• best language for .Net

• Intellisense

• Windows specific

Page 24: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 24

Architect 10 years

ARCHILIZER

AAC, Bartlett

Page 25: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

DYNAMO, MACROS AND ADD-INS 25

DOWNLOAD

1. This Presentation

2. Delete Imported DWGs - Dynamo definition

3. Delete Imported DWGs - C# Macro Code

4. Delete Imported DWGs - Add-In

5. Delete Imported Line Patterns - Add-In

6. Delete elements - Python Code

WHAT IS IT?

WHAT’S INSIDE?

http://www.ukdug.co.uk/meetings.html

Don’t forget the Presents!

Page 26: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

ARCHILIZER ->

->

designtech

WWW.ARCHILIZER.COM designtech.io

Page 27: DYNAMO, MACROS & ADD-INS - ukdug.co.uk · dynamo, macros & add-ins. dynamo, macros and add-ins 2 agenda navigate your way around the ... dynamo, macros and add-ins 23 language - static

MACROS, DYNAMO & ADD-INS

@didonenov [email protected]