hi,
sorry i misunderstood.
i did tried it and there is an error on the example provided with our handbook. I was using the databaseID to register the node which is wrong. Even if for one node, it works.
If you used the same code to create several nodes, that could be the issue.
To create a node you must use a unique ID. Note that when adding the lambda in the CreateLazyTemplate function, the ID of the node is captured as a copy, not as reference. The reference will not be alive when this lambda is executed.
iferr_scope;
Id nodeId {"net.maxon.node.procedural.nodewithtwobool"};
b.BeginNode(nodeId);
b.SetMenuCategory(Id("net.maxon.nodecategory.math")) iferr_return;
b.SetName(LANGUAGE_ENGLISH_ID, "Handbook 2 English node name"_s) iferr_return;
b.BeginPort(PORT_DIR::INPUT, Id("testinput")) iferr_return;
b.Set(DATADESCRIPTION_CATEGORY_DATA, DESCRIPTION::DATA::BASE::DATATYPE, GetDataType<Bool>().GetId()) iferr_return;
b.Set(DATADESCRIPTION_CATEGORY_UI, DESCRIPTION::UI::BASE::GROUPID, NODE::BASE::GROUP_INPUTS) iferr_return;
b.Set(DATADESCRIPTION_CATEGORY_UI, DESCRIPTION::UI::BASE::GUITYPEID, Id("net.maxon.ui.bool")) iferr_return;
b.Set(LANGUAGE_ENGLISH_ID, DESCRIPTION::STRING::BASE::TRANSLATEDSTRING, "My first checkbox"_s) iferr_return;
b.EndPort() iferr_return;
b.BeginPort(PORT_DIR::INPUT, Id("testinput2")) iferr_return;
b.Set(DATADESCRIPTION_CATEGORY_DATA, DESCRIPTION::DATA::BASE::DATATYPE, GetDataType<Bool>().GetId()) iferr_return;
b.Set(DATADESCRIPTION_CATEGORY_UI, DESCRIPTION::UI::BASE::GROUPID, NODE::BASE::GROUP_INPUTS) iferr_return;
b.Set(DATADESCRIPTION_CATEGORY_UI, DESCRIPTION::UI::BASE::GUITYPEID, Id("net.maxon.ui.bool")) iferr_return;
b.Set(LANGUAGE_ENGLISH_ID, DESCRIPTION::STRING::BASE::TRANSLATEDSTRING, "My second checkbox"_s) iferr_return;
b.EndPort() iferr_return;
b.BeginPort(PORT_DIR::OUTPUT, Id("output")) iferr_return;
b.Set(DATADESCRIPTION_CATEGORY_DATA, DESCRIPTION::DATA::BASE::DATATYPE, GetDataType<Bool>().GetId()) iferr_return;
b.Set(DATADESCRIPTION_CATEGORY_UI, DESCRIPTION::UI::BASE::GROUPID, NODE::BASE::GROUP_OUTPUTS) iferr_return;
b.Set(DATADESCRIPTION_CATEGORY_UI, DESCRIPTION::UI::BASE::GUITYPEID, Id("net.maxon.ui.bool")) iferr_return;
b.Set(LANGUAGE_ENGLISH_ID, DESCRIPTION::STRING::BASE::TRANSLATEDSTRING, "Result"_s) iferr_return;
b.EndPort() iferr_return;
b.EndNode() iferr_return;
NodeTemplate t = NodesLib::CreateLazyTemplate(nodeId,
[nodeId]() -> Result<NodeTemplate>
{
return NodesLib::BuildNodeFromDescription(nodeId, CoreNodesNodeSystemClass());
}, CoreNodesNodeSystemClass()) iferr_return;
// Register the node.
GenericData res = BuiltinNodes::Register(nodeId, t) iferr_return;
g_proceduralNodes.Append(std::move(res)) iferr_return;
Of course i will fix the issue on the documentation
Cheers,
Manuel