May 23, 2013:
Effortless Extensible Storage
Comments: 0 | Categories:
.NET ,
Algorithm ,
Data Access ,
Storage ,
View
Today we proudly present an exciting and powerful extensible storage utility class library by Victor Chekalin. I'll also add some other assorted items at the end: Extensible storage extension Example 1 – save integer value to an element Example 2...
May 17, 2013:
CouchDB Implementation and GitHub Repository
Comments: 0 | Categories:
Algorithm ,
Cloud ,
Element Relationships ,
External ,
HTML ,
JavaScript ,
JSON ,
Mobile ,
REST ,
SVG
I more or less completed the research for my cloud-based round-trip 2D Revit model editing project. I'll describe some parts of that, and also address Three aspects of life and programming Room editor navigation Nested asynchronous database call-back functions Roomedit...
May 15, 2013:
DWG Issues and Various Other Updates
Comments: 0 | Categories:
2014 ,
Data Access ,
DWG ,
Geometry ,
Storage
One of the highlights mentioned in the overview of the Revit 2014 API is the FreeForm element API that enables modification of solid geometry imported from DWG or SAT. Several other new DWG and DXF related features include import of...
May 14, 2013:
External Command Lister and Adding Ribbon Commands
Comments: 4 | Categories:
.NET ,
Installation ,
Ribbon ,
SDK Samples ,
User Interface ,
Utilities
I have been asked a couple of times how you can integrate multiple Revit add-ins from different sources together into a single ribbon panel. This topic has also been discussed on the web, e.g. towards the end of whether to...
May 12, 2013:
Removing Unused Mac Architectures, Languages and Files
Comments: 3 | Categories:
External ,
Mac ,
Utilities
Nature abhors vacuum, and every disk fills up. This Mac has a 500 GB SSD, which is great, but gradually getting cramped. Looking around for some disk space management tools, I also happened to stumble across Monolingual and made immediate...
May 11, 2013:
Source Code Formatting and Google Prettifier
Comments: 0 | Categories:
.NET ,
External ,
HTML ,
JavaScript ,
JSON ,
Utilities
As you know, I format my source code to pretty short lines in order to avoid having them truncated by the narrow blog post view column. I also like to present the code colour coded, as it appears in Visual...
May 9, 2013:
Add-In Wizards for Revit 2014
Comments: 2 | Categories:
.NET ,
2014 ,
Getting Started ,
Migration ,
Update ,
Utilities ,
VB ,
Wizard
I updated my Visual Studio Revit add-in wizards and am taking the time to publish them today, which is Ascension Day and a holiday in Neuchâtel. That also gives me some extra time to prepare for the June 3-4 Tech...
May 8, 2013:
Copy and Paste API Applications and Modeless Assertion
Comments: 0 | Categories:
2014 ,
Element Creation ,
Idling ,
SDK Samples ,
View
Here is a detailed description of one of the most exciting Revit 2014 API features that you should have heard about by now and promises numerous uses, prompted by a question from a developer on duplicating views from one document...
May 7, 2013:
A Simpler Dockable Panel Sample
Comments: 3 | Categories:
2014 ,
Events ,
Ribbon ,
SDK Samples ,
User Interface
Here is a very nice little sample on using the new Revit 2014 dockable panels by Håkan Wikemar of AEC, Sweden. In Håkan's words, it is close to the DockableDialogs SDK sample but easier to follow. The DockableDialogs SDK sample...
May 6, 2013:
My Cloud-Based 2D Editor Implementation and Status
Comments: 0 | Categories:
.NET ,
Algorithm ,
Cloud ,
Desktop ,
JavaScript ,
Mobile ,
Server
Continuing the research and development for my cloud-based round-trip 2D Revit model editing project, here are some issues I tackled since my last report: Updated project description and status CouchDB SVG editor implementation Home page: list all models and select...
May 2, 2013:
Revit 2014 SDK and Visual Debugging Tools
Comments: 0 | Categories:
2014 ,
Debugging ,
DWF ,
gbXML ,
Geometry ,
Utilities ,
View
Two hot topics for today, especially the first: Updated Revit 2014 SDK Visual debugging tools Updated Revit 2014 SDK An updated Revit 2014 SDK is live on the ADN Open Revit developer page now: www.autodesk.com/developrevit This version includes RevitLookup and...
April 30, 2013:
Transactions, Sub-Transactions and Transaction Groups
Comments: 3 | Categories:
Getting Started ,
Group ,
Transaction
Here is a recent query from a developer that led to a nice succinct overview of transactions, sub-transactions and transaction groups by Arnošt Löbel. This makes a change from the recent rash of monster posts. The last ten posts were...
April 29, 2013:
What's New in the Revit 2014 API
Comments: 0 | Categories:
2014 ,
News ,
RME ,
RST ,
SDK Samples ,
Update
Here is one post that I prepared well for in advance, by publishing the previous 'What's New in the API' sections two months back: What's New in the Revit 2010 API What's New in the Revit 2011 API What's New...
April 26, 2013:
Compiling the Revit 2014 SDK
Comments: 3 | Categories:
2014 ,
Getting Started ,
Installation ,
Migration ,
SDK Samples ,
Update
Here are some notes on the small issues I encountered compiling the Revit 2014 SDK: Compile and install RevitLookup Set up the Revit API assembly paths First compilation run causes expected errors Set up the RevitAddInUtility assembly path PointCurveCreation Office...
April 25, 2013:
Room and Furniture Loops Using Symbols
Comments: 0 | Categories:
.NET ,
Algorithm ,
Desktop ,
Element Relationships ,
Family ,
Geometry
Continuing the research and development for my cloud-based round-trip 2D Revit model editing project, I now implemented the first of the next steps mentioned at the end: Separation of symbol and instance data in my add-in and database structure: currently,...
April 24, 2013:
Migrating a Built-in Category and Other Things
Comments: 0 | Categories:
2014 ,
Data Access ,
Element Relationships ,
Family ,
Filters ,
Getting Started ,
Migration ,
Parameters
Here is a category related issue that appeared when migrating from the Revit 2013 to the Revit 2014 API, plus a several other typical simple little Revit API questions from the last day or two: Migrating the room separation lines...
April 23, 2013:
Accessing and Filtering by Ramp Material
Comments: 0 | Categories:
Data Access ,
Family ,
Filters ,
Geometry ,
Material
I had a chat with Ning Zhou, who was away from the Revit API for a while and is now happily back in the fold. He explored how to access the material of a ramp element. Access to Ramp Material...
April 22, 2013:
Grouping Schedule Headers and How to Do Something
Comments: 0 | Categories:
2014 ,
Data Access ,
Schedule ,
View
Here is my first real Revit 2014 post, sharing some code friendlily provided by David Robison of Design Master showing how to use the ViewSchedule.GroupHeaders method. Using the ViewSchedule GroupHeaders Method Question: I am trying to call ViewSchedule.GroupHeaders, and it...
April 19, 2013:
Room Editor Project Overview and CouchDB Configuration
Comments: 0 | Categories:
Cloud ,
Desktop ,
External ,
Mobile
Continuing the research and development for my cloud-based round-trip 2D Revit model editing project, here are some issues I tackled since my last report: Project Overview Replicating a CouchDB with Python Same origin policy snag and resolution Learning and struggling...
April 18, 2013:
Migrating The Building Coder Samples to Revit 2014
Comments: 0 | Categories:
2014 ,
Migration ,
Units ,
Update
I started migrating The Building Coder samples to Revit 2014. Funnily enough, on the exact same date as last year for the previous version. The changes are very small this time around. Furthermore, I am well prepared, since I recently...
April 17, 2013:
Perpetual GUID Algorithm and Revit 2014 Product GUIDs
Comments: 2 | Categories:
2014 ,
Data Access ,
External ,
Installation ,
Migration ,
Update
Every year anew, people ask for the Revit product GUIDs used to identify the Revit installation and stored in the Windows registry under HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall I already answered several queries from developers lately wishing to update their installers for the new...
April 16, 2013:
Changing a Family Parameter from Type to Instance
Comments: 0 | Categories:
Family ,
Parameters
Here is a short and simple question that just cropped up and required some digging around until my colleague Phil Xia came up with the right answer: Question: Is it possible to change the type of a family parameter programmatically?...
April 12, 2013:
Launching AutoCAD within a Revit Add-in
Comments: 0 | Categories:
.NET ,
ACA ,
DWG ,
External ,
VB
We looked at the topic of running AutoCAD inside a Revit add-in way back in 2008, in the grey and dusty beginnings of this blog. Many developers have made use of that since then, and the topic is still important...
April 11, 2013:
Desktop to Cloud via DreamSeat CouchDB Client
Comments: 0 | Categories:
.NET ,
Cloud ,
Desktop ,
External ,
SVG
Continuing the research and development for my cloud-based round-trip 2D Revit model editing project, I now started looking at storing the plan view room and furniture boundary loop data in the cloud. I wound up the main Revit add-in functionality...
April 10, 2013:
Setting up your ViewOrientation3D
Comments: 0 | Categories:
.NET ,
2013 ,
Algorithm ,
Element Creation ,
Geometry ,
Migration ,
View
Here is a contribution from Mario Guttman of CASE, who already made various contributions here in the past. He says: I have been purging my 2013 code of deprecated functions in preparation for my 2014 upgrade. One group of statements...
April 9, 2013:
Handy Utility Classes
Comments: 1 | Categories:
Utilities
Rudolf Honke of Mensch und Maschine acadGraph GmbH has repeatedly encouraged me to raise awareness of the numerous utility classes available in the Revit API and now provided the following starting point for a discussion of them. One way to...
April 8, 2013:
GeoSnoop .NET Boundary Curve Loop Visualisation
Comments: 0 | Categories:
.NET ,
Algorithm ,
Desktop ,
External ,
Geometry
Continuing the research and development for my cloud-based round-trip 2D Revit model editing project, I explained how I use the ExtrusionAnalyzer to create a plan view boundary profile for the furniture and equipment family instances, sort and orient its output...
April 5, 2013:
Getting Started with the Revit API
Comments: 2 | Categories:
Fun ,
Getting Started ,
Installation ,
SDK Samples ,
Training
I am regularly forced to return to this topic, to provide a useful starting point for beginners. The amount of available material is getting huge, and some help is required deciding where to start exploring the Revit API. The most...
April 4, 2013:
Curve Following Face and Bounding Box Implementation
Comments: 0 | Categories:
.NET ,
Algorithm ,
AU 2011 ,
Desktop ,
Element Creation ,
Geometry
Continuing the research and development for my cloud-based round-trip 2D Revit model editing project, I looked at using the ExtrusionAnalyzer to create a plan view boundary profile for the furniture and equipment family instances and implemented a utility method SortCurvesContiguous...
April 3, 2013:
Extrusion Analyser and Plan View Boundaries
Comments: 2 | Categories:
Algorithm ,
Desktop ,
Failure ,
Geometry
Continuing the research and development for my cloud-based round-trip 2D Revit model editing project, I looked at using the ExtrusionAnalyzer to create a plan view boundary profile for the furniture and equipment family instances and implemented a utility method SortCurvesContiguous...
April 2, 2013:
The Revit 2014 Pre-release API and SDK
Comments: 0 | Categories:
2014 ,
Fun ,
Migration ,
SDK Samples ,
Update
Below, we look at how ADN members can obtain the Revit 2014 pre-release SDK, address migration issues, and one or two interesting new aspects of the API. First however, a few words on yesterdays post touting the idea of a...
April 1, 2013:
Cloud-Based Restaurant Seating and Cleaning
Comments: 4 | Categories:
Cloud ,
External ,
Fun ,
JavaScript
I hope you had a successful Easter egg hunt. As you probably noticed, I have lately been focusing on the research and implementation of my cloud-based round-trip 2D Revit model editing project for the upcoming Autodesk internal tech summit in...
March 31, 2013:
Sort and Orient Curves to Form a Contiguous Loop
Comments: 3 | Categories:
Algorithm ,
Desktop ,
Geometry
Continuing the research and development for my cloud-based round-trip 2D Revit model editing project, I need to determine the boundary loop polygons to represent the furniture and equipment family instances for manipulation on the mobile device. To display a polygon...
March 29, 2013:
Filter for Family Instances in a Room
Comments: 0 | Categories:
Element Relationships ,
Filters ,
Performance
I wish you a Good Friday. Continuing the research and development for my cloud-based round-trip 2D Revit model editing project, I need to determine the boundary loop polygons to represent the furniture and equipment family instances for manipulation on the...
March 28, 2013:
Revit 2014 API and Plan View Room Boundary Loops
Comments: 6 | Categories:
.NET ,
2014 ,
Algorithm ,
Data Access ,
Desktop ,
Geometry ,
News ,
SDK Samples
I am continuing the research and development for my cloud-based round-trip 2D Revit model editing project. At the same time, Revit 2014 has been announced, and I am sure you are eager to hear more about that, especially from the...
March 27, 2013:
Revit 2014 and Supporting Columns
Comments: 0 | Categories:
2014 ,
Algorithm ,
Element Relationships ,
Filters ,
Geometry ,
News ,
Update
Revit 2014 Announced As you probably noticed by now, Revit 2014 has been announced. Here are the main product features: Design Enhanced Autodesk Exchange Dockable window framework New stairs and railings Temporary view templates to change view properties temporarily Point...
March 25, 2013:
Relax – Simple Free Cloud Based Data Repository with NoSQL, CouchDB, and IrisCouch
Comments: 2 | Categories:
.NET ,
Cloud ,
External ,
Storage
Last week, I mentioned my proposal for the Autodesk Technical Summit in June, to present a cloud-based round-trip 2D Revit model editing project. That will obviously required a cloud-based data repository. Talking with my colleagues, all of their suggestions were...
March 21, 2013:
Rename View by Matching Elevation Tag with Room
Comments: 10 | Categories:
Element Relationships ,
Filters ,
Fun ,
Geometry ,
View
Today is the last morning meeting with my European DevTech colleagues here in Brittany, and time to travel back to Switzerland. Before leaving, here is a useful real-world productivity tool by Trevor Taylor of ZGF, Zimmer Gunsul Frasca Architects LLP,...
March 20, 2013:
Cloud & Mobile, Extensible Storage Data Use in Schedules
Comments: 2 | Categories:
.NET ,
Algorithm ,
Cloud ,
Data Access ,
External ,
News ,
REST ,
Schedule ,
Storage ,
SVG
My topics for today are: Cloud and mobile topics I covered so far Cloud-based round-trip 2D Revit model editing on any mobile device using SVG Extensible storage data use in schedules I am still meeting with my European DevTech colleagues...
March 19, 2013:
Parameter DisplayUnitType, Bretagne and Decompilers
Comments: 1 | Categories:
.NET ,
Algorithm ,
Data Access ,
Debugging ,
External ,
Parameters ,
Photo ,
Travel
After looking at several performance enhancement possibilities last week, e.g. the sweep family performance enhancement and LoadFamily and collector iteration performance, here is another exciting and pretty sophisticated exploration of internal Revit API implementation details by Victor Chekalin that can...
March 15, 2013:
Determining Purgeable Elements
Comments: 3 | Categories:
Algorithm ,
Deletion ,
Element Relationships ,
Performance
A question that crops up from time to time and is rather hard to answer exactly and exhaustively is on purgeable elements: Question: What is the best way to get all of the elements that can be purged? I can...
March 14, 2013:
Units and RevitLookup
Comments: 2 | Categories:
Data Access ,
Getting Started ,
Parameters ,
Settings ,
Units
Here is a typical question from a Revit API newbie that prompts me to reiterate some important basic beginner information on units and the RevitLookup tool for exploring the Revit database: Question: How can I retrieve the length and mass...
March 13, 2013:
LoadFamily and Collector Iteration Performance
Comments: 0 | Categories:
.NET ,
Algorithm ,
Family ,
Filters ,
Performance
Since we are into the topic of family loading performance anyway, after yesterdays discussion on efficient sweep creation, here is another interesting discussion with some useful family loading and symbol filtering benchmarking results and observations by Thomas Jarzyna and an...
March 12, 2013:
Sweep Family Performance Enhancement
Comments: 2 | Categories:
BIM ,
Element Creation ,
External ,
Family ,
Geometry ,
Performance
Now I am back at work again, enjoying the queries coming in from developers, postponing other important things such as my own long-term class and presentation preparations etc. Addicted to helping, that's me. Anyway, here is a piece of doubly...
March 11, 2013:
Export Wall Parts Individually to DXF
Comments: 0 | Categories:
Events ,
External ,
Parts ,
Photo ,
Transaction ,
Travel
I am back from my vacation. It was a wonderful break, and I feel ready and happy to get back to grips with everyday life and work again. A query from a colleague caught up with me already on the...
March 7, 2013:
Curve Evaluation and Song of the Gulls
Comments: 0 | Categories:
Algorithm ,
Geometry ,
News ,
Travel
Below, we take a look at one aspect of parametric NURB spline curve evaluation and an overview of recent AEC DevBlog posts. First, however, another update on my vacation :-) Marvels of the Song of the Gulls I am winding...
March 4, 2013:
What's New in the Revit 2013 API
Comments: 3 | Categories:
2013 ,
News ,
Travel
This is the fourth and last instalment of a series publishing the information provided in the 'What's New' sections of the past few Revit API releases help file RevitAPI.chm. The first instalment covering What's New in the Revit 2010 API...
February 28, 2013:
What's New in the Revit 2012 API
Comments: 0 | Categories:
2012 ,
News ,
Travel
This is the third instalment of a series publishing the information provided in the 'What's New' sections of the past few Revit API releases help file RevitAPI.chm. The first instalment covering What's New in the Revit 2010 API explains my...
February 25, 2013:
What's New in the Revit 2011 API
Comments: 0 | Categories:
2011 ,
News ,
Travel
This is the second instalment of a series publishing the information provided in the 'What's New' sections of the past few Revit API releases help file RevitAPI.chm. The first instalment covering What's New in the Revit 2010 API explains my...
February 21, 2013:
What's New in the Revit 2010 API
Comments: 0 | Categories:
2010 ,
News
I am in vacation in Italy, and trying not to work. There is one project that I had in mind for quite a while, though, and will start addressing now anyway during this break: I plan to publish the contents...
February 18, 2013:
ADN Revit API Training Material Update and Vacation
Comments: 0 | Categories:
2013 ,
Getting Started ,
Training ,
Update
After cleaning up the usage of deprecated Revit API calls in The Building Coder samples, I decided to clean up the ADN training material as well. My original plan was to remove all warnings about deprecated API usage, only I...
February 15, 2013:
Retrieving Schedules on a Sheet
Comments: 1 | Categories:
2013 ,
Data Access ,
Element Relationships ,
Filters ,
Schedule
Guy Robinson recently explained an easy way to access all elements in a schedule. Victor Chekalin picked up and expanded on that. Here is his solution to retrieve all schedules in a view and elements from a schedule. In his...
February 13, 2013:
Eliminating Compiler Warnings and Deprecated Calls
Comments: 2 | Categories:
2013 ,
Getting Started ,
Migration
I am revisiting this topic again, which we last looked at a year ago, to clean up our usage of deprecated methods in the Revit 2012 API. In that discussion, I also pointed back to previous versions and other related...
February 12, 2013:
Adjustable Versus Perpendicular Spud
Comments: 0 | Categories:
Element Creation ,
Family ,
RME
I recently presented an explanation of some Revit MEP family editor part type classes, which led to a follow-up: Question: Thank you for the detailed answer about the duct fittings. I have a similar problem with one of the pipe...
February 11, 2013:
2D SVG Editing on Mobile Device with Raphaël
Comments: 3 | Categories:
Cloud ,
JavaScript ,
Mobile ,
SVG
As I mentioned last week, I took another look at displaying a 2D view of a Revit model on mobile devices using SVG to enhance the room polygon and furniture picker in SVG. That implementation displays a read-only view of...
February 8, 2013:
MP3 Manipulation Using Python, Mutagen and Ffmpeg
Comments: 9 | Categories:
Data Access ,
External ,
Fun ,
M3U ,
MP3 ,
Music ,
Python
Today is an education day, and I am taking another look at displaying a 2D view of a Revit model on mobile devices using SVG. I started off doing so quite a while back, implementing a room polygon and furniture...
February 7, 2013:
Adding a Button to Existing Ribbon Panel
Comments: 1 | Categories:
.NET ,
Automation ,
Events ,
Ribbon ,
User Interface
Here is an interesting user interface contribution from Eduardo Teixeira of Autodesk: Question: I am building a Revit add-in using the Revit API. I would like to add a button for it to an existing out-of-the-box Revit ribbon panel using...
February 6, 2013:
Simple MEP System Traversal
Comments: 1 | Categories:
Data Access ,
RME
Here is a simple MEP system traversal implementation that especially addresses the issue of determining what equipment is connected to the systems. The following read-only external command traverses all MEP systems in the document, using the MEPSystem.Elements property to retrieve...
February 5, 2013:
Content Localisation
Comments: 0 | Categories:
Family ,
Parameters ,
RME
How to manage families and content creation is a crucial topic for a large number of Revit add-ins. Brian Johnson, technical specialist on structural engineering solutions at Autodesk in Austin, Texas, discusses how to efficiently address some important aspects of...
February 1, 2013:
Parameters versus Properties
Comments: 3 | Categories:
.NET ,
Data Access ,
Material ,
Parameters ,
View
In his comment on reading material asset data, Alexander Buschmann points out that this same information can be accessed without retrieving, reading and converting the data directly from the undocumented built-in parameters. Instead and more comfortably, you can use the...
January 31, 2013:
Change Element Workset
Comments: 1 | Categories:
Data Access ,
Parameters ,
Workset
We discussed reading the workset of an element, either using the built-in parameter ELEM_PARTITION_PARAM or, more easily, the dedicated document GetWorksetId method. This is actually another example of the possibility to choose your data access method by using either a...
January 30, 2013:
Read Material Asset Parameter
Comments: 2 | Categories:
Data Access ,
Material ,
Parameters
Even though it is still January, the days are already getting a little bit lighter, the sun has broken through now and then, sets half an hour later, some birds are starting to tweet around, and one can imagine spring...
January 28, 2013:
Duplicate Built-in Parameter Values and BipChecker Update
Comments: 4 | Categories:
.NET ,
Algorithm ,
Data Access ,
Parameters ,
Utilities
BipChecker is a tool that I would recommend every Revit developer to install, just like RevitLookup. It simply lists the values of all parameter data stored on a selected element. Similar access is also offered within RevitLookup by the option...
January 24, 2013:
Basic File Info and RVT File Version
Comments: 5 | Categories:
.NET ,
2013 ,
Algorithm ,
BIM ,
Data Access ,
External ,
Mac ,
RST ,
Utilities
I presented an initial solution in Python for determining the version of an RVT file on disk from outside Revit making use of its OLE document Structured Storage format back in 2008. David Echols later shared a more full-fledged C#...
January 22, 2013:
Delux Database Enabled Loading and Updating
Comments: 2 | Categories:
BIM ,
Element Relationships ,
External
This paper by Steven Rowland, Interior BIM Manager in a hospital in Stockholm, Sweden, describes a novel method to extend database functionality for a "smart" loading and updating process in very large Revit projects. The method is designed solve a...
January 18, 2013:
Changing Viewport Type
Comments: 8 | Categories:
Element Relationships ,
Parameters ,
View
Here is a question on setting the type of an element by using the built-in ELEM_FAMILY_AND_TYPE_PARAM parameter value, explored by Bettina Zimmermann of NTI Cadcenter A/S: Question: I'm inserting viewports on sheets and I'd like to change the viewport type...
January 17, 2013:
Implement a Progress Bar and Abort a Lengthy Process
Comments: 4 | Categories:
.NET ,
News ,
Photo ,
User Interface ,
Utilities
The time has come to talk of many things: of shoes and ships, and sealing-wax, of cabbages and kings [^]... or no, let's continue sticking to the Revit API for now, more or less; today's topics are: A walk in...
January 16, 2013:
Determine Revit Demo Mode and Serial Number
Comments: 4 | Categories:
.NET ,
Data Access ,
External ,
Installation ,
Win32
Last week's updated Revit demo mode determination prompted a lively discussion between two strong Revit API experts and blog contributors, Victor Chekalin and Rudolf Honke the Revitalizer, partly on how to further improve the demo mode detection, and mainly on...
January 14, 2013:
Revit 2013 Unit Conversion Utility
Comments: 0 | Categories:
2013 ,
Data Access ,
Migration ,
Parameters ,
Units ,
Update ,
Utilities
Here is a Revit 2013 update of the Revit 2011 unit conversion utility, originally posted and described for Revit 2010, by Harry Mattison. In his own words: I was looking at the great unit conversion utility and created a new...
January 11, 2013:
Determine Revit Demo Mode Revisited
Comments: 10 | Categories:
.NET ,
Data Access ,
Discipline ,
External ,
Installation ,
Migration ,
Ribbon ,
Settings ,
User Interface ,
Win32
Almost a year back, we talked about how to determine whether the current running Revit application is a demo version or not. The initial suggestion was to test this by trying to execute real functionality modifying the model and then...
January 10, 2013:
What I Do, Wall Layers and Open Transactions
Comments: 0 | Categories:
AU ,
Data Access ,
Idling ,
News ,
Training ,
Travel
One of my tasks today and tonight will b...
January 9, 2013:
Set Detail Curve Visibility
Comments: 1 | Categories:
Parameters ,
RST ,
View
Mostly, the Revit API limits an add-in to pretty high-level operations, encapsulating and protecting the parametric BIM from reckless modifications. For the nonce, here is a little bit of nitty-gritty bit manipulation anyway, in a utility method provided by Scott...
January 8, 2013:
URL and Other Buttons, XYZ Points and Vectors
Comments: 2 | Categories:
Automation ,
Cloud ,
gbXML ,
Geometry ,
REST ,
Ribbon ,
User Interface
Let me summarise a very few of the topics I have been chatting with people about in the past few days: Ribbon button identification Opening a URL from a ribbon button XYZ comparison and point and vector behaviour Autodesk API...
January 4, 2013:
Family Symbols versus Types and SelectionFilterElement
Comments: 0 | Categories:
2013 ,
Family ,
Filters ,
Vasari
Here is a question that has been asked a couple of times recently and thus seems worthwhile clarifying: Question: If I access the OwnerFamily.Symbols in a family document, i.e. an RFA file, it returns an empty collection. If I load...
January 3, 2013:
Create FaceWall on Slanted Mass Face
Comments: 0 | Categories:
Element Creation ,
Geometry
Happy New Year! I hope you had a wonderful break and a good start into the New Year. I spent New Year's Eve with my sons and some friends in a Swiss mountain village. We had a nice hike up...
December 21, 2012:
GetInstanceGeometry Overhead and Invalid References
Comments: 0 | Categories:
Element Relationships ,
Family ,
Geometry
I made it back safe and sound to Switzerland from the developer conferences, and I note that this special pivotal day – the winter solstice – seems to be progressing normally and we all survived in spite of the end...
December 19, 2012:
Solid Centroid and Volume Calculation
Comments: 2 | Categories:
2013 ,
Algorithm ,
Geometry ,
Links ,
News
I have not posted anything since last Friday, being too caught up in the West European Developer days and travelling. Today and tomorrow we spend in Gothenburg on the last lap of our journey, after Paris, Milano, Farnborough and Munich....
December 14, 2012:
Installing a Macro and Closing the Active Document
Comments: 2 | Categories:
Macro ,
View
You can close an open Revit document programmatically. Unfortunately, though, this only works for all except the last one. People keep running into this issue, of course. It even motivated René Gerlach to implement a workaround using SendKeys.SendWait to send...
December 13, 2012:
ToElementIds Performance
Comments: 5 | Categories:
.NET ,
Cloud ,
Filters ,
Getting Started ,
Performance
Conversion of a filtered element collector to an explicit .NET collection of elements or element ids is always costly and mostly avoidable and unnecessary. Before getting to the details of that issue, here is another quick snapshot from our travels...
December 12, 2012:
Accessing all Elements in a Schedule
Comments: 10 | Categories:
2013 ,
Data Access ,
Filters ,
Schedule ,
View
Here is a quick little post, with a surprisingly short and simple answer to a short and seemingly difficult Revit API question. Before getting to that, I will just mention that I arrived safe and sound in Paris for a...
December 10, 2012:
BIM 360 Glue REST API Authentication Using Python
Comments: 0 | Categories:
Cloud ,
Glue ,
Python ,
REST
I provided an overview of the BIM 360 Glue REST API and SDK last Friday and hinted at upcoming further exploration. Well, here it is already. Due to Autodesk University and the world-wide developer conferences, I had to skip my...
December 7, 2012:
The BIM 360 Glue Viewer and REST API
Comments: 7 | Categories:
BIM ,
Cloud ,
Glue ,
REST
As you certainly know by now, Autodesk provides a range of powerful cloud-based solutions, specifically Autodesk 360, PLM 360 and BIM 360 Glue (reference). Of special interest to AEC developers, the BIM 360 Glue platform includes support for programming interfaces...
December 5, 2012:
Reload Add-in for Debug Without Restart
Comments: 10 | Categories:
AU ,
Debugging ,
Utilities
We explored and learned a lot of interesting areas during the DevLab at AU on Tuesday last week. One recurring theme is how to effectively debug an add-in without having to restart Revit and reload the entire model each time...
December 4, 2012:
Boost Your BIM and Dance with an Elephant
Comments: 3 | Categories:
BIM ,
Links ,
Macro ,
News
Advent, advent! Yet another Revit API focused blog is born! Harry Mattison, ex Revit API development team, has initiated Boost Your BIM and kicked it off with a series on using the built-in SharpDevelop development environment Revit macros to resolve...
December 3, 2012:
Extra Transaction or Regeneration Required
Comments: 0 | Categories:
AU ,
Data Access ,
Element Creation ,
Regen ,
Transaction
Whenever your add-in modifies the model in any way and you wish to query the Revit database, you need to pay careful attention to ensure that you do not retrieve stale or invalid data. If anything unexpected whatsoever happens, one...
November 30, 2012:
AU Classes on Python, UI, Server and Framework APIs
Comments: 6 | Categories:
2013 ,
AU ,
Cloud ,
Events ,
Idling ,
Python ,
Server ,
Transaction ,
User Interface ,
Vasari ,
View ,
Win32
Thursday was another very full and fruitful day at AU. I gave my third and last class, the most exciting one in my eyes, on some UI and integration aspects. I was unable to attend Iffat May's class introducing Python...
November 29, 2012:
AU Classes on the View, MEP and Link APIs
Comments: 2 | Categories:
2013 ,
AU ,
Data Access ,
Element Creation ,
Links ,
RME ,
View
Wednesday was my first normal and full AU day, after completing the developer conference and DevLab activities. I was able to attend two interesting classes held by Revit API developers Steven Mycynek and Arnošt Löbel, and present my own Revit...
November 28, 2012:
The Champions Roundtable at AU
Comments: 0 | Categories:
AU ,
BIM ,
Data Access ,
DMU ,
News
Tuesday we held a DevLab at AU successfully exploring and resolving a bunch of interesting issues. I hope to get around to documenting and sharing some of them soon, before being overwhelmed by other new exciting stuff. The most pressing...
November 26, 2012:
Grand Canyon and AU Arrival
Comments: 0 | Categories:
AU ,
Climbing ,
Travel
I always try to arrive early in Las Vegas to acclimatise and recover from jetlag before the conferences begin. I bring my sleeping bag and sleep in the desert. Sleeping in the cold dry winter desert under starlight, watching the...
November 22, 2012:
Survey and Project Base Point
Comments: 1 | Categories:
BIM ,
Data Access ,
Element Relationships ,
Travel ,
Utilities
Happy Thanksgiving! I am on the road to Las Vegas now, gearing up for last-minute AU preparations. No actually, I am pretty much set to go. Other upcoming developer conferences still require some work, though. Meanwhile, here is some useful...
November 20, 2012:
Building Performance Analysis and Face Tessellation
Comments: 0 | Categories:
2013 ,
External ,
gbXML ,
Geometry
I am busy with Autodesk University and developer conference preparations. The Mac is happily chugging along. Welcome to Building Performance Analysis In spite of these busy times, Emile Kfouri and John Kennedy just launched a new blog on the topic...
November 16, 2012:
Updater Queues Multi-Transaction Operation for Idling
Comments: 0 | Categories:
Algorithm ,
DMU ,
Element Relationships ,
Events ,
Group ,
Idling ,
Utilities
I recently pointed out that certain operations require multiple transactions to complete. The dynamic model updater framework DMU, on the other hand, takes complete control over the transaction handling, making it impossible to incorporate such a multi-transaction operation. The updater...
November 15, 2012:
Happy Bhai Dooj!
Comments: 2 | Categories:
.NET ,
Automation ,
Events ,
Fun ,
Ribbon ,
User Interface
Happy Bhai Dooj to you! This greeting comes from my colleague Sandeep Kumar in Bangalore, who explains: Bhai Dooj is a festival of prayers from sister to brother, brother's protection for her sister. May we all celebrate this Bhai Dooj...
November 14, 2012:
Roll Your Own Toggle Button
Comments: 2 | Categories:
External ,
Fun ,
Mac ,
Ribbon ,
RST ,
User Interface
Today I took my first stab at creating, compiling and debugging a new Revit add-in on the Mac. I cannot run Revit or Visual Studio natively on the Mac, of course, so those have to remain in Windows, hosted by...
November 13, 2012:
Moving to the Mac
Comments: 12 | Categories:
AU ,
Data Access ,
Mac ,
Utilities
I have been quiet for a whole week now, busy setting up my Mac, learning new functionality, techniques, keyboard shortcuts, editors, you name it. Under Windows, I was already using quite a number of batch files and command line Unix-style...
November 6, 2012:
Geometry Object Subcategory
Comments: 0 | Categories:
Data Access ,
Element Relationships ,
Family ,
Geometry ,
Schedule ,
View
I received and have started installing and learning to use my new laptop, which is a Mac, I'm finishing up my preparations for Autodesk University, and I'm working on preparations for upcoming developer conferences, so you can imagine there is...
November 2, 2012:
Temporary Transaction Trick Touchup
Comments: 0 | Categories:
Data Access ,
Geometry ,
Transaction
I mentioned a number of uses of the temporary transaction trick a few days back. Autodesk's own Revit API transaction expert Arnošt Löbel has a very important point to add to that discussion: The procedure as described is not always...
November 1, 2012:
Drive Revit through a WCF Service
Comments: 12 | Categories:
.NET ,
2013 ,
Events ,
External ,
Idling ,
RST ,
View ,
WCF
Today, a special titbit for you: How can I access Revit functionality from an external process? As we have underlined many times in the past, the Revit API does not support any kind of asynchronous access. The Idling event, however,...
October 31, 2012:
Display a Geometry Debugging Point in the Model
Comments: 2 | Categories:
AVF ,
Debugging ,
Element Creation ,
Geometry
Here are some pointers from a conversation I had with Daren Thomas on how to display a reference point in the model for debugging purposes that may be on general interest. Question: I am playing around with the FindReferencesWithContextByDirection method...
October 30, 2012:
The Temporary Transaction Trick for Gross Slab Data
Comments: 0 | Categories:
Algorithm ,
AU ,
Data Access ,
Events ,
Geometry ,
News ,
Transaction
Last week I provided an updated version of the CmdSlabBoundary external command to determine a floor slab boundary. Here is a follow-up to that issue: Question: The solution provided to retrieve the slab boundary works fine for me if no...