From 0dac89018429fe023b8ed13e7ec48d003ab7d550 Mon Sep 17 00:00:00 2001 From: peterjamesnugent Date: Thu, 5 Mar 2020 16:04:43 +0000 Subject: [PATCH] Remove "Lusas_id" references and replace with AdapterIdName object in Lusas_Engine --- .../CRUD/Read/Results/ReadResults.cs | 4 +-- Lusas_Engine/Convert/AdapterIdName.cs | 29 +++++++++++++++++++ Lusas_Engine/Convert/ToBHoM/Elements/ToBar.cs | 2 +- .../Convert/ToBHoM/Elements/ToEdge.cs | 2 +- .../Convert/ToBHoM/Elements/ToNode.cs | 2 +- .../Convert/ToBHoM/Elements/ToPanelPlanar.cs | 2 +- .../ToBHoM/Loads/ToAreaTemperatureLoad.cs | 2 +- .../Loads/ToAreaUniformlyDistributedLoad.cs | 2 +- .../ToBHoM/Loads/ToBarDistributedLoad.cs | 2 +- .../Convert/ToBHoM/Loads/ToBarPointLoad.cs | 2 +- .../ToBHoM/Loads/ToBarTemperatureLoad.cs | 2 +- .../Loads/ToBarUniformlyDistributedLoad.cs | 2 +- .../Convert/ToBHoM/Loads/ToGravityLoad.cs | 2 +- .../Convert/ToBHoM/Loads/ToLoadCombination.cs | 2 +- .../Convert/ToBHoM/Loads/ToLoadcase.cs | 2 +- .../ToBHoM/Loads/ToPointDisplacement.cs | 2 +- .../Convert/ToBHoM/Loads/ToPointLoad.cs | 2 +- .../ToBHoM/Properties/ToConstraint4DOF.cs | 2 +- .../ToBHoM/Properties/ToConstraint6DOF.cs | 2 +- .../Convert/ToBHoM/Properties/ToMaterial.cs | 2 +- .../ToBHoM/Properties/ToMeshSettings1D.cs | 2 +- .../ToBHoM/Properties/ToMeshSettings2D.cs | 2 +- .../ToBHoM/Properties/ToSectionProperty.cs | 2 +- .../ToBHoM/Properties/ToSurfaceProperty.cs | 2 +- Lusas_Engine/Lusas_Engine.csproj | 1 + Lusas_Engine/Query/GetObjectIDs.cs | 2 +- 26 files changed, 55 insertions(+), 25 deletions(-) create mode 100644 Lusas_Engine/Convert/AdapterIdName.cs diff --git a/Lusas_Adapter/CRUD/Read/Results/ReadResults.cs b/Lusas_Adapter/CRUD/Read/Results/ReadResults.cs index 343e6507..ccf86055 100644 --- a/Lusas_Adapter/CRUD/Read/Results/ReadResults.cs +++ b/Lusas_Adapter/CRUD/Read/Results/ReadResults.cs @@ -81,7 +81,7 @@ private List GetObjectIDs(IResultRequest request) { idsOut.Add(id); } - else if (o is IBHoMObject && (o as IBHoMObject).CustomData.TryGetValue("Lusas_id", out idObj) && int.TryParse(idObj.ToString(), out id)) + else if (o is IBHoMObject && (o as IBHoMObject).CustomData.TryGetValue(AdapterIdName, out idObj) && int.TryParse(idObj.ToString(), out id)) idsOut.Add(id); } return idsOut; @@ -176,7 +176,7 @@ private List GetLoadcaseIDs(IResultRequest request) { caseNums.Add(System.Convert.ToInt32(lCase.Item2.Number)); } - caseNums.Add(System.Convert.ToInt32((lComb as LoadCombination).CustomData["Lusas_id"])); + caseNums.Add(System.Convert.ToInt32((lComb as LoadCombination).CustomData[AdapterIdName])); } } diff --git a/Lusas_Engine/Convert/AdapterIdName.cs b/Lusas_Engine/Convert/AdapterIdName.cs new file mode 100644 index 00000000..1ebc8bcc --- /dev/null +++ b/Lusas_Engine/Convert/AdapterIdName.cs @@ -0,0 +1,29 @@ +/* + * This file is part of the Buildings and Habitats object Model (BHoM) + * Copyright (c) 2015 - 2020, the respective contributors. All rights reserved. + * + * Each contributor holds copyright over their respective contributions. + * The project versioning (Git) records all such contribution source information. + * + * + * The BHoM is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3.0 of the License, or + * (at your option) any later version. + * + * The BHoM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this code. If not, see . + */ + +namespace BH.Engine.Lusas +{ + public static partial class Convert + { + public const string AdapterIdName = "Lusas_id"; + } +} diff --git a/Lusas_Engine/Convert/ToBHoM/Elements/ToBar.cs b/Lusas_Engine/Convert/ToBHoM/Elements/ToBar.cs index c53e2628..35b3427c 100644 --- a/Lusas_Engine/Convert/ToBHoM/Elements/ToBar.cs +++ b/Lusas_Engine/Convert/ToBHoM/Elements/ToBar.cs @@ -100,7 +100,7 @@ Dictionary bhomMeshes string adapterID = Engine.Lusas.Modify.RemovePrefix(lusasLine.getName(), "L"); - bhomBar.CustomData["Lusas_id"] = adapterID; + bhomBar.CustomData[AdapterIdName] = adapterID; return bhomBar; } diff --git a/Lusas_Engine/Convert/ToBHoM/Elements/ToEdge.cs b/Lusas_Engine/Convert/ToBHoM/Elements/ToEdge.cs index 061e3e07..49dd192c 100644 --- a/Lusas_Engine/Convert/ToBHoM/Elements/ToEdge.cs +++ b/Lusas_Engine/Convert/ToBHoM/Elements/ToEdge.cs @@ -46,7 +46,7 @@ public static Edge ToEdge(this IFLine lusasLine, string adapterID = Engine.Lusas.Modify.RemovePrefix(lusasLine.getName(), "L"); - bhomEdge.CustomData["Lusas_id"] = adapterID; + bhomEdge.CustomData[AdapterIdName] = adapterID; return bhomEdge; } diff --git a/Lusas_Engine/Convert/ToBHoM/Elements/ToNode.cs b/Lusas_Engine/Convert/ToBHoM/Elements/ToNode.cs index c812678f..7080eba4 100644 --- a/Lusas_Engine/Convert/ToBHoM/Elements/ToNode.cs +++ b/Lusas_Engine/Convert/ToBHoM/Elements/ToNode.cs @@ -51,7 +51,7 @@ public static Node ToNode(this IFPoint lusasPoint, bhomNode.Tags = tags; string adapterID = Engine.Lusas.Modify.RemovePrefix(lusasPoint.getName(), "P"); - bhomNode.CustomData["Lusas_id"] = adapterID; + bhomNode.CustomData[AdapterIdName] = adapterID; return bhomNode; } diff --git a/Lusas_Engine/Convert/ToBHoM/Elements/ToPanelPlanar.cs b/Lusas_Engine/Convert/ToBHoM/Elements/ToPanelPlanar.cs index fcf5e33d..49a26532 100644 --- a/Lusas_Engine/Convert/ToBHoM/Elements/ToPanelPlanar.cs +++ b/Lusas_Engine/Convert/ToBHoM/Elements/ToPanelPlanar.cs @@ -58,7 +58,7 @@ public static Panel ToPanel(this IFSurface lusasSurface, Panel bhomPanel = Structure.Create.Panel(surfaceEdges, dummyCurve); bhomPanel.Tags = tags; - bhomPanel.CustomData["Lusas_id"] = lusasSurface.getName(); + bhomPanel.CustomData[AdapterIdName] = lusasSurface.getName(); List geometricAssignments = Lusas.Query.GetAttributeAssignments(lusasSurface, "Geometric"); List materialAssignments = Lusas.Query.GetAttributeAssignments(lusasSurface, "Material"); diff --git a/Lusas_Engine/Convert/ToBHoM/Loads/ToAreaTemperatureLoad.cs b/Lusas_Engine/Convert/ToBHoM/Loads/ToAreaTemperatureLoad.cs index 41cfe8a8..60dc553b 100644 --- a/Lusas_Engine/Convert/ToBHoM/Loads/ToAreaTemperatureLoad.cs +++ b/Lusas_Engine/Convert/ToBHoM/Loads/ToAreaTemperatureLoad.cs @@ -50,7 +50,7 @@ public static AreaTemperatureLoad ToAreaTempratureLoad( Lusas.Query.GetName(lusasTemperatureLoad)); int adapterID = Lusas.Query.GetAdapterID(lusasTemperatureLoad, 'l'); - bhomAreaTemperatureLoad.CustomData["Lusas_id"] = adapterID; + bhomAreaTemperatureLoad.CustomData[AdapterIdName] = adapterID; return bhomAreaTemperatureLoad; } diff --git a/Lusas_Engine/Convert/ToBHoM/Loads/ToAreaUniformlyDistributedLoad.cs b/Lusas_Engine/Convert/ToBHoM/Loads/ToAreaUniformlyDistributedLoad.cs index 00da4c41..93a94222 100644 --- a/Lusas_Engine/Convert/ToBHoM/Loads/ToAreaUniformlyDistributedLoad.cs +++ b/Lusas_Engine/Convert/ToBHoM/Loads/ToAreaUniformlyDistributedLoad.cs @@ -72,7 +72,7 @@ public static AreaUniformlyDistributedLoad ToAreaUniformlyDistributed( } int adapterID = Lusas.Query.GetAdapterID(lusasDistributed, 'l'); - bhomSurfaceUniformlyDistributed.CustomData["Lusas_id"] = adapterID; + bhomSurfaceUniformlyDistributed.CustomData[AdapterIdName] = adapterID; return bhomSurfaceUniformlyDistributed; } diff --git a/Lusas_Engine/Convert/ToBHoM/Loads/ToBarDistributedLoad.cs b/Lusas_Engine/Convert/ToBHoM/Loads/ToBarDistributedLoad.cs index 9089c50b..795b2352 100644 --- a/Lusas_Engine/Convert/ToBHoM/Loads/ToBarDistributedLoad.cs +++ b/Lusas_Engine/Convert/ToBHoM/Loads/ToBarDistributedLoad.cs @@ -86,7 +86,7 @@ public static BarVaryingDistributedLoad ToBarDistributedLoad(IFLoading lusasBarD Lusas.Query.GetName(lusasBarDistributedLoad)); int adapterID = Lusas.Query.GetAdapterID(lusasBarDistributedLoad, 'l'); - bhomBarPointLoad.CustomData["Lusas_id"] = adapterID; + bhomBarPointLoad.CustomData[AdapterIdName] = adapterID; return bhomBarPointLoad; } diff --git a/Lusas_Engine/Convert/ToBHoM/Loads/ToBarPointLoad.cs b/Lusas_Engine/Convert/ToBHoM/Loads/ToBarPointLoad.cs index 15bd2f45..649205a5 100644 --- a/Lusas_Engine/Convert/ToBHoM/Loads/ToBarPointLoad.cs +++ b/Lusas_Engine/Convert/ToBHoM/Loads/ToBarPointLoad.cs @@ -67,7 +67,7 @@ public static BarPointLoad ToBarPointLoad(IFLoading lusasBarPointLoad, Lusas.Query.GetName(lusasBarPointLoad)); int adapterID = Lusas.Query.GetAdapterID(lusasBarPointLoad, 'l'); - bhomBarPointLoad.CustomData["Lusas_id"] = adapterID; + bhomBarPointLoad.CustomData[AdapterIdName] = adapterID; return bhomBarPointLoad; } diff --git a/Lusas_Engine/Convert/ToBHoM/Loads/ToBarTemperatureLoad.cs b/Lusas_Engine/Convert/ToBHoM/Loads/ToBarTemperatureLoad.cs index a1874eb4..0e494ae1 100644 --- a/Lusas_Engine/Convert/ToBHoM/Loads/ToBarTemperatureLoad.cs +++ b/Lusas_Engine/Convert/ToBHoM/Loads/ToBarTemperatureLoad.cs @@ -50,7 +50,7 @@ public static BarTemperatureLoad ToBarTemperatureLoad( Lusas.Query.GetName(lusasTemperatureLoad)); int adapterID = Lusas.Query.GetAdapterID(lusasTemperatureLoad, 'l'); - bhomBarTemperatureLoad.CustomData["Lusas_id"] = adapterID; + bhomBarTemperatureLoad.CustomData[AdapterIdName] = adapterID; return bhomBarTemperatureLoad; } } diff --git a/Lusas_Engine/Convert/ToBHoM/Loads/ToBarUniformlyDistributedLoad.cs b/Lusas_Engine/Convert/ToBHoM/Loads/ToBarUniformlyDistributedLoad.cs index 588673f7..1b4cdad9 100644 --- a/Lusas_Engine/Convert/ToBHoM/Loads/ToBarUniformlyDistributedLoad.cs +++ b/Lusas_Engine/Convert/ToBHoM/Loads/ToBarUniformlyDistributedLoad.cs @@ -79,7 +79,7 @@ public static BarUniformlyDistributedLoad ToBarUniformallyDistributed(IFLoading } int adapterID = Lusas.Query.GetAdapterID(lusasDistributed, 'l'); - bhomBarUniformlyDistributed.CustomData["Lusas_id"] = adapterID; + bhomBarUniformlyDistributed.CustomData[AdapterIdName] = adapterID; return bhomBarUniformlyDistributed; } diff --git a/Lusas_Engine/Convert/ToBHoM/Loads/ToGravityLoad.cs b/Lusas_Engine/Convert/ToBHoM/Loads/ToGravityLoad.cs index aac6290f..edf66efb 100644 --- a/Lusas_Engine/Convert/ToBHoM/Loads/ToGravityLoad.cs +++ b/Lusas_Engine/Convert/ToBHoM/Loads/ToGravityLoad.cs @@ -52,7 +52,7 @@ public static GravityLoad ToGravityLoad(IFLoading lusasGravityLoad, bhomLoadcase, gravityVector, bhomObjects, Lusas.Query.GetName(lusasGravityLoad)); int adapterID = Lusas.Query.GetAdapterID(lusasGravityLoad, 'l'); - bhomGravityLoad.CustomData["Lusas_id"] = adapterID; + bhomGravityLoad.CustomData[AdapterIdName] = adapterID; return bhomGravityLoad; } diff --git a/Lusas_Engine/Convert/ToBHoM/Loads/ToLoadCombination.cs b/Lusas_Engine/Convert/ToBHoM/Loads/ToLoadCombination.cs index b63bb7b3..be690f30 100644 --- a/Lusas_Engine/Convert/ToBHoM/Loads/ToLoadCombination.cs +++ b/Lusas_Engine/Convert/ToBHoM/Loads/ToLoadCombination.cs @@ -58,7 +58,7 @@ public static LoadCombination ToLoadCombination( }; int adapterID = Lusas.Query.GetAdapterID(lusasLoadCombination, 'c'); - BHoMLoadCombination.CustomData["Lusas_id"] = adapterID; + BHoMLoadCombination.CustomData[AdapterIdName] = adapterID; return BHoMLoadCombination; } diff --git a/Lusas_Engine/Convert/ToBHoM/Loads/ToLoadcase.cs b/Lusas_Engine/Convert/ToBHoM/Loads/ToLoadcase.cs index ddac09f0..5b4b57f1 100644 --- a/Lusas_Engine/Convert/ToBHoM/Loads/ToLoadcase.cs +++ b/Lusas_Engine/Convert/ToBHoM/Loads/ToLoadcase.cs @@ -34,7 +34,7 @@ public static Loadcase ToLoadcase(this IFLoadcase lusasLoadcase) int adapterID = Lusas.Query.GetAdapterID(lusasLoadcase, 'c'); - BHoMLoadcase.CustomData["Lusas_id"] = adapterID; + BHoMLoadcase.CustomData[AdapterIdName] = adapterID; return BHoMLoadcase; } diff --git a/Lusas_Engine/Convert/ToBHoM/Loads/ToPointDisplacement.cs b/Lusas_Engine/Convert/ToBHoM/Loads/ToPointDisplacement.cs index a02bdc27..6ca3c591 100644 --- a/Lusas_Engine/Convert/ToBHoM/Loads/ToPointDisplacement.cs +++ b/Lusas_Engine/Convert/ToBHoM/Loads/ToPointDisplacement.cs @@ -60,7 +60,7 @@ public static PointDisplacement ToPointDisplacement(IFLoading lusasPrescribedDis Lusas.Query.GetName(lusasPrescribedDisplacement)); int adapterID = Lusas.Query.GetAdapterID(lusasPrescribedDisplacement, 'd'); - bhomPointDisplacement.CustomData["Lusas_id"] = adapterID; + bhomPointDisplacement.CustomData[AdapterIdName] = adapterID; // Needs to be a bit here that determines whether it is global or local - actually this cannot be done as the //attribute is applied to a group, and within the group the axis could local or global diff --git a/Lusas_Engine/Convert/ToBHoM/Loads/ToPointLoad.cs b/Lusas_Engine/Convert/ToBHoM/Loads/ToPointLoad.cs index 267ab6b8..93d30ada 100644 --- a/Lusas_Engine/Convert/ToBHoM/Loads/ToPointLoad.cs +++ b/Lusas_Engine/Convert/ToBHoM/Loads/ToPointLoad.cs @@ -63,7 +63,7 @@ public static PointLoad ToPointLoad( Lusas.Query.GetName(lusasPointLoad)); int adapterID = Lusas.Query.GetAdapterID(lusasPointLoad, 'l'); - bhomPointLoad.CustomData["Lusas_id"] = adapterID; + bhomPointLoad.CustomData[AdapterIdName] = adapterID; return bhomPointLoad; } diff --git a/Lusas_Engine/Convert/ToBHoM/Properties/ToConstraint4DOF.cs b/Lusas_Engine/Convert/ToBHoM/Properties/ToConstraint4DOF.cs index a2adf4d6..ce8ecdf1 100644 --- a/Lusas_Engine/Convert/ToBHoM/Properties/ToConstraint4DOF.cs +++ b/Lusas_Engine/Convert/ToBHoM/Properties/ToConstraint4DOF.cs @@ -73,7 +73,7 @@ public static Constraint4DOF ToConstraint4DOF(this IFSupportStructural lusasAttr int adapterID = Lusas.Query.GetAdapterID(lusasAttribute, 'p'); - bhomConstraint4DOF.CustomData["Lusas_id"] = adapterID; + bhomConstraint4DOF.CustomData[AdapterIdName] = adapterID; return bhomConstraint4DOF; } diff --git a/Lusas_Engine/Convert/ToBHoM/Properties/ToConstraint6DOF.cs b/Lusas_Engine/Convert/ToBHoM/Properties/ToConstraint6DOF.cs index edbde0de..0e6cd95e 100644 --- a/Lusas_Engine/Convert/ToBHoM/Properties/ToConstraint6DOF.cs +++ b/Lusas_Engine/Convert/ToBHoM/Properties/ToConstraint6DOF.cs @@ -63,7 +63,7 @@ public static Constraint6DOF ToConstraint6DOF(this IFSupportStructural lusasAttr attributeName, fixity, stiffness); int adapterID = Lusas.Query.GetAdapterID(lusasAttribute, 'p'); - bhomConstraint6DOF.CustomData["Lusas_id"] = adapterID; + bhomConstraint6DOF.CustomData[AdapterIdName] = adapterID; return bhomConstraint6DOF; } diff --git a/Lusas_Engine/Convert/ToBHoM/Properties/ToMaterial.cs b/Lusas_Engine/Convert/ToBHoM/Properties/ToMaterial.cs index 420c8e32..eaf7c47b 100644 --- a/Lusas_Engine/Convert/ToBHoM/Properties/ToMaterial.cs +++ b/Lusas_Engine/Convert/ToBHoM/Properties/ToMaterial.cs @@ -56,7 +56,7 @@ public static IMaterialFragment ToMaterial(this IFAttribute lusasAttribute) } int adapterID = Lusas.Query.GetAdapterID(lusasAttribute, 'M'); - bhomMaterial.CustomData["Lusas_id"] = adapterID; + bhomMaterial.CustomData[AdapterIdName] = adapterID; return bhomMaterial; } diff --git a/Lusas_Engine/Convert/ToBHoM/Properties/ToMeshSettings1D.cs b/Lusas_Engine/Convert/ToBHoM/Properties/ToMeshSettings1D.cs index 3f996fbe..45029fea 100644 --- a/Lusas_Engine/Convert/ToBHoM/Properties/ToMeshSettings1D.cs +++ b/Lusas_Engine/Convert/ToBHoM/Properties/ToMeshSettings1D.cs @@ -65,7 +65,7 @@ public static MeshSettings1D ToMeshSettings1D(this IFAttribute lusasAttrbute) }; int adapterID = Lusas.Query.GetAdapterID(lusasMeshLine, 'e'); - bhomMeshSettings1D.CustomData["Lusas_id"] = adapterID; + bhomMeshSettings1D.CustomData[AdapterIdName] = adapterID; return bhomMeshSettings1D; } diff --git a/Lusas_Engine/Convert/ToBHoM/Properties/ToMeshSettings2D.cs b/Lusas_Engine/Convert/ToBHoM/Properties/ToMeshSettings2D.cs index d915c6e5..89e77236 100644 --- a/Lusas_Engine/Convert/ToBHoM/Properties/ToMeshSettings2D.cs +++ b/Lusas_Engine/Convert/ToBHoM/Properties/ToMeshSettings2D.cs @@ -75,7 +75,7 @@ public static MeshSettings2D ToMeshSettings2D(this IFAttribute lusasAttribute) }; int adapterID = Lusas.Query.GetAdapterID(lusasAttribute, 'e'); - bhomMeshSettings2D.CustomData["Lusas_id"] = adapterID; + bhomMeshSettings2D.CustomData[AdapterIdName] = adapterID; return bhomMeshSettings2D; } diff --git a/Lusas_Engine/Convert/ToBHoM/Properties/ToSectionProperty.cs b/Lusas_Engine/Convert/ToBHoM/Properties/ToSectionProperty.cs index 7765fcad..71cf083b 100644 --- a/Lusas_Engine/Convert/ToBHoM/Properties/ToSectionProperty.cs +++ b/Lusas_Engine/Convert/ToBHoM/Properties/ToSectionProperty.cs @@ -66,7 +66,7 @@ public static ISectionProperty ToSection(this IFAttribute lusasAttribute) int adapterID = Lusas.Query.GetAdapterID(lusasAttribute, 'G'); - bhomSection.CustomData["Lusas_id"] = adapterID; + bhomSection.CustomData[AdapterIdName] = adapterID; return bhomSection; diff --git a/Lusas_Engine/Convert/ToBHoM/Properties/ToSurfaceProperty.cs b/Lusas_Engine/Convert/ToBHoM/Properties/ToSurfaceProperty.cs index 22f51a0a..9f25606b 100644 --- a/Lusas_Engine/Convert/ToBHoM/Properties/ToSurfaceProperty.cs +++ b/Lusas_Engine/Convert/ToBHoM/Properties/ToSurfaceProperty.cs @@ -39,7 +39,7 @@ public static ISurfaceProperty ToSurfaceProperty(this IFAttribute lusasAttribute int adapterID = Lusas.Query.GetAdapterID(lusasAttribute, 'G'); - bhomProperty2D.CustomData["Lusas_id"] = adapterID; + bhomProperty2D.CustomData[AdapterIdName] = adapterID; return bhomProperty2D; } diff --git a/Lusas_Engine/Lusas_Engine.csproj b/Lusas_Engine/Lusas_Engine.csproj index 535adc17..2c711f5f 100644 --- a/Lusas_Engine/Lusas_Engine.csproj +++ b/Lusas_Engine/Lusas_Engine.csproj @@ -107,6 +107,7 @@ + diff --git a/Lusas_Engine/Query/GetObjectIDs.cs b/Lusas_Engine/Query/GetObjectIDs.cs index fca6eef2..df167cee 100644 --- a/Lusas_Engine/Query/GetObjectIDs.cs +++ b/Lusas_Engine/Query/GetObjectIDs.cs @@ -55,7 +55,7 @@ public static List GetObjectIDs(IList ids) { idsOut.Add(id); } - else if (o is IBHoMObject && (o as IBHoMObject).CustomData.TryGetValue("Lusas_id", out idObj) && int.TryParse(idObj.ToString(), out id)) + else if (o is IBHoMObject && (o as IBHoMObject).CustomData.TryGetValue(BH.Engine.Lusas.Convert.AdapterIdName, out idObj) && int.TryParse(idObj.ToString(), out id)) idsOut.Add(id); } return idsOut;