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...
How to attach a shared parameter to Material elements?
– Updated ADN Xtra labs to remove all deprecated API usage
– A new addin that creates and populates a shared parameter to provide material information for each element
– Autodesk University 2016 class materials have now been posted, including the recording of my session on connecting desktop and cloud
Material elements to external database entries
– Binding a shared parameter to elements
– Attaching a shared parameter to
– Create and populate a shared parameter
– Cornelius story – cured by natural remedies...
I updated the WebGL and Forge introduction for BIM programming and its GitHub source for the presentations in the coming days at the RTC Revit Technology Conference Europe and the ISEPBIM Forge and BIM workshops at ISEP, in Porto, implemented two little curl wrapper scripts to help me list the supported file formats, explored why they changed and updated the hackathon webinar overview. Before getting to that, I'll also highlight a helpful note by Christian on how to access the 'Symbolic Representation' setting
– 'Symbolic Representation' setting parameter
– Forge intro for BIM programming
cURL wrapper scripts to list Forge file formats
– Updated Forge file formats
– Forge hackathon webinar series and Fusion 360 Client API recording...
Here comes a quick clarification of the units used for the
UnitWeight built-in parameter
PHY_MATERIAL_PARAM_UNIT_WEIGHT. One example usage is to calculate the total weight of rebars in a project...
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...
A huge number of developers have requested a possibility to read or even write an RVT file without running Revit, similar to the possibility to read and write a DWG file without AutoCAD installed. For the latter, one option that has been around for ages is to make use of the RealDWG library for reading and writing DWG files. A more recent and future oriented option is provided by the cloud-based AutoCAD I/O web service. Here is yet another variation on this query – Question: Is there any way that I can read a Revit model without having Revit installed on the users machine? ...
How to determine and track element modification? I implemented a solution! – Two approaches – Task analysis – Modification tracker – Creating an element state snapshot – Determining which elements to track – Implementation – Geometrical comparison – String formatting – Retrieve solid vertices – GetTrackedElements – retrieve elements of interest – GetElementState – store element state – Creating a database state snapshot – Report differences – External command mainline Execute method – Sample runs – Demo recording – Download...
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...