Jeremy Tammik

April 2014

Sun Mon Tue Wed Thu Fri Sat
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      


Twitter Updates

    follow me on Twitter
    April 18, 2014: RevitLookup for UR1, ADN, AEC and AU News
    Comments: 2 | Categories: AU , Git , Hackathon , News , ReCap , RevitLookup , Transaction
    Here are some of the non-confidential items from the new confidential April 17 Autodesk Developer News newsletter, plus one or two additional items of interest from myself and elsewhere: AEC Technology Symposium Migrate Autodesk Exchange Apps and publish 2015 versions...

    April 17, 2014: Determining the Size and Location of Viewports on a Sheet
    Comments: 0 | Categories: Desktop , Element Relationships , Git , View
    Today, let's look at how to determine the size and location of a sheet and the views displayed by it. This is part of the first and most Revit-related of the three enhancement goals for my simplified 2D BIM editor:...

    April 16, 2014: Migrating RoomEditorApp to Revit 2015
    Comments: 0 | Categories: .NET , 2015 , Desktop , Git , Migration , Python
    Yesterday I discussed the typical steps you would need to go through to set up a Revit 2015 add-in development environment. My top priority right now is getting my Tech Summit talk prepared, which involves adding some functionality to the...

    April 15, 2014: Compiling the Revit 2015 SDK and Migrating Bc Samples
    Comments: 0 | Categories: 2015 , Getting Started , Migration , Photo , SDK Samples , Update
    As I announced yesterday, Revit 2015 was released last week, the Revit SDK was posted and updated, RevitLookup for Revit 2015 is available on GitHub, the DevDays Online presentation on the new API functionality is available, and I migrated The...

    April 14, 2014: Category Support for Shared Type and Instance Parameters
    Comments: 0 | Categories: .NET , Algorithm , Data Access , Parameters
    Welcome to my last post on the Revit 2014 API, and one final new external command and update of The Building Coder sample collection before we migrate to Revit 2015. Revit 2015 was released last week, the Revit SDK was...

    April 11, 2014: Revit 2015 and Updated SDK Released
    Comments: 2 | Categories: 2015 , News , SDK Samples
    Here is just a quick note to tell you that Revit 2015 was released today, and you can now download it from the Autodesk Revit product site. The Revit 2015 SDK (Software Developers Kit) is also available from the Revit...

    April 11, 2014: Profiling Revit Add-ins and RoomEditorApp Enhancements
    Comments: 0 | Categories: .NET , Debugging , Desktop , Filters , Geometry , Performance
    Today we take a look a profiling tool that works with Revit add-ins, and a few small new enhancements to my RoomEditorApp. The entire following article was contributed by Ben Bishoff of Ideate Software: Profiling Revit Add-ins using GlowCode Performance...

    April 10, 2014: Transaction Group Regeneration for InstanceVoidCutUtils
    Comments: 0 | Categories: Element Relationships , Family , Git , Regen , Transaction
    We looked at a nice example of using Boolean operations and InstanceVoidCutUtils back in the year 2011, cutting out part of a beam using a void cutter family. I tried to make use of this again in a recent Revit...

    April 9, 2014: Revit 2015 API News – DevDays Online Recording
    Comments: 6 | Categories: 2015 , Migration , News , Update , User Interface , VB
    As the Walrus said, now "the time has come ... to talk of many things", including the highlights of the new Revit API functionality, so here we go! Welcome to my first post on the Revit 2015 API, disregarding the...

    April 8, 2014: No DevCamp – Better – NY AEC Technology Symposium
    Comments: 0 | Categories: BIM , External , Hackathon , News , Training
    I have some good news and some bad news for you. The good news is that Autodesk and ADN will be supporting the AEC Technology Symposium taking place in New York City May 16-18. The bad news is that we...

    April 7, 2014: Getting Serious Adding New Materials from List
    Comments: 0 | Categories: Element Creation , Git , Material , Update , User Interface , Utilities
    Here is a post on some serious usability enhancements for the AddMaterials add-in, which reads a list of material properties from an Excel spreadsheet and generates Revit material elements accordingly. It was originally presented for Revit 2011, reimplemented for Revit...

    April 5, 2014: BIM 360 Growing Fast
    Comments: 0 | Categories: 360 , BIM , Cloud , News
    I normally don't go and reprint press releases. They mostly don't have that much technical content, anyway :-) This one is important enough to warrant it, though, and may easily have slipped by you unnoticed if you are purely focussed...

    April 4, 2014: WPF Fill Pattern Viewer Control
    Comments: 5 | Categories: .NET , Git , User Interface , Utilities , WPF
    Today, I present a useful stand-alone WPF control for viewing Revit fill patterns, originally implemented by Victor Checkalin, Виктор Чекалин, shared with us by Alexander Ignatovich, Александр Игнатович, of Investicionnaya Venchurnaya Companiya, as part of further enhancements for the AddMaterial...

    April 3, 2014: RevitLookup for Revit 2015
    Comments: 2 | Categories: 2015 , Data Access , Debugging , Element Relationships , Getting Started , Migration , RevitLookup , SDK Samples , Utilities
    My first post dealing with Revit 2015 is dedicated to RevitLookup, the most important Revit database exploration tool, both for developers and interested non-developers. This is particularly urgent, since RevitLookup no longer is included in the standard Revit SDK (software...

    April 2, 2014: Selecting Sheets instead of Views in the RoomEditorApp
    Comments: 2 | Categories: .NET , Algorithm , BIM , Desktop , Git , View
    Today I look at interactively picking sheets to export, instead of views. First, however, I must mention the list of April Fool's posts compiled by Stephen Preston, including my own visionary idea to recycle waste as insulation and curtain wall...

    April 1, 2014: Automating Large Scale Waste Recycling and Sustainability
    Comments: 0 | Categories: BPA , Fun , News , Print
    Today we take a forward look at new solutions for the seemingly unrelated issues of waste recycling and sustainability, using rail-mounted robots and 3D printing technology in combination with novel materials: Sustainability 3D Printing Robots on Rails Recycling Waste into...

    March 31, 2014: Category Analysis with and without Python
    Comments: 0 | Categories: Data Access , Python , Utilities
    Here is a useful approach for analysing categories by Alexander Ignatovich of Investicionnaya Venchurnaya Companiya, originating from the following query: Question: How can I check that a given family is an annotation? For example, I have a family with BuiltInCategory.OST_GridHeads...

    March 29, 2014: Adding New Materials from List Enhancements
    Comments: 0 | Categories: Git , Material , Settings , Update , Utilities
    A weekend post, for a change. There is just too much going on! I recently reimplemented the AddMaterials add-in for Revit 2014, updating the simple little Revit 2011 system to generate new materials in a Revit project based on a...

    March 28, 2014: Creating a Sloped Floor
    Comments: 0 | Categories: Element Creation , Git , SDK Samples , User Interface
    Today, let's look at an interesting and overdue topic raised by the query on creating a sloped floor in the Revit API discussion forum, addressed with help from Jaap van der Weide and Joe Ye.Before getting to that, let me...

    March 26, 2014: Cannot Get BindingMap of a Family Document
    Comments: 3 | Categories: 2014 , Data Access , Family , Migration , Parameters
    Here is an issue trying to access the binding map of a family document that just re-arose as a new ADN support case. It took me a while (thank you, Google) to discover that I had actually already answered the...

    March 25, 2014: Selecting Visible Categories from a Set of Views
    Comments: 0 | Categories: .NET , Desktop , Git , Material , User Interface , View
    Today I look at interactively picking specific categories to export to the simplified 2D BIM editor cloud database from a list of all categories retrieved from a collection of elements displayed in a given set of plan views. This is...

    March 24, 2014: Another Balloon Tip Implementation
    Comments: 3 | Categories: .NET , User Interface , Utilities
    Alexander Ignatovich, or Игнатович Александр, responds to the recent discussion on using balloon tips in Revit and says: I want to share another solution for balloon tips for custom messages, without using the unsupported AdWindows library. Just see the project...

    March 21, 2014: Using Generic Collections with Filters and Forms
    Comments: 0 | Categories: .NET , Algorithm , Desktop , Filters , Git , View
    Today I discuss some uses of generics to elegantly and efficiently handle lists of Revit elements and .NET Windows forms, specifically: One line of code to retrieve all printable floor plan views from the BIM. One line of code to...

    March 20, 2014: Adding New Materials from List Updated
    Comments: 2 | Categories: .NET , 2014 , Algorithm , Filters , Git , Material , Migration , Utilities
    Back in the year 2010, I discussed a simple little system based on a Revit add-in named AddMaterials to generate new materials in a Revit project based on a list of required material properties stored in an Excel spreadsheet. The...

    March 18, 2014: Storing Revit Add-in Settings
    Comments: 7 | Categories: .NET , Data Access , Settings , Storage
    Here is another tip from the Revit API discussion forum that seems worthwhile cleaning up and making easy to find, on how to store plugin preferences, raised and discussed by Dimi, peterjegan and ollikat: Question: I am trying to find...

    March 17, 2014: Using Balloon Tips in Revit
    Comments: 0 | Categories: .NET , Automation , User Interface , Win32
    Here is another tip from Rudolf 'Revitalizer' Honke of Mensch und Maschine acadGraph, who provided most of the tips in the past making use of undocumented .NET and Autodesk API functionality provided by the UI Automation and AdWindows libraries, on...

    March 14, 2014: Determining the Quiescent State
    Comments: 2 | Categories: Algorithm , Events , External , Idling , Modeless
    I am still going through my emails after returning from the desert. Here is a summary of an interesting discussion between Katsuaki Takamizawa, Arnošt Löbel, Partha Sarkar, Joe Ye and Miroslav Schonauer on how to determine the quiescent state of...

    March 13, 2014: Detach Beam from Plane
    Comments: 4 | Categories: Algorithm , Element Relationships , Parameters , RST
    Here is a long-standing question raised once again now by Miroslav Schonauer of Autodesk Consulting and solved with help from Sasha Crotty of the Revit development team: Question: Is there a way to programmatically replicate the 'Detach from Plane' functionality...

    March 12, 2014: AutoCAD and Revit API Training in Peru
    Comments: 0 | Categories: Getting Started , Training
    My colleague Augusto Gonçalves points out that we are holding Spanish-language AutoCAD .NET and Revit API training classes in Lima, Peru on April 7-8, and April 9, 2014, respectively. To participate in either one, please complete the registration survey.

    March 12, 2014: Back from Desert and Two Happy Events
    Comments: 3 | Categories: Cloud , Desktop , Mobile , News , Photo , Travel
    I returned from my hike near Zagora in t...

    February 21, 2014: TextNote Leader Alignment
    Comments: 0 | Categories: Element Creation , Travel
    Let us explore TextNote leader alignment. Before getting to that, I'll just briefly mention that I still have unused vacation days from last year to use up, so I am going away again, this time on a desert hike near...

    February 19, 2014: More on Revit API Aspects and Features
    Comments: 0 | Categories: .NET , BIM , External , Family , Fun , IFC , Performance
    Yesterday, I mentioned a couple of Revit API aspects and features that triggered follow-up comments. Seeing as the topic appears to be of general interest, let's pick them up and continue this. I'll add a few other little titbits first,...

    February 18, 2014: Different Revit API Aspects and Features
    Comments: 2 | Categories: Events , External , Getting Started , Migration , Update
    The two most important recommendations I have for newbie Revit API developers are: Understand the Revit end user product paradigm, workflow and best practices Forget everything (well, some things) you know about any other CAD system programming I just gave...

    February 17, 2014: Wrangling Revisions with Ruby
    Comments: 0 | Categories: .NET , 2014 , DMU , Events , External , Idling , Macro , Ruby , Utilities
    Here is a write-up by Andy Holmes, Integration Specialist at OPX design consultancy on a Ruby project that uses a lot of different Revit API features, e.g., revisions on sheet, DMU updaters, Idling and document events, and creating a Ruby...

    February 14, 2014: Creating an Offset Wall Solution
    Comments: 1 | Categories: Element Creation , Parameters , Photo
    Happy St. Valentine's Day! As we all know and have known for a long time from the exploration of the wall compound layers, the Revit API wall location line is at the centre of the wall. There is no way...

    February 13, 2014: Daylighting Extension and Splitting with Taps
    Comments: 0 | Categories: BPA , Element Relationships , RME , Utilities
    Here is a quick update on the status of the daylighting analysis technology preview and some helpful advice for anyone trying to split a duct or pipe with taps. Daylighting Analysis The Daylighting Analysis for Revit technology preview free analysis...

    February 12, 2014: The 360 View
    Comments: 0 | Categories: Cloud , External , Glue , News
    There is a new kid on the block! The 360 View is a blog providing technical resources about BIM 360 product families, including Glue and Field, including API coverage, by Manu Venugopal, Integration Expert in Autodesk Consulting and our ADN...

    February 11, 2014: Getting Two Different Kinds of Joined Elements
    Comments: 0 | Categories: Element Relationships , Geometry , SDK Samples
    Revit loves creating and maintaining relationships, e.g. by joining elements and their geometry. Here are a couple of element joining topics that we touched on in the past: AutoJoinElements Joined Beam Geometry Access Wall Joins and Geometry Move Duct Join...

    February 10, 2014: Lots of Views, Families and Booleans
    Comments: 2 | Categories: BIM , Debugging , Element Creation , Getting Started , Performance , SDK Samples , View
    Certain applications require large numbers of similar but different objects, e.g. for framing, scaffolding, steel detailing etc. Every one of the past few years, Revit has been further enhanced to better still support these kinds of applications and handle larger...

    February 7, 2014: Web Workshop, Tech Summit Plans and Security
    Comments: 0 | Categories: Cloud , External , REST , SVG
    Last week, I mentioned my short visit to Gothenburg, Sweden, for a mini web workshop hosted by CAD-Q and promised you more information about it anon. Well, the time has come to summarise the results from that venue, and also...

    February 5, 2014: Skip Invalid Element Generation Using Failure API
    Comments: 0 | Categories: Element Creation , Failure
    We already took a couple of looks at the Failure API in the past, e.g.: Failure API Failure API Take Two Failure Rollback Here is a slightly more convoluted situation that motivates revisiting the topic from a new angle, raised...

    February 4, 2014: Deleting Unnamed Non-Hosting Reference Planes
    Comments: 5 | Categories: 2014 , Deletion , Filters , Git , Migration , Parameters , Transaction , Utilities
    Once upon a time, while teaching a Revit API class, the training participants identified a problem that was simple enough to be used as a filtered element collector learning example and did something useful at the same time: deleting reference...

    January 31, 2014: The GEOM_VISIBILITY_PARAM Visibility Settings
    Comments: 3 | Categories: .NET , C++ , Data Access , News , Parameters , RevitLookup , Settings , View
    Here is an nice, useful and interesting example of a Revit API forum discussion thread and cooperative research between Remy van den Bor of ICN Solutions, Rudolf Honke of Mensch und Maschine acadGraph, the Revit development team, Joe Ye and...

    January 30, 2014: Future Proofing The Building Coder Samples
    Comments: 0 | Categories: 2014 , Element Creation , Git , Migration , SDK Samples
    We've reached the add-in future-proofing season again, the time of year to eliminate compiler warnings and deprecated calls for easier migration to an updated API, just like last year in January and February. It is very easy this time around,...

    January 29, 2014: REST POST Request to Revit Server 2014
    Comments: 0 | Categories: 2014 , Getting Started , REST , SDK Samples , Server
    I just arrived in Gothenburg, Sweden, for a mini-web-workshop. I'll let you know what I learn here soon. Meanwhile, here is a quick little important note on a change to the Revit Server 2014 REST API that affected some: Question:...

    January 28, 2014: Lots of Clouds
    Comments: 0 | Categories: AU , Cloud , Git , Photo , RevitLookup , Travel , Update
    Let me recapitulate my cloud related explorations for my simplified 2D BIM editor, since I will be discussing it again at a web-based BIM workshop later this week. Before getting to that, though, talking about cloud related topics reminds me...

    January 27, 2014: Final Rolling Offset Using Pipe.Create
    Comments: 0 | Categories: Data Access , Element Creation , Git , Parameters , RME
    I am writing this on the way back to Switzerland from my hiking trip on La Palma. Actually, lacking good bandwidth during my travels, I actually arrived back before being able to post this... Even before my return, I already...

    January 17, 2014: Revit API Help Online and Hiking on La Palma
    Comments: 0 | Categories: Cloud , Data Access , Getting Started , Training , Travel
    Good news for all Revit add-in developers from Peter Boyer of the Dynamo team, working on visual programming for Revit, who brought you the Dynamo Revit Unit Test Framework. He says: We use the Revit API docs a lot, so...

    January 16, 2014: Simpler Rolling Offset Using NewElbowFitting
    Comments: 0 | Categories: Element Creation , Git , RME
    I continue the work on my MEP CASE BIM Hackathon project to calculate a rolling offset between two pipes, insert the rolling offset pipe segment, connect it to its neighbours and explicitly placing elbow fittings. The explicit fitting placement was...

    January 15, 2014: Explicitly Placing Rolling Offset Pipe Elbow Fittings
    Comments: 0 | Categories: Element Creation , Family , Geometry , Git , RME
    I continue the work on my MEP CASE BIM Hackathon project to calculate a rolling offset between two pipes, insert the rolling offset pipe segment and connect it to its neighbours. The last missing puzzle piece was inserting appropriate fittings...

    January 14, 2014: Connecting the Rolling Offset Pipe to its Neighbour Pipes
    Comments: 2 | Categories: Algorithm , Element Relationships , Git , RME
    I continue the work on my MEP CASE BIM Hackathon project to calculate a rolling offset between two pipes and insert the rolling offset pipe segment. The next step consists in connecting the pipes with each other. Until just now,...

    January 13, 2014: HTML5 for Teaching Maths and Physics
    Comments: 1 | Categories: HTML , JavaScript
    Good morning and welcome to this new week. I am pretty busy right now, so I will just recommend taking a look at something not related to the Revit API: Mathigon, a stupendously beautiful interactive didactical mathematical eBook making advanced...

    January 10, 2014: Creating a Rolling Offset Pipe Between Two Pipes
    Comments: 1 | Categories: Element Creation , RME
    I talked about my nice little MEP related CASE BIM Hackathon project to calculate a rolling offset between two pipes the day before yesterday. An obvious immediate question is: OK, and now how do I insert a real pipe segment...

    January 9, 2014: No Inheritance and No Strong Naming
    Comments: 6 | Categories: .NET , ARX , BIM , Getting Started , Training
    Here are two little items of general long-standing interest that just came up in a Revit API discussion forum: Why you cannot derive a new class from FamilyInstance. Why the Revit API assemblies are not strongly named. These two issues...

    January 8, 2014: Calculating a Rolling Offset Between Two Pipes
    Comments: 0 | Categories: Algorithm , AU , Geometry , Git , RME
    Here is a nice little MEP related external command that I implemented to calculate a rolling offset for pipes at the CASE BIM Hackathon at AU, prompted by a suggestion by Harry Mattison and Matthew Nelson. It calculates the rolling...

    January 7, 2014: Sustainably Chugging Along
    Comments: 2 | Categories: AU , BPA , SDK Samples
    I continue chugging along here, mainly just answering cases. January and February tend to be peaceful for me after the extreme travelling and conferencing in December. I will also be reducing my overdue vacation time in the next couple of...

    January 6, 2014: Happy New Year!
    Comments: 6 | Categories: Geometry , Photo , Schedule , Update
    Welcome back after the break and Happy New Year! I have already been busily answering cases for the past few days. Here are two of the topics that came up: Access to model arc centre point reference API-generated schedules on...

    December 22, 2013: Starting to Clean Up For the Break
    Comments: 0 | Categories: 2014 , AU , BPA , RME , Utilities
    I am starting to clear up some open issues before the break. Here are a few that I can handle right here and now: Autodesk University classes ready for viewing and download Building Performance Analysis update Daylighting Analysis Tool for...

    December 20, 2013: Setting the View Display Background
    Comments: 1 | Categories: 2014 , Export , Fun , Settings , View
    Here is an exploration of various attempts to ensure that the view background is always white, regardless of all user settings like inverted background etc. Before getting to that, I have to share an important discovery for me and my...

    December 19, 2013: Driving CNC Fabrication and Shared Parameters
    Comments: 0 | Categories: DXF , Fun , Git , Parts , SAT , Transaction , Utilities
    The topic of CNC fabrication of Revit BIM elements is continuing to grow in popularity. As you already know, I published the ExportWallboard add-in to automatically isolate and export wall parts individually to DXF for CNC fabrication, then enhanced, renamed...

    December 17, 2013: Visual Studio 2013 May Partially Support Edit and Continue
    Comments: 2 | Categories: .NET , 2013 , 2014 , Debugging , Settings
    The West European DevDays conferences are completed. I am on my way back from Gothenburg to Switzerland. En route, I would like to share this strange and useful discovery by Peter Muigg of CAD Anwendungen Muigg, who says: In spite...

    December 16, 2013: DevLab Munich
    Comments: 2 | Categories: External , News , Travel
    I arrived in Gothenburg last night. Today I participate in my last DevDay conference for this year. Adam and Jim are continuing to Moscow, where they will be supported by Vladimir and the rest of the team there. Last week...

    December 12, 2013: Saving a New Central File to Revit Server
    Comments: 3 | Categories: 2014 , Family , Server , Transaction , Travel , Workset
    One topic brought up at Scott Conover's worksharing roundtable was the question of how to save a new Revit central file to a Revit Server. Participants even questioned whether this is possible at all with the current API. Well, it...

    December 11, 2013: Security, Framing Cross Section Analyser and REX
    Comments: 0 | Categories: .NET , Data Access , Geometry , Git , Migration , REX , RST , Utilities
    My topic for today is structural cross section analysis, i.e. determination of the cross section profile of beam, columns, braces, etc., and the various completely different approaches one can take to achieve this. I also demonstrate how to make use...

    December 10, 2013: Triggering Immediate External Event Execution
    Comments: 2 | Categories: .NET , 2014 , Desktop , Events , External , Idling , Performance , Photo , Travel , Win32
    We held our first West European Devday in Paris on Monday and I am now sitting in the airport headed for Milano. En route to Milano, I worked at testing Joe Ye's trick to trigger the Idling event (potential SetRaiseWithoutDelay...

    December 9, 2013: Replacing an Idling Event Handler by an External Event
    Comments: 0 | Categories: .NET , 2014 , Debugging , Desktop , Events , External , Git , Idling , Migration , Performance
    I arrived back in Europe safe and sound from America. Healthy, as well, in spite of air conditioning and the freezing temperatures in some of the Autodesk University conference rooms. Thank God, I went well prepared with long-sleeved woollen underwear...

    December 8, 2013: Nightingale M3U and Denormalized Filename Characters
    Comments: 0 | Categories: External , I18n , Mac , MP3 , Music , Python , Utilities
    Here is a post addressing a Mac denormalized filename character issue, music players on Mac and Python file manipulation, so nothing to do with the Revit API. It appears that Songbird is dead, Nightingale is its successor, and nothing much...

    December 6, 2013: AU Day 3, ReCap & Cloud-based Round-trip Model Editing
    Comments: 0 | Categories: AU , Cloud , Desktop , Events , External , Idling , Mobile , ReCap
    When you get to read this, I will be sitting in a plane at 30'000 feet over the middle of the Atlantic Ocean... or somewhere over Greenland, whatever. Thursday was the third and last day of Autodesk University. I went...

    December 5, 2013: AU Day 2, Worksharing and Revit 2014 API Roundtables
    Comments: 2 | Categories: 2014 , AU , BIM , Events , News
    Here is my report on Wednesday at Autodesk University, following the DevDay pre-event conference on Monday and the first real day at AU on Tuesday. These are my main activities of the day in chronological order, plus pointers to a...

    December 4, 2013: AU Day 1, Revit 2014 API Class and Bounding Box Rotation
    Comments: 0 | Categories: 2014 , AU , Geometry , News
    Tuesday was the first real day at AU after the DevDay pre-event conference yesterday. Here are my main activities of the day in chronological order: Advanced Revit 2014 API features and samples AU Keynote by Jeff and Carl DevLab and...

    December 3, 2013: DevDay@au Chronicle Estorage View Depth Sound of Noise
    Comments: 10 | Categories: AU , Cloud , Mobile , Music , News , Utilities , View
    Monday was the first day at Autodesk University in Las Vegas, dedicated to the forward-looking confidential DevDays conference with the main focus on the rEvolution – where desktop meets the cloud. In spite of the confidential nature of the information...

    December 2, 2013: Arrival at AU and The Story of Stuff
    Comments: 0 | Categories: AU , External , News
    I arrived safe and sound at AU. Last week was pretty hectic with preparations for both AU and DevDays. The weekend was also pretty full. Unlike previous years, I did not leave Europe until the last possible moment, so no...

    November 26, 2013: A Pee Cee Free Day
    Comments: 5 | Categories: Photo
    I celebrated my birthday with a PC-free day. My colleague Joe Ye sent me a nice (digital) cake from Beijing: Joe points out that the character on the cake means longevity or birthday, and peach is the traditional food for...

    November 25, 2013: Erasing Extensible Storage with Linked Files
    Comments: 0 | Categories: Cloud , Element Creation , Regen , Storage , View
    Here is a query and resolution raised by Marc in the discussion forum on erasing extensible storage data with linked files, followed by a reminder of the need to regenerate the model to avoid accessing stale data and hint of...

    November 22, 2013: Debugging Revit 2014 API with Visual Studio 2013
    Comments: 2 | Categories: .NET , 2013 , 2014 , Debugging , Installation
    The officially supported development platforms for Revit add-ins are Microsoft Visual Studio 2010 and Microsoft Visual Studio 2010 Express Edition. The important factor is really only the .NET environment, Microsoft .NET Framework 4.0. Of course, you can also use the...

    November 21, 2013: Determining Whether Parameter is Type or Instance Bound
    Comments: 0 | Categories: Data Access , Git , Parameters
    Here is a question that came up now and then in the past, on how to determine whether a given parameter retrieved from the document shared parameter bindings is bound to a type or instances. Question: I have not been...

    November 20, 2013: Translated Shared Parameter GUID Consolidation
    Comments: 0 | Categories: Algorithm , Family , I18n , Parameters
    Obviously, a language independent application is much easier to implement and maintain than a language dependent one, once you have the internationalisation framework for it in place. By the way, I took this opportunity to add the new category I18n...

    November 19, 2013: RoomEditorApp Idling and Benchmarking Timer
    Comments: 0 | Categories: .NET , 2014 , Algorithm , AU , Debugging , Desktop , Events , Git , Idling , Performance , Utilities
    I solved my two RoomEditorApp Idling issues! They were especially worrying due to the fact that I am planning to present this application in my Autodesk university class DV1736 on Cloud-Based, Real-Time, Round-Trip, 2D Revit Model Editing on Any Mobile...

    November 18, 2013: Localised Unit Abbreviations
    Comments: 0 | Categories: 2014 , Git , Units , Utilities
    I recently discussed how to generate unit abbreviations, both using a hard coded list and automatically generating them from the UnitSymbolType enumeration values. I implemented the CmdDutAbbreviation command in The Building Coder samples to test these abbreviations, and also enhanced...

    November 17, 2013: Revit 2014 Developer Guide PDF
    Comments: 0 | Categories: 2014 , Getting Started , News , SDK Samples
    Happy Sunday! Extra, extra, breaking news! As I just mentioned a few days back, the Revit API developer guide is back on WikiHelp again. Still, as we recently discussed here and in the Revit API discussion forum, a PDF version...

    November 15, 2013: Multi-Version Visual Studio Revit Add-In Wizard
    Comments: 0 | Categories: .NET , 2013 , 2014 , Utilities , Wizard
    Developers often ask how to support multiple versions of a Revit add-in from the same codebase. Many have implemented solutions for this using various Visual Studio project settings. Alexander Ignatovich of Investicionnaya Venchurnaya Companiya went one step further and implemented...

    November 14, 2013: The Developer Guide is Back on WikiHelp
    Comments: 4 | Categories: 2014 , DMU , News , Storage
    Let's look at a couple of topics today, in order of decreasing relevance to the Revit API: The Revit API developer's guide on Autodesk help Using Dynamic Update and Extensible Storage in family documents 3D modelling in a browser 3D...

    November 13, 2013: Intimate Revit Database Exploration with the Python Shell
    Comments: 2 | Categories: .NET , Data Access , Debugging , Element Creation , Element Relationships , Python , Ruby , Utilities
    I keep repeating the importance of being able to explore the Revit database model efficiently to understand what is going on. This can even be important for end users, and is certainly much more so for developers. The first and...

    November 12, 2013: Revit 2014 Update Release 2
    Comments: 3 | Categories: 2014 , Family , Installation , News , RME , Update
    Revit 2014 Update Release 2 has been posted to the Autodesk Revit product pages: Revit 2014 Update Release 2 Revit Architecture 2014 Update Release 2 Revit MEP 2014 Update Release 2 Revit Structure 2014 Update Release 2 As usual, the...

    November 11, 2013: Singleton Application versus Multiple Command Instances
    Comments: 0 | Categories: .NET , 2014 , Events , Git , Idling
    I recently discussed the RoomEditorApp external application, the Revit add-in part of my cloud-based real-time round-trip 2D Revit model editing application, while creating the RoomEditorApp GitHub repository and migrating it to Revit 2014. I also mentioned that I was mysteriously...

    November 8, 2013: User MEP Calculation Sample on GitHub
    Comments: 2 | Categories: 2014 , External , Git , RME , Server
    I published the user MEP calculation sample a couple of months ago as an example of making use of the external services framework to redefine the algorithms used for internal calculations in Revit. Nmulder is happily making use of this...

    November 7, 2013: Placing Equidistant Points Along a Curve
    Comments: 2 | Categories: Algorithm , Geometry
    How can one generate equidistant points along a Revit curve element? This is not completely trivial, since the Revit API only provides functionality to evaluate the curve based on its internal parameterisation, and not based on real world space coordinates....

    November 6, 2013: Determining Host Document Location of a Linked Element
    Comments: 5 | Categories: 2014 , Element Relationships , Family , Links , Units
    It is getting rather cold and wet and dreary outside now, so I spent some time answering the following excellently documented developer query on relating the coordinates of a linked file with its host. Just as I was about to...

    November 5, 2013: Mapping Display Unit Type to Unit Types
    Comments: 0 | Categories: 2014 , Algorithm , Git , Migration , Units
    Yesterday, we looked at unit abbreviations and some other aspects of the new Revit 2014 Unit API. I mentioned that one might be able to use the FormatUtils.Format or UnitFormatUtils.Format methods to generate a string representation of a given numeric...

    November 4, 2013: Unit Abbreviations
    Comments: 2 | Categories: Data Access , Settings , Units , User Interface
    Today, we look at determining the units for a given parameter, and specifically providing a suitable unit abbreviation for it. The Revit 2014 API introduced a new Unit API with a large number of enhancements to complete and simplify unit...

    November 1, 2013: RoomEditorApp Architecture and External Application
    Comments: 0 | Categories: 2014 , Debugging , Desktop , Events , Git , Idling , Migration
    A couple of days ago, I wrote about creating the RoomEditorApp GitHub repository for the Revit add-in part of my cloud-based real-time round-trip 2D Revit model editing application on any mobile device and promised to discuss its implementation details anon....

    October 31, 2013: Invitation to Autodesk DevDays 2013
    Comments: 0 | Categories: Events , News
    While I am beavering away at my Autodesk University material, or at least should be, instead of answering developer cases and blogging, my colleagues are equally busy preparing the upcoming Autodesk Developer Days. As you can see from the DevDays...

    October 30, 2013: Wall Compound Layer and Other Geometry and Licenses
    Comments: 0 | Categories: Data Access , Element Relationships , Geometry , Parts
    Below, we take another quick look at the issue of licenses. First, here is a pretty basic question that keeps reappearing, so I summarise some existing results for everybody's convenience: Question: How can I programmatically retrieve the coordinates of a...

    October 29, 2013: Determining Room Boundary Segment Generating Element
    Comments: 0 | Categories: Algorithm , Data Access , Debugging , Element Relationships , Geometry
    Today we look at how to determine the neighbouring BIM element of a room boundary segment using the ReferenceIntersector to shoot a ray from the room interior into the bounding element. There should not really be any need to implement...

    October 28, 2013: RoomEditorApp for Revit 2014 on GitHub
    Comments: 0 | Categories: .NET , AU , Cloud , Desktop , Git , Migration
    I discussed my Revit add-in for my cloud-based, real-time, round-trip, 2D Revit model editing application on any mobile device in depth last spring, with the last update on its implementation status published back in May. Even at that time, since...

    October 25, 2013: ExportCncFab on GitHub and RevitLookup Update
    Comments: 0 | Categories: 2014 , DXF , Export , Git , Migration , Parts , RevitLookup , SAT , Transaction , Utilities
    I am in a hurry, still not finding time to prepare my AU classes, and lots going on. I published an add-in named ExportWallboard to automatically isolate and export wall parts individually to DXF for CNC fabrication back in March,...

    October 24, 2013: Move Tag to Host Location
    Comments: 0 | Categories: Element Relationships , Geometry
    After a number of pretty lengthy heavy-duty discussions in the past few days, here is a short and quick summary of a useful result from the discussion forum thread on moving a tag to its host location point: Question: I'm...

    October 23, 2013: RevitLookup on GitHub and Invitation to Collaborate
    Comments: 2 | Categories: Data Access , Debugging , Element Relationships , Geometry , Getting Started , RevitLookup , SDK Samples , Utilities
    I sincerely hope that everybody reading this is aware of the power and importance of RevitLookup, has already installed it, and is an avid user. If you do not know what I am talking about, please read these previous posts...

    October 22, 2013: The Dynamo Revit Unit Test Framework
    Comments: 0 | Categories: .NET , Debugging , External , Performance , Utilities
    I have repeatedly underlined the importance of unit testing, and recently presented the RvtUnit project enabling the use of the NUnit unit testing tool for Revit add-ins. The Dynamo team now presents another one; in case you have not already...

    October 21, 2013: Programmatic Custom Add-In External Command Launch
    Comments: 10 | Categories: 2014 , Debugging , Git , Journal , Ribbon , SDK Samples
    One of the highlights of the Revit 2014 API is the new PostCommand functionality enabling programmatic launching of built-in Revit commands. The Revit SDK includes a new sample demonstrating its use, PostCommandWorkflow. However, that programmatically launches an existing built-in Revit...

    Feed & Share