Today, I'll mainly pick up some non-desktop issues:
A question in the Revit API discussion forum thread on DesignScript led to an interesting conversation and clarification with the Revit development team:
Question: Is it correct to assume that you can access Design Script in the Revit API environment by using Dynamo? Is it also correct to assume that we have no plans to make Design Script accessible in the Revit API environment without Dynamo?
Answer: To clarify some terms, the Dynamo geometry library and DesignScript are distinct things. DesignScript is specific to Dynamo; there is no DesignScript without Dynamo. The geometry library, however, is a set of normal C#/C++ wrappers around Autodesk geometry kernels. It doesn't have to be consumed via DesignScript, and in fact many popular Dynamo packages are written in C# and call the geometry library functions directly from their C# implementations, as users are attempting to do here.
It sounds like what the users in that thread are asking for is to use the Dynamo geometry library from Revit API add-ins. The obstacle that they are running into is (just guessing) that these libraries depend on ASM DLLs which are shipped only with the host apps, not with Dynamo, and part of the job of the host-Dynamo link is to establish which specific version of ASM should be consumed by Dynamo geometry library.
If all they're doing is referencing the assemblies, this connection is probably not correctly established, since normally the Dynamo-Revit addin is involved in setting everything up.
If we wanted to support and document this use case, we probably could. There may be business and licensing questions we'd have to explore around expanding the sets of scenarios that users can access ASM from – Revit would still be required in this scenario, so it's likely fine, but we'd need to make sure there aren't any loopholes.
So far on the technical background.
We currently do not actively support this behaviour; as discussed it’s possible, but only if you spin up Dynamo too.
We get requests for access to Dynamo on the Cloud or access to a Geometry kernel via licensing to be used externally all the time; this is the first real request to use DesignScript inside of an entirely separate add-in inside of Revit.
Licensing might be akin to the way we provide ASM to Dynamo customers today – via their subscription to other ADSK software, in this case, Revit.
As with everything, if the need is there, and high enough, we can investigate, but it would need to be stacked up against all other development effort (i.e., Cost/Benefit analysis). Our current efforts are focused around Lowering the Barrier to Entry inside of Dynamo and an Ecosystem play where you can get Dynamo in more places and/or access it more easily. Adding DesignScript support to Revit sans Dynamo is not currently in our sights.
Here is an updated overview of some important things to read or watch to prepare for one of the Forge Accelerators:
Tools:
From an internal conversation with a colleague on how to get started with DA4R, or Design Automation for Revit:
Question: I am currently developing a pipeline to extract features from Revit models. I am new to Revit and its API; I have followed the Forge Design Automation for Revit tutorial, successfully created an add-in and run it in the cloud. What I want to do is to have the features extracted from Revit model and write out to a JSON file upon add-inn completion. Do you have any sample code to share that serves a similar purpose? Right now, I am in the process of learning the Revit API by reading the developer guide.
Answer: You might begin by checking out the pointers to further advice and Revit API getting started material.
To implement your extraction, I would suggest installing Revit desktop and using that as a basis for research and implementation.
First, implement your functionality as an external command. Once it does everything you need and completely fulfils all requirements, you can easily migrate it to DA4R.
Response: Thanks for the information.
Can you provide a quick pointer in DA4R how to write a json output as the OSS output file of the workitem?
Answer: Maybe the discussion of DA4R Input and Output Files will help?
Once you have implemented your DA4R application, you can test it before live deployment using the Design Automation for Revit local debug tool.
Moving from DA4R and Forge to AI, the OpenAI Microscope provides an extensive collection of fascinating and beautiful images generated by AI vision models, including
visualizations of every significant layer and neuron of important vision models.
In the anecdote on technology and me, slightly abbreviated, Kurt Vonnegut tells his wife he's going out to buy an envelope:
“Oh, she says, well, you're not a poor man. You know, why don't you go online and buy a hundred envelopes and put them in the closet?" So, I pretend not to hear her. And go out to get an envelope because I'm going to have a hell of a good time in the process of buying one envelope. I meet a lot of people. And see some great looking babies. And a fire engine goes by. And I give them the thumbs up. And I'll ask a woman what kind of dog that is. And, and I don't know. The moral of the story is – we're here on Earth to fart around. And, of course, the computers will do us out of that. And what the computer people don't realize, or they don't care, is we're dancing animals. You know, we love to move around. And it's like we're not supposed to dance at all anymore." Let's all get up and move around a bit right now... or at least dance.
In a similar vein, as Thoreau said: Men have become the tools of their tools.