MCPcopy Create free account
hub / github.com/NatLabRockies/OpenStudio / makeChoiceArgumentOfWorkspaceObjects

Function makeChoiceArgumentOfWorkspaceObjects

src/measure/OSArgument.cpp:1041–1069  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1039 }
1040
1041 OSArgument makeChoiceArgumentOfWorkspaceObjects(const std::string& name, const IddObjectType& iddObjectType, const Workspace& workspace,
1042 bool required) {
1043
1044 const std::vector<WorkspaceObject> objects = workspace.getObjectsByType(iddObjectType);
1045 std::vector<std::pair<std::string, std::string>> intermediate;
1046 intermediate.reserve(objects.size());
1047
1048 for (const WorkspaceObject& object : objects) {
1049 std::string objectName;
1050 if (object.name()) {
1051 objectName = object.name().get();
1052 } else {
1053 objectName = object.iddObject().type().valueName();
1054 }
1055 intermediate.emplace_back(toString(object.handle()), objectName);
1056 }
1057
1058 std::sort(intermediate.begin(), intermediate.end(), SecondOfPairLess<std::pair<std::string, std::string>>());
1059
1060 const int n = intermediate.size();
1061 StringVector choices(n);
1062 StringVector displayNames(n);
1063 for (int i = 0; i < n; ++i) {
1064 choices[i] = intermediate[i].first;
1065 displayNames[i] = intermediate[i].second;
1066 }
1067
1068 return OSArgument::makeChoiceArgument(name, choices, displayNames, required);
1069 }
1070
1071 OSArgument makeChoiceArgumentOfWorkspaceObjects(const std::string& name, const std::string& referenceName, const Workspace& workspace,
1072 bool required) {

Callers 1

argumentsMethod · 0.85

Calls 12

valueNameMethod · 0.80
iddObjectMethod · 0.80
beginMethod · 0.80
getObjectsByReferenceMethod · 0.80
toStringFunction · 0.50
getObjectsByTypeMethod · 0.45
sizeMethod · 0.45
nameMethod · 0.45
getMethod · 0.45
typeMethod · 0.45
handleMethod · 0.45
endMethod · 0.45

Tested by 1

argumentsMethod · 0.68