Self-Teaching AI Surpasses Human Knowledge

AlphaZero is a computer program or algorithm by DeepMind to master go, chess and shogi. On December 5, 2017 the DeepMind team released a preprint introducing AlphaZero, which, within 24 hours, achieved a superhuman level of play in these three games by defeating world-champion programs, Stockfish, elmo, and the 3-day version of AlphaGo Zero, in each case making use of custom tensor processing units (TPUs) that the Google programs were optimized to use.
AlphaZero was trained solely via "self-play" using 5,000 first-generation TPUs to generate the games and 64 second-generation TPUs to train the neural networks, all in parallel, with no access to opening books or endgame tables.
After ... 9 hours of training, the algorithm decisively defeated Stockfish 8 in a time-controlled 100-game tournament (28 wins, 0 losses, and 72 draws)...

Chess changed forever today. And maybe the rest of the world did, too.

A little more than a year after AlphaGo sensationally won against the top Go player, the artificial-intelligence program AlphaZero has obliterated the highest-rated chess engine.

Oh, and it took AlphaZero only four hours to "learn" chess...

AlphaZero was not "taught" the game in the traditional sense. That means no opening book, no endgame tables, and apparently no complicated algorithms dissecting minute differences between center pawns and side pawns.

One expert said, "After reading the paper but especially seeing the games I thought, well, I always wondered how it would be if a superior species landed on earth and showed us how they play chess. I feel now I know."

Ex-champion Kasparov said, "We have always assumed that chess required too much empirical knowledge for a machine to play so well from scratch, with no human knowledge added at all... The ability of a machine to replicate and surpass centuries of human knowledge in complex closed systems is a world-changing tool."

Adoption ratio, Awareness, Current usage, Changes in awareness over time, Usage over time, Importance ranking, Looking to the future and Predicted future usage.

Download the webinar or survey results from the links above in case you are interested in the detailed results.

Deprecated API Usage Warnings

Back to the nitty-gritty details of the Revit API...

As pointed out above, we expect a new major release sometime in the future, and I highly recommend eliminating all deprecated Revit API usage warnings before even thinking of migrating to the next major release.

It was caused by a const bool variable _exportInMillimetres.
The warning disappeared after I changed that to static bool instead.

That leaves seven warnings, all numbered CS0618 and caused by deprecated Revit API usage, from two different API calls:

In CmdCollectorPerformance.cs: ParameterFilterElement.GetRules is obsolete: This method is deprecated in Revit 2019 and will be removed in the next version of Revit. We suggest you use GetElementFilter instead.

In CmdGetMaterials.cs, repeated six times: AssetProperties.this[] is obsolete: This property is deprecated in Revit 2019 and will be removed in the next version of Revit. We suggest you use the FindByName(String) or Get(int) method instead.

Both of these deprecated API usages can be easily fixed by following the instructions given by the warning messages.

Replace GetRules by GetElementFilter

To eliminate the first warning, we can replace GetRules by GetElementFilter and simplify the code using it like as follows; before: