Hi
I've made some code to place parametric cells and edit the ItemType property values. I've realized that when I work with parametric cells that are just a little complex it takes quite some time.
auto& cellHandler = ParametricCellHandler::GetInstance(); EditElementHandle defCellEeh; if (ParameterStatus::Success != cellHandler.CreateCellElement(defCellEeh, *defaultInfo)) return ERROR; lifalib_eehSetLvAndActiveCoWtSt(defCellEeh, levelID, false, false, false, true); lifalib_log("lifalib", 2, 1, "lifalib_placeParametricCellWC - Before addToModel"); defCellEeh.AddToModel(); lifalib_log("lifalib", 2, 1, "lifalib_placeParametricCellWC - After addToModel"); lifalib_log("lifalib", 2, 1, "lifalib_placeParametricCellWC - Before updateItemTypes"); std::vector<WString> params; std::vector<WString> values; if (!splitParams(strParams, strValues, params, values)) return false; for (int paramIndex = 0; paramIndex < (int)params.size(); paramIndex++) { double value; if (swscanf(values[paramIndex].c_str(), L"%lf", &value) == 1) //lifalib_updateItemTypePropertyOnElm3(defCellEeh, L"LIFA", L"Rectangle", params[paramIndex].c_str(), NULL, NULL, &value, NULL); lifalib_updateItemTypePropertyOnElm3(defCellEeh, L"Symboler", L"Tree", params[paramIndex].c_str(), NULL, NULL, &value, NULL); else return false; } lifalib_log("lifalib", 2, 1, "lifalib_placeParametricCellWC - After updateItemTypes");
I've attached a cellibrary with 3 cells.
When I use this code with the cell "Rectangle" - (very simple) it goes quite fast - something between 2 and 3 seconds to place 10 cells.
When I use the cell "Tree" it takes about 11 seconds to place 10 cells. When I remove half of the elements in this cell (see "Tree2" the time is approx. halved.
How can that be ?
TIA, Evan