This is Jeremy Tammik's Typepad Profile.
Join Typepad and start following Jeremy Tammik's activity
Join Now!
Already a member? Sign In
Jeremy Tammik
Switzerland
Interests: rock climbing
Recent Activity
Image
I am back from a multi-day hike of about 70 km along the Swedish Sörmlandsleden wilderness trail. In the meantime, lots of noteworthy things happened – Revit 2019.1 update and features – Revit Add-Ins using the CEFsharp library – BIM 360 Issues API – Forge Accelerator in Rome and elsewhere – Looking for a Forge development partner – New way to retrieve a parameter id... Continue reading
Posted 3 days ago at The Building Coder
Image
I returned from my time off in July. I dived in deep into the Revit API again to resolve an issue retrieving wall profile curves. Here are some other noteworthy items to keep company with my debugging report – CmdWallProfile update – Access to the IUpdater original value – Getting element dimensions from IFC files – Creative workaround to rotate elevation marker in chunks... Continue reading
Posted Aug 6, 2018 at The Building Coder
Image
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... Continue reading
Posted Jul 29, 2018 at The Building Coder
Image
As I already mentioned, I am taking lots of time off in July. This is just a note to let you know I am alive, well and happy, currently in Brassac in Occitanie in southern France, on my way to practice awareness, care and attentiveness in the Buddhist monastery Plum Village near Bordeaux. On the road, I'll just share this quick note from a comment by Zhmayev Yaroslav on multi-targeting Revit versions using TargetFrameworks – Multi-Version Revit Add-In Template... Continue reading
Posted Jul 17, 2018 at The Building Coder
Image
I am taking lots of time off in July, so this may be my last post for a while. Before leaving, I will share my answers to a list of pertinent questions on add-in registration, especially how to populate the add-in manifest VendorId tag and handle the trusted digital DLL signature – Add-in registration – VendorId – Add-in registration – trusted digital add-in signature – Vacation in July... Continue reading
Posted Jun 29, 2018 at The Building Coder
Image
Here comes another solution for efficiently compiling add-ins for multiple Revit version targets from one single code base, a note on resources for CAD term databases for consistent terminology translation, and a discussion on accessing custom texture maps in Forge and Revit – Multi-targeting Revit versions using TargetFrameworks – Further enhancement using the CSPROJ Import tag – CAD terminology resources for consistent translation – Showing a custom Revit texture map in the Forge Viewer... Continue reading
Posted Jun 29, 2018 at The Building Coder
Image
I am attending the BAM Digital Construction Live event in the UK and presenting on Forge for that domain. Today, I'll share my slide deck from this event and welcome my colleague Xiaodong answering his first Revit API cases – Forge for Digital Construction – Welcome Xiaodong and invoking the Draw Model Line command... Continue reading
Posted Jun 21, 2018 at The Building Coder
Image
I am participating in a Digital Construction Live event in the UK next week and presenting there on Forge for the BIM domain. Today, let's focus on the real message and some live samples putting it to use: – The real message – BIM collaboration roles and magnitudes – Forge for AEC Sample Live – Connecting Forge with BIM360 Sample... Continue reading
Posted Jun 16, 2018 at The Building Coder
Image
Apparently, the Revit SDK REX Visual Studio templates are obsolete. Let's fix that problem. Also, two little notes on a C# optimisation trick for math-heavy code, and the current status of the Forge Design Automation API for Revit – Revit Structure 2019 REX Extension SDK Visual Studio Templates – Improve C# Performance Using Struct Instead of Class – Update on the Forge Design Automation API for Revit... Continue reading
Posted Jun 15, 2018 at The Building Coder
Image
I am participating in a Digital Construction Live event in the UK next week and presenting there on Forge for the BIM domain. In preparation, I'll jot down some notes here on what I learned about this myself lately – Forge for AEC in Five Minutes – What do the Forge APIs do? – BIM360 – Connect the Docs – Overview – Packages – Platform and Subscriptions – Subscription Entitlements – Docs – Design – Glue – Build – Summary... Continue reading
Posted Jun 14, 2018 at The Building Coder
Image
José Alberto Torres Jaraute implemented an add-in tool to protect the intellectual property built into a complex hierarchy of nested family instances by replacing them with a flatter and simpler hierarchy, yet retaining all the relevant non-confidential custom data. Basically, his tool also enables location of overlapping elements and duplicates elimination. In the course of this work, Alberto raised a number of questions in the Revit API discussion forum – Explode nested families – Insert a curve-based family instance associated to a face – Explode family instance to get all the components of a family in project – Change the host and work plane of a family... Continue reading
Posted Jun 13, 2018 at The Building Coder
Image
The Failure API enables both failure definition and handling capabilities – The ability to define and post failures from within API code when a user-visible problem has occurred – The ability to respond to failures posted by Revit and by API code through code in your application This also enables the creation of a modeless warning message to the user... Continue reading
Posted Jun 11, 2018 at The Building Coder
Image
An interesting question was raised on renaming a family after it has been loaded into a project, which throws some light on the underlying relationship between the family name and the RFA filename. Before that, we revisit the eternal topic of getting started with the Revit API, and what to do to prepare for it before actually touching Revit at all. Afterwards, and similarly, we pick up a good suggestion or two on planning and preparing your extensible storage schema for future version handling – Before getting started – Renaming a family in a project – Extensible storage – versioning best practices... Continue reading
Posted Jun 7, 2018 at The Building Coder
Image
Slowly but surely and one by one, the Revit 2019 updates are percolating through to the Revit Developer Centre – Revit 2019 SDK published – My First Revit Plugin update... Continue reading
Posted Jun 4, 2018 at The Building Coder
Image
Today, let's revisit the topic of filtering for a parameter value, and mention the updated Forge tutorials – Learning Forge tutorials – Filtering for a specific parameter value – Filtered element collector optimisation... Continue reading
Posted Jun 1, 2018 at The Building Coder
Image
I am busy in the Revit API discussion forum. However, you can check the discussions there yourself. Here and now, I'll mention some different topics – oops, one of them is from there after all – RST and the Structural Analysis SDK – Determining the path of a recently exported file – Driving NavisWorks programmatically via ExecuteCommand – The Autodesk assistant Ava and the uncanny valley... Continue reading
Posted May 31, 2018 at The Building Coder
Image
Let's finish this week with a blog post completely free of source code – but not of Revit API topics – Compiling add-ins for multiple Revit versions – Generative design for office planning – Handy Markdown tutorial – Job offer for senior software engineer in Tel Aviv... Continue reading
Posted May 25, 2018 at The Building Coder
Image
Today, we revisit the interesting and generic question on retrieving all exterior walls. That may be easy in a perfect and complete model. However, it raises some challenges in an incomplete BIM – Retrieving all exterior walls – Several possible approaches – Using a computational geometry approach – Manually adding the huge surrounding room – Encapsulate transactions and roll back instead of deleting – Determining model extents via wall bounding box – Implementing the huge surrounding room approach – Retrieving family instances satisfying a filter rule... Continue reading
Posted May 24, 2018 at The Building Coder
Image
After the significant struggle I had to compile the initial release of the Revit 2019 SDK samples and set up RvtSamples 2019, I am happy to report that installing and compiling the Revit 2019 SDK April 27 update is a lot easier – Downloading the April 27 SDK update – Initial compilation – 41 warnings – Processor architecture mismatch suppressed – 5 warnings – Update reference to RevitAPISteel.dll – 3 warnings – Setting up RvtSamples – Updated RvtSamples download... Continue reading
Posted May 18, 2018 at The Building Coder
Image
How to export all the Revit data to an external database? It is very simple to extract all the parameter data. Let's implement a solution to do so – Existing sample implementations – Black box input – Choices for the output and its structure – Retrieve parameter values from an element – FilterCategoryRule versus category filters – Category description extension method – Retrieve parameter data for all elements of given categories – External command Execute mainline – Sample run results – Download... Continue reading
Posted May 17, 2018 at The Building Coder
Image
Today, we explore how to retrieve visible DWG geometry, i.e., geometry elements contained in a CAD import instance on a layer that is visible in the currently active view, and how to import an image to the foreground instead of the default background setting – Retrieve CAD import geometry on visible layer – Import image using foreground option... Continue reading
Posted May 16, 2018 at The Building Coder
Image
Exciting news from Russia and some mundane updates on other repetitive topics – Driving Revit from a modeless context via a WCF service – Room walls' directions – Retrieving all exterior walls – Getting and setting a shared parameter value... Continue reading
Posted May 14, 2018 at The Building Coder
Image
@CaptainDan raised a very pertinent question in the discussion forum on using FilterCategoryRule in the Revit API that led to some discussion and clarification with the development team: I have three questions regarding the filter rule represented by this class... Continue reading
Posted May 9, 2018 at The Building Coder
Image
Every time I created a ribbon button, I was faced with the task of creating appropriately scaled icons for it to populate the PushButton large and small image icon properties LargeImage and Image. They seem to expect a 32 x 32 and 16 x 16 icon, respectively. I finally solved that once and for all by implementing a couple of methods to perform automatic bitmap scaling – BitmapImageToBitmap – convert a BitmapImage to Bitmap – BitmapToBitmapSource – convert a Bitmap to a BitmapSource – ResizeImage – resize an image to the specified width and height – ScaledIcon – scale down large icon to desired size for Revit ribbon button – Usage sample – putting them together... Continue reading
Posted May 2, 2018 at The Building Coder
Image
I am excited to announce a number of new opportunities to come and join me and my closest colleagues in our work supporting external developers in their use of the Forge web programming technologies. Also, before closing for the week, I'll mention two interesting reads for the weekend, by Sasha Crotty on moving from Collaboration for Revit to BIM 360 Design, and by the World Economic Forum WEF on an action plan to accelerate BIM adoption – Would you like to come and work with us? – From Collaboration for Revit to BIM 360 Design – An action plan to accelerate BIM adoption... Continue reading
Posted Apr 27, 2018 at The Building Coder