The Building Codertag:typepad.com,2003:weblog-17136502018-05-24T11:00:00+02:00Jeremy Tammik blogging on the Revit APITypePadFilterRule Use and Retrieving Exterior Wallstag:typepad.com,2003:post-6a00e553e1689788330224df3519d8200b2018-05-24T11:00:00+02:002018-05-24T16:04:33+02:00Today, 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...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/05/filterrule-use-and-retrieving-exterior-walls.htmlInstalling the Revit 2019 SDK April Updatetag:typepad.com,2003:post-6a00e553e1689788330223c84bef66200c2018-05-18T11:00:00+02:002018-05-18T11:00:00+02:00After 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...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/05/installing-the-revit-2019-sdk-april-update.htmlGetting All Parameter Valuestag:typepad.com,2003:post-6a00e553e1689788330224df3369e5200b2018-05-17T11:00:00+02:002018-05-17T12:44:08+02:00How 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...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/05/getting-all-parameter-values.htmlForeground Image Import and Visible DWG Geometrytag:typepad.com,2003:post-6a00e553e1689788330224e03a228e200d2018-05-16T11:00:00+02:002018-05-16T11:00:00+02:00Today, 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...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/05/retrieve-visible-dwg-geometry-and-foreground-image-import.htmlParameters, Walls and Driving Revit via WCF Servicetag:typepad.com,2003:post-6a00e553e1689788330223c84aed69200c2018-05-14T11:00:00+02:002018-05-16T15:42:07+02:00Exciting 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...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/05/drive-revit-via-a-wcf-service-wall-directions-and-parameters.htmlHow to use FilterCategoryRuletag:typepad.com,2003:post-6a00e553e1689788330224df316d1c200b2018-05-08T11:00:00+02:002018-05-10T12:07:55+02:00@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...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/05/how-to-use-filtercategoryrule.htmlScaling a Bitmap for the Large and Small Image Iconstag:typepad.com,2003:post-6a00e553e1689788330224df2f9178200b2018-05-02T11:00:00+02:002018-05-02T14:56:49+02:00Every 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...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/05/scaling-a-bitmap-for-the-large-and-small-image-icons.htmlNew Opportunities in the Forge Evangelist Teamtag:typepad.com,2003:post-6a00e553e1689788330224df2e2df7200b2018-04-27T11:00:00+02:002018-04-27T11:00:00+02:00I 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...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/04/new-opportunities-in-the-forge-evangelist-team.htmlWhat’s New Webinar and Forge vs. A360tag:typepad.com,2003:post-6a00e553e1689788330223c84622c0200c2018-04-26T11:00:00+02:002018-04-26T14:11:51+02:00Following up on yesterday's discussion of What's New in the Revit 2019 API, here is a webinar invitation to walk through the results live from the product point of view.
I also share a high-level comparison of some aspects of Forge versus A360 for a total newbie thinking about building a solution for a client to manage 3D models and collaborate on them with sub-contractors
Webinar on What’s New in Revit 2019
Forge versus A360...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/04/whats-new-webinar-and-forge-vs-a360.htmlWhat's New in the Revit 2019 APItag:typepad.com,2003:post-6a00e553e1689788330223c845e3dc200c2018-04-25T11:00:00+02:002018-04-25T14:14:05+02:00The Revit 2019 API includes numerous exciting enhancements for add-in developers. Many relate directly to explicit developer wishes and requests
Information sources
Installation and migration from previous versions
What's new in previous versions
What's new in the Revit 2019 API
API Changes
API Additions...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/04/whats-new-in-the-revit-2019-api.htmlRvtSamples 2019tag:typepad.com,2003:post-6a00e553e1689788330223c845b216200c2018-04-24T11:00:00+02:002018-04-24T11:00:00+02:00I set up RvtSamples for the Revit 2019 SDK samples.
Just like the migration to previous versions, this is not a trivial undertaking.
To cut a long story short and simply share my current working RvtSamples source code for the Revit 2019 SDK, here
is RvtSamples_2019.zip containing my modified files...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/04/rvtsamples-2019.htmlForge RVT to IFC, ADN Xtra, TBC, AdnRme Updatestag:typepad.com,2003:post-6a00e553e16897883301b7c962439c970b2018-04-19T11:00:00+02:002018-04-19T17:24:54+02:00I 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...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/04/forge-rvt-to-ifc-adn-xtra-tbc-and-adnrme-updates.htmlRevitLookup 2019 and New SDK Samplestag:typepad.com,2003:post-6a00e553e16897883301bb0a0452ed970d2018-04-16T11:00:00+02:002018-04-16T18:41:49+02:00I migrated RevitLookup to Revit 2019, which was very easy.
Next, I compared the directory contents to discover the new SDK samples
RevitLookup 2019
New Revit 2019 SDK samples...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/04/revitlookup-2019-and-new-sdk-samples.htmlCompiling the Revit 2019 SDK Samplestag:typepad.com,2003:post-6a00e553e16897883301b7c9606b4d970b2018-04-13T11:00:00+02:002018-04-13T14:32:24+02:00I installed Revit 2019 and compiled the Revit 2019 SDK.
That was quite a struggle
Installing Revit 2019
Installing the Revit 2019 SDK
Installing the .NET Framework 4.7
Compiling the Revit 2019 SDK samples
Processor architecture mismatch warnings
DimensionLeaderEnd OutputPath missing
Numerous Revit API assembly reference conflicts
SampleCommandsSteelElements lacks components
AppearanceAssetEditing using deprecated API...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/04/compiling-the-revit-2019-sdk-samples.htmlBounding Box Filter is Always Axis Alignedtag:typepad.com,2003:post-6a00e553e16897883301b8d2ea50c0970c2018-04-11T11:00:00+02:002018-04-12T09:33:10+02:00This is pretty obvious, once you think about it, and apparently worth pointing out anyway:
The outline defining a bounding box filter is always aligned with the cardinal axes
Rotating Min and Max distorts the box
Rotate target elements or use a solid filter...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/04/bounding-box-filter-always-axis-aligned.htmlRevit 2018.3, SetValueString and External Eventstag:typepad.com,2003:post-6a00e553e16897883301bb0a028759970d2018-04-10T11:00:00+02:002018-04-11T10:39:30+02:00I installed the latest Revit update, and want to highlight two of the numerous interesting ongoing Revit API forum discussions
Revit 2018.3 update
Avoid SetValueString
Passing Data via ExternalEvent.Raise...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/04/revit-20183-setvaluestring-and-external-events.htmlStandalone BasicFileInfo and ExtractPartAtomtag:typepad.com,2003:post-6a00e553e16897883301b7c95e2aa4970b2018-04-05T11:00:00+02:002018-04-05T23:25:50+02:00A discussion with Håvard Dagsvik on the use of TransmissionData, standalone access to the BasicFileInfo without the need for a valid Revit API context, and a Revit-independent method replacing
Family ExtractPartAtom
No document required for TransmissionData access
TransmissionData requires a valid Revit API context
Standalone GetFamilyXmlData method replacing ExtractPartAtom
Windows explorer BasicFileInfo right click utility...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/04/standalone-basicfileinfo-and-extractpartatom-method.htmlUsing Intersection Filter with Linked Filetag:typepad.com,2003:post-6a00e553e16897883301bb0a010e83970d2018-04-03T11:00:00+02:002018-04-03T11:00:00+02:00We recently discussed filtering for intersecting elements.
Here is a closely related issue with an additional twist
Determining elements intersecting mass in a linked file
Coding suggestions and transformations
Solution by applying transformations...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/04/using-intersection-filter-with-linked-file.htmlDynamo on the Web?tag:typepad.com,2003:post-6a00e553e16897883301b8d2e58fd8970c2018-03-26T11:00:00+02:002018-03-28T19:47:29+02:00Do you Dynamo?
Do you have a potential application for Autodesk Dynamo on the Cloud?
If yes, we want to talk to you...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/03/dynamo-on-the-web.htmlBoston Forge Accelerator and Aligning Plan Viewstag:typepad.com,2003:post-6a00e553e16897883301bb09fd300a970d2018-03-21T11:00:00+01:002018-04-09T12:59:40+02:00Here is a suggestion made by Arkady Gilman to align plan views.
Before we get to that, I'd like to point out the imminent Forge accelerator in Boston
Boston Forge accelerator
Question on aligning plan views
Answer, view origin and outline
Suggestion for aligning views...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/03/boston-forge-accelerator-and-aligning-plan-views.htmlConnector, Neighbour, Conduit, Transitiontag:typepad.com,2003:post-6a00e553e16897883301b7c959732d970b2018-03-19T11:00:00+01:002018-03-19T11:00:00+01:00Here 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...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/03/connector-neighbour-conduit-transition.htmlContextual Help Best Practicetag:typepad.com,2003:post-6a00e553e16897883301b7c957dc60970b2018-03-13T11:00:00+01:002018-03-13T11:00:00+01:00Dragos Turmac of the Revit development team solved
the Revit API discussion forum questions
on contextual help not working from within a command and
on F1 help for add-in only by
explaining the current best practice to implement online help
Question: I'm trying to add contextual help for all commands (press F1 to go to a location).
It's working fine when the tooltip is shown for my commands, but, when the add-in form is open, pressing F1 opens the Autodesk knowledge site for Revit instead...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/03/contextual-help-best-practice.htmlRevitLookup Search by Element and Unique Idtag:typepad.com,2003:post-6a00e553e16897883301b7c9577aa1970b2018-03-12T11:00:00+01:002018-03-12T11:00:00+01:00Александр Пекшев aka Modis @Pekshev implemented another useful RevitLookup enhancement to search and snoop elements by element id or unique id
Search and snoop by element id or unique id
File changes
The built-in Select by Id command, Zoom To and StringSearch
RevitLookup update...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/03/revitlookup-search-and-snoop-by-element-and-unique-id.htmlSwitch View or Document by Showing Elementstag:typepad.com,2003:post-6a00e553e16897883301bb09f9b10e970d2018-03-08T11:00:00+01:002018-03-08T11:00:00+01:00A recent discussion on using the ShowElements method to toggle between documents and views brought up a few interesting points
Open and active an unsaved document
Zoom to selected elements
Toggle between documents and views...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/03/switch-view-or-document-by-showing-elements.htmlCreate 2D Arc and Filter for Intersecting Elementstag:typepad.com,2003:post-6a00e553e16897883301bb09f921fd970d2018-03-06T11:00:00+01:002018-03-06T11:00:00+01:00Several questions on filtering for intersecting elements came up recently.
It is pretty easy as long as a bounding box can be used.
However, the bounding box is generally aligned with the cardinal X, Y and Z axes.
If the containing volume of interest is not, too many elements may be selected
Family instances in a diagonal room
Conduits intersecting a junction box
Generate 2D arc from radius, start and end points...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/03/create-2d-arc-and-filter-for-intersecting-elements.htmlExport Geometry and Snoop Stable Representationtag:typepad.com,2003:post-6a00e553e16897883301bb09f8068f970d2018-03-02T11:00:00+01:002018-03-02T11:00:00+01:00Александр Пекшев aka Modis @Pekshev submitted
a very succinct and useful pull request for RevitLookup that
I integrated right away, and provides many other valuable inputs as well
Snoop stable representation of References
Project point on plane correction
Revit export geometry to AutoCAD via XML
RevitExportGeometryToAutocad
Description
Versions
Using
Example...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/03/export-geometry-and-snoop-stable-representation-of-reference.htmlUpdated ADN Web Site, Revit API Labs, Tag Creationtag:typepad.com,2003:post-6a00e553e16897883301b8d2ded9cb970c2018-03-01T11:00:00+01:002018-03-01T11:00:00+01:00Here are a couple of Revit API related updates to take note of
Autodesk Developer Network ADN web site update
Revit Developer Centre update
ADN Revit API Training Labs update
Revit API Training Labs Xtra update
New top solution author record score...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/03/updated-adn-web-site-revit-api-labs-and-tag-creation.htmlChanging Text Colourtag:typepad.com,2003:post-6a00e553e16897883301bb09f744ec970d2018-02-27T11:00:00+01:002018-02-27T11:00:00+01:00Here are some notes on changing text colour and a nice node.js web scraping tutorial
Changing text colour via the text note type
Web scraping using node.js...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/02/changing-text-colour.htmlRetrieving Newly Created Element Idstag:typepad.com,2003:post-6a00e553e16897883301b7c951e49f970b2018-02-21T11:00:00+01:002018-02-21T11:00:00+01:00An add-in will often need to retrieve the elements that it just created for further processing.
Frequently, the Revit API method used to create them will return their element ids.
Sometimes, that is not the case.
Now this topic arose again in a couple of cases and brought some other aspects to mind
Using the element lister
Consecutive element ids
Retrieving recently added elements
AEC job openings in Munich and elsewhere...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/02/retrieving-newly-created-element-ids.htmlDevDays, Keynote Manager and REX Extensionstag:typepad.com,2003:post-6a00e553e16897883301b8d2d973b4970c2018-02-12T11:00:00+01:002018-02-12T11:46:18+01:00Let's highlight a few recent threads from the Revit API discussion forum.
Before getting to those, a quick pointer to the DevDays Online recording from last week
DevDays online presentations on Revit API updates
External command with ribbon button sample
RevitAddinKeyNoteSystem keynote manager
REX extensions versus Revit add-ins
Reloading Revit links from user selected folder
Converting all parameter values to metric...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/02/devdays-keynote-manager-and-rex-extensions.htmlNewFamilySymbolProfile Sample Add-Intag:typepad.com,2003:post-6a00e553e16897883301b7c94ed259970b2018-02-11T11:00:00+01:002018-02-11T16:40:39+01:00Questions on how to use NewFamilySymbolProfile have come up a couple of times in the Revit API discussion forum.
The short answer is: retrieve the family symbol from the profile family, then call the creation application NewFamilySymbolProfile method.
I implemented a new sample add-in for you to demonstrate the steps using the Profiles_L-Angles.rfa profile family...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/02/newfamilysymbolprofile-sample-add-in.htmlMergedViews and Exporting to a Single DWGtag:typepad.com,2003:post-6a00e553e16897883301bb09f159bc970d2018-02-07T11:00:00+01:002018-02-08T10:03:49+01:00Some insight on the use of the MergedViews property provided by the DGN, DWG and DWG export options classes and other ideas to export multiple views into a single DWG file
Question: I want to combine and export multiple views into one single DWG file. I set the option MergedViews, but the code still generates multiple DWG files for the views...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/02/mergedviews-and-exporting-to-a-single-dwg.htmlDirectShape from BrepBuilder and Booleantag:typepad.com,2003:post-6a00e553e16897883301bb09f0bfba970d2018-02-06T11:00:00+01:002018-02-06T11:00:00+01:00Here is an interesting code snippet illustrating the use of BRepBuilder and Boolean operations to generate a DirectShape. It might come in useful somewhere, even though this approach is non-optimal to address the task at hand, as explained below...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/02/directshape-from-brepbuilder-and-boolean.htmlRotation Adjusts and Fixes Conduit Endtag:typepad.com,2003:post-6a00e553e16897883301b8d2d6aeb2970c2018-02-02T11:00:00+01:002018-02-02T15:39:32+01:00I listed several possible approaches to trigger a refresh of an element's graphics display.
Here is another one: Applying element rotation to adjust and fix conduit end...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/02/rotation-adjusts-conduit-end.htmlEfficiently Retrieve Crop Box for Given Viewtag:typepad.com,2003:post-6a00e553e16897883301b8d2d64504970c2018-02-01T11:00:00+01:002018-02-01T11:00:00+01:00Konrads Samulis shared a very nice solution to retrieve the crop box for a given view using a highly efficient parameter filter in
his comment on rotating a plan view.
In digging up this old thread, I found something quite curious in the API in 18.1, that I'm not sure was there before.
The method of using a temporary transaction (with rollback) to find the element id of the crop box was taking a very long time on a large model, so I did a bit of digging to see how I could improve it.
I noticed that in the built-in parameter ID_PARAM of the crop box contains the element id of the view it's in.
E.g., the crop box 'points' to the id of the view it is in using ID_PARAM...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/02/efficiently-retrieve-crop-box-for-given-view.htmlGathering and Returning Failure Informationtag:typepad.com,2003:post-6a00e553e16897883301b7c94bcb13970b2018-01-31T11:00:00+01:002018-01-31T11:00:00+01:00Is there a way to return failure information to your main command when creating a transaction?
My program does some error logging and creates an error report at the end, and I'd like to include some information from specific types of Revit failures (i.e., include if multiple instances were created in the same place).
Yes, you can use the PreprocessFailures method argument failuresAccessor to review and store failure message information for later use...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/01/gathering-and-returning-failure-information.htmlCreate Swept Blend DirectShape in C++tag:typepad.com,2003:post-6a00e553e16897883301b8d2d3481b970c2018-01-24T11:00:00+01:002018-01-25T10:08:53+01:00Question: I am trying to create a swept blend geometry and assign it to a DirectShape element.
The initial code threw an exception when calling the GeometryCreationUtilities CreateSweptBlendGeometry method.
How can I fix this?
Answer: The path parameters assume that they should be normalised or that the curve has a range of parameterisation from 0 to 1...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/01/create-swept-blend-in-c.htmlRevit Tools for MomenTUM Pedestrian Simulationtag:typepad.com,2003:post-6a00e553e16897883301b7c946999e970b2018-01-18T11:00:00+01:002018-01-18T13:45:25+01:00Christian Thieme of the Chair of Computational Modeling and Simulation at TUM, the Technical University Munich, shares his tools connecting Revit to the MomenTUM agent-based pedestrian simulation framework
Giving something back to the community
Project overview
Export workflow
Import and display results workflow
Transformation from XYZ to UV...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/01/revit-tools-for-momentum-pedestrian-simulation.htmlAutodesk University Past and Futuretag:typepad.com,2003:post-6a00e553e16897883301bb09e967ca970d2018-01-17T11:00:00+01:002018-01-17T12:02:47+01:00Quick notes on the best speakers at the last event in Las Vegas, and your chance to become one of them at the next in London
Best AU Speakers in Las Vegas 2017
CFP for Autodesk University London 2018...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/01/autodesk-university-past-and-future.htmlAreaLoad Force Direction, CMake and SDK Accesstag:typepad.com,2003:post-6a00e553e16897883301b8d2d01487970c2018-01-16T11:00:00+01:002018-01-16T11:00:00+01:00Here are some of the topics I dealt with in the last couple of days
CMake and YoAudio
AutoCAD and Revit SDK Access and Content
Determining AreaLoad direction and value from its force vectors
ExportCncFab 2018...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/01/areaload-force-direction-cmake-sdk-access.htmlTransform Utils, DirectShape Builder and DevDays Online Webinarstag:typepad.com,2003:post-6a00e553e16897883301b8d2ce8a33970c2018-01-10T11:00:00+01:002018-01-11T13:15:46+01:00Revitalizer shared two important hints: a performance issue using ElementTransformUtils and a problem reporting mechanism built into the TessellatedShapeBuilderResult method GetIssuesForFaceSet.
First, though, let's highlight an even more important upcoming event, the series of DevDays online webinars
Register now for Autodesk DevDays online webinars
Avoid using ElementTransformUtils for batches
Finding cause of DirectShape generation problem...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/01/transform-utils-directshape-builder-and-devdays-online-webinars.htmlDirectShape Topics and Happy New Year!tag:typepad.com,2003:post-6a00e553e16897883301b7c943ef9f970b2018-01-09T11:00:00+01:002018-01-09T11:00:00+01:00I'll begin the new year by discussing a bunch of topics addressing various aspects of DirectShape elements
Updated DirectShapeFromFace
Improve loft form creation speed using DirectShape
Create DirectShape instead of conceptual mass
Create surface from face
Create DirectShape from solid
Control DirectShape colour and material
Improve family performance suppressing DirectShape generation
Create DirectShape from room...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2018/01/directshape-topics-and-happy-new-year.htmlMagic Number, Magic Automation and Magic Seasontag:typepad.com,2003:post-6a00e553e16897883301bb09e22a15970d2017-12-22T11:00:00+01:002017-12-22T11:00:00+01:00Time to wind down for the year...
Here are some last things to share before signing off
Magic number for schedule instance bounding box margin
Using PostCommand with the Windows Automation API
Programmer jokes
Season's greetings...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2017/12/magic-number-magic-automation-and-magic-season.htmlProject Identifier and Fuzzy Comparisontag:typepad.com,2003:post-6a00e553e16897883301b7c93ed1bd970b2017-12-21T11:00:00+01:002017-12-21T14:05:53+01:00I bring up two recurring topics, fresh every time around
Project identifier
Fuzzy comparison versus exact arithmetic for curve intersection...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2017/12/project-identifier-and-fuzzy-comparison.htmlSetting Parameter Varies Between Groupstag:typepad.com,2003:post-6a00e553e16897883301b8d2c8f13a970c2017-12-20T11:00:00+01:002017-12-20T17:23:00+01:00Looking at setting the SetAllowVaryBetweenGroups flag on a shared parameter;
is there any way to set can vary by group instance (what I need) the default for API-created bindings? ...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2017/12/setting-parameter-varies-between-groups.htmlPipe Fitting K Factor, Archi+Lab and Installertag:typepad.com,2003:post-6a00e553e16897883301bb09dfa5ea970d2017-12-13T11:00:00+01:002017-12-13T11:46:20+01:00Two 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...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2017/12/pipe-fitting-k-factor-archilab-and-installer.htmlHow to Use GetAnalyticalModelSupportstag:typepad.com,2003:post-6a00e553e16897883301b7c93c91e7970b2017-12-12T11:00:00+01:002017-12-12T11:00:00+01:00I'm trying to retrieve connected framing elements through the API.
My end goal is to select a beam and retrieve the element id of the elements its ends are framing into.
I have been able to do this by checking location intersection of all other beams, but this scales by n^2 based on the number of beams for the check.
I read the article on finding connected structural elements, but I'm confused on the actual implementation of it.
Has anybody come across a working example showing how to
call GetAnalyticalModelSupports? ...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2017/12/how-to-use-getanalyticalmodelsupports.htmlWhat's New in the Revit 2018.2 APItag:typepad.com,2003:post-6a00e553e16897883301b8d2c66562970c2017-12-11T11:00:00+01:002017-12-11T11:00:00+01:00Let's discuss the Revit API enhancements added since the initial release of Revit 2018
Revit 2018.2 Product Update and Resolved API Issues
Revit 2018.2 SDK Update
Major Additions to the Revit 2018.1 API
Material API additions
Geometry API additions
BrowserOrganization API additions
IFC additions
Rebar API additions
Major Additions to the Revit 2018.2 API
Fabrication API additions...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2017/12/whats-new-in-the-revit-20182-api.htmlCreating Face Wall and Mass Floortag:typepad.com,2003:post-6a00e553e16897883301b7c93a493d970b2017-12-05T11:00:00+01:002017-12-05T11:00:00+01:00I went on my first ski tour this season...
lots of interesting issues in
the Revit API discussion forum...
a Japanese case on programmatically generating a mass floor, enabling us to mention yet another hitherto unmentioned Revit API usility class, MassInstanceUtils...
Please tell me if a method exists to generate a mass floor using the API...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2017/12/creating-face-wall-and-mass-floor.htmlAutomatic Wall Creationtag:typepad.com,2003:post-6a00e553e16897883301bb09dbc547970d2017-11-30T11:00:00+01:002017-11-30T12:07:33+01:00Alexander 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 yield operator
Extract their horizontal outline contours using an ExtrusionAnalyzer
Create walls along each contour curve segment
Place a door family instance at the midpoint of each wall...Jeremy Tammikhttp://thebuildingcoder.typepad.com/blog/2017/11/automatic-wall-creation.html