Parameter changes and tile packing using the Revit API and AI, plus some other notes on Forge and general stuff
– Parameter type changes to
– Determining cut tiles in room
– Optimal banana sandwich slice packing with AI
– Forge solution showcase
– Effect of home office on meeting culture
– Motivating kids can be harder than business success...
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...
I completed the move to my new computer, and happily all systems go now.
Here are some other topics that came up in the past few days
– Revit-IFC Release 20.1.0
– Community discussion on Revit
– Solid or instance, depending
– Exporting parameters to Access
– Store globals on custom
– Iranian civil engineering project video...
I explored three main topics here at the Forge accelerator
– Room closed shell solid visibility in the Forge viewer
– Rebar simplification: replace rebar elements with simplified solids or model curves
– Today, I'll dive deeper into the first
– IFC exporter utility adds new built-in parameter
– Barcelona Forge accelerator
– Room closed shell in the Forge viewer
– Triangulate the solid face by face
– Triangulate entire solid
– Tessellation accuracy control documentation error...
Today, we present yet another RevitLookup enhancement, a note on an undocumented built-in parameter change and a neat Forge Design Automation for Revit sample app – RevitLookup family types and parameter definition names – Bitmap aspect ratio built-in parameter renamed – DA4R SketchIt demo generates walls...
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
– Complete external command class
– Sample model and results
– Challenges encountered underway
– Cherry BIM Services
– On the value of the "Loss Method" property
– AI-generated talking head models...
I avoid answering non-confidential questions in private, as I tell everyone who tries to do so.
However, some non-confidential queries still come in via ADN.
Here are two that came in today that might be of general interest and therefore seem worth sharing
– Batch processing Revit families and documents
AsValueString results differ...
Today, yet another introduction to Forge, a simple issue of setting the level of a floor element, and the much more complex one of gaining freedom and total independence via IPC – What is Forge? – Changing the level of a floor – Entanglement can be hell – CefSharp entanglement – Disentanglement and independence via IPC – Beer-ware license...
Today I discuss (once again) an important performance aspect of Revit element filtering, a Python script for tagging JPEG images with EXIF data, prompted by a recent ski tour, and three other interesting topics that caught my eye – Slow, slower still and faster filtering – Python JPEG EXIT filename tagging – TED talks and population growth – Objective reality does not exist – Artificial intelligence judge...
Some happy news about two new Revit API supporter colleagues, Naveen Kumar and Zhong Wu. They already reached second and third place in the list of top solution providers. Here is also a very relevant recent case handled by Zhong – Top solution authors – Naveen on Naveen – Zhong shifts to AEC – Zhong on Zhong – Deleting a non-shared project parameter...
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...
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...
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
– Sample run results
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...
Alexander Ignatovich shares an exceedingly elegant solution for automatic wall creation, illustrating a number of important concepts and implementing the following functionality very succinctly indeed
– Retrieve all the
cube family instances
– Retrieve their
height parameter value
– Retrieve their solids making use of the .NET
– Extract their horizontal outline contours using an
– Create walls along each contour curve segment
– Place a door family instance at the midpoint of each wall...
I spent last week working on a new little BIM sample showing a round trip connection between Revit and Forge, and an automated way of generating and populating shared parameters from spreadsheet data – RvtMetaProp – Revit meta property add-in – CSV and JSON input file format – Forge configurator sample – Round-Trip Forge meta property editor – BipGroupList lists built-in parameter group enums and labels – Two options to add custom properties to the Revit BIM – Translation of shared parameters to Forge – Handling BIM floors in Forge...
Håvard Dagsvik of Symetri implemented code to automatically generate a dictionary mapping the Revit
DisplayUnitType to corresponding
UnitSymbolType display strings. The developer guide describes these classes like this
– UnitType – type of physical quantity to be measured, for example length or force (UT_Length or UT_Force)
– DisplayUnitType – units and display format used to format numbers as strings or convert units (i.e. DUT_METERS)
– UnitSymbolType – unit symbol displayed in the formatted string representation of a number to indicate the units of the value (i.e. UST_M)...
A biggish post rather late in the week... still answering too many cases – Forge for AEC demos and sample code – Determining the starting view – Detecting installed Revit version – Detecting installed C3D version – Moving items inside a detail group – Filtering for family instances and types by family name...
I completed a first revision of the ForgeFader project, bringing it up to par with RvtFader. It is pretty cool seeing the same functionality implemented in two such different ways, on completely different platforms, using different tools. Alan Seidel shared another exciting Revit add-in. First and not least, another exciting topic for me personally is switching to half-time work – Work half – AKS Opener – Video – GitHub repository – Why? – Specific interest – RvtFader – ForgeFader...
Today is the last day of the Forge accelerator, and I am still working on the ForgeFader project. The topics today are mainly related to Revit, though – Google prettifier on GitHub – WTA mechanical family placement add-in – Provision for void – What is a provision for void? – Creating a provision for void...
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...
I ran the first query on the collection of tbc blog posts imported into Elasticsearch to experiment for the question answering system Q4R4 Question Answering for Revit API and installed the elasticsearch-head web front end to better explore and understand my local Elasticsearch cluster – Elasticsearch text field mapping – Elasticsearch-head web front end – More RevitLookup updates – Get area scheme from an area...
Are you interested in easy access to your Revit model properties? Well, you can have that even without a need to install Revit. The Forge Model Derivative API extracts a streamlined copy of all geometry, BIM element hierarchy and properties from over fifty file formats, and Revit RVT files are just one of them. Augusto Goncalves implemented a Forge sample to read all the properties on all BIM elements in an RVT file and export them to an XLSX spreadsheet – Test run it yourself – Source code on GitHub...
Lots of information on, from and about schedule parameters, and a new elegant solution to a long-standing challenge – Direct access to shared parameter GUID – Getting parameter information from a schedule...
I am happy to present a pretty comprehensive overview and explanation of the process of defining a shared parameter by Scott Conover.
Question: What do I need to do to programmatically create a shared parameter? I would like to set the
SetAllowVaryBetweenGroups flag on it.
Answer: You create the details needed to define a shared parameter from
Existing shared parameter file entries can be read to become an
ExternalDefinition in your code, or you can create a new entry in the current shared parameter file using the
A Python Revit API question on renumbering viewports helps highlight two separate important programming aspects; I also add some other notes from the Munich Forge accelerator – Question – The need to regenerate – Use built-in parameters to access parameters – Forge accelerator and outage report – Added materials to 210 King model...