Asynchronous Interactions and Managing Modeless UI with Autodesk Revit API

Size: px
Start display at page:

Download "Asynchronous Interactions and Managing Modeless UI with Autodesk Revit API"

Transcription

1 Asynchronous Interactions and Managing Modeless UI with Autodesk Revit API Arnošt Löbel Sr. Principal Software Engineer, Autodesk, Inc.

2 Class Summary In this class we will explore the realms of challenging workflows with the Revit API. You will learn common safe practices and you will understand the ways of the API. Together we will dive into the territory of asynchronous interactions with Revit and you will learn how to make such interactions efficient and safe.

3 Learning Objectives By the end of this class, you will: Understand the rules of safe interactions with the Revit API Learn the concept of controlling Revit asynchronously and the common pitfalls of such tasks Know how to use the Idling event to deliver results from an outside thread back to Revit Be able to streamline communications between an external modeless dialog and Revit Become familiar with using dynamic events to react to model changes

4 Knowledge is freedom The Revit API team wants to give API clients as much freedom as possible, but there are certain rules everyone should follow (and understand): 1. Thy shall not call the API unless invoked by it! 2. Thy shall not call the API from a different thread! 3. Thy shall call the API only, not the UI!

5 There s a jungle out there! (Randy Newman)

6 Things can go awry in asynchronous workflows Where s the danger? Why aren t we more protected? Secured gateways What could possibly happen? Scary stories to learn from The just reading case The case of crashed Revit The Russian Roulette case

7 Where is the danger? API clients make asynchronous calls mostly for good reasons, particularly to speed up Revit, but the outcome of unexpected invocations is often severe Documents will not be protected properly (no firewall!) Transaction and Regeneration mode not set Revit will not know the running application's ID The API scope is out of sync therefore events and updaters may behave unexpectedly

8 Why aren t we more protected? Most of unexpected calls either cause exceptions that would not happen otherwise, or miss on exceptions that should happen. Both cases could be equally dangerous. Revit cannot handle it because: Revit does not have a multi-thread-ready API Revit uses multi-threading internally only Revit uses a different thread context in the API API Firewall is not set around each every API call Revit doesn t expect API calls from other than the main Revit thread!

9 Secured gateways Execution tasks during which Revit expects API calls: A. The OnStartup and OnShutdown methods B. The Execute method of an external command C. Execution of a VSTA macro D. Handling an API event E. Invoking methods of a callback interface Outside of these tasks Revit does not know your application!

10 What could possibly happen? A. Nothing bad at all happens The call succeeds and all is fine (but would you bet on it?) B. Calls appear all right and returning successfully Though the gathered data are out of date or out of sync C. Calls fail, exceptions are thrown And this is actually a good scenario! D. Revit crashes, document(s) must be closed Frustration. Hard to determine whom to blame E. Revit model is corrupted by two independent processes In the worst case, the corrupted document is saved!

11 The just-reading case Consider for a moment one of the less severe scenarios when the asynchronous call (AC for short) just reads data from the model: 1. AC calls to get one parameter of a wall 2. Another application changes the wall on Idling 3. AC calls to get another parameter of the wall 4. An updater reacts to the change by another change 5. AC calls to get another parameter of the wall Though the calls were next to each other in the client s code, they were technically executed at different times and the data acquired by each of the methods reflects the state of the model at those different times.

12 The case of crashed Revit 1. User invokes an external command 2. Command splits a worker thread and waits for it to finish 3. The thread attempts to start a transaction 4. Revit throws an unhandled exception, possibly crashes How come this is an unsafe workflow? Because Revit API was called from another thread! What was the reason for the crash? Revit allocated memory in a wrong thread s context!

13 The Russian Roulette case Calling Revit API directly from a modeless dialog is not unlike betting in Las Vegas. One can gain something sometimes, but they will get you eventually. Applying it to our case something s going to crash. 1. Revit calls an external command 2. Command launches a modeless dialog and returns 3. The dialog awaits the user s requests 4. On a request, the dialog uses the API to modify the model The outcome of such calls is virtually unpredictable.

14 Happy Together (asynchronously)

15 Asynchronous workflows by the book Idling to the rescue The basic pattern A workflow with a twist Idling event s details Document-Changed event Code samples Modeless dialog Worker thread

16 Idling to the rescue 1. Use Idling to make API calls at unspecified times 2. Idling means Revit API is ready 3. DocumentChanged means Revit s done something 4. Those events are powerful when used together 5. Call to the API must be on the event s thread

17 The standard modeless pattern 1. An application registers itself and its commands 2. A command kicks off a modeless dialog and leaves it 3. The command registers for the Idling event 4. Command returns, Revit continues running 5. At times, Revit raises the Idling event 6. The event s handler checks if the dialog requested anything 7. If so, the handler takes the request and use the API 8. When the dialog is closed, it sets a flag somewhere 9. When flag is set, on next Idling the handler unregisters itself

18 Modeless dialog workflow Return to Revit Command or OnStart Dialog request Set (& wait) Create a Dialog Modeless Dialog Request_Id Make API Calls Unsubscribe from Idling Get & Reset No No Subscribe to Idling Request Handler Got a request? Dialog closed? Close Dialog Return to Revit Dialog Still open? No Idling raised OnShutDown

19 A workflow with a twist When changes to the model on individual interaction are not atomic, the Idling even is not enough; the DocumentChanged event must also be utilized. The differences from the basic workflow are: 1. Subscribe to Idling and DocumentChanged 2. On each document-changed event 1. Check if any data related to the process changed, and if so: 2. Clear the Model of the obsolete data 3. And restart the worker process

20 The Idling event s details Idling is a UI-concept It is in RevitAPIUI & the sender is UIApplication Idling is raised when: Revit is not doing anything and is ready to do something No command executing, no editor running, no transaction open Idling is raised a lot, it should not be abused Spend as little time in the handler as possible If you need to do more, do it in another thread Just being subscribed can slow down your computer Only subscribe when you need it And unsubscribe as soon as you do not need it

21 The DocumentChanged event Technically not part of a transaction Runs before a transaction ends but after Updaters It runs when a transaction is either committed or rolled back It also runs when transaction(s) is/are undone or redone Handler is not permitted to make model changes Handler has access to three sets of changed elements: Added elements Modified elements Deleted elements

22 How stuff works

23 How stuff works in the Revit API Regeneration modes Transaction modes Document modifiability Element validity Object lifespan API events External commands API callbacks Dynamic updaters API Scopes API Firewall

24 Regeneration modes Automatic mode is obsolete Only the Manual mode is supported It does not have to be declared (and should not be) Things to remember Programmers invoke regeneration as they need it A changed model should be regenerated before it is read from Regeneration is smart it only updates parts that need it End of a transaction always triggers regeneration A regeneration alone is sometimes not enough

25 Transaction modes Automatic mode For compatibility only (possibly going to be phased out) Manual mode The preferred way Read-Only mode Guarantees the active document does not get modified Transaction mode applies to external commands only Event handlers invoked during a command are on their own

26 Transactions Transactions may not be nested! Only groups and sub-transactions may be nested (properly) Transactions may fail - always check the status! Transaction being committed may actually return the RolledBack status instead of Committed API transaction failures are handled modally by default Modeless handling is possible, but requires using the Transaction Finalizer (use cautiously)

27 Document modifiability Document is Modifiable If it has an open transaction and is not in read-only state If a document is ReadOnly It is permanently or temporary in a read-only state Document is ReadOnlyFile This property only refers to the actual file on disk To be able to start a transaction: Document must not be read-only Document must not be modifiable yet

28 Element validity An element ceases to exist when: The element is deleted Creation of the element is undone Deletion of the element is redone The element-creating transaction was rolled back The native object is physically deleted The element comes back to life when: The deletion of the element was undone The creation of the element was redone (This resurrecting only works for elements)

29 Object lifespan Most objects are wrappers around native instances Some wrappers own native objects, some don t Control lifespan with the using block Particularly important with transaction phases Garbage collector takes care of managed objects But Revit does not delete collected native resources You can purge them explicitly by calling PurgeReleasedAPIObjects

30 API Event crash course Handlers are called on first-come-first-served basis Pre-events are raised before post-events Invocation loop stops by cancelling the event Post-events are always raised Document-level handlers are no longer called first Handlers are not permitted to use modeless failure handling Managed events depend on event observers in Revit There is an API Firewall around every call out A command that breaks the rules of the firewall will be discarded

31 API Events for the curious Managed events depend on native event observers in Revit All managed handlers of a particular event are grouped in one internal observer of that event Application vs. the Controlled Application events These subscriptions are virtually identical Subscribes are held in one common repository Unsubscribing from events during events is possible One can unsubscribe from any other event Even from the one currently being handled

32 External commands A command may be invoked only when: No other command is being executed No edit mode or editor is in effect No transaction or groups are open in the active document Revit does not guarantee any lifetime of a command Changes made by failed commands are discarded There is an API Firewall around every call out A command that breaks the rules of the firewall will be discarded

33 API callbacks Delegates given to Revit to be invoked later Callback classes names start with an I Dynamic updater - IUpdater Transaction Finalize - ITransactionFinalizer Callbacks are not just managed delegates Every callback has a native part, which is called first and bypasses the calls to the managed object Callbacks lifespan is not always controlled by Revit

34 Dynamic updaters They technically extend model regeneration outside of Revit They are invoked at the end of a committed transaction Updaters are not invoked for undone and redone transactions Registering and unregistering is not allowed during updates Certain API methods are forbidden during execution Updates provide access to changed elements: Added and deleted rule each other out Changed elements were neither added nor deleted

35 API Scope API Invocations may be nested, for example: Revit may invoke a command triggering an event to be handled triggering another event to be handled causing a dynamic updater to be executed The invoked executors may be from different applications Revit keeps a FILO stack of the executors Revit knows the application running atop And uses it sometimes to grant or refuse certain operations The first-level executor is responsible for mistakes

36 API Firewall It is around API invocations Particularly those allowed to have their own transactions It guards tasks to be finished properly Nothing is allowed to be left open in the active document If that happens, the procedure is rendered a failure If the active document is allowed to change: The formerly active document must be free of transactions This is currently allowed during commands only (not events)

37 Summary

38 What we have learned I shall not call the API unless invoked by it I shall not call the API from a different thread I shall call the API only, not the UI I shall use the Idling event efficiently

39 Questions?

40 Autodesk, AutoCAD* [*if/when mentioned in the pertinent material, followed by an alphabetical list of all other trademarks mentioned in the material] are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. Autodesk reserves the right to alter product and services offerings, and specifications and pricing at any time without notice, and is not responsible for typographical or graphical errors that may appear in this document., Inc. All rights reserved.

Locking and Worksharing in Revit Server

Locking and Worksharing in Revit Server AUTODESK BUILDING INFORMATION MODELING Locking and Worksharing in Revit Server Understanding the various lock types used by Revit and Revit Server Introduction Revit uses a system of permissions and locks

More information

Autodesk Revit Architecture 2011

Autodesk Revit Architecture 2011 Autodesk Revit Architecture 2011 What s New Image courtesy of Cannon Design Top Features Autodesk Revit Architecture 2011 Software Large Team Workflow Ease of Use Analysis and Visualization ation And Performance

More information

Architectural Visualization Workflow in Autodesk Building Design Suite 2013

Architectural Visualization Workflow in Autodesk Building Design Suite 2013 Architectural Visualization Workflow in Autodesk Building Design Suite 2013 Marvi Basha TU Graz Class Summary - What is Arch-Viz? - Revit vs. 3Ds Max - Workflow - Post Production Class Summary - What is

More information

Java EE Architecture, Part Two. Java EE architecture, part two 1

Java EE Architecture, Part Two. Java EE architecture, part two 1 Java EE Architecture, Part Two Java EE architecture, part two 1 Content Requirements on the Business layer Framework Independent Patterns Transactions Frameworks for the Business layer Java EE architecture,

More information

Install and Known Issues

Install and Known Issues Autodesk A360 Collaboration for Revit version 2015.5 Install and Known Issues Introduction: Autodesk A360 Collaboration for Revit version 2015.5 Autodesk A360 Collaboration for Revit version 2015.5 can

More information

Introduction to OpenMP

Introduction to OpenMP Introduction to OpenMP p. 1/?? Introduction to OpenMP Simple SPMD etc. Nick Maclaren nmm1@cam.ac.uk September 2017 Introduction to OpenMP p. 2/?? Terminology I am badly abusing the term SPMD tough The

More information

Program Validation & Data Management Using Autodesk Revit + drofus + an IFC Model Server

Program Validation & Data Management Using Autodesk Revit + drofus + an IFC Model Server Program Validation & Data Management Using Autodesk Revit + drofus + an IFC Model Server Rolf Jerving CEO Class Summary In this class, I will focus on new workflows enabled by combining Autodesk Revit

More information

ApacheCon NA How to Avoid Common Mistakes in OFBiz Development Presented by Adrian Crum

ApacheCon NA How to Avoid Common Mistakes in OFBiz Development Presented by Adrian Crum ApacheCon NA 2015 How to Avoid Common Mistakes in OFBiz Development Presented by Adrian Crum 1Tech, Ltd. 29 Harley Street, London, W1G 9QR, UK www.1tech.eu 1 Overview Common Getting Started Problems Common

More information

CS 3 Introduction to Software Engineering. 3: Exceptions

CS 3 Introduction to Software Engineering. 3: Exceptions CS 3 Introduction to Software Engineering 3: Exceptions Questions? 2 Objectives Last Time: Procedural Abstraction This Time: Procedural Abstraction II Focus on Exceptions. Starting Next Time: Data Abstraction

More information

Programming Autodesk Vault with the VDF. Dennis Mulonas and Doug Redmond Software Engineers, Autodesk

Programming Autodesk Vault with the VDF. Dennis Mulonas and Doug Redmond Software Engineers, Autodesk Programming Autodesk Vault with the VDF Dennis Mulonas and Doug Redmond Software Engineers, Autodesk Introduction This class will go over new API features in Autodesk Vault 2014. Most of the content will

More information

Networking AutoCAD for Control and Speed

Networking AutoCAD for Control and Speed Networking AutoCAD for Control and Speed Robert Green CAD-Manager.com Quick bio Mechanical engineer turned computer geek Private consultant since 1991 Focusing on CAD standardization, customization and

More information

Autodesk Revit Structure Autodesk

Autodesk Revit Structure Autodesk Autodesk Revit Structure 2011 What s New Top Features Autodesk Revit Structure 2011 Software Enhanced Design Features Fit and Finish Slanted columns Beam systems and trusses Concrete clean-up Concrete

More information

Autodesk Software Grant for F1 in Schools Step by Step Instructions

Autodesk Software Grant for F1 in Schools Step by Step Instructions Autodesk Software Grant for F1 in Schools Step by Step Instructions John Helfen Partnership Strategy Manager, Autodesk Education 2013 Autodesk Autodesk Software Students and Institution Student/Faculty/Mentor

More information

Exceptions in Java

Exceptions in Java Exceptions in Java 3-10-2005 Opening Discussion Do you have any questions about the quiz? What did we talk about last class? Do you have any code to show? Do you have any questions about the assignment?

More information

Autodesk Vault What s new in 2015

Autodesk Vault What s new in 2015 Autodesk Vault What s new in 2015 Lieven Grauls Technical Manager Manufacturing - Autodesk Digital Prototyping with Vault Autodesk Vault 2015 What s new Improved integration Updates to CAD add-ins Data

More information

Ext3/4 file systems. Don Porter CSE 506

Ext3/4 file systems. Don Porter CSE 506 Ext3/4 file systems Don Porter CSE 506 Logical Diagram Binary Formats Memory Allocators System Calls Threads User Today s Lecture Kernel RCU File System Networking Sync Memory Management Device Drivers

More information

Inside core.async Channels. Rich Hickey

Inside core.async Channels. Rich Hickey Inside core.async s Rich Hickey Warning! Implementation details Subject to change The Problems Single channel implementation For use from both dedicated threads and go threads simultaneously, on same channel

More information

Autodesk Subscription. Maximize the power of your design tools.

Autodesk Subscription. Maximize the power of your design tools. Autodesk Subscription Maximize the power of your design tools. What Does Autodesk Subscription Offer? With Autodesk Subscription you always have access to the most current and powerful set of software

More information

ò Very reliable, best-of-breed traditional file system design ò Much like the JOS file system you are building now

ò Very reliable, best-of-breed traditional file system design ò Much like the JOS file system you are building now Ext2 review Very reliable, best-of-breed traditional file system design Ext3/4 file systems Don Porter CSE 506 Much like the JOS file system you are building now Fixed location super blocks A few direct

More information

Stand-Alone Installation Guide and Getting Started with Autodesk Ecotect Analysis

Stand-Alone Installation Guide and Getting Started with Autodesk Ecotect Analysis Autodesk Ecotect Analysis 2010 Stand-Alone Installation Guide and Getting Started with Autodesk Ecotect Analysis This document describes how to install and activate Autodesk Ecotect Analysis 2010 software

More information

Project Collaboration

Project Collaboration Bonus Chapter 8 Project Collaboration It s quite ironic that the last bonus chapter of this book contains information that many of you will need to get your first Autodesk Revit Architecture project off

More information

Software Exception Flow Analysis for WPF C# Asynchronous Programs Using Microsoft Visual Studio

Software Exception Flow Analysis for WPF C# Asynchronous Programs Using Microsoft Visual Studio Software Exception Flow Analysis for WPF C# Asynchronous Programs Using Microsoft Visual Studio Summary Recently, I was working on an implementation of a new software product feature based on asynchronous

More information

Monitoring Serverless Architectures in AWS

Monitoring Serverless Architectures in AWS Monitoring Serverless Architectures in AWS The introduction of serverless architectures is a positive development from a security perspective. Splitting up services into single-purpose functions with well-defined

More information

Questions and Answers

Questions and Answers Autodesk Subscription Questions and Answers This document features frequently asked questions and answers that explain Autodesk Subscription program benefits, including the Autodesk 360 cloud platform

More information

Virtual CD TS 1 Introduction... 3

Virtual CD TS 1 Introduction... 3 Table of Contents Table of Contents Virtual CD TS 1 Introduction... 3 Document Conventions...... 4 What Virtual CD TS Can Do for You...... 5 New Features in Version 10...... 6 Virtual CD TS Licensing......

More information

Pack Manager Program System Design Document

Pack Manager Program System Design Document PACK MANAGER PROGRAM SYSTEM DESIGN DOCUMENT 1 Pack Manager Program System Design Document Latest Revision: 26 March 2014 Prepared by: Naing Htet Abstract This document describes the design of the software

More information

Using the Revit Extensions for Steel Framed Floor Design and Analysis

Using the Revit Extensions for Steel Framed Floor Design and Analysis Using the Revit Extensions for Steel Framed Floor Design and Analysis David J. Odeh, PE, SECB Odeh Engineers, Inc., North Providence, RI Many structural engineering firms have adopted Autodesk Revit Structure

More information

What s New in Autodesk V a ul t 20 18

What s New in Autodesk V a ul t 20 18 What s New in Autodesk V a ul t 20 18 Welcome & Agenda Introduction to Vault 2018 Enhanced Design Experience Engineering Efficiency Enabled Administration Tasks Delegation Autodesk Vault 2018 Building

More information

Deadlock and Starvation

Deadlock and Starvation Chapter 6 Deadlock and Starvation We now look into two more issues that make concurrent processing so much more difficult: deadlock and starvation. We will look at the problems first, and discuss a few

More information

GEN9638: Forensic CADology: When Good DWG Files Go Bad

GEN9638: Forensic CADology: When Good DWG Files Go Bad GEN9638: Forensic CADology: When Good DWG Files Go Bad David Park CAD/BIM Coordinator Steven Litzau, P.E. Manager of Design Technology Join the conversation Class summary An Intermediate to Advanced Level

More information

C# Asynchronous Programming Model

C# Asynchronous Programming Model Spring 2014 C# Asynchronous Programming Model A PRACTICAL GUIDE BY CHRIS TEDFORD TABLE OF CONTENTS Introduction... 2 Background Information... 2 Basic Example... 3 Specifications and Usage... 4 BeginInvoke()...

More information

Structure of Programming Languages Lecture 10

Structure of Programming Languages Lecture 10 Structure of Programming Languages Lecture 10 CS 6636 4536 Spring 2017 CS 6636 4536 Lecture 10: Classes... 1/23 Spring 2017 1 / 23 Outline 1 1. Types Type Coercion and Conversion Type Classes, Generics,

More information

The issues. Programming in C++ Common storage modes. Static storage in C++ Session 8 Memory Management

The issues. Programming in C++ Common storage modes. Static storage in C++ Session 8 Memory Management Session 8 Memory Management The issues Dr Christos Kloukinas City, UoL http://staff.city.ac.uk/c.kloukinas/cpp (slides originally produced by Dr Ross Paterson) Programs manipulate data, which must be stored

More information

Actors in the Small. Making Actors more Useful. Bill La

Actors in the Small. Making Actors more Useful. Bill La Actors in the Small Making Actors more Useful Bill La Forge laforge49@gmail.com @laforge49 Actors in the Small I. Introduction II. Making Actors Fast III.Making Actors Easier to Program IV. Tutorial I.

More information

Tackling Concurrency With STM. Mark Volkmann 10/22/09

Tackling Concurrency With STM. Mark Volkmann 10/22/09 Tackling Concurrency With Mark Volkmann mark@ociweb.com 10/22/09 Two Flavors of Concurrency Divide and conquer divide data into subsets and process it by running the same code on each subset concurrently

More information

Tackling Concurrency With STM

Tackling Concurrency With STM Tackling Concurrency With Mark Volkmann mark@ociweb.com 10/22/09 Two Flavors of Concurrency Divide and conquer divide data into subsets and process it by running the same code on each subset concurrently

More information

What s New in Autodesk Revit Structure Autodesk

What s New in Autodesk Revit Structure Autodesk What s New in Autodesk Revit Structure 2010 Top Features Modeling and Analysis Enhanced Modeling Capabilities Slanted columns Conceptual form modeling Bridge modeling Steel connection modeling Conceptual

More information

Creating Fills and Transparency in SketchBookk Designer

Creating Fills and Transparency in SketchBookk Designer Autodesk Design Suite 2012 Autodesk SketchBook Designer 2012 Tip Guides Creating Fills and Transparency in SketchBookk Designer In this section you will learn the following: When to convert AutoCAD layers

More information

Mozart System Limitations for Version (draft)

Mozart System Limitations for Version (draft) Mozart System Limitations for Version 1.3.0 (draft) Peter Van Roy and Seif Haridi April 28, 2004 In der Beschränkung zeigt sich erst der Meister. Within limitations the Master is first revealed. Johann

More information

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams.

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams. The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams. System Model Deadlock Characterization Methods of handling

More information

Best Practices for Loading Autodesk Inventor Data into Autodesk Vault

Best Practices for Loading Autodesk Inventor Data into Autodesk Vault AUTODESK INVENTOR WHITE PAPER Best Practices for Loading Autodesk Inventor Data into Autodesk Vault The most important item to address during the implementation of Autodesk Vault software is the cleaning

More information

Update Enhancement List

Update Enhancement List AUTODESK REVIT 2015 Update Enhancement List * Indicates an issue that was reported by a Revit user. ** Indicates an issue resolved within the Multi-Category Schedules Hotfix for Autodesk Revit 2015 Update

More information

Plant 3D Water content Workflow to transfer to Civil 3D

Plant 3D Water content Workflow to transfer to Civil 3D Enterprise Priority Support Plant 3D Water content Workflow to transfer to Civil 3D Rodney Page Morgan Smith Premium Support Specialists PSS APAC Delivery Team 2016 Autodesk Autodesk Project Kameleon Used

More information

SD Get More from 3ds Max with Custom Tool Development

SD Get More from 3ds Max with Custom Tool Development SD21033 - Get More from 3ds Max with Custom Tool Development Kevin Vandecar Forge Developer Advocate @kevinvandecar Join the conversation #AU2016 bio: Kevin Vandecar Based in Manchester, New Hampshire,

More information

Why Deprecating async() is the Worst of all Options

Why Deprecating async() is the Worst of all Options Doc No: WG21 N3780 Date: 2013-09-26 Reply to: Nicolai Josuttis (nico@josuttis.de) Subgroup: SG1 Concurrency Prev. Version: none Why Deprecating async() is the Worst of all Options The concurrency working

More information

Asynchronous Functions in C#

Asynchronous Functions in C# Asynchronous Functions in C# Asynchronous operations are methods and other function members that may have most of their execution take place after they return. In.NET the recommended pattern for asynchronous

More information

Revit + FormIt Dynamo Studio = Awesome!

Revit + FormIt Dynamo Studio = Awesome! Revit + FormIt 360 + Dynamo Studio = Awesome! Carl Storms IMAGINiT Technologies - Senior Applications Expert @thebimsider Join the conversation #AU2016 Class summary This lab session will focus on some

More information

FairCom White Paper Caching and Data Integrity Recommendations

FairCom White Paper Caching and Data Integrity Recommendations FairCom White Paper Caching and Data Integrity Recommendations Contents 1. Best Practices - Caching vs. Data Integrity... 1 1.1 The effects of caching on data recovery... 1 2. Disk Caching... 2 2.1 Data

More information

HOUR 4 Understanding Events

HOUR 4 Understanding Events HOUR 4 Understanding Events It s fairly easy to produce an attractive interface for an application using Visual Basic.NET s integrated design tools. You can create beautiful forms that have buttons to

More information

CHAPTER 3 RECOVERY & CONCURRENCY ADVANCED DATABASE SYSTEMS. Assist. Prof. Dr. Volkan TUNALI

CHAPTER 3 RECOVERY & CONCURRENCY ADVANCED DATABASE SYSTEMS. Assist. Prof. Dr. Volkan TUNALI CHAPTER 3 RECOVERY & CONCURRENCY ADVANCED DATABASE SYSTEMS Assist. Prof. Dr. Volkan TUNALI PART 1 2 RECOVERY Topics 3 Introduction Transactions Transaction Log System Recovery Media Recovery Introduction

More information

TS Thread Library Reference. Version 6.2, December 2004

TS Thread Library Reference. Version 6.2, December 2004 TS Thread Library Reference Version 6.2, December 2004 IONA, IONA Technologies, the IONA logo, Orbix, Orbix/E, Orbacus, Artix, Orchestrator, Mobile Orchestrator, Enterprise Integrator, Adaptive Runtime

More information

Chapter 1: Distributed Information Systems

Chapter 1: Distributed Information Systems Chapter 1: Distributed Information Systems Contents - Chapter 1 Design of an information system Layers and tiers Bottom up design Top down design Architecture of an information system One tier Two tier

More information

Text Input and Conditionals

Text Input and Conditionals Text Input and Conditionals Text Input Many programs allow the user to enter information, like a username and password. Python makes taking input from the user seamless with a single line of code: input()

More information

Subversion FOUR. 4.1 What is Version Control? 4.2 What is Subversion? Types of Version Control SESSION

Subversion FOUR. 4.1 What is Version Control? 4.2 What is Subversion? Types of Version Control SESSION SESSION FOUR 4.1 What is Version Control? Subversion Version control or revision control is the management of the evolution of information. Typically it is used in engineering or software development where

More information

Operating Systems. Operating Systems Sina Meraji U of T

Operating Systems. Operating Systems Sina Meraji U of T Operating Systems Operating Systems Sina Meraji U of T Remember example from third week? My_work(id_t id) { /* id can be 0 or 1 */... flag[id] = true; /* indicate entering CS */ while (flag[1-id]) ;/*

More information

CMSC 330: Organization of Programming Languages

CMSC 330: Organization of Programming Languages CMSC 330: Organization of Programming Languages Memory Management and Garbage Collection CMSC 330 - Spring 2013 1 Memory Attributes! Memory to store data in programming languages has the following lifecycle

More information

Journaling. CS 161: Lecture 14 4/4/17

Journaling. CS 161: Lecture 14 4/4/17 Journaling CS 161: Lecture 14 4/4/17 In The Last Episode... FFS uses fsck to ensure that the file system is usable after a crash fsck makes a series of passes through the file system to ensure that metadata

More information

Orbix TS Thread Library Reference

Orbix TS Thread Library Reference Orbix 6.3.9 TS Thread Library Reference Micro Focus The Lawn 22-30 Old Bath Road Newbury, Berkshire RG14 1QN UK http://www.microfocus.com Copyright Micro Focus 2017. All rights reserved. MICRO FOCUS, the

More information

Extending BPEL with transitions that can loop

Extending BPEL with transitions that can loop Extending BPEL with transitions that can loop ActiveVOS linksaretransitions BPEL Extension AN ACTIVE ENDPOINTS PAPER AUTHOR: DR MICHAEL ROWLEY 2009 Active Endpoints Inc. ActiveVOS is a trademark of Active

More information

Autodesk Vault and Data Management Questions and Answers

Autodesk Vault and Data Management Questions and Answers Autodesk Civil 3D 2007 Autodesk Vault and Data Management Questions and Answers Autodesk Civil 3D software is a powerful, mature, civil engineering application designed to significantly increase productivity,

More information

What s new in Autodesk 3ds Max 2016

What s new in Autodesk 3ds Max 2016 What s new in Autodesk 3ds Max 2016 Cadline Community 3ds Max 2016 3ds Max and 3ds Max Design Are Coming Together United for this release. Design-only features are now in 3ds Max 2016. 3ds Max 2016 A Unified

More information

Oracle Banking Digital Experience

Oracle Banking Digital Experience Oracle Banking Digital Experience Core Corporate Admin User Manual Release 17.2.0.0.0 Part No. E88573-01 July 2017 Core Corporate Admin User Manual July 2017 Oracle Financial Services Software Limited

More information

Best Practices for Implementing Autodesk Vault

Best Practices for Implementing Autodesk Vault AUTODESK VAULT WHITE PAPER Best Practices for Implementing Autodesk Vault Introduction This document guides you through the best practices for implementing Autodesk Vault software. This document covers

More information

Create Effective Instructions Basics and Everyday Workflows for Autodesk Inventor Publisher

Create Effective Instructions Basics and Everyday Workflows for Autodesk Inventor Publisher Create Effective Instructions Basics and Everyday Workflows for Autodesk Inventor Publisher Anirban Ghosh Principal User Experience Designer Tyler Barnes Senior Product Manager Class Summary We all need

More information

Proposed Wording for Concurrent Data Structures: Hazard Pointer and Read Copy Update (RCU)

Proposed Wording for Concurrent Data Structures: Hazard Pointer and Read Copy Update (RCU) Document number: D0566R1 Date: 20170619 (pre Toronto) Project: Programming Language C++, WG21, SG1,SG14, LEWG, LWG Authors: Michael Wong, Maged M. Michael, Paul McKenney, Geoffrey Romer, Andrew Hunter

More information

IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft.NET Framework Agent Fix Pack 13.

IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft.NET Framework Agent Fix Pack 13. IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft.NET Framework Agent 6.3.1 Fix Pack 13 Reference IBM IBM Tivoli Composite Application Manager for Microsoft Applications:

More information

CS 160: Interactive Programming

CS 160: Interactive Programming CS 160: Interactive Programming Professor John Canny 3/8/2006 1 Outline Callbacks and Delegates Multi-threaded programming Model-view controller 3/8/2006 2 Callbacks Your code Myclass data method1 method2

More information

Guide to Business Continuity Preparedness

Guide to Business Continuity Preparedness Guide to Business Continuity Preparedness Released June 22, 2016 Revised June 6, 2018 duo.com Table of contents 1. Overview Why do I need this guide? Planning for success 2. Types of outages How do I know

More information

Schedules Can t Do That in Revit 2017

Schedules Can t Do That in Revit 2017 Schedules Can t Do That in Revit 2017 Michael Massey Senior AEC Application Consultant @mgmassey01 Join the conversation #AU2016 Presenting Today.. Mike Massey Senior AEC Application Specialist 25+ Years

More information

Update Enhancement List

Update Enhancement List AUTODESK REVIT 2015 Update Enhancement List * Indicates an issue that was reported by a Revit user. Improvements made in Update Release 14 Revit 2015 build: 20160512_1515 Revit 2015 R2 build: 20160512_0715

More information

Questions and Answers

Questions and Answers Autodesk Revit Architecture 2010 Questions and Answers Autodesk Revit Architecture 2010 software works the way architects and designers think, allowing you to work naturally, design freely, and deliver

More information

RUNTIME PERMISSIONS IN ANDROID 6.0 Lecture 10a

RUNTIME PERMISSIONS IN ANDROID 6.0 Lecture 10a RUNTIME PERMISSIONS IN ANDROID 6.0 Lecture 10a COMPSCI 702 Security for Smart-Devices Muhammad Rizwan Asghar March 20, 2018 2 ANDROID 6.0 A version of the Android mobile operating system officially released

More information

Testworks User Guide. Release 1.0. Dylan Hackers

Testworks User Guide. Release 1.0. Dylan Hackers Testworks User Guide Release 1.0 Dylan Hackers April 10, 2019 CONTENTS 1 Testworks Usage 1 1.1 Quick Start................................................ 1 1.2 Defining Tests..............................................

More information

History...: Displays a window of Gitk, a standard commit viewer for Git.

History...: Displays a window of Gitk, a standard commit viewer for Git. Git Services Wakanda includes Git features that will help you manage the evolution of your solutions and files. These features are designed to share code as well as to handle multi developer projects and

More information

Operating Systems. Overview Virtual memory part 2. Page replacement algorithms. Lecture 7 Memory management 3: Virtual memory

Operating Systems. Overview Virtual memory part 2. Page replacement algorithms. Lecture 7 Memory management 3: Virtual memory Operating Systems Lecture 7 Memory management : Virtual memory Overview Virtual memory part Page replacement algorithms Frame allocation Thrashing Other considerations Memory over-allocation Efficient

More information

Copyright. Restricted Rights Legend. Trademarks or Service Marks. Copyright 2003 BEA Systems, Inc. All Rights Reserved.

Copyright. Restricted Rights Legend. Trademarks or Service Marks. Copyright 2003 BEA Systems, Inc. All Rights Reserved. Version 8.1 SP4 December 2004 Copyright Copyright 2003 BEA Systems, Inc. All Rights Reserved. Restricted Rights Legend This software and documentation is subject to and made available only pursuant to

More information

Distributed Systems. The main method of distributed object communication is with remote method invocation

Distributed Systems. The main method of distributed object communication is with remote method invocation Distributed Systems Unit III Syllabus:Distributed Objects and Remote Invocation: Introduction, Communication between Distributed Objects- Object Model, Distributed Object Modal, Design Issues for RMI,

More information

6.830 Lecture Recovery 10/30/2017

6.830 Lecture Recovery 10/30/2017 6.830 Lecture 14 -- Recovery 10/30/2017 Have been talking about transactions Transactions -- what do they do? Awesomely powerful abstraction -- programmer can run arbitrary mixture of commands that read

More information

What s New in Autodesk Constructware 2013 Release

What s New in Autodesk Constructware 2013 Release Autodesk Constructware 2013 What s New in Autodesk Constructware 2013 Release Figure 1. Autodesk Constructware 2013 Autodesk Constructware web-based project management software enables construction firms

More information

COPYRIGHTED MATERIAL. Table of Contents. Foreword... xv. About This Book... xvii. About The Authors... xxiii. Guide To The Reader...

COPYRIGHTED MATERIAL. Table of Contents. Foreword... xv. About This Book... xvii. About The Authors... xxiii. Guide To The Reader... Table of Contents Foreword..................... xv About This Book... xvii About The Authors............... xxiii Guide To The Reader.............. xxvii Part I Some Concepts.................. 1 1 On Patterns

More information

Java Without the Jitter

Java Without the Jitter TECHNOLOGY WHITE PAPER Achieving Ultra-Low Latency Table of Contents Executive Summary... 3 Introduction... 4 Why Java Pauses Can t Be Tuned Away.... 5 Modern Servers Have Huge Capacities Why Hasn t Latency

More information

D Programming Language

D Programming Language Group 14 Muazam Ali Anil Ozdemir D Programming Language Introduction and Why D? It doesn t come with a religion this is written somewhere along the overview of D programming language. If you actually take

More information

CS 241 Honors Memory

CS 241 Honors Memory CS 241 Honors Memory Ben Kurtovic Atul Sandur Bhuvan Venkatesh Brian Zhou Kevin Hong University of Illinois Urbana Champaign February 20, 2018 CS 241 Course Staff (UIUC) Memory February 20, 2018 1 / 35

More information

Linking RISA Software with Revit 2017: Beyond the Basics

Linking RISA Software with Revit 2017: Beyond the Basics Linking RISA Software with Revit 2017: Beyond the Basics Matt Brown, S.E. RISA Technologies Join the conversation #AU2016 Class summary The Link between RISA and Revit has existed for more than a decade

More information

These are notes for the third lecture; if statements and loops.

These are notes for the third lecture; if statements and loops. These are notes for the third lecture; if statements and loops. 1 Yeah, this is going to be the second slide in a lot of lectures. 2 - Dominant language for desktop application development - Most modern

More information

Questions and Answers

Questions and Answers Autodesk Simulation 360 September 11, 2012 Questions and Answers Autodesk Simulation 360 provides powerful, flexible access to simulation software delivered securely in the cloud. Contents 1. General Product

More information

Thread Safety. Review. Today o Confinement o Threadsafe datatypes Required reading. Concurrency Wrapper Collections

Thread Safety. Review. Today o Confinement o Threadsafe datatypes Required reading. Concurrency Wrapper Collections Thread Safety Today o Confinement o Threadsafe datatypes Required reading Concurrency Wrapper Collections Optional reading The material in this lecture and the next lecture is inspired by an excellent

More information

SD21181-L : Coding New Nodes with Dynamo

SD21181-L : Coding New Nodes with Dynamo SD21181-L : Coding New Nodes with Dynamo Adam Sheather BIM Manager Applications & Technical Development @ AECOM Twitter: @gytaco Join the conversation #AU2016 Who am I? 15+ years in Buildings, Transport

More information

How to speed up a database which has gotten slow

How to speed up a database which has gotten slow Triad Area, NC USA E-mail: info@geniusone.com Web: http://geniusone.com How to speed up a database which has gotten slow hardware OS database parameters Blob fields Indices table design / table contents

More information

Oracle Banking Digital Experience

Oracle Banking Digital Experience Oracle Banking Digital Experience Core Corporate Admin User Manual Release 17.1.0.0.0 Part No. E83887-01 March 2017 Core Corporate Admin User Manual March 2017 Oracle Financial Services Software Limited

More information

Design Visualization with Autodesk Alias, Part 2

Design Visualization with Autodesk Alias, Part 2 Design Visualization with Autodesk Alias, Part 2 Wonjin John Autodesk Who am I? Wonjin John is an automotive and industrial designer. Born in Seoul, Korea, he moved to United States after finishing engineering

More information

Troubleshooting Revit Using Journal Files

Troubleshooting Revit Using Journal Files Troubleshooting Revit Using Journal Files Fernanda Lima Firman Frontline Technical Specialist Goal Our goal is to ensure you are familiar with the information recorded in the journals and to share with

More information

Getting Started with Autodesk Vault Programming

Getting Started with Autodesk Vault Programming Getting Started with Autodesk Vault Programming Doug Redmond Autodesk CP4534 An introduction to the customization options provided through the Vault APIs. Learning Objectives At the end of this class,

More information

Oracle Warehouse Builder 10g Runtime Environment, an Update. An Oracle White Paper February 2004

Oracle Warehouse Builder 10g Runtime Environment, an Update. An Oracle White Paper February 2004 Oracle Warehouse Builder 10g Runtime Environment, an Update An Oracle White Paper February 2004 Runtime Environment, an Update Executive Overview... 3 Introduction... 3 Runtime in warehouse builder 9.0.3...

More information

Autodesk SIM 360 Pro FY14 Product Launch FAQ for Autodesk Customers

Autodesk SIM 360 Pro FY14 Product Launch FAQ for Autodesk Customers Autodesk SIM 360 Pro FY14 Product Launch FAQ for Autodesk Customers imaginit.com/sim360 The purpose of this FAQ document is to provide Autodesk customers and prospects information about the Autodesk SIM

More information

Homework # 7 Distributed Computing due Saturday, December 13th, 2:00 PM

Homework # 7 Distributed Computing due Saturday, December 13th, 2:00 PM Homework # 7 Distributed Computing due Saturday, December 13th, 2:00 PM In this homework you will add code to permit a calendar to be served to clients, and to open a calendar on a remote server. You will

More information

Speed Up Windows by Disabling Startup Programs

Speed Up Windows by Disabling Startup Programs Speed Up Windows by Disabling Startup Programs Increase Your PC s Speed by Preventing Unnecessary Programs from Running Windows All S 630 / 1 When you look at the tray area beside the clock, do you see

More information

Upcoming Features in C# Mads Torgersen, MSFT

Upcoming Features in C# Mads Torgersen, MSFT Upcoming Features in C# Mads Torgersen, MSFT This document describes language features currently planned for C# 6, the next version of C#. All of these are implemented and available in VS 2015 Preview.

More information

The power of BIM for structural engineering. Autodesk Revit. Structure

The power of BIM for structural engineering. Autodesk Revit. Structure The power of BIM for structural engineering. Autodesk Revit Structure Improve Efficiency, Accuracy, and Coordination Concurrent modeling for structural design, analysis, and coordinated documentation Building

More information

AutoCAD Lynn Allen s Tips and Tricks

AutoCAD Lynn Allen s Tips and Tricks AutoCAD 2012 Lynn Allen s Tips and Tricks AutoCAD 2012 Lynn Allen s Tips and Tricks NOTE You must install Autodesk Inventor Fusion 2012 to use it. In Fusion you can zoom, pan, and orbit to navigate around

More information