Jeremy Tammik blogging on the Revit API

Philosophy

March 06, 2019

I recently implemented the IfcSpaceZoneBoundaries add-in to link in and analyse IFC file zones and spaces, then prepared it for use in Forge Design Automation. Now I want to add level information to the CSV export. However, the DirectShape elements created to represent the rooms and zones have no valid level assigned, so their Level property is invalid.
Happily, we can easily analyse the BIM and generate the equivalent information ourselves
– Retrieve levels sorted by elevation
– Determine level from element elevation
– Carl Bass and Zoox autonomous vehicles
– Physical reasons to be happy to be alive...
Read more →

February 14, 2019

A demonstration of using the NewSweep method was very kindly provided in yet another helpful answer by Frank @Fair59 Aarssen to the Revit API discussion forum thread on how to create a sweep with multiple closed loops in profile.
Let me also highlight an interesting TED talk on the topic of poverty versus universal basic income
– Creating a sweep with multiple closed loops
– Poverty versus universal basic income...
Read more →

September 10, 2018

Joshua Lumley pointed out the recording he made for his BILT submission on five secrets of Revit API C# coding.
Before getting to that, here are a couple of pictures from this last weekend's mountain tour
– Ruessigrat, Brotmesser and Matthorn
– Five secrets of Revit API Coding...
Read more →

July 29, 2018

I am back from my July vacation.
As planned, I visited the Buddhist monastery Plum Village near Bordeaux.
Here are some personal notes from my experiences there, followed by a Revit API related issue that just cropped up
– Plum Village and its visitors
– Mindfulness and relaxation
– My struggle with the smile
– Mindful watering of seeds
– Line intersection with topography surface...
Read more →

January 12, 2017

I have probably asked developers for reproducible cases a couple of thousand times by now.
Let's discuss that and also return to the topic of how to research a Revit API problem in general.
Finally, I'll point out a Revit 2017 API MEP electrical feature.
Oh, and I continued my research into deep learning for a Revit API question answering system
– Creating a reproducible case may well solve the issue at hand
– How to research to find a Revit API solution
– Access to cable tray and conduit settings
– Getting started implementing a question answering system
– First impression from IBM Bluemix
– Open source QAS options
– Building a Revit API ontology...
Read more →

January 11, 2017

I took a first look at deep learning for question answering systems. Before that, I share some news on AU in Europe, thoughts on UI and innovation, and point out a useful Revit API feature for converting a Hermite spline to Bezier
– Autodesk University in London
– Rules of thumb for change agents
– Invisible user interfaces
– Conclusions from lexical analysis of top news stories
– Converting a Revit Hermite spline to Bezier or NURBS
– Lots of literature on deep learning...
Read more →

January 09, 2017

I continued my activity in the Revit API discussion forum and had lots of interesting discussions there.
One recent thread caused me to bring up a favourite topic of mine, on keeping things simple.
I'll also mention two other less recent recurring questions
– Distance between two points in a specific direction
– Revit command-line switches
– Keeping things simple with the Revit API
– Dino pondering lengthening days...
Read more →

December 14, 2016

I went back to answering way too many questions in the Revit API discussion forum yesterday.
However, two other interesting topics also cropped up when I finally let go of that pastime, and I just finished a good book
– The Sellout by Paul Beatty
– IFC Ids and Open Shell
– Forge Python scripts
– py_forge_formats.py
– forge_authenticate_app
– forge_formats
– jprettyprint
– Mainline...
Read more →

May 26, 2016

I completed the first running version of my roomedit3d project connecting BIM and the cloud demonstrating two cool possibilities to enhance interaction with the View and Data API
– A viewer extension enabling interactive model modification, i.e., translation of selected elements
– Real-time communication of the modification back to the source CAD system using a direct socket.io connection to broadcast from the web server to any number of desktop clients...
Read more →

May 25, 2016

I returned from the trip to Barcelona last week for the Forge Accelerator and was immediately inundated with overdue tasks. One issue that I addressed has to do with rendering assets
– Roomedit3d Revit-Independent Implementation Aspects
– Connecting BIM and the cloud
– Demonstrating cool possibilities to enhance interaction with the View and Data API
– A viewer extension enabling interactive model modification, i.e., translation of selected elements
– Real-time communication of the modification back to the source CAD system using:
– A REST API POST call from the viewer extension to the node.js web server
– A direct socket.io connection to broadcast from the web server to any number of desktop clients...
Read more →

March 19, 2016

I am leaving for a ten-day Vipassana meditation retreat next week, so I'll cram in this quick Saturday post on the meditation retreat and mindfulness before I have too much to do getting prepared next week. It includes yet another discussion of Idling versus external events for modeless dialogues and dockable panels. Vipassana means 'seeing'. In this case, seeing is enhanced by concentration on my own self, my body, my mind, my thoughts.
No talking, no communication whatsoever, no Internet, no mobile devices, no pen and paper, no reading.
No input, no output.
Sitting...
Read more →

February 09, 2016

I seem to become more and more fanatically didactical as time goes on.
I guess I answer too many questions, and am irritated when they are not asked in an optimal way.
One important point, of course, as in
all communication,
is to formulate your message with the receiver in mind.
I explained that for two specific cases today, and thought I would mention my suggestions here for future reference, after wishing everybody
– Happy New Year of the Monkey
– How to debug a complex issue
– How to ask a question...
Read more →

February 05, 2016

I am going to the University of Bern this afternoon to listen to Richard Stallman speak For A Free Digital Society.
Here are some other recent and not-so-recent topics
– BIM 360 Docs
– Richard Stallman in Switzerland
– Is the abc conjecture proven?
– Add-In Folders
– BIM 360 Docs is the new Autodesk platform for construction document management.
It provides web services to ensure that the entire project team is always building from the correct version of documents, plans, and models...
Read more →

January 15, 2016

Let's end this week by taking a look at two new AEC and BIM related publications: a new Autodesk eBook, Era of Connection, and a Dutch architectural design student project exploring Revit families and data handling
– Era of Connection
– Revit Families and Data Handling...
Read more →

December 22, 2015

Last week, we discussed how to retrieve wall openings. Let's take another fresh look at that, based on FindInserts instead of the ReferenceIntersector ray tracing approach, and also at
– A walk over Uetliberg
– Using FindInserts to retrieve wall openings
– CmdGetWallOpeningProfiles
– Relationships, independence and consumerism...
Read more →

September 22, 2015

I returned from the Autodesk Cloud Accelerator in Prague, where I finished off cleaning up the FireRating in the Cloud sample and made some good inroads into the new CompHound project. Some learning resources and sharing philosophy
– Håvard Vasshaug on Learning Dynamo and Sharing Content
– Open Source BIM, IFC and FreeCAD
– Chinese Revit API Book...
Read more →

December 03, 2014

Here are some notes I took this morning at the keynote presentations by Jeff Kowalski, Carl Bass and Emily Pilloton: Jeff Kowalski Carl Bass Emily Pilloton Jeff and Carl expanded Jeff Kowalski Machine learning and generative design. Identify existing components and their relationships. Tell the computer not what to do and how to design, but give it the goal we want to achieve. Computationally grow structures. Two new kinds of technology: intelligent taxonomies: build new work on all the best...
Read more →

November 13, 2014

Today, let's look at: A generic selection filter implementation Determining adjacent rooms and spaces The good universe A Generic Selection Filter Implementation Yesterday, I presented my new JtPairPicker element pair selection utility class. It included a templated selection filter class. I later realised that I could make use of that in several other places as well, replacing the existing explicit Wall, CurveElement and Pipe selection filters by a generic JtElementsOfClassSelectionFilter one instead: /// /// Allow selection of elements of...
Read more →

October 25, 2014

I arrived safe and sound for the Berlin hackathon. Topics for today, three on the Revit API and three not: Traffic jams and too many cars Intro to functional programming in JavaScript Aligning multiple elements Render to PDF Displaying transient graphics in a preview control Berlin hackathon beginning Traffic Jams and Too Many Cars Yesterday, on a Friday afternoon – bad timing – my colleague Peter Schlipf and I travelled from Darmstadt to Berlin by car, about 600 km. It...
Read more →

August 25, 2014

Let's start this week with a couple of interesting topics that have been hanging around a while up, one Revit API related and not: How to fail at almost everything and still win big Handling duplicate types when copying elements How to Fail at Almost Everything and Still Win Big I received a very nice present from my colleague Steve Mycynek, Principal Engineer of the Revit API development team, at the Autodesk Technical Summit in Toronto: How to Fail at...
Read more →

August 24, 2014

Yesterday, I spent a day with a group of seven friends to talk and share our everyday issues based on the principles of non-violent communication, sharing and council. Now, after almost two years of meeting regularly like this, we have grown pretty close and know each other quite well, causing inter-personal conflicts at new and more subtle levels. We spontaneously created and shared a healing ritual based on the Hawaiian Ho'oponopono practice of reconciliation and forgiveness. This provides a very...
Read more →