Two challenging electrical wire issues addressed by @ricaun and a recurring question on element alignment for defining a constraint – Bounding box filter for wires – Visualizing circuits in 3D – Aligning two elements... Read more →
Two challenging electrical wire issues addressed by @ricaun and a recurring question on element alignment for defining a constraint – Bounding box filter for wires – Visualizing circuits in 3D – Aligning two elements... Read more →
Posted on May 16, 2023 at 11:00 in Algorithm, Element Relationships, Geometry, RME | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Geometry options and clean simple curves – Curve loop simplify and clean up – Geometry options clarification – JtClicker 2023 – OpenMEP by Chuong Ho – Unintelligible film dialogue... Read more →
Happy New Year 2023!
Topics to begin
– Copy as HTML 2022
– Size MEP connector with CultureInfoChanger
– Journal files AU class
– Bulk reload families with IFamilyLoadOptions
– IronPython3, APS and RPS...
Read more →
A C++ sample demonstrating how to align connectors, an impressive modern platform for implementing and streamlining online API processes, and my impressions of Harari's book on the history of mankind – Align connectors in C++ – Pipedream serverless API workflow – Harari: Sapiens Read more →
Back to the beginning with a quick look at the Revit MEP API, and a great step forward for RevitPythonShell – Revit MEP API intro – RevitPythonShell RevitLookup nuptials... Read more →
Posted on July 07, 2022 at 11:00 in Debugging, Getting Started, Python, RevitLookup, RME, Update, Utilities | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Three quick notes on critical and inspiring sci-fi, programming languages and MEP filtering – Pipe insulation retrieval performance – Programming languages to learn – Agency by William Gibson... Read more →
Posted on October 14, 2021 at 11:00 in .NET, AI, Algorithm, F#, Getting Started, Performance, Philosophy, Python, RME | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Increasing numbers of of Python and Dynamo oriented topics in the Revit API discussion forum, and a final deprecated API clean-up – The Building Coder samples clean – Retrieving all elements on level – Get ViewSheet from View – Fabrication transaction in Dynamo... Read more →
Posted on September 06, 2021 at 11:00 in 2022, Data Access, Dynamo, Element Relationships, Filters, Migration, Python, RME, RST, SDK Samples, Update, View | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Topics for today
– Revit 2021 DisplayUnitType
– Eliminated TBC samples deprecated API usage
– Calculating the elbow centre
– FireRevit identifies room location for fire escape routes...
Read more →
Today, let's focus on splitting pipes and other things, starting with a nicely structured tutorial – Abdelaziz' split pipe tutorial – Calling the SL split element command – Splitting a conduit... Read more →
Posted on June 02, 2020 at 11:00 in Element Creation, Geometry, Getting Started, RME | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Today we pick up two recent MEP related discussions, on creating a new pipe connector for a hydraulic fitting family and on automatic pipe system routing, and a couple of other odd items
– The names they are a-changin
– Getting a ReferencePlane
for CreatePipeConnector
– Auto-routing a pipe system between plumbing fixtures
– Handling dialogue and failure messages
– Retrieving a geometry reference...
Read more →
Posted on March 26, 2020 at 11:00 in Algorithm, Element Creation, Failure, Geometry, News, RME, User Interface | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
We recently shared a brief note on using the BreakCurve
API for splitting a pipe.
Matt Taylor now pointed out a much more comprehensive discussion asking, is there any API available to split a duct programmatically?
That is not just an example, but an entire tutorial, so I think it is very useful to share here as well for all to enjoy..
Read more →
Posted on March 17, 2020 at 11:00 in Element Creation, Family, RME, User Interface | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
An amazing solution to move existing rooms between levels while retaining all their information, some thoughts on managing slots in panel schedules, and a couple of useful JavaScript debugging console hints – Moving rooms to other levels – Slots in panel schedules – JavaScript debugging console commands... Read more →
Posted on March 12, 2020 at 11:00 in Debugging, JavaScript, Parameters, RME, Schedule | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
A short note on splitting pipes... Read more →
Posted on March 11, 2020 at 11:00 in RME, User Interface | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Topics to start this week – Why SVG? – Internet privacy – Pointless meetings research – Cyrillic characters in lookup tables – Moving a grid – Combining edges... Read more →
Today is my birthday, so I am trying hard to work less. Very kindly, Alexander Ignatovich provided a gift for the day in the form of a new external command CmdElectricalLoad in The Building Coder samples. showing how to retrieve the value of the `Load` column in the electrical system browser for a specific fixture family instance... Read more →
Posted on November 26, 2019 at 11:00 in .NET, Data Access, Parameters, RME | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Revit 2020.1 was released and an updated Revit SDK has now been published for it – Additions to the Revit 2020.1 API – Systems analysis API additions – Mechanical analytical systems – Zone equipment – System zones – Systems analysis and analysis reports – Export to gbXML – View API additions – Temporary view mode API – Schedule API additions – Striped rows – Path of travel API additions – Reveal obstacles mode for path of travel – Options API additions – Color options – Rebar API additions – Rebar constraints – Installation and compilation – RvtSamples Setup... Read more →
Posted on September 18, 2019 at 11:00 in 2020, Docs, gbXML, Migration, RME, SDK Samples, Update | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
One of today's Revit API discussion forum threads prompted a discussion of MEP duct- and pipework creation topics – Changing pipe direction – MEP ductwork creation tip... Read more →
Posted on August 15, 2019 at 11:00 in Element Creation, Geometry, RME | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Yesterday, I implemented a new add-in, RoomVolumeDirectShape, that creates DirectShape
elements representing the volumes of all the rooms
– Request to display room volumes in Forge SVF file
– RoomVolumeDirectShape functionality
– Retrieving all element properties
– Converting a .NET dictionary to JSON
– Generating DirectShape
from ClosedShell
– Complete external command class Execute
method
– Sample model and results
– Challenges encountered underway
– Cherry BIM Services
– On the value of the "Loss Method" property
– AI-generated talking head models...
Read more →
Let's highlight a nice interactive didactical Python-based Revit API learning challenge on how to get the bounding box from a Revit element and determine its centre – Cyril's Python HVAC blog – Rotating elements around their centre in Python – Retrieve element and bounding box from picked reference – Use location point instead of bounding box centre – Final working solution... Read more →
Posted on December 18, 2018 at 11:00 in Data Access, Geometry, Getting Started, Python, RME, Utilities | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Intersecting elements has always been a hot topic, cf. various previous discussions on 3D Booleans, cutting and joining elements; intersecting with elements in a linked file is even more challenging. Happily, the Revit API provides tools to support that as well – Intersecting linked elements with current project ones – Retrieving rebars intersecting a structural element... Read more →
I have a whole bunch of exciting overdue topics lined up. Let's start with these – Tailor Your BIM sums room areas with F# – Control view for design option elements with F# – Copy legend view and component from background file – Forge RVT to IFC translation defaults to 2x3 – Latitude and longitude in Revit IFC export – Takeoff creation requires branch duct... Read more →
Posted on October 30, 2018 at 11:00 in Algorithm, Data Access, Element Creation, F#, Forge, IFC, RME | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
I already described how I installed Revit 2019, compiled the Revit 2019 SDK samples and migrated RevitLookup to the new version.
I now migrated some of the other basic samples and utilities and have some Forge news to share
– The Building Coder samples for Revit 2019
– The AdnRme
MEP HVAC and electrical samples for Revit 2019
– AdnRevitApiLabsXtra for Revit 2019
– Convert RVT to IFC via Forge
– Forge accelerators
– Forge webinars
– Open position for an infrastructure BIM implementation consultant...
Read more →
Posted on April 19, 2018 at 11:00 in 2019, Accelerator, BIM, Events, Forge, Getting Started, IFC, Labs, Migration, News, RME, SDK Samples, Training, Update, Utilities | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Here are a couple of threads from the Revit API discussion forum related to MEP and connectors from the past few weeks that seem worth taking note of – Traversing an MEP system and retrieving connected elements – Reproducing the MEP electrical system browser hierarchy – Creating a conduit between two connectors – Dealing with the read-only transition diameter... Read more →
Posted on March 19, 2018 at 11:00 in Algorithm, Element Creation, Element Relationships, RME | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Two recent Revit MEP related cases brought up some new information on the pipe K
factor table and custom calculations for pipe fittings, the Forge DevCon class recordings are now available, and I discovered Konrad Sobon's wonderful archi+lab Revit API blog, which helps resolve an installation and setup issue
– Pipe K
factor table
– Custom K
factor calculation for pipe fittings
– Dynamo code to change loss coefficient
– Forge DevCon 2017 class recordings
– Archi+Lab
– Revit add-in installer and buttons...
Read more →
Posted on December 13, 2017 at 11:00 in AU, Data Access, DevCon, Forge, Getting Started, Installation, Ribbon, RME, User Interface | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
The Revit 2018 includes numerous exciting enhancements for add-in developers. The What's New section always provides very important information, both for discovering and exploring the newly added API functionality and for later reference. If you encounter any issues migrating your existing add-ins between different versions, this is one of the first places to look... Read more →
Posted on April 25, 2017 at 11:00 in 2018, Migration, News, Python, RME, RST, SDK Samples, Update | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
I am traveling to Gothenburg for the Forge accelerator. Meanwhile, Allan Seidel shared his WTA FireP 3D Aimer add-in that creates a custom ribbon tab with discipline related tools for placing specific Revit family types with some families requiring parameter settings made on the fly and the 3D Aimer example that "aims" a special Revit family to a target – WTA FireP 3D Aimer Tools – GitHub Repository and YouTube Video – Source Code Documentation – WTA Elec – Another Family Plunk and Concept Share... Read more →
Posted on March 26, 2017 at 11:00 in Accelerator, Element Creation, Family, Modeless, Parameters, Ribbon, RME, Settings, WPF | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
I answered a question in the Revit MEP forum, prompted by Robert Klempau's direct mention in the thread on connector numbers of mechanical equipment. Since it is rather technical and even includes a snippet of Revit source code, let me reiterate it here for better readability and future reference – Question: I created a mechanical exhaust fan with four connectors... Read more →
Posted on February 13, 2017 at 11:00 in C++, Element Relationships, RevitLookup, RME | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Let's pick up two more topics from the Revit API discussion forum today
– Family Category
property is not always set
– Two different energy analysis model types
– gbXML export options
– BuildingEnvelopeAnalyzer
class
– EnergyAnalysisDetailModel
creation from building elements and volumes
– EnergyAnalysisDetailModelOptions
...
Read more →
Posted on January 26, 2017 at 11:00 in 2015, 2016, Analysis, Data Access, Element Relationships, Export, Family, gbXML, Geometry, RME, VB | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
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 →
Posted on January 12, 2017 at 11:00 in 2017, AI, Deep Learning, Docs, Getting Started, Open Source, Philosophy, RME, SDK Samples, Settings | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Today, I address a sequence of Revit MEP related steps required to insert a specific tap or take-off fitting into a duct
– How to determine duct face from location point?
– How to convert XYZ
location to duct face UV
coordinates?
– How to anchor an object like AutoCAD Architecture?
– How to inherit system information?
– How to inherit system information – take II
– How to control take-off and tap sizing on a duct?
– How to select a specific tap type to connect to a duct?
– Sample code using routing preferences to select NewTakeOffFitting
tap type...
Read more →
Posted on August 24, 2016 at 11:00 in Element Creation, Geometry, RME, SDK Samples | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
I had an interesting chat last week with a group of students from the University of Augsburg on how to perform energy analysis on a bunch of autonomously assembled small building blocks, such as a colony of ants might put together. How can the resulting small building blocks be converted to a valid Revit BIM that can be used for building performance analysis? – BPA is now Insight360 – Self-organising construction and architecture – Back to the ants – project summary – Q & A – Two different energy model types... Read more →
Yesterday, I presented the new TraverseAllSystems add-in to traverse all MEP system graphs and export their connected hierarchical structure to JSON and XML that I am helping the USC team with here at the San Francisco cloud accelerator. I continued with that today, and also integrated a minor enhancement to RevitLookup – TraverseAllSystems updates – Shared parameter creation – Options – Bottom-up JSON structure – Top-down JSON structure – TraversalTree JSON output generator – TreeNode JSON output generator – Download and to do – RevitLookup updates... Read more →
Posted on June 22, 2016 at 23:00 in .NET, Accelerator, Algorithm, Element Relationships, Export, Forge, JSON, Parameters, RME, Viewer | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
The Forge DevCon last week completed successfully. I had a full body 3D scan created there and used sed
to flip the axes of the resulting OBJ mode. This week, I am sitting in the Autodesk offices at One Market in San Francisco, supporting the fourth Cloud Accelerator. One of the projects we are working on is from the University of Southern California to interact with Revit MEP systems in the Forge viewer. That requires traversing the MEP systems in the Revit model to store, recreate and represent their graph structures in the viewer
– Revit MEP System Traversal
– TraverseAllSystems Revit Add-in
– Download
– To do
– Thanks to Mustafa Salaheldin...
Read more →
Posted on June 22, 2016 at 11:00 in .NET, Accelerator, Data Access, Element Relationships, Export, Forge, Photo, RME, SDK Samples, View | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
We continue the rather exhaustive exploration of calculating net and gross wall areas per room, and two other announcements, pointers to interesting sources of information – Why Autodesk has a Labs – Dal BIM in poi – Italian BIM – Determining wall opening areas per room – Håvard's SpatialElementGeometryCalculator enhancement – External command mainline – Test run... Read more →
Posted on April 13, 2016 at 11:00 in Algorithm, Analysis, BIM, BPA, Data Access, Element Relationships, Export, Geometry, Labs, News, RME | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
I answered far too many threads on the Revit API discussion forum in the past few days to list them all, so I'll just pick out two cases of special interest today – Levels generated by IFC import – Determining MEP duct and pipe element shape... Read more →
Posted on February 24, 2016 at 11:00 in 2015, Data Access, Family, IFC, RME | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Today, let's look at an MEP related issue, loading the IES photometric web data for a light source, plus all the exciting things happening both for myself in the next weeks and for Autodesk as a company as a whole, reinventing itself for the modern cloud-based collaborative sharing technoculture – The first annual Autodesk X summit – Jeremy's January – DevDay in Munich – Accelerator Workshop – BIM Workshop in Madrid – Loading the IES photometric web data for a light source... Read more →
Posted on January 13, 2016 at 11:00 in Accelerator, Adva, BIM, DevDays, External, Forge, Parameters, RME, Travel, View | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
It's been a while since I talked about External Services. The External Services framework was initially introduced and used sparingly in the Revit 2013 MEP API. In Revit 2014, the IFC export was moved to an external service and I presented the user-defined MEP calculation sample, later moved to GitHub. The framework for handling referenced file resources is also implemented as an external service. The motivation to continue this discussion now was given by Arnošt Löbel's class SD10752 on Revit External Services at Autodesk University 2015 in Las Vegas... Read more →
Let's wrap up this hectic week with a couple more recently answered issues and one non-Revit note – Changing element type – Iterating over elements – Creating an electrical family – La costola di Adamo... Read more →
Posted on September 25, 2015 at 11:00 in Element Creation, Family, Filters, Getting Started, Performance, Philosophy, RME, SDK Samples | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Lots of things happening, making it challenging to find time for my Milano trip preparations: Accelerator in Prague One million AppStore downloads Responsive blogs now use Disqus comments Great series of AEC DevBlog articles: PipeScheduleType is missing for a RTE file Reading ASHRAE Table information from elements Reading Loss Methods available on Revit MEP Creating dimensioning between two detail components Placing a FamilyInstance on a wall face How to create a coloured detail line in family? How to create revision... Read more →
My French colleague Olivier Bayle, co-author of the French AEC-related Village BIM blog, just re-raised the topic of my old solid centroid and volume calculation add-in. Let's also point out one or two of the numerous topics we tackled in the past few days on the Revit API discussion forum: Graphically displaying the centre of gravity using Dynamo GetCentroid on GitHub and blitz migration across four Revit API releases Finding the orientation of welded pipe outlets How to set the... Read more →
Today, let me point out ArchSample, a heretofore unmentioned Revit SDK sample that I happened to notice answering a recent case, how to determine a currently active transaction, and an update to the ADN Revit MEP sample AdnRme: ArchSample and Retrieving Element Properties How to determine active or current transaction AdnRme for Revit MEP 2016 Before getting to those, let me add that I am still travelling in Greece, heading back to Athens now from the Greek island of Euboea... Read more →
Posted on June 05, 2015 at 10:00 in 2016, Data Access, Export, Getting Started, Migration, RME, SDK Samples, Update | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Our topics for today are on creating ducts, pipes and transforming a point: Creating specific ducts and pipes How to use Transform.CreateRotationAtPoint I am writing this from the village Agii Apostoli on the east side of the Greek island of Euboea, on my way to the second I love 3D – Athens meetup on June 5, followed by the AngelHack hackathon on June 6-7. For more details, please refer to The 3D Web Coder. Creating Specific Ducts and Pipes Question:... Read more →
Posted on June 03, 2015 at 23:00 in Element Creation, Family, Geometry, Getting Started, RME | Permalink | 0 Comments
Tags: akn_include, Jeremy Tammik, Revit API
Here is an illuminating explanation by Arnošt Löbel and Martin Schmid on some Revit API development trends that have already been underway for a couple of releases. Before I get to them, a quick report from our ADN team meeting: ADN European Team Meeting in Bretagne As you may have noticed from Adam Nagy's tweets in the past few days, I am at a team meeting with my European ADN colleagues: We are convening in Brittany, home of our manager... Read more →
Posted on April 02, 2015 at 11:00 in Data Access, Element Creation, Getting Started, Migration, News, RME, Travel | Permalink | 0 Comments | TrackBack (0)
Tags: Jeremy Tammik, Revit API
The placement of family instances can sometimes be a tricky topic in the Revit API. Programmatically, this is always achieved using the NewFamilyInstance method. However, this method provides 13 different overloads to choose from, which can be a non-trivial task: NewFamilyInstance(Face, Line, FamilySymbol) – Inserts a new instance of a family onto a face of an existing element, using a line on that face for its position, and a type/symbol. NewFamilyInstance(Line, FamilySymbol, View) – Add a line based detail family... Read more →
Posted on March 31, 2015 at 11:00 in Element Creation, Family, Git, Parameters, RevitLookup, RME | Permalink | 0 Comments | TrackBack (0)
Tags: Jeremy Tammik, Revit API
I was ill for a few days last week, with a fever and a virus. I also made a quick trip to Moscow, where we held the final event in this year's sequence of DevDays conferences. For the first time in my life, I gave my presentations in a woolly hat :-) I also rented my first airbnb flat ever, on Arbat street in the centre of town, and was pretty happy with that. I returned back to Switzerland on... Read more →
Posted on February 02, 2015 at 11:00 in Data Access, Filters, Git, Migration, RME, Travel | Permalink | 0 Comments | TrackBack (0)
Tags: Jeremy Tammik, Revit API
I am very glad to present another post contributed by Victor Chekalin, or Виктор Чекалин, who already shared many valuable insights and in-depth Revit API research in the past: On the Russian developer forum, the user goblya asked an interesting question. He needs to hide all elements except those that belong to a specific given system. There are some interesting moments in the solution. The main idea is to create the filter, assign this filter to the active view and... Read more →
Posted on January 26, 2015 at 11:00 in .NET, Algorithm, Filters, RME, View | Permalink | 0 Comments | TrackBack (0)
Tags: Jeremy Tammik, Revit API
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
Posted on November 13, 2014 at 11:00 in BPA, Dynamo, Filters, Git, Philosophy, RME | Permalink | 0 Comments | TrackBack (0)
Tags: Jeremy Tammik, Revit API
A long, long time ago, Davex raised a very pertinent question on the error messa... Read more →
Posted on October 31, 2014 at 11:00 in Algorithm, Element Creation, Geometry, RME | Permalink | 0 Comments | TrackBack (0)
Tags: Jeremy Tammik, Revit API
I received an email asking whether it is possible to determine the Revit MEP pipe element wall thickness, and also about the API access to voids in the family editor. Before getting to that, let me mention that I am now in Brussels at the Open Data Hackathon. Hackathon Open Data Brussels I arrived in Gent last night and returned to Brussels this morning for the Hackathon Open Data Brussels taking place today and tomorrow, October 17-18 2014. It is... Read more →
Posted on October 17, 2014 at 11:00 in Adva, Data Access, Geometry, GIS, Git, Hackathon, Mobile, RME, Travel | Permalink | 0 Comments | TrackBack (0)
Tags: Jeremy Tammik, Revit API
I listed a whole bunch of upcoming events last week. Now I have yet another one to announce, a webinar introducing the Autodesk View and Data API, immediately preceding the exchange apps hackathon. Autodesk Exchange Apps Hackathon – September 20-21, 2014 There are less than two weeks left before the Autodesk Exchange Apps Hackathon, a two-day virtual web based coding 'festival' that will run from September 20 through to September 21, 2014. This year's event is bigger and better than... Read more →
Posted on September 08, 2014 at 11:00 in 360, Cloud, Data Access, Getting Started, Hackathon, Mobile, Parameters, RME, Training | Permalink | 0 Comments | TrackBack (0)
Tags: Jeremy Tammik, Revit API