StepFileGen2.cpp 220 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067
  1. /*
  2. Open Asset Import Library (ASSIMP)
  3. ----------------------------------------------------------------------
  4. Copyright (c) 2006-2010, ASSIMP Development Team
  5. All rights reserved.
  6. Redistribution and use of this software in source and binary forms,
  7. with or without modification, are permitted provided that the
  8. following conditions are met:
  9. * Redistributions of source code must retain the above
  10. copyright notice, this list of conditions and the
  11. following disclaimer.
  12. * Redistributions in binary form must reproduce the above
  13. copyright notice, this list of conditions and the
  14. following disclaimer in the documentation and/or other
  15. materials provided with the distribution.
  16. * Neither the name of the ASSIMP team, nor the names of its
  17. contributors may be used to endorse or promote products
  18. derived from this software without specific prior
  19. written permission of the ASSIMP Development Team.
  20. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  21. "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  22. LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  23. A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  24. OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  25. SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  26. LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  27. DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  28. THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  29. (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  30. OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  31. ----------------------------------------------------------------------
  32. */
  33. #include "code/Importer/StepFile/StepReaderGen.h"
  34. namespace Assimp {
  35. using namespace StepFile;
  36. namespace STEP {
  37. // -----------------------------------------------------------------------------------------------------------
  38. template <> size_t GenericFill<classification_assignment>(const DB& db, const LIST& params, classification_assignment* in)
  39. {
  40. size_t base = 0;
  41. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to classification_assignment"); } do { // convert the 'assigned_class' argument
  42. std::shared_ptr<const DataType> arg = params[base++];
  43. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::classification_assignment, 2>::aux_is_derived[0] = true; break; }
  44. try { GenericConvert(in->assigned_class, arg, db); break; }
  45. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to classification_assignment to be a `group`")); }
  46. } while (0);
  47. do { // convert the 'role' argument
  48. std::shared_ptr<const DataType> arg = params[base++];
  49. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::classification_assignment, 2>::aux_is_derived[1] = true; break; }
  50. try { GenericConvert(in->role, arg, db); break; }
  51. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to classification_assignment to be a `classification_role`")); }
  52. } while (0);
  53. return base;
  54. }
  55. // -----------------------------------------------------------------------------------------------------------
  56. template <> size_t GenericFill<applied_classification_assignment>(const DB& db, const LIST& params, applied_classification_assignment* in)
  57. {
  58. size_t base = GenericFill(db, params, static_cast<classification_assignment*>(in));
  59. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to applied_classification_assignment"); } do { // convert the 'items' argument
  60. std::shared_ptr<const DataType> arg = params[base++];
  61. try { GenericConvert(in->items, arg, db); break; }
  62. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to applied_classification_assignment to be a `SET [1:?] OF classification_item`")); }
  63. } while (0);
  64. return base;
  65. }
  66. // -----------------------------------------------------------------------------------------------------------
  67. template <> size_t GenericFill<contract_assignment>(const DB& db, const LIST& params, contract_assignment* in)
  68. {
  69. size_t base = 0;
  70. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to contract_assignment"); } do { // convert the 'assigned_contract' argument
  71. std::shared_ptr<const DataType> arg = params[base++];
  72. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::contract_assignment, 1>::aux_is_derived[0] = true; break; }
  73. try { GenericConvert(in->assigned_contract, arg, db); break; }
  74. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to contract_assignment to be a `contract`")); }
  75. } while (0);
  76. return base;
  77. }
  78. // -----------------------------------------------------------------------------------------------------------
  79. template <> size_t GenericFill<applied_contract_assignment>(const DB& db, const LIST& params, applied_contract_assignment* in)
  80. {
  81. size_t base = GenericFill(db, params, static_cast<contract_assignment*>(in));
  82. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to applied_contract_assignment"); } do { // convert the 'items' argument
  83. std::shared_ptr<const DataType> arg = params[base++];
  84. try { GenericConvert(in->items, arg, db); break; }
  85. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to applied_contract_assignment to be a `SET [1:?] OF contract_item`")); }
  86. } while (0);
  87. return base;
  88. }
  89. // -----------------------------------------------------------------------------------------------------------
  90. template <> size_t GenericFill<date_and_time_assignment>(const DB& db, const LIST& params, date_and_time_assignment* in)
  91. {
  92. size_t base = 0;
  93. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to date_and_time_assignment"); } do { // convert the 'assigned_date_and_time' argument
  94. std::shared_ptr<const DataType> arg = params[base++];
  95. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::date_and_time_assignment, 2>::aux_is_derived[0] = true; break; }
  96. try { GenericConvert(in->assigned_date_and_time, arg, db); break; }
  97. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to date_and_time_assignment to be a `date_and_time`")); }
  98. } while (0);
  99. do { // convert the 'role' argument
  100. std::shared_ptr<const DataType> arg = params[base++];
  101. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::date_and_time_assignment, 2>::aux_is_derived[1] = true; break; }
  102. try { GenericConvert(in->role, arg, db); break; }
  103. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to date_and_time_assignment to be a `date_time_role`")); }
  104. } while (0);
  105. return base;
  106. }
  107. // -----------------------------------------------------------------------------------------------------------
  108. template <> size_t GenericFill<applied_date_and_time_assignment>(const DB& db, const LIST& params, applied_date_and_time_assignment* in)
  109. {
  110. size_t base = GenericFill(db, params, static_cast<date_and_time_assignment*>(in));
  111. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to applied_date_and_time_assignment"); } do { // convert the 'items' argument
  112. std::shared_ptr<const DataType> arg = params[base++];
  113. try { GenericConvert(in->items, arg, db); break; }
  114. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to applied_date_and_time_assignment to be a `SET [1:?] OF date_and_time_item`")); }
  115. } while (0);
  116. return base;
  117. }
  118. // -----------------------------------------------------------------------------------------------------------
  119. template <> size_t GenericFill<date_assignment>(const DB& db, const LIST& params, date_assignment* in)
  120. {
  121. size_t base = 0;
  122. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to date_assignment"); } do { // convert the 'assigned_date' argument
  123. std::shared_ptr<const DataType> arg = params[base++];
  124. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::date_assignment, 2>::aux_is_derived[0] = true; break; }
  125. try { GenericConvert(in->assigned_date, arg, db); break; }
  126. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to date_assignment to be a `date`")); }
  127. } while (0);
  128. do { // convert the 'role' argument
  129. std::shared_ptr<const DataType> arg = params[base++];
  130. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::date_assignment, 2>::aux_is_derived[1] = true; break; }
  131. try { GenericConvert(in->role, arg, db); break; }
  132. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to date_assignment to be a `date_role`")); }
  133. } while (0);
  134. return base;
  135. }
  136. // -----------------------------------------------------------------------------------------------------------
  137. template <> size_t GenericFill<applied_date_assignment>(const DB& db, const LIST& params, applied_date_assignment* in)
  138. {
  139. size_t base = GenericFill(db, params, static_cast<date_assignment*>(in));
  140. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to applied_date_assignment"); } do { // convert the 'items' argument
  141. std::shared_ptr<const DataType> arg = params[base++];
  142. try { GenericConvert(in->items, arg, db); break; }
  143. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to applied_date_assignment to be a `SET [1:?] OF date_item`")); }
  144. } while (0);
  145. return base;
  146. }
  147. // -----------------------------------------------------------------------------------------------------------
  148. template <> size_t GenericFill<document_reference>(const DB& db, const LIST& params, document_reference* in)
  149. {
  150. size_t base = 0;
  151. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to document_reference"); } do { // convert the 'assigned_document' argument
  152. std::shared_ptr<const DataType> arg = params[base++];
  153. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::document_reference, 2>::aux_is_derived[0] = true; break; }
  154. try { GenericConvert(in->assigned_document, arg, db); break; }
  155. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to document_reference to be a `document`")); }
  156. } while (0);
  157. do { // convert the 'source' argument
  158. std::shared_ptr<const DataType> arg = params[base++];
  159. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::document_reference, 2>::aux_is_derived[1] = true; break; }
  160. try { GenericConvert(in->source, arg, db); break; }
  161. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to document_reference to be a `label`")); }
  162. } while (0);
  163. return base;
  164. }
  165. // -----------------------------------------------------------------------------------------------------------
  166. template <> size_t GenericFill<applied_document_reference>(const DB& db, const LIST& params, applied_document_reference* in)
  167. {
  168. size_t base = GenericFill(db, params, static_cast<document_reference*>(in));
  169. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to applied_document_reference"); } do { // convert the 'items' argument
  170. std::shared_ptr<const DataType> arg = params[base++];
  171. try { GenericConvert(in->items, arg, db); break; }
  172. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to applied_document_reference to be a `SET [1:?] OF document_reference_item`")); }
  173. } while (0);
  174. return base;
  175. }
  176. // -----------------------------------------------------------------------------------------------------------
  177. template <> size_t GenericFill<document_usage_constraint_assignment>(const DB& db, const LIST& params, document_usage_constraint_assignment* in)
  178. {
  179. size_t base = 0;
  180. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to document_usage_constraint_assignment"); } do { // convert the 'assigned_document_usage' argument
  181. std::shared_ptr<const DataType> arg = params[base++];
  182. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::document_usage_constraint_assignment, 2>::aux_is_derived[0] = true; break; }
  183. try { GenericConvert(in->assigned_document_usage, arg, db); break; }
  184. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to document_usage_constraint_assignment to be a `document_usage_constraint`")); }
  185. } while (0);
  186. do { // convert the 'role' argument
  187. std::shared_ptr<const DataType> arg = params[base++];
  188. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::document_usage_constraint_assignment, 2>::aux_is_derived[1] = true; break; }
  189. try { GenericConvert(in->role, arg, db); break; }
  190. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to document_usage_constraint_assignment to be a `document_usage_role`")); }
  191. } while (0);
  192. return base;
  193. }
  194. // -----------------------------------------------------------------------------------------------------------
  195. template <> size_t GenericFill<applied_document_usage_constraint_assignment>(const DB& db, const LIST& params, applied_document_usage_constraint_assignment* in)
  196. {
  197. size_t base = GenericFill(db, params, static_cast<document_usage_constraint_assignment*>(in));
  198. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to applied_document_usage_constraint_assignment"); } do { // convert the 'items' argument
  199. std::shared_ptr<const DataType> arg = params[base++];
  200. try { GenericConvert(in->items, arg, db); break; }
  201. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to applied_document_usage_constraint_assignment to be a `SET [1:?] OF document_reference_item`")); }
  202. } while (0);
  203. return base;
  204. }
  205. // -----------------------------------------------------------------------------------------------------------
  206. template <> size_t GenericFill<effectivity_assignment>(const DB& db, const LIST& params, effectivity_assignment* in)
  207. {
  208. size_t base = 0;
  209. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to effectivity_assignment"); } do { // convert the 'assigned_effectivity' argument
  210. std::shared_ptr<const DataType> arg = params[base++];
  211. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::effectivity_assignment, 1>::aux_is_derived[0] = true; break; }
  212. try { GenericConvert(in->assigned_effectivity, arg, db); break; }
  213. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to effectivity_assignment to be a `effectivity`")); }
  214. } while (0);
  215. return base;
  216. }
  217. // -----------------------------------------------------------------------------------------------------------
  218. template <> size_t GenericFill<applied_effectivity_assignment>(const DB& db, const LIST& params, applied_effectivity_assignment* in)
  219. {
  220. size_t base = GenericFill(db, params, static_cast<effectivity_assignment*>(in));
  221. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to applied_effectivity_assignment"); } do { // convert the 'items' argument
  222. std::shared_ptr<const DataType> arg = params[base++];
  223. try { GenericConvert(in->items, arg, db); break; }
  224. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to applied_effectivity_assignment to be a `SET [1:?] OF effectivity_item`")); }
  225. } while (0);
  226. return base;
  227. }
  228. // -----------------------------------------------------------------------------------------------------------
  229. template <> size_t GenericFill<event_occurrence_assignment>(const DB& db, const LIST& params, event_occurrence_assignment* in)
  230. {
  231. size_t base = 0;
  232. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to event_occurrence_assignment"); } do { // convert the 'assigned_event_occurrence' argument
  233. std::shared_ptr<const DataType> arg = params[base++];
  234. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::event_occurrence_assignment, 2>::aux_is_derived[0] = true; break; }
  235. try { GenericConvert(in->assigned_event_occurrence, arg, db); break; }
  236. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to event_occurrence_assignment to be a `event_occurrence`")); }
  237. } while (0);
  238. do { // convert the 'role' argument
  239. std::shared_ptr<const DataType> arg = params[base++];
  240. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::event_occurrence_assignment, 2>::aux_is_derived[1] = true; break; }
  241. try { GenericConvert(in->role, arg, db); break; }
  242. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to event_occurrence_assignment to be a `event_occurrence_role`")); }
  243. } while (0);
  244. return base;
  245. }
  246. // -----------------------------------------------------------------------------------------------------------
  247. template <> size_t GenericFill<applied_event_occurrence_assignment>(const DB& db, const LIST& params, applied_event_occurrence_assignment* in)
  248. {
  249. size_t base = GenericFill(db, params, static_cast<event_occurrence_assignment*>(in));
  250. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to applied_event_occurrence_assignment"); } do { // convert the 'items' argument
  251. std::shared_ptr<const DataType> arg = params[base++];
  252. try { GenericConvert(in->items, arg, db); break; }
  253. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to applied_event_occurrence_assignment to be a `SET [1:?] OF event_occurrence_item`")); }
  254. } while (0);
  255. return base;
  256. }
  257. // -----------------------------------------------------------------------------------------------------------
  258. template <> size_t GenericFill<identification_assignment>(const DB& db, const LIST& params, identification_assignment* in)
  259. {
  260. size_t base = 0;
  261. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to identification_assignment"); } do { // convert the 'assigned_id' argument
  262. std::shared_ptr<const DataType> arg = params[base++];
  263. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::identification_assignment, 2>::aux_is_derived[0] = true; break; }
  264. try { GenericConvert(in->assigned_id, arg, db); break; }
  265. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to identification_assignment to be a `identifier`")); }
  266. } while (0);
  267. do { // convert the 'role' argument
  268. std::shared_ptr<const DataType> arg = params[base++];
  269. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::identification_assignment, 2>::aux_is_derived[1] = true; break; }
  270. try { GenericConvert(in->role, arg, db); break; }
  271. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to identification_assignment to be a `identification_role`")); }
  272. } while (0);
  273. return base;
  274. }
  275. // -----------------------------------------------------------------------------------------------------------
  276. template <> size_t GenericFill<external_identification_assignment>(const DB& db, const LIST& params, external_identification_assignment* in)
  277. {
  278. size_t base = GenericFill(db, params, static_cast<identification_assignment*>(in));
  279. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to external_identification_assignment"); } do { // convert the 'source' argument
  280. std::shared_ptr<const DataType> arg = params[base++];
  281. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::external_identification_assignment, 1>::aux_is_derived[0] = true; break; }
  282. try { GenericConvert(in->source, arg, db); break; }
  283. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to external_identification_assignment to be a `external_source`")); }
  284. } while (0);
  285. return base;
  286. }
  287. // -----------------------------------------------------------------------------------------------------------
  288. template <> size_t GenericFill<applied_external_identification_assignment>(const DB& db, const LIST& params, applied_external_identification_assignment* in)
  289. {
  290. size_t base = GenericFill(db, params, static_cast<external_identification_assignment*>(in));
  291. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to applied_external_identification_assignment"); } do { // convert the 'items' argument
  292. std::shared_ptr<const DataType> arg = params[base++];
  293. try { GenericConvert(in->items, arg, db); break; }
  294. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to applied_external_identification_assignment to be a `SET [1:?] OF external_identification_item`")); }
  295. } while (0);
  296. return base;
  297. }
  298. // -----------------------------------------------------------------------------------------------------------
  299. template <> size_t GenericFill<group_assignment>(const DB& db, const LIST& params, group_assignment* in)
  300. {
  301. size_t base = 0;
  302. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to group_assignment"); } do { // convert the 'assigned_group' argument
  303. std::shared_ptr<const DataType> arg = params[base++];
  304. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::group_assignment, 1>::aux_is_derived[0] = true; break; }
  305. try { GenericConvert(in->assigned_group, arg, db); break; }
  306. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to group_assignment to be a `group`")); }
  307. } while (0);
  308. return base;
  309. }
  310. // -----------------------------------------------------------------------------------------------------------
  311. template <> size_t GenericFill<applied_group_assignment>(const DB& db, const LIST& params, applied_group_assignment* in)
  312. {
  313. size_t base = GenericFill(db, params, static_cast<group_assignment*>(in));
  314. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to applied_group_assignment"); } do { // convert the 'items' argument
  315. std::shared_ptr<const DataType> arg = params[base++];
  316. try { GenericConvert(in->items, arg, db); break; }
  317. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to applied_group_assignment to be a `SET [1:?] OF groupable_item`")); }
  318. } while (0);
  319. return base;
  320. }
  321. // -----------------------------------------------------------------------------------------------------------
  322. template <> size_t GenericFill<applied_identification_assignment>(const DB& db, const LIST& params, applied_identification_assignment* in)
  323. {
  324. size_t base = GenericFill(db, params, static_cast<identification_assignment*>(in));
  325. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to applied_identification_assignment"); } do { // convert the 'items' argument
  326. std::shared_ptr<const DataType> arg = params[base++];
  327. try { GenericConvert(in->items, arg, db); break; }
  328. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to applied_identification_assignment to be a `SET [1:?] OF identification_item`")); }
  329. } while (0);
  330. return base;
  331. }
  332. // -----------------------------------------------------------------------------------------------------------
  333. template <> size_t GenericFill<name_assignment>(const DB& db, const LIST& params, name_assignment* in)
  334. {
  335. size_t base = 0;
  336. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to name_assignment"); } do { // convert the 'assigned_name' argument
  337. std::shared_ptr<const DataType> arg = params[base++];
  338. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::name_assignment, 1>::aux_is_derived[0] = true; break; }
  339. try { GenericConvert(in->assigned_name, arg, db); break; }
  340. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to name_assignment to be a `label`")); }
  341. } while (0);
  342. return base;
  343. }
  344. // -----------------------------------------------------------------------------------------------------------
  345. template <> size_t GenericFill<applied_name_assignment>(const DB& db, const LIST& params, applied_name_assignment* in)
  346. {
  347. size_t base = GenericFill(db, params, static_cast<name_assignment*>(in));
  348. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to applied_name_assignment"); } do { // convert the 'item' argument
  349. std::shared_ptr<const DataType> arg = params[base++];
  350. try { GenericConvert(in->item, arg, db); break; }
  351. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to applied_name_assignment to be a `name_item`")); }
  352. } while (0);
  353. return base;
  354. }
  355. // -----------------------------------------------------------------------------------------------------------
  356. template <> size_t GenericFill<organization_assignment>(const DB& db, const LIST& params, organization_assignment* in)
  357. {
  358. size_t base = 0;
  359. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to organization_assignment"); } do { // convert the 'assigned_organization' argument
  360. std::shared_ptr<const DataType> arg = params[base++];
  361. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::organization_assignment, 2>::aux_is_derived[0] = true; break; }
  362. try { GenericConvert(in->assigned_organization, arg, db); break; }
  363. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to organization_assignment to be a `organization`")); }
  364. } while (0);
  365. do { // convert the 'role' argument
  366. std::shared_ptr<const DataType> arg = params[base++];
  367. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::organization_assignment, 2>::aux_is_derived[1] = true; break; }
  368. try { GenericConvert(in->role, arg, db); break; }
  369. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to organization_assignment to be a `organization_role`")); }
  370. } while (0);
  371. return base;
  372. }
  373. // -----------------------------------------------------------------------------------------------------------
  374. template <> size_t GenericFill<applied_organization_assignment>(const DB& db, const LIST& params, applied_organization_assignment* in)
  375. {
  376. size_t base = GenericFill(db, params, static_cast<organization_assignment*>(in));
  377. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to applied_organization_assignment"); } do { // convert the 'items' argument
  378. std::shared_ptr<const DataType> arg = params[base++];
  379. try { GenericConvert(in->items, arg, db); break; }
  380. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to applied_organization_assignment to be a `SET [1:?] OF organization_item`")); }
  381. } while (0);
  382. return base;
  383. }
  384. // -----------------------------------------------------------------------------------------------------------
  385. template <> size_t GenericFill<organizational_project_assignment>(const DB& db, const LIST& params, organizational_project_assignment* in)
  386. {
  387. size_t base = 0;
  388. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to organizational_project_assignment"); } do { // convert the 'assigned_organizational_project' argument
  389. std::shared_ptr<const DataType> arg = params[base++];
  390. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::organizational_project_assignment, 2>::aux_is_derived[0] = true; break; }
  391. try { GenericConvert(in->assigned_organizational_project, arg, db); break; }
  392. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to organizational_project_assignment to be a `organizational_project`")); }
  393. } while (0);
  394. do { // convert the 'role' argument
  395. std::shared_ptr<const DataType> arg = params[base++];
  396. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::organizational_project_assignment, 2>::aux_is_derived[1] = true; break; }
  397. try { GenericConvert(in->role, arg, db); break; }
  398. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to organizational_project_assignment to be a `organizational_project_role`")); }
  399. } while (0);
  400. return base;
  401. }
  402. // -----------------------------------------------------------------------------------------------------------
  403. template <> size_t GenericFill<applied_organizational_project_assignment>(const DB& db, const LIST& params, applied_organizational_project_assignment* in)
  404. {
  405. size_t base = GenericFill(db, params, static_cast<organizational_project_assignment*>(in));
  406. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to applied_organizational_project_assignment"); } do { // convert the 'items' argument
  407. std::shared_ptr<const DataType> arg = params[base++];
  408. try { GenericConvert(in->items, arg, db); break; }
  409. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to applied_organizational_project_assignment to be a `SET [1:?] OF project_item`")); }
  410. } while (0);
  411. return base;
  412. }
  413. // -----------------------------------------------------------------------------------------------------------
  414. template <> size_t GenericFill<person_and_organization_assignment>(const DB& db, const LIST& params, person_and_organization_assignment* in)
  415. {
  416. size_t base = 0;
  417. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to person_and_organization_assignment"); } do { // convert the 'assigned_person_and_organization' argument
  418. std::shared_ptr<const DataType> arg = params[base++];
  419. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::person_and_organization_assignment, 2>::aux_is_derived[0] = true; break; }
  420. try { GenericConvert(in->assigned_person_and_organization, arg, db); break; }
  421. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to person_and_organization_assignment to be a `person_and_organization`")); }
  422. } while (0);
  423. do { // convert the 'role' argument
  424. std::shared_ptr<const DataType> arg = params[base++];
  425. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::person_and_organization_assignment, 2>::aux_is_derived[1] = true; break; }
  426. try { GenericConvert(in->role, arg, db); break; }
  427. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to person_and_organization_assignment to be a `person_and_organization_role`")); }
  428. } while (0);
  429. return base;
  430. }
  431. // -----------------------------------------------------------------------------------------------------------
  432. template <> size_t GenericFill<applied_person_and_organization_assignment>(const DB& db, const LIST& params, applied_person_and_organization_assignment* in)
  433. {
  434. size_t base = GenericFill(db, params, static_cast<person_and_organization_assignment*>(in));
  435. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to applied_person_and_organization_assignment"); } do { // convert the 'items' argument
  436. std::shared_ptr<const DataType> arg = params[base++];
  437. try { GenericConvert(in->items, arg, db); break; }
  438. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to applied_person_and_organization_assignment to be a `SET [1:?] OF person_and_organization_item`")); }
  439. } while (0);
  440. return base;
  441. }
  442. // -----------------------------------------------------------------------------------------------------------
  443. template <> size_t GenericFill<presented_item>(const DB& db, const LIST& params, presented_item* in)
  444. {
  445. size_t base = 0;
  446. return base;
  447. }
  448. // -----------------------------------------------------------------------------------------------------------
  449. template <> size_t GenericFill<applied_presented_item>(const DB& db, const LIST& params, applied_presented_item* in)
  450. {
  451. size_t base = GenericFill(db, params, static_cast<presented_item*>(in));
  452. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to applied_presented_item"); } do { // convert the 'items' argument
  453. std::shared_ptr<const DataType> arg = params[base++];
  454. try { GenericConvert(in->items, arg, db); break; }
  455. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to applied_presented_item to be a `SET [1:?] OF presented_item_select`")); }
  456. } while (0);
  457. return base;
  458. }
  459. // -----------------------------------------------------------------------------------------------------------
  460. template <> size_t GenericFill<security_classification_assignment>(const DB& db, const LIST& params, security_classification_assignment* in)
  461. {
  462. size_t base = 0;
  463. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to security_classification_assignment"); } do { // convert the 'assigned_security_classification' argument
  464. std::shared_ptr<const DataType> arg = params[base++];
  465. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::security_classification_assignment, 1>::aux_is_derived[0] = true; break; }
  466. try { GenericConvert(in->assigned_security_classification, arg, db); break; }
  467. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to security_classification_assignment to be a `security_classification`")); }
  468. } while (0);
  469. return base;
  470. }
  471. // -----------------------------------------------------------------------------------------------------------
  472. template <> size_t GenericFill<applied_security_classification_assignment>(const DB& db, const LIST& params, applied_security_classification_assignment* in)
  473. {
  474. size_t base = GenericFill(db, params, static_cast<security_classification_assignment*>(in));
  475. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to applied_security_classification_assignment"); } do { // convert the 'items' argument
  476. std::shared_ptr<const DataType> arg = params[base++];
  477. try { GenericConvert(in->items, arg, db); break; }
  478. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to applied_security_classification_assignment to be a `SET [1:?] OF security_classification_item`")); }
  479. } while (0);
  480. return base;
  481. }
  482. // -----------------------------------------------------------------------------------------------------------
  483. template <> size_t GenericFill<time_interval_assignment>(const DB& db, const LIST& params, time_interval_assignment* in)
  484. {
  485. size_t base = 0;
  486. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to time_interval_assignment"); } do { // convert the 'assigned_time_interval' argument
  487. std::shared_ptr<const DataType> arg = params[base++];
  488. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::time_interval_assignment, 2>::aux_is_derived[0] = true; break; }
  489. try { GenericConvert(in->assigned_time_interval, arg, db); break; }
  490. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to time_interval_assignment to be a `time_interval`")); }
  491. } while (0);
  492. do { // convert the 'role' argument
  493. std::shared_ptr<const DataType> arg = params[base++];
  494. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::time_interval_assignment, 2>::aux_is_derived[1] = true; break; }
  495. try { GenericConvert(in->role, arg, db); break; }
  496. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to time_interval_assignment to be a `time_interval_role`")); }
  497. } while (0);
  498. return base;
  499. }
  500. // -----------------------------------------------------------------------------------------------------------
  501. template <> size_t GenericFill<applied_time_interval_assignment>(const DB& db, const LIST& params, applied_time_interval_assignment* in)
  502. {
  503. size_t base = GenericFill(db, params, static_cast<time_interval_assignment*>(in));
  504. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to applied_time_interval_assignment"); } do { // convert the 'items' argument
  505. std::shared_ptr<const DataType> arg = params[base++];
  506. try { GenericConvert(in->items, arg, db); break; }
  507. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to applied_time_interval_assignment to be a `SET [0:?] OF time_interval_item`")); }
  508. } while (0);
  509. return base;
  510. }
  511. // -----------------------------------------------------------------------------------------------------------
  512. template <> size_t GenericFill<applied_usage_right>(const DB& db, const LIST& params, applied_usage_right* in)
  513. {
  514. size_t base = GenericFill(db, params, static_cast<applied_action_assignment*>(in));
  515. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to applied_usage_right"); } return base;
  516. }
  517. // -----------------------------------------------------------------------------------------------------------
  518. template <> size_t GenericFill<area_in_set>(const DB& db, const LIST& params, area_in_set* in)
  519. {
  520. size_t base = 0;
  521. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to area_in_set"); } do { // convert the 'area' argument
  522. std::shared_ptr<const DataType> arg = params[base++];
  523. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::area_in_set, 2>::aux_is_derived[0] = true; break; }
  524. try { GenericConvert(in->area, arg, db); break; }
  525. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to area_in_set to be a `presentation_area`")); }
  526. } while (0);
  527. do { // convert the 'in_set' argument
  528. std::shared_ptr<const DataType> arg = params[base++];
  529. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::area_in_set, 2>::aux_is_derived[1] = true; break; }
  530. try { GenericConvert(in->in_set, arg, db); break; }
  531. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to area_in_set to be a `presentation_set`")); }
  532. } while (0);
  533. return base;
  534. }
  535. // -----------------------------------------------------------------------------------------------------------
  536. template <> size_t GenericFill<area_measure_with_unit>(const DB& db, const LIST& params, area_measure_with_unit* in)
  537. {
  538. size_t base = GenericFill(db, params, static_cast<measure_with_unit*>(in));
  539. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to area_measure_with_unit"); } return base;
  540. }
  541. // -----------------------------------------------------------------------------------------------------------
  542. template <> size_t GenericFill<area_unit>(const DB& db, const LIST& params, area_unit* in)
  543. {
  544. size_t base = GenericFill(db, params, static_cast<derived_unit*>(in));
  545. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to area_unit"); } return base;
  546. }
  547. // -----------------------------------------------------------------------------------------------------------
  548. template <> size_t GenericFill<product_definition_relationship>(const DB& db, const LIST& params, product_definition_relationship* in)
  549. {
  550. size_t base = 0;
  551. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to product_definition_relationship"); } do { // convert the 'id' argument
  552. std::shared_ptr<const DataType> arg = params[base++];
  553. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_definition_relationship, 5>::aux_is_derived[0] = true; break; }
  554. try { GenericConvert(in->id, arg, db); break; }
  555. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to product_definition_relationship to be a `identifier`")); }
  556. } while (0);
  557. do { // convert the 'name' argument
  558. std::shared_ptr<const DataType> arg = params[base++];
  559. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_definition_relationship, 5>::aux_is_derived[1] = true; break; }
  560. try { GenericConvert(in->name, arg, db); break; }
  561. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to product_definition_relationship to be a `label`")); }
  562. } while (0);
  563. do { // convert the 'description' argument
  564. std::shared_ptr<const DataType> arg = params[base++];
  565. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_definition_relationship, 5>::aux_is_derived[2] = true; break; }
  566. if (dynamic_cast<const UNSET*>(&*arg)) break;
  567. try { GenericConvert(in->description, arg, db); break; }
  568. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to product_definition_relationship to be a `text`")); }
  569. } while (0);
  570. do { // convert the 'relating_product_definition' argument
  571. std::shared_ptr<const DataType> arg = params[base++];
  572. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_definition_relationship, 5>::aux_is_derived[3] = true; break; }
  573. try { GenericConvert(in->relating_product_definition, arg, db); break; }
  574. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to product_definition_relationship to be a `product_definition`")); }
  575. } while (0);
  576. do { // convert the 'related_product_definition' argument
  577. std::shared_ptr<const DataType> arg = params[base++];
  578. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_definition_relationship, 5>::aux_is_derived[4] = true; break; }
  579. try { GenericConvert(in->related_product_definition, arg, db); break; }
  580. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to product_definition_relationship to be a `product_definition`")); }
  581. } while (0);
  582. return base;
  583. }
  584. // -----------------------------------------------------------------------------------------------------------
  585. template <> size_t GenericFill<product_definition_usage>(const DB& db, const LIST& params, product_definition_usage* in)
  586. {
  587. size_t base = GenericFill(db, params, static_cast<product_definition_relationship*>(in));
  588. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to product_definition_usage"); } return base;
  589. }
  590. // -----------------------------------------------------------------------------------------------------------
  591. template <> size_t GenericFill<assembly_component_usage>(const DB& db, const LIST& params, assembly_component_usage* in)
  592. {
  593. size_t base = GenericFill(db, params, static_cast<product_definition_usage*>(in));
  594. if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to assembly_component_usage"); } do { // convert the 'reference_designator' argument
  595. std::shared_ptr<const DataType> arg = params[base++];
  596. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::assembly_component_usage, 1>::aux_is_derived[0] = true; break; }
  597. if (dynamic_cast<const UNSET*>(&*arg)) break;
  598. try { GenericConvert(in->reference_designator, arg, db); break; }
  599. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to assembly_component_usage to be a `identifier`")); }
  600. } while (0);
  601. return base;
  602. }
  603. // -----------------------------------------------------------------------------------------------------------
  604. template <> size_t GenericFill<assigned_requirement>(const DB& db, const LIST& params, assigned_requirement* in)
  605. {
  606. size_t base = GenericFill(db, params, static_cast<group_assignment*>(in));
  607. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to assigned_requirement"); } do { // convert the 'items' argument
  608. std::shared_ptr<const DataType> arg = params[base++];
  609. try { GenericConvert(in->items, arg, db); break; }
  610. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to assigned_requirement to be a `SET [1:1] OF product_definition`")); }
  611. } while (0);
  612. return base;
  613. }
  614. // -----------------------------------------------------------------------------------------------------------
  615. template <> size_t GenericFill<compound_representation_item>(const DB& db, const LIST& params, compound_representation_item* in)
  616. {
  617. size_t base = GenericFill(db, params, static_cast<representation_item*>(in));
  618. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to compound_representation_item"); } do { // convert the 'item_element' argument
  619. std::shared_ptr<const DataType> arg = params[base++];
  620. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::compound_representation_item, 1>::aux_is_derived[0] = true; break; }
  621. try { GenericConvert(in->item_element, arg, db); break; }
  622. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to compound_representation_item to be a `compound_item_definition`")); }
  623. } while (0);
  624. return base;
  625. }
  626. // -----------------------------------------------------------------------------------------------------------
  627. template <> size_t GenericFill<atomic_formula>(const DB& db, const LIST& params, atomic_formula* in)
  628. {
  629. size_t base = GenericFill(db, params, static_cast<compound_representation_item*>(in));
  630. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to atomic_formula"); } return base;
  631. }
  632. // -----------------------------------------------------------------------------------------------------------
  633. template <> size_t GenericFill<attribute_assertion>(const DB& db, const LIST& params, attribute_assertion* in)
  634. {
  635. size_t base = 0;
  636. return base;
  637. }
  638. // -----------------------------------------------------------------------------------------------------------
  639. template <> size_t GenericFill<attribute_language_assignment>(const DB& db, const LIST& params, attribute_language_assignment* in)
  640. {
  641. size_t base = GenericFill(db, params, static_cast<attribute_classification_assignment*>(in));
  642. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to attribute_language_assignment"); } do { // convert the 'items' argument
  643. std::shared_ptr<const DataType> arg = params[base++];
  644. try { GenericConvert(in->items, arg, db); break; }
  645. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to attribute_language_assignment to be a `SET [1:?] OF attribute_language_item`")); }
  646. } while (0);
  647. return base;
  648. }
  649. // -----------------------------------------------------------------------------------------------------------
  650. template <> size_t GenericFill<attribute_value_assignment>(const DB& db, const LIST& params, attribute_value_assignment* in)
  651. {
  652. size_t base = 0;
  653. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to attribute_value_assignment"); } do { // convert the 'attribute_name' argument
  654. std::shared_ptr<const DataType> arg = params[base++];
  655. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::attribute_value_assignment, 3>::aux_is_derived[0] = true; break; }
  656. try { GenericConvert(in->attribute_name, arg, db); break; }
  657. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to attribute_value_assignment to be a `label`")); }
  658. } while (0);
  659. do { // convert the 'attribute_value' argument
  660. std::shared_ptr<const DataType> arg = params[base++];
  661. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::attribute_value_assignment, 3>::aux_is_derived[1] = true; break; }
  662. try { GenericConvert(in->attribute_value, arg, db); break; }
  663. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to attribute_value_assignment to be a `attribute_type`")); }
  664. } while (0);
  665. do { // convert the 'role' argument
  666. std::shared_ptr<const DataType> arg = params[base++];
  667. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::attribute_value_assignment, 3>::aux_is_derived[2] = true; break; }
  668. try { GenericConvert(in->role, arg, db); break; }
  669. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to attribute_value_assignment to be a `attribute_value_role`")); }
  670. } while (0);
  671. return base;
  672. }
  673. // -----------------------------------------------------------------------------------------------------------
  674. template <> size_t GenericFill<auxiliary_geometric_representation_item>(const DB& db, const LIST& params, auxiliary_geometric_representation_item* in)
  675. {
  676. size_t base = 0;
  677. return base;
  678. }
  679. // -----------------------------------------------------------------------------------------------------------
  680. template <> size_t GenericFill<placement>(const DB& db, const LIST& params, placement* in)
  681. {
  682. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  683. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to placement"); } do { // convert the 'location' argument
  684. std::shared_ptr<const DataType> arg = params[base++];
  685. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::placement, 1>::aux_is_derived[0] = true; break; }
  686. try { GenericConvert(in->location, arg, db); break; }
  687. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to placement to be a `cartesian_point`")); }
  688. } while (0);
  689. return base;
  690. }
  691. // -----------------------------------------------------------------------------------------------------------
  692. template <> size_t GenericFill<axis1_placement>(const DB& db, const LIST& params, axis1_placement* in)
  693. {
  694. size_t base = GenericFill(db, params, static_cast<placement*>(in));
  695. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to axis1_placement"); } do { // convert the 'axis' argument
  696. std::shared_ptr<const DataType> arg = params[base++];
  697. if (dynamic_cast<const UNSET*>(&*arg)) break;
  698. try { GenericConvert(in->axis, arg, db); break; }
  699. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to axis1_placement to be a `direction`")); }
  700. } while (0);
  701. return base;
  702. }
  703. // -----------------------------------------------------------------------------------------------------------
  704. template <> size_t GenericFill<axis2_placement_2d>(const DB& db, const LIST& params, axis2_placement_2d* in)
  705. {
  706. size_t base = GenericFill(db, params, static_cast<placement*>(in));
  707. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to axis2_placement_2d"); } do { // convert the 'ref_direction' argument
  708. std::shared_ptr<const DataType> arg = params[base++];
  709. if (dynamic_cast<const UNSET*>(&*arg)) break;
  710. try { GenericConvert(in->ref_direction, arg, db); break; }
  711. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to axis2_placement_2d to be a `direction`")); }
  712. } while (0);
  713. return base;
  714. }
  715. // -----------------------------------------------------------------------------------------------------------
  716. template <> size_t GenericFill<axis2_placement_3d>(const DB& db, const LIST& params, axis2_placement_3d* in)
  717. {
  718. size_t base = GenericFill(db, params, static_cast<placement*>(in));
  719. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to axis2_placement_3d"); } do { // convert the 'axis' argument
  720. std::shared_ptr<const DataType> arg = params[base++];
  721. if (dynamic_cast<const UNSET*>(&*arg)) break;
  722. try { GenericConvert(in->axis, arg, db); break; }
  723. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to axis2_placement_3d to be a `direction`")); }
  724. } while (0);
  725. do { // convert the 'ref_direction' argument
  726. std::shared_ptr<const DataType> arg = params[base++];
  727. if (dynamic_cast<const UNSET*>(&*arg)) break;
  728. try { GenericConvert(in->ref_direction, arg, db); break; }
  729. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to axis2_placement_3d to be a `direction`")); }
  730. } while (0);
  731. return base;
  732. }
  733. // -----------------------------------------------------------------------------------------------------------
  734. template <> size_t GenericFill<curve>(const DB& db, const LIST& params, curve* in)
  735. {
  736. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  737. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to curve"); } return base;
  738. }
  739. // -----------------------------------------------------------------------------------------------------------
  740. template <> size_t GenericFill<bounded_curve>(const DB& db, const LIST& params, bounded_curve* in)
  741. {
  742. size_t base = GenericFill(db, params, static_cast<curve*>(in));
  743. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to bounded_curve"); } return base;
  744. }
  745. // -----------------------------------------------------------------------------------------------------------
  746. template <> size_t GenericFill<b_spline_curve>(const DB& db, const LIST& params, b_spline_curve* in)
  747. {
  748. size_t base = GenericFill(db, params, static_cast<bounded_curve*>(in));
  749. if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to b_spline_curve"); } do { // convert the 'degree' argument
  750. std::shared_ptr<const DataType> arg = params[base++];
  751. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::b_spline_curve, 5>::aux_is_derived[0] = true; break; }
  752. try { GenericConvert(in->degree, arg, db); break; }
  753. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to b_spline_curve to be a `INTEGER`")); }
  754. } while (0);
  755. do { // convert the 'control_points_list' argument
  756. std::shared_ptr<const DataType> arg = params[base++];
  757. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::b_spline_curve, 5>::aux_is_derived[1] = true; break; }
  758. try { GenericConvert(in->control_points_list, arg, db); break; }
  759. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to b_spline_curve to be a `LIST [2:?] OF cartesian_point`")); }
  760. } while (0);
  761. do { // convert the 'curve_form' argument
  762. std::shared_ptr<const DataType> arg = params[base++];
  763. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::b_spline_curve, 5>::aux_is_derived[2] = true; break; }
  764. try { GenericConvert(in->curve_form, arg, db); break; }
  765. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to b_spline_curve to be a `b_spline_curve_form`")); }
  766. } while (0);
  767. do { // convert the 'closed_curve' argument
  768. std::shared_ptr<const DataType> arg = params[base++];
  769. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::b_spline_curve, 5>::aux_is_derived[3] = true; break; }
  770. try { GenericConvert(in->closed_curve, arg, db); break; }
  771. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to b_spline_curve to be a `LOGICAL`")); }
  772. } while (0);
  773. do { // convert the 'self_intersect' argument
  774. std::shared_ptr<const DataType> arg = params[base++];
  775. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::b_spline_curve, 5>::aux_is_derived[4] = true; break; }
  776. try { GenericConvert(in->self_intersect, arg, db); break; }
  777. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to b_spline_curve to be a `LOGICAL`")); }
  778. } while (0);
  779. return base;
  780. }
  781. // -----------------------------------------------------------------------------------------------------------
  782. template <> size_t GenericFill<b_spline_curve_with_knots>(const DB& db, const LIST& params, b_spline_curve_with_knots* in)
  783. {
  784. size_t base = GenericFill(db, params, static_cast<b_spline_curve*>(in));
  785. if (params.GetSize() < 9) { throw STEP::TypeError("expected 9 arguments to b_spline_curve_with_knots"); } do { // convert the 'knot_multiplicities' argument
  786. std::shared_ptr<const DataType> arg = params[base++];
  787. try { GenericConvert(in->knot_multiplicities, arg, db); break; }
  788. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 6 to b_spline_curve_with_knots to be a `LIST [2:?] OF INTEGER`")); }
  789. } while (0);
  790. do { // convert the 'knots' argument
  791. std::shared_ptr<const DataType> arg = params[base++];
  792. try { GenericConvert(in->knots, arg, db); break; }
  793. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 7 to b_spline_curve_with_knots to be a `LIST [2:?] OF parameter_value`")); }
  794. } while (0);
  795. do { // convert the 'knot_spec' argument
  796. std::shared_ptr<const DataType> arg = params[base++];
  797. try { GenericConvert(in->knot_spec, arg, db); break; }
  798. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 8 to b_spline_curve_with_knots to be a `knot_type`")); }
  799. } while (0);
  800. return base;
  801. }
  802. // -----------------------------------------------------------------------------------------------------------
  803. template <> size_t GenericFill<surface>(const DB& db, const LIST& params, surface* in)
  804. {
  805. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  806. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to surface"); } return base;
  807. }
  808. // -----------------------------------------------------------------------------------------------------------
  809. template <> size_t GenericFill<bounded_surface>(const DB& db, const LIST& params, bounded_surface* in)
  810. {
  811. size_t base = GenericFill(db, params, static_cast<surface*>(in));
  812. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to bounded_surface"); } return base;
  813. }
  814. // -----------------------------------------------------------------------------------------------------------
  815. template <> size_t GenericFill<b_spline_surface>(const DB& db, const LIST& params, b_spline_surface* in)
  816. {
  817. size_t base = GenericFill(db, params, static_cast<bounded_surface*>(in));
  818. if (params.GetSize() < 7) { throw STEP::TypeError("expected 7 arguments to b_spline_surface"); } do { // convert the 'u_degree' argument
  819. std::shared_ptr<const DataType> arg = params[base++];
  820. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::b_spline_surface, 6>::aux_is_derived[0] = true; break; }
  821. try { GenericConvert(in->u_degree, arg, db); break; }
  822. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to b_spline_surface to be a `INTEGER`")); }
  823. } while (0);
  824. do { // convert the 'v_degree' argument
  825. std::shared_ptr<const DataType> arg = params[base++];
  826. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::b_spline_surface, 6>::aux_is_derived[1] = true; break; }
  827. try { GenericConvert(in->v_degree, arg, db); break; }
  828. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to b_spline_surface to be a `INTEGER`")); }
  829. } while (0);
  830. do { // convert the 'surface_form' argument
  831. std::shared_ptr<const DataType> arg = params[base++];
  832. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::b_spline_surface, 6>::aux_is_derived[2] = true; break; }
  833. try { GenericConvert(in->surface_form, arg, db); break; }
  834. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to b_spline_surface to be a `b_spline_surface_form`")); }
  835. } while (0);
  836. do { // convert the 'u_closed' argument
  837. std::shared_ptr<const DataType> arg = params[base++];
  838. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::b_spline_surface, 6>::aux_is_derived[3] = true; break; }
  839. try { GenericConvert(in->u_closed, arg, db); break; }
  840. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to b_spline_surface to be a `LOGICAL`")); }
  841. } while (0);
  842. do { // convert the 'v_closed' argument
  843. std::shared_ptr<const DataType> arg = params[base++];
  844. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::b_spline_surface, 6>::aux_is_derived[4] = true; break; }
  845. try { GenericConvert(in->v_closed, arg, db); break; }
  846. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to b_spline_surface to be a `LOGICAL`")); }
  847. } while (0);
  848. do { // convert the 'self_intersect' argument
  849. std::shared_ptr<const DataType> arg = params[base++];
  850. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::b_spline_surface, 6>::aux_is_derived[5] = true; break; }
  851. try { GenericConvert(in->self_intersect, arg, db); break; }
  852. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 6 to b_spline_surface to be a `LOGICAL`")); }
  853. } while (0);
  854. return base;
  855. }
  856. // -----------------------------------------------------------------------------------------------------------
  857. template <> size_t GenericFill<b_spline_surface_with_knots>(const DB& db, const LIST& params, b_spline_surface_with_knots* in)
  858. {
  859. size_t base = GenericFill(db, params, static_cast<b_spline_surface*>(in));
  860. if (params.GetSize() < 12) { throw STEP::TypeError("expected 12 arguments to b_spline_surface_with_knots"); } do { // convert the 'u_multiplicities' argument
  861. std::shared_ptr<const DataType> arg = params[base++];
  862. try { GenericConvert(in->u_multiplicities, arg, db); break; }
  863. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 7 to b_spline_surface_with_knots to be a `LIST [2:?] OF INTEGER`")); }
  864. } while (0);
  865. do { // convert the 'v_multiplicities' argument
  866. std::shared_ptr<const DataType> arg = params[base++];
  867. try { GenericConvert(in->v_multiplicities, arg, db); break; }
  868. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 8 to b_spline_surface_with_knots to be a `LIST [2:?] OF INTEGER`")); }
  869. } while (0);
  870. do { // convert the 'u_knots' argument
  871. std::shared_ptr<const DataType> arg = params[base++];
  872. try { GenericConvert(in->u_knots, arg, db); break; }
  873. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 9 to b_spline_surface_with_knots to be a `LIST [2:?] OF parameter_value`")); }
  874. } while (0);
  875. do { // convert the 'v_knots' argument
  876. std::shared_ptr<const DataType> arg = params[base++];
  877. try { GenericConvert(in->v_knots, arg, db); break; }
  878. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 10 to b_spline_surface_with_knots to be a `LIST [2:?] OF parameter_value`")); }
  879. } while (0);
  880. do { // convert the 'knot_spec' argument
  881. std::shared_ptr<const DataType> arg = params[base++];
  882. try { GenericConvert(in->knot_spec, arg, db); break; }
  883. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 11 to b_spline_surface_with_knots to be a `knot_type`")); }
  884. } while (0);
  885. return base;
  886. }
  887. // -----------------------------------------------------------------------------------------------------------
  888. template <> size_t GenericFill<product_definition>(const DB& db, const LIST& params, product_definition* in)
  889. {
  890. size_t base = 0;
  891. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to product_definition"); } do { // convert the 'id' argument
  892. std::shared_ptr<const DataType> arg = params[base++];
  893. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_definition, 4>::aux_is_derived[0] = true; break; }
  894. try { GenericConvert(in->id, arg, db); break; }
  895. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to product_definition to be a `identifier`")); }
  896. } while (0);
  897. do { // convert the 'description' argument
  898. std::shared_ptr<const DataType> arg = params[base++];
  899. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_definition, 4>::aux_is_derived[1] = true; break; }
  900. if (dynamic_cast<const UNSET*>(&*arg)) break;
  901. try { GenericConvert(in->description, arg, db); break; }
  902. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to product_definition to be a `text`")); }
  903. } while (0);
  904. do { // convert the 'formation' argument
  905. std::shared_ptr<const DataType> arg = params[base++];
  906. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_definition, 4>::aux_is_derived[2] = true; break; }
  907. try { GenericConvert(in->formation, arg, db); break; }
  908. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to product_definition to be a `product_definition_formation`")); }
  909. } while (0);
  910. do { // convert the 'frame_of_reference' argument
  911. std::shared_ptr<const DataType> arg = params[base++];
  912. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_definition, 4>::aux_is_derived[3] = true; break; }
  913. try { GenericConvert(in->frame_of_reference, arg, db); break; }
  914. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to product_definition to be a `product_definition_context`")); }
  915. } while (0);
  916. return base;
  917. }
  918. // -----------------------------------------------------------------------------------------------------------
  919. template <> size_t GenericFill<rule_software_definition>(const DB& db, const LIST& params, rule_software_definition* in)
  920. {
  921. size_t base = GenericFill(db, params, static_cast<product_definition*>(in));
  922. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to rule_software_definition"); } return base;
  923. }
  924. // -----------------------------------------------------------------------------------------------------------
  925. template <> size_t GenericFill<rule_definition>(const DB& db, const LIST& params, rule_definition* in)
  926. {
  927. size_t base = GenericFill(db, params, static_cast<rule_software_definition*>(in));
  928. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to rule_definition"); } return base;
  929. }
  930. // -----------------------------------------------------------------------------------------------------------
  931. template <> size_t GenericFill<back_chaining_rule>(const DB& db, const LIST& params, back_chaining_rule* in)
  932. {
  933. size_t base = GenericFill(db, params, static_cast<rule_definition*>(in));
  934. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to back_chaining_rule"); } return base;
  935. }
  936. // -----------------------------------------------------------------------------------------------------------
  937. template <> size_t GenericFill<back_chaining_rule_body>(const DB& db, const LIST& params, back_chaining_rule_body* in)
  938. {
  939. size_t base = 0;
  940. return base;
  941. }
  942. // -----------------------------------------------------------------------------------------------------------
  943. template <> size_t GenericFill<colour>(const DB& db, const LIST& params, colour* in)
  944. {
  945. size_t base = 0;
  946. return base;
  947. }
  948. // -----------------------------------------------------------------------------------------------------------
  949. template <> size_t GenericFill<background_colour>(const DB& db, const LIST& params, background_colour* in)
  950. {
  951. size_t base = GenericFill(db, params, static_cast<colour*>(in));
  952. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to background_colour"); } do { // convert the 'presentation' argument
  953. std::shared_ptr<const DataType> arg = params[base++];
  954. try { GenericConvert(in->presentation, arg, db); break; }
  955. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to background_colour to be a `area_or_view`")); }
  956. } while (0);
  957. return base;
  958. }
  959. // -----------------------------------------------------------------------------------------------------------
  960. template <> size_t GenericFill<beveled_sheet_representation>(const DB& db, const LIST& params, beveled_sheet_representation* in)
  961. {
  962. size_t base = GenericFill(db, params, static_cast<shape_representation*>(in));
  963. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to beveled_sheet_representation"); } return base;
  964. }
  965. // -----------------------------------------------------------------------------------------------------------
  966. template <> size_t GenericFill<bezier_curve>(const DB& db, const LIST& params, bezier_curve* in)
  967. {
  968. size_t base = GenericFill(db, params, static_cast<b_spline_curve*>(in));
  969. if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to bezier_curve"); } return base;
  970. }
  971. // -----------------------------------------------------------------------------------------------------------
  972. template <> size_t GenericFill<bezier_surface>(const DB& db, const LIST& params, bezier_surface* in)
  973. {
  974. size_t base = GenericFill(db, params, static_cast<b_spline_surface*>(in));
  975. if (params.GetSize() < 7) { throw STEP::TypeError("expected 7 arguments to bezier_surface"); } return base;
  976. }
  977. // -----------------------------------------------------------------------------------------------------------
  978. template <> size_t GenericFill<generic_expression>(const DB& db, const LIST& params, generic_expression* in)
  979. {
  980. size_t base = 0;
  981. return base;
  982. }
  983. // -----------------------------------------------------------------------------------------------------------
  984. template <> size_t GenericFill<binary_generic_expression>(const DB& db, const LIST& params, binary_generic_expression* in)
  985. {
  986. size_t base = GenericFill(db, params, static_cast<generic_expression*>(in));
  987. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to binary_generic_expression"); } do { // convert the 'operands' argument
  988. std::shared_ptr<const DataType> arg = params[base++];
  989. try { GenericConvert(in->operands, arg, db); break; }
  990. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to binary_generic_expression to be a `LIST [2:2] OF generic_expression`")); }
  991. } while (0);
  992. return base;
  993. }
  994. // -----------------------------------------------------------------------------------------------------------
  995. template <> size_t GenericFill<binary_numeric_expression>(const DB& db, const LIST& params, binary_numeric_expression* in)
  996. {
  997. size_t base = 0;
  998. return base;
  999. }
  1000. // -----------------------------------------------------------------------------------------------------------
  1001. template <> size_t GenericFill<binary_representation_item>(const DB& db, const LIST& params, binary_representation_item* in)
  1002. {
  1003. size_t base = GenericFill(db, params, static_cast<representation_item*>(in));
  1004. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to binary_representation_item"); } do { // convert the 'binary_value' argument
  1005. std::shared_ptr<const DataType> arg = params[base++];
  1006. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::binary_representation_item, 1>::aux_is_derived[0] = true; break; }
  1007. try { GenericConvert(in->binary_value, arg, db); break; }
  1008. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to binary_representation_item to be a `BINARY`")); }
  1009. } while (0);
  1010. return base;
  1011. }
  1012. // -----------------------------------------------------------------------------------------------------------
  1013. template <> size_t GenericFill<block>(const DB& db, const LIST& params, block* in)
  1014. {
  1015. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  1016. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to block"); } do { // convert the 'position' argument
  1017. std::shared_ptr<const DataType> arg = params[base++];
  1018. try { GenericConvert(in->position, arg, db); break; }
  1019. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to block to be a `axis2_placement_3d`")); }
  1020. } while (0);
  1021. do { // convert the 'x' argument
  1022. std::shared_ptr<const DataType> arg = params[base++];
  1023. try { GenericConvert(in->x, arg, db); break; }
  1024. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to block to be a `positive_length_measure`")); }
  1025. } while (0);
  1026. do { // convert the 'y' argument
  1027. std::shared_ptr<const DataType> arg = params[base++];
  1028. try { GenericConvert(in->y, arg, db); break; }
  1029. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to block to be a `positive_length_measure`")); }
  1030. } while (0);
  1031. do { // convert the 'z' argument
  1032. std::shared_ptr<const DataType> arg = params[base++];
  1033. try { GenericConvert(in->z, arg, db); break; }
  1034. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to block to be a `positive_length_measure`")); }
  1035. } while (0);
  1036. return base;
  1037. }
  1038. // -----------------------------------------------------------------------------------------------------------
  1039. template <> size_t GenericFill<expression>(const DB& db, const LIST& params, expression* in)
  1040. {
  1041. size_t base = GenericFill(db, params, static_cast<generic_expression*>(in));
  1042. return base;
  1043. }
  1044. // -----------------------------------------------------------------------------------------------------------
  1045. template <> size_t GenericFill<boolean_expression>(const DB& db, const LIST& params, boolean_expression* in)
  1046. {
  1047. size_t base = GenericFill(db, params, static_cast<expression*>(in));
  1048. return base;
  1049. }
  1050. // -----------------------------------------------------------------------------------------------------------
  1051. template <> size_t GenericFill<boolean_literal>(const DB& db, const LIST& params, boolean_literal* in)
  1052. {
  1053. size_t base = 0;
  1054. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to boolean_literal"); } do { // convert the 'the_value' argument
  1055. std::shared_ptr<const DataType> arg = params[base++];
  1056. try { GenericConvert(in->the_value, arg, db); break; }
  1057. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to boolean_literal to be a `BOOLEAN`")); }
  1058. } while (0);
  1059. return base;
  1060. }
  1061. // -----------------------------------------------------------------------------------------------------------
  1062. template <> size_t GenericFill<boolean_representation_item>(const DB& db, const LIST& params, boolean_representation_item* in)
  1063. {
  1064. size_t base = 0;
  1065. return base;
  1066. }
  1067. // -----------------------------------------------------------------------------------------------------------
  1068. template <> size_t GenericFill<boolean_result>(const DB& db, const LIST& params, boolean_result* in)
  1069. {
  1070. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  1071. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to boolean_result"); } do { // convert the 'operator' argument
  1072. std::shared_ptr<const DataType> arg = params[base++];
  1073. try { GenericConvert(in->operator_, arg, db); break; }
  1074. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to boolean_result to be a `boolean_operator`")); }
  1075. } while (0);
  1076. do { // convert the 'first_operand' argument
  1077. std::shared_ptr<const DataType> arg = params[base++];
  1078. try { GenericConvert(in->first_operand, arg, db); break; }
  1079. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to boolean_result to be a `boolean_operand`")); }
  1080. } while (0);
  1081. do { // convert the 'second_operand' argument
  1082. std::shared_ptr<const DataType> arg = params[base++];
  1083. try { GenericConvert(in->second_operand, arg, db); break; }
  1084. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to boolean_result to be a `boolean_operand`")); }
  1085. } while (0);
  1086. return base;
  1087. }
  1088. // -----------------------------------------------------------------------------------------------------------
  1089. template <> size_t GenericFill<composite_curve>(const DB& db, const LIST& params, composite_curve* in)
  1090. {
  1091. size_t base = GenericFill(db, params, static_cast<bounded_curve*>(in));
  1092. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to composite_curve"); } do { // convert the 'segments' argument
  1093. std::shared_ptr<const DataType> arg = params[base++];
  1094. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::composite_curve, 2>::aux_is_derived[0] = true; break; }
  1095. try { GenericConvert(in->segments, arg, db); break; }
  1096. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to composite_curve to be a `LIST [1:?] OF composite_curve_segment`")); }
  1097. } while (0);
  1098. do { // convert the 'self_intersect' argument
  1099. std::shared_ptr<const DataType> arg = params[base++];
  1100. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::composite_curve, 2>::aux_is_derived[1] = true; break; }
  1101. try { GenericConvert(in->self_intersect, arg, db); break; }
  1102. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to composite_curve to be a `LOGICAL`")); }
  1103. } while (0);
  1104. return base;
  1105. }
  1106. // -----------------------------------------------------------------------------------------------------------
  1107. template <> size_t GenericFill<composite_curve_on_surface>(const DB& db, const LIST& params, composite_curve_on_surface* in)
  1108. {
  1109. size_t base = GenericFill(db, params, static_cast<composite_curve*>(in));
  1110. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to composite_curve_on_surface"); } return base;
  1111. }
  1112. // -----------------------------------------------------------------------------------------------------------
  1113. template <> size_t GenericFill<boundary_curve>(const DB& db, const LIST& params, boundary_curve* in)
  1114. {
  1115. size_t base = GenericFill(db, params, static_cast<composite_curve_on_surface*>(in));
  1116. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to boundary_curve"); } return base;
  1117. }
  1118. // -----------------------------------------------------------------------------------------------------------
  1119. template <> size_t GenericFill<bounded_pcurve>(const DB& db, const LIST& params, bounded_pcurve* in)
  1120. {
  1121. size_t base = 0;
  1122. return base;
  1123. }
  1124. // -----------------------------------------------------------------------------------------------------------
  1125. template <> size_t GenericFill<bounded_surface_curve>(const DB& db, const LIST& params, bounded_surface_curve* in)
  1126. {
  1127. size_t base = 0;
  1128. return base;
  1129. }
  1130. // -----------------------------------------------------------------------------------------------------------
  1131. template <> size_t GenericFill<founded_item>(const DB& db, const LIST& params, founded_item* in)
  1132. {
  1133. size_t base = 0;
  1134. return base;
  1135. }
  1136. // -----------------------------------------------------------------------------------------------------------
  1137. template <> size_t GenericFill<box_domain>(const DB& db, const LIST& params, box_domain* in)
  1138. {
  1139. size_t base = GenericFill(db, params, static_cast<founded_item*>(in));
  1140. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to box_domain"); } do { // convert the 'corner' argument
  1141. std::shared_ptr<const DataType> arg = params[base++];
  1142. try { GenericConvert(in->corner, arg, db); break; }
  1143. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to box_domain to be a `cartesian_point`")); }
  1144. } while (0);
  1145. do { // convert the 'xlength' argument
  1146. std::shared_ptr<const DataType> arg = params[base++];
  1147. try { GenericConvert(in->xlength, arg, db); break; }
  1148. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to box_domain to be a `positive_length_measure`")); }
  1149. } while (0);
  1150. do { // convert the 'ylength' argument
  1151. std::shared_ptr<const DataType> arg = params[base++];
  1152. try { GenericConvert(in->ylength, arg, db); break; }
  1153. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to box_domain to be a `positive_length_measure`")); }
  1154. } while (0);
  1155. do { // convert the 'zlength' argument
  1156. std::shared_ptr<const DataType> arg = params[base++];
  1157. try { GenericConvert(in->zlength, arg, db); break; }
  1158. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to box_domain to be a `positive_length_measure`")); }
  1159. } while (0);
  1160. return base;
  1161. }
  1162. // -----------------------------------------------------------------------------------------------------------
  1163. template <> size_t GenericFill<half_space_solid>(const DB& db, const LIST& params, half_space_solid* in)
  1164. {
  1165. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  1166. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to half_space_solid"); } do { // convert the 'base_surface' argument
  1167. std::shared_ptr<const DataType> arg = params[base++];
  1168. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::half_space_solid, 2>::aux_is_derived[0] = true; break; }
  1169. try { GenericConvert(in->base_surface, arg, db); break; }
  1170. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to half_space_solid to be a `surface`")); }
  1171. } while (0);
  1172. do { // convert the 'agreement_flag' argument
  1173. std::shared_ptr<const DataType> arg = params[base++];
  1174. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::half_space_solid, 2>::aux_is_derived[1] = true; break; }
  1175. try { GenericConvert(in->agreement_flag, arg, db); break; }
  1176. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to half_space_solid to be a `BOOLEAN`")); }
  1177. } while (0);
  1178. return base;
  1179. }
  1180. // -----------------------------------------------------------------------------------------------------------
  1181. template <> size_t GenericFill<boxed_half_space>(const DB& db, const LIST& params, boxed_half_space* in)
  1182. {
  1183. size_t base = GenericFill(db, params, static_cast<half_space_solid*>(in));
  1184. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to boxed_half_space"); } do { // convert the 'enclosure' argument
  1185. std::shared_ptr<const DataType> arg = params[base++];
  1186. try { GenericConvert(in->enclosure, arg, db); break; }
  1187. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to boxed_half_space to be a `box_domain`")); }
  1188. } while (0);
  1189. return base;
  1190. }
  1191. // -----------------------------------------------------------------------------------------------------------
  1192. template <> size_t GenericFill<breakdown_context>(const DB& db, const LIST& params, breakdown_context* in)
  1193. {
  1194. size_t base = GenericFill(db, params, static_cast<product_definition_relationship*>(in));
  1195. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to breakdown_context"); } return base;
  1196. }
  1197. // -----------------------------------------------------------------------------------------------------------
  1198. template <> size_t GenericFill<breakdown_element_group_assignment>(const DB& db, const LIST& params, breakdown_element_group_assignment* in)
  1199. {
  1200. size_t base = GenericFill(db, params, static_cast<group_assignment*>(in));
  1201. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to breakdown_element_group_assignment"); } do { // convert the 'items' argument
  1202. std::shared_ptr<const DataType> arg = params[base++];
  1203. try { GenericConvert(in->items, arg, db); break; }
  1204. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to breakdown_element_group_assignment to be a `SET [1:1] OF product_definition_or_breakdown_element_usage`")); }
  1205. } while (0);
  1206. return base;
  1207. }
  1208. // -----------------------------------------------------------------------------------------------------------
  1209. template <> size_t GenericFill<breakdown_element_realization>(const DB& db, const LIST& params, breakdown_element_realization* in)
  1210. {
  1211. size_t base = 0;
  1212. return base;
  1213. }
  1214. // -----------------------------------------------------------------------------------------------------------
  1215. template <> size_t GenericFill<breakdown_element_usage>(const DB& db, const LIST& params, breakdown_element_usage* in)
  1216. {
  1217. size_t base = GenericFill(db, params, static_cast<product_definition_relationship*>(in));
  1218. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to breakdown_element_usage"); } return base;
  1219. }
  1220. // -----------------------------------------------------------------------------------------------------------
  1221. template <> size_t GenericFill<breakdown_of>(const DB& db, const LIST& params, breakdown_of* in)
  1222. {
  1223. size_t base = GenericFill(db, params, static_cast<product_definition_relationship*>(in));
  1224. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to breakdown_of"); } return base;
  1225. }
  1226. // -----------------------------------------------------------------------------------------------------------
  1227. template <> size_t GenericFill<solid_model>(const DB& db, const LIST& params, solid_model* in)
  1228. {
  1229. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  1230. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to solid_model"); } return base;
  1231. }
  1232. // -----------------------------------------------------------------------------------------------------------
  1233. template <> size_t GenericFill<manifold_solid_brep>(const DB& db, const LIST& params, manifold_solid_brep* in)
  1234. {
  1235. size_t base = GenericFill(db, params, static_cast<solid_model*>(in));
  1236. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to manifold_solid_brep"); } do { // convert the 'outer' argument
  1237. std::shared_ptr<const DataType> arg = params[base++];
  1238. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::manifold_solid_brep, 1>::aux_is_derived[0] = true; break; }
  1239. try { GenericConvert(in->outer, arg, db); break; }
  1240. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to manifold_solid_brep to be a `closed_shell`")); }
  1241. } while (0);
  1242. return base;
  1243. }
  1244. // -----------------------------------------------------------------------------------------------------------
  1245. template <> size_t GenericFill<brep_with_voids>(const DB& db, const LIST& params, brep_with_voids* in)
  1246. {
  1247. size_t base = GenericFill(db, params, static_cast<manifold_solid_brep*>(in));
  1248. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to brep_with_voids"); } do { // convert the 'voids' argument
  1249. std::shared_ptr<const DataType> arg = params[base++];
  1250. try { GenericConvert(in->voids, arg, db); break; }
  1251. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to brep_with_voids to be a `SET [1:?] OF oriented_closed_shell`")); }
  1252. } while (0);
  1253. return base;
  1254. }
  1255. // -----------------------------------------------------------------------------------------------------------
  1256. template <> size_t GenericFill<bytes_representation_item>(const DB& db, const LIST& params, bytes_representation_item* in)
  1257. {
  1258. size_t base = GenericFill(db, params, static_cast<binary_representation_item*>(in));
  1259. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to bytes_representation_item"); } return base;
  1260. }
  1261. // -----------------------------------------------------------------------------------------------------------
  1262. template <> size_t GenericFill<date>(const DB& db, const LIST& params, date* in)
  1263. {
  1264. size_t base = 0;
  1265. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to date"); } do { // convert the 'year_component' argument
  1266. std::shared_ptr<const DataType> arg = params[base++];
  1267. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::date, 1>::aux_is_derived[0] = true; break; }
  1268. try { GenericConvert(in->year_component, arg, db); break; }
  1269. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to date to be a `year_number`")); }
  1270. } while (0);
  1271. return base;
  1272. }
  1273. // -----------------------------------------------------------------------------------------------------------
  1274. template <> size_t GenericFill<calendar_date>(const DB& db, const LIST& params, calendar_date* in)
  1275. {
  1276. size_t base = GenericFill(db, params, static_cast<date*>(in));
  1277. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to calendar_date"); } do { // convert the 'day_component' argument
  1278. std::shared_ptr<const DataType> arg = params[base++];
  1279. try { GenericConvert(in->day_component, arg, db); break; }
  1280. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to calendar_date to be a `day_in_month_number`")); }
  1281. } while (0);
  1282. do { // convert the 'month_component' argument
  1283. std::shared_ptr<const DataType> arg = params[base++];
  1284. try { GenericConvert(in->month_component, arg, db); break; }
  1285. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to calendar_date to be a `month_in_year_number`")); }
  1286. } while (0);
  1287. return base;
  1288. }
  1289. // -----------------------------------------------------------------------------------------------------------
  1290. template <> size_t GenericFill<camera_image>(const DB& db, const LIST& params, camera_image* in)
  1291. {
  1292. size_t base = GenericFill(db, params, static_cast<mapped_item*>(in));
  1293. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to camera_image"); } return base;
  1294. }
  1295. // -----------------------------------------------------------------------------------------------------------
  1296. template <> size_t GenericFill<camera_image_3d_with_scale>(const DB& db, const LIST& params, camera_image_3d_with_scale* in)
  1297. {
  1298. size_t base = GenericFill(db, params, static_cast<camera_image*>(in));
  1299. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to camera_image_3d_with_scale"); } return base;
  1300. }
  1301. // -----------------------------------------------------------------------------------------------------------
  1302. template <> size_t GenericFill<camera_model>(const DB& db, const LIST& params, camera_model* in)
  1303. {
  1304. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  1305. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to camera_model"); } return base;
  1306. }
  1307. // -----------------------------------------------------------------------------------------------------------
  1308. template <> size_t GenericFill<camera_model_d3>(const DB& db, const LIST& params, camera_model_d3* in)
  1309. {
  1310. size_t base = GenericFill(db, params, static_cast<camera_model*>(in));
  1311. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to camera_model_d3"); } do { // convert the 'view_reference_system' argument
  1312. std::shared_ptr<const DataType> arg = params[base++];
  1313. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::camera_model_d3, 2>::aux_is_derived[0] = true; break; }
  1314. try { GenericConvert(in->view_reference_system, arg, db); break; }
  1315. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to camera_model_d3 to be a `axis2_placement_3d`")); }
  1316. } while (0);
  1317. do { // convert the 'perspective_of_volume' argument
  1318. std::shared_ptr<const DataType> arg = params[base++];
  1319. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::camera_model_d3, 2>::aux_is_derived[1] = true; break; }
  1320. try { GenericConvert(in->perspective_of_volume, arg, db); break; }
  1321. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to camera_model_d3 to be a `view_volume`")); }
  1322. } while (0);
  1323. return base;
  1324. }
  1325. // -----------------------------------------------------------------------------------------------------------
  1326. template <> size_t GenericFill<camera_model_d3_multi_clipping>(const DB& db, const LIST& params, camera_model_d3_multi_clipping* in)
  1327. {
  1328. size_t base = GenericFill(db, params, static_cast<camera_model_d3*>(in));
  1329. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to camera_model_d3_multi_clipping"); } do { // convert the 'shape_clipping' argument
  1330. std::shared_ptr<const DataType> arg = params[base++];
  1331. try { GenericConvert(in->shape_clipping, arg, db); break; }
  1332. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to camera_model_d3_multi_clipping to be a `SET [1:?] OF camera_model_d3_multi_clipping_interection_select`")); }
  1333. } while (0);
  1334. return base;
  1335. }
  1336. // -----------------------------------------------------------------------------------------------------------
  1337. template <> size_t GenericFill<camera_model_d3_multi_clipping_intersection>(const DB& db, const LIST& params, camera_model_d3_multi_clipping_intersection* in)
  1338. {
  1339. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  1340. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to camera_model_d3_multi_clipping_intersection"); } do { // convert the 'shape_clipping' argument
  1341. std::shared_ptr<const DataType> arg = params[base++];
  1342. try { GenericConvert(in->shape_clipping, arg, db); break; }
  1343. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to camera_model_d3_multi_clipping_intersection to be a `SET [2:?] OF camera_model_d3_multi_clipping_interection_select`")); }
  1344. } while (0);
  1345. return base;
  1346. }
  1347. // -----------------------------------------------------------------------------------------------------------
  1348. template <> size_t GenericFill<camera_model_d3_multi_clipping_union>(const DB& db, const LIST& params, camera_model_d3_multi_clipping_union* in)
  1349. {
  1350. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  1351. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to camera_model_d3_multi_clipping_union"); } do { // convert the 'shape_clipping' argument
  1352. std::shared_ptr<const DataType> arg = params[base++];
  1353. try { GenericConvert(in->shape_clipping, arg, db); break; }
  1354. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to camera_model_d3_multi_clipping_union to be a `SET [2:?] OF camera_model_d3_multi_clipping_union_select`")); }
  1355. } while (0);
  1356. return base;
  1357. }
  1358. // -----------------------------------------------------------------------------------------------------------
  1359. template <> size_t GenericFill<camera_model_d3_with_hlhsr>(const DB& db, const LIST& params, camera_model_d3_with_hlhsr* in)
  1360. {
  1361. size_t base = GenericFill(db, params, static_cast<camera_model_d3*>(in));
  1362. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to camera_model_d3_with_hlhsr"); } do { // convert the 'hidden_line_surface_removal' argument
  1363. std::shared_ptr<const DataType> arg = params[base++];
  1364. try { GenericConvert(in->hidden_line_surface_removal, arg, db); break; }
  1365. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to camera_model_d3_with_hlhsr to be a `BOOLEAN`")); }
  1366. } while (0);
  1367. return base;
  1368. }
  1369. // -----------------------------------------------------------------------------------------------------------
  1370. template <> size_t GenericFill<camera_model_with_light_sources>(const DB& db, const LIST& params, camera_model_with_light_sources* in)
  1371. {
  1372. size_t base = GenericFill(db, params, static_cast<camera_model_d3*>(in));
  1373. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to camera_model_with_light_sources"); } do { // convert the 'sources' argument
  1374. std::shared_ptr<const DataType> arg = params[base++];
  1375. try { GenericConvert(in->sources, arg, db); break; }
  1376. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to camera_model_with_light_sources to be a `SET [1:?] OF light_source`")); }
  1377. } while (0);
  1378. return base;
  1379. }
  1380. // -----------------------------------------------------------------------------------------------------------
  1381. template <> size_t GenericFill<representation_map>(const DB& db, const LIST& params, representation_map* in)
  1382. {
  1383. size_t base = 0;
  1384. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to representation_map"); } do { // convert the 'mapping_origin' argument
  1385. std::shared_ptr<const DataType> arg = params[base++];
  1386. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::representation_map, 2>::aux_is_derived[0] = true; break; }
  1387. try { GenericConvert(in->mapping_origin, arg, db); break; }
  1388. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to representation_map to be a `representation_item`")); }
  1389. } while (0);
  1390. do { // convert the 'mapped_representation' argument
  1391. std::shared_ptr<const DataType> arg = params[base++];
  1392. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::representation_map, 2>::aux_is_derived[1] = true; break; }
  1393. try { GenericConvert(in->mapped_representation, arg, db); break; }
  1394. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to representation_map to be a `representation`")); }
  1395. } while (0);
  1396. return base;
  1397. }
  1398. // -----------------------------------------------------------------------------------------------------------
  1399. template <> size_t GenericFill<camera_usage>(const DB& db, const LIST& params, camera_usage* in)
  1400. {
  1401. size_t base = GenericFill(db, params, static_cast<representation_map*>(in));
  1402. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to camera_usage"); } return base;
  1403. }
  1404. // -----------------------------------------------------------------------------------------------------------
  1405. template <> size_t GenericFill<capacitance_measure_with_unit>(const DB& db, const LIST& params, capacitance_measure_with_unit* in)
  1406. {
  1407. size_t base = GenericFill(db, params, static_cast<measure_with_unit*>(in));
  1408. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to capacitance_measure_with_unit"); } return base;
  1409. }
  1410. // -----------------------------------------------------------------------------------------------------------
  1411. template <> size_t GenericFill<capacitance_unit>(const DB& db, const LIST& params, capacitance_unit* in)
  1412. {
  1413. size_t base = GenericFill(db, params, static_cast<derived_unit*>(in));
  1414. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to capacitance_unit"); } return base;
  1415. }
  1416. // -----------------------------------------------------------------------------------------------------------
  1417. template <> size_t GenericFill<point>(const DB& db, const LIST& params, point* in)
  1418. {
  1419. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  1420. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to point"); } return base;
  1421. }
  1422. // -----------------------------------------------------------------------------------------------------------
  1423. template <> size_t GenericFill<cartesian_point>(const DB& db, const LIST& params, cartesian_point* in)
  1424. {
  1425. size_t base = GenericFill(db, params, static_cast<point*>(in));
  1426. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to cartesian_point"); } do { // convert the 'coordinates' argument
  1427. std::shared_ptr<const DataType> arg = params[base++];
  1428. try { GenericConvert(in->coordinates, arg, db); break; }
  1429. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to cartesian_point to be a `LIST [1:3] OF length_measure`")); }
  1430. } while (0);
  1431. return base;
  1432. }
  1433. // -----------------------------------------------------------------------------------------------------------
  1434. template <> size_t GenericFill<cartesian_transformation_operator>(const DB& db, const LIST& params, cartesian_transformation_operator* in)
  1435. {
  1436. size_t base = 0;
  1437. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to cartesian_transformation_operator"); } do { // convert the 'axis1' argument
  1438. std::shared_ptr<const DataType> arg = params[base++];
  1439. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::cartesian_transformation_operator, 4>::aux_is_derived[0] = true; break; }
  1440. if (dynamic_cast<const UNSET*>(&*arg)) break;
  1441. try { GenericConvert(in->axis1, arg, db); break; }
  1442. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to cartesian_transformation_operator to be a `direction`")); }
  1443. } while (0);
  1444. do { // convert the 'axis2' argument
  1445. std::shared_ptr<const DataType> arg = params[base++];
  1446. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::cartesian_transformation_operator, 4>::aux_is_derived[1] = true; break; }
  1447. if (dynamic_cast<const UNSET*>(&*arg)) break;
  1448. try { GenericConvert(in->axis2, arg, db); break; }
  1449. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to cartesian_transformation_operator to be a `direction`")); }
  1450. } while (0);
  1451. do { // convert the 'local_origin' argument
  1452. std::shared_ptr<const DataType> arg = params[base++];
  1453. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::cartesian_transformation_operator, 4>::aux_is_derived[2] = true; break; }
  1454. try { GenericConvert(in->local_origin, arg, db); break; }
  1455. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to cartesian_transformation_operator to be a `cartesian_point`")); }
  1456. } while (0);
  1457. do { // convert the 'scale' argument
  1458. std::shared_ptr<const DataType> arg = params[base++];
  1459. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::cartesian_transformation_operator, 4>::aux_is_derived[3] = true; break; }
  1460. if (dynamic_cast<const UNSET*>(&*arg)) break;
  1461. try { GenericConvert(in->scale, arg, db); break; }
  1462. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to cartesian_transformation_operator to be a `REAL`")); }
  1463. } while (0);
  1464. return base;
  1465. }
  1466. // -----------------------------------------------------------------------------------------------------------
  1467. template <> size_t GenericFill<cartesian_transformation_operator_2d>(const DB& db, const LIST& params, cartesian_transformation_operator_2d* in)
  1468. {
  1469. size_t base = GenericFill(db, params, static_cast<cartesian_transformation_operator*>(in));
  1470. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to cartesian_transformation_operator_2d"); } return base;
  1471. }
  1472. // -----------------------------------------------------------------------------------------------------------
  1473. template <> size_t GenericFill<cartesian_transformation_operator_3d>(const DB& db, const LIST& params, cartesian_transformation_operator_3d* in)
  1474. {
  1475. size_t base = GenericFill(db, params, static_cast<cartesian_transformation_operator*>(in));
  1476. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to cartesian_transformation_operator_3d"); } do { // convert the 'axis3' argument
  1477. std::shared_ptr<const DataType> arg = params[base++];
  1478. if (dynamic_cast<const UNSET*>(&*arg)) break;
  1479. try { GenericConvert(in->axis3, arg, db); break; }
  1480. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to cartesian_transformation_operator_3d to be a `direction`")); }
  1481. } while (0);
  1482. return base;
  1483. }
  1484. // -----------------------------------------------------------------------------------------------------------
  1485. template <> size_t GenericFill<cc_design_approval>(const DB& db, const LIST& params, cc_design_approval* in)
  1486. {
  1487. size_t base = GenericFill(db, params, static_cast<approval_assignment*>(in));
  1488. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to cc_design_approval"); } do { // convert the 'items' argument
  1489. std::shared_ptr<const DataType> arg = params[base++];
  1490. try { GenericConvert(in->items, arg, db); break; }
  1491. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to cc_design_approval to be a `SET [1:?] OF approved_item`")); }
  1492. } while (0);
  1493. return base;
  1494. }
  1495. // -----------------------------------------------------------------------------------------------------------
  1496. template <> size_t GenericFill<cc_design_certification>(const DB& db, const LIST& params, cc_design_certification* in)
  1497. {
  1498. size_t base = GenericFill(db, params, static_cast<certification_assignment*>(in));
  1499. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to cc_design_certification"); } do { // convert the 'items' argument
  1500. std::shared_ptr<const DataType> arg = params[base++];
  1501. try { GenericConvert(in->items, arg, db); break; }
  1502. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to cc_design_certification to be a `SET [1:?] OF certified_item`")); }
  1503. } while (0);
  1504. return base;
  1505. }
  1506. // -----------------------------------------------------------------------------------------------------------
  1507. template <> size_t GenericFill<cc_design_contract>(const DB& db, const LIST& params, cc_design_contract* in)
  1508. {
  1509. size_t base = GenericFill(db, params, static_cast<contract_assignment*>(in));
  1510. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to cc_design_contract"); } do { // convert the 'items' argument
  1511. std::shared_ptr<const DataType> arg = params[base++];
  1512. try { GenericConvert(in->items, arg, db); break; }
  1513. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to cc_design_contract to be a `SET [1:?] OF contracted_item`")); }
  1514. } while (0);
  1515. return base;
  1516. }
  1517. // -----------------------------------------------------------------------------------------------------------
  1518. template <> size_t GenericFill<cc_design_date_and_time_assignment>(const DB& db, const LIST& params, cc_design_date_and_time_assignment* in)
  1519. {
  1520. size_t base = GenericFill(db, params, static_cast<date_and_time_assignment*>(in));
  1521. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to cc_design_date_and_time_assignment"); } do { // convert the 'items' argument
  1522. std::shared_ptr<const DataType> arg = params[base++];
  1523. try { GenericConvert(in->items, arg, db); break; }
  1524. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to cc_design_date_and_time_assignment to be a `SET [1:?] OF date_time_item`")); }
  1525. } while (0);
  1526. return base;
  1527. }
  1528. // -----------------------------------------------------------------------------------------------------------
  1529. template <> size_t GenericFill<cc_design_person_and_organization_assignment>(const DB& db, const LIST& params, cc_design_person_and_organization_assignment* in)
  1530. {
  1531. size_t base = GenericFill(db, params, static_cast<person_and_organization_assignment*>(in));
  1532. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to cc_design_person_and_organization_assignment"); } do { // convert the 'items' argument
  1533. std::shared_ptr<const DataType> arg = params[base++];
  1534. try { GenericConvert(in->items, arg, db); break; }
  1535. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to cc_design_person_and_organization_assignment to be a `SET [1:?] OF cc_person_organization_item`")); }
  1536. } while (0);
  1537. return base;
  1538. }
  1539. // -----------------------------------------------------------------------------------------------------------
  1540. template <> size_t GenericFill<cc_design_security_classification>(const DB& db, const LIST& params, cc_design_security_classification* in)
  1541. {
  1542. size_t base = GenericFill(db, params, static_cast<security_classification_assignment*>(in));
  1543. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to cc_design_security_classification"); } do { // convert the 'items' argument
  1544. std::shared_ptr<const DataType> arg = params[base++];
  1545. try { GenericConvert(in->items, arg, db); break; }
  1546. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to cc_design_security_classification to be a `SET [1:?] OF cc_classified_item`")); }
  1547. } while (0);
  1548. return base;
  1549. }
  1550. // -----------------------------------------------------------------------------------------------------------
  1551. template <> size_t GenericFill<cc_design_specification_reference>(const DB& db, const LIST& params, cc_design_specification_reference* in)
  1552. {
  1553. size_t base = GenericFill(db, params, static_cast<document_reference*>(in));
  1554. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to cc_design_specification_reference"); } do { // convert the 'items' argument
  1555. std::shared_ptr<const DataType> arg = params[base++];
  1556. try { GenericConvert(in->items, arg, db); break; }
  1557. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to cc_design_specification_reference to be a `SET [1:?] OF cc_specified_item`")); }
  1558. } while (0);
  1559. return base;
  1560. }
  1561. // -----------------------------------------------------------------------------------------------------------
  1562. template <> size_t GenericFill<celsius_temperature_measure_with_unit>(const DB& db, const LIST& params, celsius_temperature_measure_with_unit* in)
  1563. {
  1564. size_t base = GenericFill(db, params, static_cast<measure_with_unit*>(in));
  1565. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to celsius_temperature_measure_with_unit"); } return base;
  1566. }
  1567. // -----------------------------------------------------------------------------------------------------------
  1568. template <> size_t GenericFill<centre_of_symmetry>(const DB& db, const LIST& params, centre_of_symmetry* in)
  1569. {
  1570. size_t base = GenericFill(db, params, static_cast<derived_shape_aspect*>(in));
  1571. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to centre_of_symmetry"); } return base;
  1572. }
  1573. // -----------------------------------------------------------------------------------------------------------
  1574. template <> size_t GenericFill<change>(const DB& db, const LIST& params, change* in)
  1575. {
  1576. size_t base = GenericFill(db, params, static_cast<action_assignment*>(in));
  1577. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to change"); } do { // convert the 'items' argument
  1578. std::shared_ptr<const DataType> arg = params[base++];
  1579. try { GenericConvert(in->items, arg, db); break; }
  1580. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to change to be a `SET [1:?] OF work_item`")); }
  1581. } while (0);
  1582. return base;
  1583. }
  1584. // -----------------------------------------------------------------------------------------------------------
  1585. template <> size_t GenericFill<change_request>(const DB& db, const LIST& params, change_request* in)
  1586. {
  1587. size_t base = GenericFill(db, params, static_cast<action_request_assignment*>(in));
  1588. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to change_request"); } do { // convert the 'items' argument
  1589. std::shared_ptr<const DataType> arg = params[base++];
  1590. try { GenericConvert(in->items, arg, db); break; }
  1591. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to change_request to be a `SET [1:?] OF change_request_item`")); }
  1592. } while (0);
  1593. return base;
  1594. }
  1595. // -----------------------------------------------------------------------------------------------------------
  1596. template <> size_t GenericFill<character_glyph_style_outline>(const DB& db, const LIST& params, character_glyph_style_outline* in)
  1597. {
  1598. size_t base = GenericFill(db, params, static_cast<founded_item*>(in));
  1599. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to character_glyph_style_outline"); } do { // convert the 'outline_style' argument
  1600. std::shared_ptr<const DataType> arg = params[base++];
  1601. try { GenericConvert(in->outline_style, arg, db); break; }
  1602. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to character_glyph_style_outline to be a `curve_style`")); }
  1603. } while (0);
  1604. return base;
  1605. }
  1606. // -----------------------------------------------------------------------------------------------------------
  1607. template <> size_t GenericFill<character_glyph_style_stroke>(const DB& db, const LIST& params, character_glyph_style_stroke* in)
  1608. {
  1609. size_t base = GenericFill(db, params, static_cast<founded_item*>(in));
  1610. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to character_glyph_style_stroke"); } do { // convert the 'stroke_style' argument
  1611. std::shared_ptr<const DataType> arg = params[base++];
  1612. try { GenericConvert(in->stroke_style, arg, db); break; }
  1613. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to character_glyph_style_stroke to be a `curve_style`")); }
  1614. } while (0);
  1615. return base;
  1616. }
  1617. // -----------------------------------------------------------------------------------------------------------
  1618. template <> size_t GenericFill<symbol_representation>(const DB& db, const LIST& params, symbol_representation* in)
  1619. {
  1620. size_t base = GenericFill(db, params, static_cast<representation*>(in));
  1621. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to symbol_representation"); } return base;
  1622. }
  1623. // -----------------------------------------------------------------------------------------------------------
  1624. template <> size_t GenericFill<generic_character_glyph_symbol>(const DB& db, const LIST& params, generic_character_glyph_symbol* in)
  1625. {
  1626. size_t base = GenericFill(db, params, static_cast<symbol_representation*>(in));
  1627. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to generic_character_glyph_symbol"); } return base;
  1628. }
  1629. // -----------------------------------------------------------------------------------------------------------
  1630. template <> size_t GenericFill<character_glyph_symbol>(const DB& db, const LIST& params, character_glyph_symbol* in)
  1631. {
  1632. size_t base = GenericFill(db, params, static_cast<generic_character_glyph_symbol*>(in));
  1633. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to character_glyph_symbol"); } do { // convert the 'character_box' argument
  1634. std::shared_ptr<const DataType> arg = params[base++];
  1635. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::character_glyph_symbol, 2>::aux_is_derived[0] = true; break; }
  1636. try { GenericConvert(in->character_box, arg, db); break; }
  1637. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to character_glyph_symbol to be a `planar_extent`")); }
  1638. } while (0);
  1639. do { // convert the 'baseline_ratio' argument
  1640. std::shared_ptr<const DataType> arg = params[base++];
  1641. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::character_glyph_symbol, 2>::aux_is_derived[1] = true; break; }
  1642. try { GenericConvert(in->baseline_ratio, arg, db); break; }
  1643. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to character_glyph_symbol to be a `ratio_measure`")); }
  1644. } while (0);
  1645. return base;
  1646. }
  1647. // -----------------------------------------------------------------------------------------------------------
  1648. template <> size_t GenericFill<character_glyph_symbol_outline>(const DB& db, const LIST& params, character_glyph_symbol_outline* in)
  1649. {
  1650. size_t base = GenericFill(db, params, static_cast<character_glyph_symbol*>(in));
  1651. if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to character_glyph_symbol_outline"); } do { // convert the 'outlines' argument
  1652. std::shared_ptr<const DataType> arg = params[base++];
  1653. try { GenericConvert(in->outlines, arg, db); break; }
  1654. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to character_glyph_symbol_outline to be a `SET [1:?] OF annotation_fill_area`")); }
  1655. } while (0);
  1656. return base;
  1657. }
  1658. // -----------------------------------------------------------------------------------------------------------
  1659. template <> size_t GenericFill<character_glyph_symbol_stroke>(const DB& db, const LIST& params, character_glyph_symbol_stroke* in)
  1660. {
  1661. size_t base = GenericFill(db, params, static_cast<character_glyph_symbol*>(in));
  1662. if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to character_glyph_symbol_stroke"); } do { // convert the 'strokes' argument
  1663. std::shared_ptr<const DataType> arg = params[base++];
  1664. try { GenericConvert(in->strokes, arg, db); break; }
  1665. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to character_glyph_symbol_stroke to be a `SET [1:?] OF curve`")); }
  1666. } while (0);
  1667. return base;
  1668. }
  1669. // -----------------------------------------------------------------------------------------------------------
  1670. template <> size_t GenericFill<general_property>(const DB& db, const LIST& params, general_property* in)
  1671. {
  1672. size_t base = 0;
  1673. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to general_property"); } do { // convert the 'id' argument
  1674. std::shared_ptr<const DataType> arg = params[base++];
  1675. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::general_property, 3>::aux_is_derived[0] = true; break; }
  1676. try { GenericConvert(in->id, arg, db); break; }
  1677. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to general_property to be a `identifier`")); }
  1678. } while (0);
  1679. do { // convert the 'name' argument
  1680. std::shared_ptr<const DataType> arg = params[base++];
  1681. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::general_property, 3>::aux_is_derived[1] = true; break; }
  1682. try { GenericConvert(in->name, arg, db); break; }
  1683. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to general_property to be a `label`")); }
  1684. } while (0);
  1685. do { // convert the 'description' argument
  1686. std::shared_ptr<const DataType> arg = params[base++];
  1687. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::general_property, 3>::aux_is_derived[2] = true; break; }
  1688. if (dynamic_cast<const UNSET*>(&*arg)) break;
  1689. try { GenericConvert(in->description, arg, db); break; }
  1690. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to general_property to be a `text`")); }
  1691. } while (0);
  1692. return base;
  1693. }
  1694. // -----------------------------------------------------------------------------------------------------------
  1695. template <> size_t GenericFill<characteristic_data_column_header>(const DB& db, const LIST& params, characteristic_data_column_header* in)
  1696. {
  1697. size_t base = GenericFill(db, params, static_cast<general_property*>(in));
  1698. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to characteristic_data_column_header"); } return base;
  1699. }
  1700. // -----------------------------------------------------------------------------------------------------------
  1701. template <> size_t GenericFill<general_property_relationship>(const DB& db, const LIST& params, general_property_relationship* in)
  1702. {
  1703. size_t base = 0;
  1704. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to general_property_relationship"); } do { // convert the 'name' argument
  1705. std::shared_ptr<const DataType> arg = params[base++];
  1706. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::general_property_relationship, 4>::aux_is_derived[0] = true; break; }
  1707. try { GenericConvert(in->name, arg, db); break; }
  1708. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to general_property_relationship to be a `label`")); }
  1709. } while (0);
  1710. do { // convert the 'description' argument
  1711. std::shared_ptr<const DataType> arg = params[base++];
  1712. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::general_property_relationship, 4>::aux_is_derived[1] = true; break; }
  1713. if (dynamic_cast<const UNSET*>(&*arg)) break;
  1714. try { GenericConvert(in->description, arg, db); break; }
  1715. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to general_property_relationship to be a `text`")); }
  1716. } while (0);
  1717. do { // convert the 'relating_property' argument
  1718. std::shared_ptr<const DataType> arg = params[base++];
  1719. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::general_property_relationship, 4>::aux_is_derived[2] = true; break; }
  1720. try { GenericConvert(in->relating_property, arg, db); break; }
  1721. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to general_property_relationship to be a `general_property`")); }
  1722. } while (0);
  1723. do { // convert the 'related_property' argument
  1724. std::shared_ptr<const DataType> arg = params[base++];
  1725. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::general_property_relationship, 4>::aux_is_derived[3] = true; break; }
  1726. try { GenericConvert(in->related_property, arg, db); break; }
  1727. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to general_property_relationship to be a `general_property`")); }
  1728. } while (0);
  1729. return base;
  1730. }
  1731. // -----------------------------------------------------------------------------------------------------------
  1732. template <> size_t GenericFill<characteristic_data_column_header_link>(const DB& db, const LIST& params, characteristic_data_column_header_link* in)
  1733. {
  1734. size_t base = GenericFill(db, params, static_cast<general_property_relationship*>(in));
  1735. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to characteristic_data_column_header_link"); } return base;
  1736. }
  1737. // -----------------------------------------------------------------------------------------------------------
  1738. template <> size_t GenericFill<characteristic_data_table_header>(const DB& db, const LIST& params, characteristic_data_table_header* in)
  1739. {
  1740. size_t base = GenericFill(db, params, static_cast<general_property*>(in));
  1741. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to characteristic_data_table_header"); } return base;
  1742. }
  1743. // -----------------------------------------------------------------------------------------------------------
  1744. template <> size_t GenericFill<characteristic_data_table_header_decomposition>(const DB& db, const LIST& params, characteristic_data_table_header_decomposition* in)
  1745. {
  1746. size_t base = GenericFill(db, params, static_cast<general_property_relationship*>(in));
  1747. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to characteristic_data_table_header_decomposition"); } return base;
  1748. }
  1749. // -----------------------------------------------------------------------------------------------------------
  1750. template <> size_t GenericFill<group>(const DB& db, const LIST& params, group* in)
  1751. {
  1752. size_t base = 0;
  1753. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to group"); } do { // convert the 'name' argument
  1754. std::shared_ptr<const DataType> arg = params[base++];
  1755. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::group, 2>::aux_is_derived[0] = true; break; }
  1756. try { GenericConvert(in->name, arg, db); break; }
  1757. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to group to be a `label`")); }
  1758. } while (0);
  1759. do { // convert the 'description' argument
  1760. std::shared_ptr<const DataType> arg = params[base++];
  1761. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::group, 2>::aux_is_derived[1] = true; break; }
  1762. if (dynamic_cast<const UNSET*>(&*arg)) break;
  1763. try { GenericConvert(in->description, arg, db); break; }
  1764. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to group to be a `text`")); }
  1765. } while (0);
  1766. return base;
  1767. }
  1768. // -----------------------------------------------------------------------------------------------------------
  1769. template <> size_t GenericFill<characteristic_type>(const DB& db, const LIST& params, characteristic_type* in)
  1770. {
  1771. size_t base = GenericFill(db, params, static_cast<group*>(in));
  1772. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to characteristic_type"); } return base;
  1773. }
  1774. // -----------------------------------------------------------------------------------------------------------
  1775. template <> size_t GenericFill<characterized_class>(const DB& db, const LIST& params, characterized_class* in)
  1776. {
  1777. size_t base = 0;
  1778. return base;
  1779. }
  1780. // -----------------------------------------------------------------------------------------------------------
  1781. template <> size_t GenericFill<characterized_object>(const DB& db, const LIST& params, characterized_object* in)
  1782. {
  1783. size_t base = 0;
  1784. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to characterized_object"); } do { // convert the 'name' argument
  1785. std::shared_ptr<const DataType> arg = params[base++];
  1786. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::characterized_object, 2>::aux_is_derived[0] = true; break; }
  1787. try { GenericConvert(in->name, arg, db); break; }
  1788. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to characterized_object to be a `label`")); }
  1789. } while (0);
  1790. do { // convert the 'description' argument
  1791. std::shared_ptr<const DataType> arg = params[base++];
  1792. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::characterized_object, 2>::aux_is_derived[1] = true; break; }
  1793. if (dynamic_cast<const UNSET*>(&*arg)) break;
  1794. try { GenericConvert(in->description, arg, db); break; }
  1795. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to characterized_object to be a `text`")); }
  1796. } while (0);
  1797. return base;
  1798. }
  1799. // -----------------------------------------------------------------------------------------------------------
  1800. template <> size_t GenericFill<conic>(const DB& db, const LIST& params, conic* in)
  1801. {
  1802. size_t base = GenericFill(db, params, static_cast<curve*>(in));
  1803. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to conic"); } do { // convert the 'position' argument
  1804. std::shared_ptr<const DataType> arg = params[base++];
  1805. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::conic, 1>::aux_is_derived[0] = true; break; }
  1806. try { GenericConvert(in->position, arg, db); break; }
  1807. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to conic to be a `axis2_placement`")); }
  1808. } while (0);
  1809. return base;
  1810. }
  1811. // -----------------------------------------------------------------------------------------------------------
  1812. template <> size_t GenericFill<circle>(const DB& db, const LIST& params, circle* in)
  1813. {
  1814. size_t base = GenericFill(db, params, static_cast<conic*>(in));
  1815. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to circle"); } do { // convert the 'radius' argument
  1816. std::shared_ptr<const DataType> arg = params[base++];
  1817. try { GenericConvert(in->radius, arg, db); break; }
  1818. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to circle to be a `positive_length_measure`")); }
  1819. } while (0);
  1820. return base;
  1821. }
  1822. // -----------------------------------------------------------------------------------------------------------
  1823. template <> size_t GenericFill<circular_runout_tolerance>(const DB& db, const LIST& params, circular_runout_tolerance* in)
  1824. {
  1825. size_t base = GenericFill(db, params, static_cast<geometric_tolerance_with_datum_reference*>(in));
  1826. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to circular_runout_tolerance"); } return base;
  1827. }
  1828. // -----------------------------------------------------------------------------------------------------------
  1829. template <> size_t GenericFill<class_by_extension>(const DB& db, const LIST& params, class_by_extension* in)
  1830. {
  1831. size_t base = GenericFill(db, params, static_cast<class_t*>(in));
  1832. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to class_by_extension"); } return base;
  1833. }
  1834. // -----------------------------------------------------------------------------------------------------------
  1835. template <> size_t GenericFill<class_by_intension>(const DB& db, const LIST& params, class_by_intension* in)
  1836. {
  1837. size_t base = GenericFill(db, params, static_cast<class_t*>(in));
  1838. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to class_by_intension"); } return base;
  1839. }
  1840. // -----------------------------------------------------------------------------------------------------------
  1841. template <> size_t GenericFill<class_system>(const DB& db, const LIST& params, class_system* in)
  1842. {
  1843. size_t base = GenericFill(db, params, static_cast<group*>(in));
  1844. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to class_system"); } return base;
  1845. }
  1846. // -----------------------------------------------------------------------------------------------------------
  1847. template <> size_t GenericFill<effectivity_context_assignment>(const DB& db, const LIST& params, effectivity_context_assignment* in)
  1848. {
  1849. size_t base = 0;
  1850. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to effectivity_context_assignment"); } do { // convert the 'assigned_effectivity_assignment' argument
  1851. std::shared_ptr<const DataType> arg = params[base++];
  1852. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::effectivity_context_assignment, 2>::aux_is_derived[0] = true; break; }
  1853. try { GenericConvert(in->assigned_effectivity_assignment, arg, db); break; }
  1854. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to effectivity_context_assignment to be a `effectivity_assignment`")); }
  1855. } while (0);
  1856. do { // convert the 'role' argument
  1857. std::shared_ptr<const DataType> arg = params[base++];
  1858. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::effectivity_context_assignment, 2>::aux_is_derived[1] = true; break; }
  1859. try { GenericConvert(in->role, arg, db); break; }
  1860. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to effectivity_context_assignment to be a `effectivity_context_role`")); }
  1861. } while (0);
  1862. return base;
  1863. }
  1864. // -----------------------------------------------------------------------------------------------------------
  1865. template <> size_t GenericFill<class_usage_effectivity_context_assignment>(const DB& db, const LIST& params, class_usage_effectivity_context_assignment* in)
  1866. {
  1867. size_t base = GenericFill(db, params, static_cast<effectivity_context_assignment*>(in));
  1868. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to class_usage_effectivity_context_assignment"); } do { // convert the 'items' argument
  1869. std::shared_ptr<const DataType> arg = params[base++];
  1870. try { GenericConvert(in->items, arg, db); break; }
  1871. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to class_usage_effectivity_context_assignment to be a `SET [1:?] OF class_usage_effectivity_context_item`")); }
  1872. } while (0);
  1873. return base;
  1874. }
  1875. // -----------------------------------------------------------------------------------------------------------
  1876. template <> size_t GenericFill<topological_representation_item>(const DB& db, const LIST& params, topological_representation_item* in)
  1877. {
  1878. size_t base = GenericFill(db, params, static_cast<representation_item*>(in));
  1879. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to topological_representation_item"); } return base;
  1880. }
  1881. // -----------------------------------------------------------------------------------------------------------
  1882. template <> size_t GenericFill<connected_face_set>(const DB& db, const LIST& params, connected_face_set* in)
  1883. {
  1884. size_t base = GenericFill(db, params, static_cast<topological_representation_item*>(in));
  1885. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to connected_face_set"); } do { // convert the 'cfs_faces' argument
  1886. std::shared_ptr<const DataType> arg = params[base++];
  1887. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::connected_face_set, 1>::aux_is_derived[0] = true; break; }
  1888. try { GenericConvert(in->cfs_faces, arg, db); break; }
  1889. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to connected_face_set to be a `SET [1:?] OF face`")); }
  1890. } while (0);
  1891. return base;
  1892. }
  1893. // -----------------------------------------------------------------------------------------------------------
  1894. template <> size_t GenericFill<closed_shell>(const DB& db, const LIST& params, closed_shell* in)
  1895. {
  1896. size_t base = GenericFill(db, params, static_cast<connected_face_set*>(in));
  1897. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to closed_shell"); } return base;
  1898. }
  1899. // -----------------------------------------------------------------------------------------------------------
  1900. template <> size_t GenericFill<coaxiality_tolerance>(const DB& db, const LIST& params, coaxiality_tolerance* in)
  1901. {
  1902. size_t base = GenericFill(db, params, static_cast<geometric_tolerance_with_datum_reference*>(in));
  1903. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to coaxiality_tolerance"); } return base;
  1904. }
  1905. // -----------------------------------------------------------------------------------------------------------
  1906. template <> size_t GenericFill<colour_specification>(const DB& db, const LIST& params, colour_specification* in)
  1907. {
  1908. size_t base = GenericFill(db, params, static_cast<colour*>(in));
  1909. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to colour_specification"); } do { // convert the 'name' argument
  1910. std::shared_ptr<const DataType> arg = params[base++];
  1911. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::colour_specification, 1>::aux_is_derived[0] = true; break; }
  1912. try { GenericConvert(in->name, arg, db); break; }
  1913. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to colour_specification to be a `label`")); }
  1914. } while (0);
  1915. return base;
  1916. }
  1917. // -----------------------------------------------------------------------------------------------------------
  1918. template <> size_t GenericFill<colour_rgb>(const DB& db, const LIST& params, colour_rgb* in)
  1919. {
  1920. size_t base = GenericFill(db, params, static_cast<colour_specification*>(in));
  1921. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to colour_rgb"); } do { // convert the 'red' argument
  1922. std::shared_ptr<const DataType> arg = params[base++];
  1923. try { GenericConvert(in->red, arg, db); break; }
  1924. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to colour_rgb to be a `REAL`")); }
  1925. } while (0);
  1926. do { // convert the 'green' argument
  1927. std::shared_ptr<const DataType> arg = params[base++];
  1928. try { GenericConvert(in->green, arg, db); break; }
  1929. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to colour_rgb to be a `REAL`")); }
  1930. } while (0);
  1931. do { // convert the 'blue' argument
  1932. std::shared_ptr<const DataType> arg = params[base++];
  1933. try { GenericConvert(in->blue, arg, db); break; }
  1934. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to colour_rgb to be a `REAL`")); }
  1935. } while (0);
  1936. return base;
  1937. }
  1938. // -----------------------------------------------------------------------------------------------------------
  1939. template <> size_t GenericFill<common_datum>(const DB& db, const LIST& params, common_datum* in)
  1940. {
  1941. size_t base = 0;
  1942. return base;
  1943. }
  1944. // -----------------------------------------------------------------------------------------------------------
  1945. template <> size_t GenericFill<comparison_expression>(const DB& db, const LIST& params, comparison_expression* in)
  1946. {
  1947. size_t base = 0;
  1948. return base;
  1949. }
  1950. // -----------------------------------------------------------------------------------------------------------
  1951. template <> size_t GenericFill<complex_clause>(const DB& db, const LIST& params, complex_clause* in)
  1952. {
  1953. size_t base = GenericFill(db, params, static_cast<compound_representation_item*>(in));
  1954. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to complex_clause"); } return base;
  1955. }
  1956. // -----------------------------------------------------------------------------------------------------------
  1957. template <> size_t GenericFill<complex_conjunctive_clause>(const DB& db, const LIST& params, complex_conjunctive_clause* in)
  1958. {
  1959. size_t base = GenericFill(db, params, static_cast<complex_clause*>(in));
  1960. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to complex_conjunctive_clause"); } return base;
  1961. }
  1962. // -----------------------------------------------------------------------------------------------------------
  1963. template <> size_t GenericFill<complex_disjunctive_clause>(const DB& db, const LIST& params, complex_disjunctive_clause* in)
  1964. {
  1965. size_t base = GenericFill(db, params, static_cast<complex_clause*>(in));
  1966. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to complex_disjunctive_clause"); } return base;
  1967. }
  1968. // -----------------------------------------------------------------------------------------------------------
  1969. template <> size_t GenericFill<modified_solid>(const DB& db, const LIST& params, modified_solid* in)
  1970. {
  1971. size_t base = GenericFill(db, params, static_cast<solid_model*>(in));
  1972. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to modified_solid"); } do { // convert the 'rationale' argument
  1973. std::shared_ptr<const DataType> arg = params[base++];
  1974. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::modified_solid, 2>::aux_is_derived[0] = true; break; }
  1975. try { GenericConvert(in->rationale, arg, db); break; }
  1976. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to modified_solid to be a `text`")); }
  1977. } while (0);
  1978. do { // convert the 'base_solid' argument
  1979. std::shared_ptr<const DataType> arg = params[base++];
  1980. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::modified_solid, 2>::aux_is_derived[1] = true; break; }
  1981. try { GenericConvert(in->base_solid, arg, db); break; }
  1982. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to modified_solid to be a `base_solid_select`")); }
  1983. } while (0);
  1984. return base;
  1985. }
  1986. // -----------------------------------------------------------------------------------------------------------
  1987. template <> size_t GenericFill<shelled_solid>(const DB& db, const LIST& params, shelled_solid* in)
  1988. {
  1989. size_t base = GenericFill(db, params, static_cast<modified_solid*>(in));
  1990. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to shelled_solid"); } do { // convert the 'deleted_face_set' argument
  1991. std::shared_ptr<const DataType> arg = params[base++];
  1992. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::shelled_solid, 2>::aux_is_derived[0] = true; break; }
  1993. try { GenericConvert(in->deleted_face_set, arg, db); break; }
  1994. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to shelled_solid to be a `SET [1:?] OF face_surface`")); }
  1995. } while (0);
  1996. do { // convert the 'thickness' argument
  1997. std::shared_ptr<const DataType> arg = params[base++];
  1998. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::shelled_solid, 2>::aux_is_derived[1] = true; break; }
  1999. try { GenericConvert(in->thickness, arg, db); break; }
  2000. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to shelled_solid to be a `length_measure`")); }
  2001. } while (0);
  2002. return base;
  2003. }
  2004. // -----------------------------------------------------------------------------------------------------------
  2005. template <> size_t GenericFill<complex_shelled_solid>(const DB& db, const LIST& params, complex_shelled_solid* in)
  2006. {
  2007. size_t base = GenericFill(db, params, static_cast<shelled_solid*>(in));
  2008. if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to complex_shelled_solid"); } do { // convert the 'thickness_list' argument
  2009. std::shared_ptr<const DataType> arg = params[base++];
  2010. try { GenericConvert(in->thickness_list, arg, db); break; }
  2011. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to complex_shelled_solid to be a `LIST [1:?] OF length_measure`")); }
  2012. } while (0);
  2013. return base;
  2014. }
  2015. // -----------------------------------------------------------------------------------------------------------
  2016. template <> size_t GenericFill<composite_assembly_definition>(const DB& db, const LIST& params, composite_assembly_definition* in)
  2017. {
  2018. size_t base = GenericFill(db, params, static_cast<product_definition*>(in));
  2019. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to composite_assembly_definition"); } return base;
  2020. }
  2021. // -----------------------------------------------------------------------------------------------------------
  2022. template <> size_t GenericFill<composite_assembly_sequence_definition>(const DB& db, const LIST& params, composite_assembly_sequence_definition* in)
  2023. {
  2024. size_t base = GenericFill(db, params, static_cast<product_definition*>(in));
  2025. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to composite_assembly_sequence_definition"); } return base;
  2026. }
  2027. // -----------------------------------------------------------------------------------------------------------
  2028. template <> size_t GenericFill<laminate_table>(const DB& db, const LIST& params, laminate_table* in)
  2029. {
  2030. size_t base = GenericFill(db, params, static_cast<product_definition*>(in));
  2031. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to laminate_table"); } return base;
  2032. }
  2033. // -----------------------------------------------------------------------------------------------------------
  2034. template <> size_t GenericFill<part_laminate_table>(const DB& db, const LIST& params, part_laminate_table* in)
  2035. {
  2036. size_t base = GenericFill(db, params, static_cast<laminate_table*>(in));
  2037. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to part_laminate_table"); } return base;
  2038. }
  2039. // -----------------------------------------------------------------------------------------------------------
  2040. template <> size_t GenericFill<composite_assembly_table>(const DB& db, const LIST& params, composite_assembly_table* in)
  2041. {
  2042. size_t base = GenericFill(db, params, static_cast<part_laminate_table*>(in));
  2043. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to composite_assembly_table"); } return base;
  2044. }
  2045. // -----------------------------------------------------------------------------------------------------------
  2046. template <> size_t GenericFill<composite_curve_segment>(const DB& db, const LIST& params, composite_curve_segment* in)
  2047. {
  2048. size_t base = GenericFill(db, params, static_cast<founded_item*>(in));
  2049. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to composite_curve_segment"); } do { // convert the 'transition' argument
  2050. std::shared_ptr<const DataType> arg = params[base++];
  2051. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::composite_curve_segment, 3>::aux_is_derived[0] = true; break; }
  2052. try { GenericConvert(in->transition, arg, db); break; }
  2053. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to composite_curve_segment to be a `transition_code`")); }
  2054. } while (0);
  2055. do { // convert the 'same_sense' argument
  2056. std::shared_ptr<const DataType> arg = params[base++];
  2057. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::composite_curve_segment, 3>::aux_is_derived[1] = true; break; }
  2058. try { GenericConvert(in->same_sense, arg, db); break; }
  2059. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to composite_curve_segment to be a `BOOLEAN`")); }
  2060. } while (0);
  2061. do { // convert the 'parent_curve' argument
  2062. std::shared_ptr<const DataType> arg = params[base++];
  2063. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::composite_curve_segment, 3>::aux_is_derived[2] = true; break; }
  2064. try { GenericConvert(in->parent_curve, arg, db); break; }
  2065. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to composite_curve_segment to be a `curve`")); }
  2066. } while (0);
  2067. return base;
  2068. }
  2069. // -----------------------------------------------------------------------------------------------------------
  2070. template <> size_t GenericFill<material_designation>(const DB& db, const LIST& params, material_designation* in)
  2071. {
  2072. size_t base = 0;
  2073. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to material_designation"); } do { // convert the 'name' argument
  2074. std::shared_ptr<const DataType> arg = params[base++];
  2075. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::material_designation, 2>::aux_is_derived[0] = true; break; }
  2076. try { GenericConvert(in->name, arg, db); break; }
  2077. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to material_designation to be a `label`")); }
  2078. } while (0);
  2079. do { // convert the 'definitions' argument
  2080. std::shared_ptr<const DataType> arg = params[base++];
  2081. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::material_designation, 2>::aux_is_derived[1] = true; break; }
  2082. try { GenericConvert(in->definitions, arg, db); break; }
  2083. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to material_designation to be a `SET [1:?] OF characterized_definition`")); }
  2084. } while (0);
  2085. return base;
  2086. }
  2087. // -----------------------------------------------------------------------------------------------------------
  2088. template <> size_t GenericFill<composite_material_designation>(const DB& db, const LIST& params, composite_material_designation* in)
  2089. {
  2090. size_t base = GenericFill(db, params, static_cast<material_designation*>(in));
  2091. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to composite_material_designation"); } return base;
  2092. }
  2093. // -----------------------------------------------------------------------------------------------------------
  2094. template <> size_t GenericFill<composite_shape_aspect>(const DB& db, const LIST& params, composite_shape_aspect* in)
  2095. {
  2096. size_t base = GenericFill(db, params, static_cast<shape_aspect*>(in));
  2097. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to composite_shape_aspect"); } return base;
  2098. }
  2099. // -----------------------------------------------------------------------------------------------------------
  2100. template <> size_t GenericFill<composite_sheet_representation>(const DB& db, const LIST& params, composite_sheet_representation* in)
  2101. {
  2102. size_t base = GenericFill(db, params, static_cast<shape_representation*>(in));
  2103. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to composite_sheet_representation"); } return base;
  2104. }
  2105. // -----------------------------------------------------------------------------------------------------------
  2106. template <> size_t GenericFill<composite_text>(const DB& db, const LIST& params, composite_text* in)
  2107. {
  2108. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  2109. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to composite_text"); } do { // convert the 'collected_text' argument
  2110. std::shared_ptr<const DataType> arg = params[base++];
  2111. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::composite_text, 1>::aux_is_derived[0] = true; break; }
  2112. try { GenericConvert(in->collected_text, arg, db); break; }
  2113. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to composite_text to be a `SET [2:?] OF text_or_character`")); }
  2114. } while (0);
  2115. return base;
  2116. }
  2117. // -----------------------------------------------------------------------------------------------------------
  2118. template <> size_t GenericFill<composite_text_with_associated_curves>(const DB& db, const LIST& params, composite_text_with_associated_curves* in)
  2119. {
  2120. size_t base = GenericFill(db, params, static_cast<composite_text*>(in));
  2121. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to composite_text_with_associated_curves"); } do { // convert the 'associated_curves' argument
  2122. std::shared_ptr<const DataType> arg = params[base++];
  2123. try { GenericConvert(in->associated_curves, arg, db); break; }
  2124. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to composite_text_with_associated_curves to be a `SET [1:?] OF curve`")); }
  2125. } while (0);
  2126. return base;
  2127. }
  2128. // -----------------------------------------------------------------------------------------------------------
  2129. template <> size_t GenericFill<composite_text_with_blanking_box>(const DB& db, const LIST& params, composite_text_with_blanking_box* in)
  2130. {
  2131. size_t base = GenericFill(db, params, static_cast<composite_text*>(in));
  2132. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to composite_text_with_blanking_box"); } do { // convert the 'blanking' argument
  2133. std::shared_ptr<const DataType> arg = params[base++];
  2134. try { GenericConvert(in->blanking, arg, db); break; }
  2135. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to composite_text_with_blanking_box to be a `planar_box`")); }
  2136. } while (0);
  2137. return base;
  2138. }
  2139. // -----------------------------------------------------------------------------------------------------------
  2140. template <> size_t GenericFill<composite_text_with_delineation>(const DB& db, const LIST& params, composite_text_with_delineation* in)
  2141. {
  2142. size_t base = GenericFill(db, params, static_cast<composite_text*>(in));
  2143. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to composite_text_with_delineation"); } do { // convert the 'delineation' argument
  2144. std::shared_ptr<const DataType> arg = params[base++];
  2145. try { GenericConvert(in->delineation, arg, db); break; }
  2146. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to composite_text_with_delineation to be a `text_delineation`")); }
  2147. } while (0);
  2148. return base;
  2149. }
  2150. // -----------------------------------------------------------------------------------------------------------
  2151. template <> size_t GenericFill<composite_text_with_extent>(const DB& db, const LIST& params, composite_text_with_extent* in)
  2152. {
  2153. size_t base = GenericFill(db, params, static_cast<composite_text*>(in));
  2154. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to composite_text_with_extent"); } do { // convert the 'extent' argument
  2155. std::shared_ptr<const DataType> arg = params[base++];
  2156. try { GenericConvert(in->extent, arg, db); break; }
  2157. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to composite_text_with_extent to be a `planar_extent`")); }
  2158. } while (0);
  2159. return base;
  2160. }
  2161. // -----------------------------------------------------------------------------------------------------------
  2162. template <> size_t GenericFill<compound_shape_representation>(const DB& db, const LIST& params, compound_shape_representation* in)
  2163. {
  2164. size_t base = GenericFill(db, params, static_cast<shape_representation*>(in));
  2165. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to compound_shape_representation"); } return base;
  2166. }
  2167. // -----------------------------------------------------------------------------------------------------------
  2168. template <> size_t GenericFill<concentricity_tolerance>(const DB& db, const LIST& params, concentricity_tolerance* in)
  2169. {
  2170. size_t base = GenericFill(db, params, static_cast<geometric_tolerance_with_datum_reference*>(in));
  2171. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to concentricity_tolerance"); } return base;
  2172. }
  2173. // -----------------------------------------------------------------------------------------------------------
  2174. template <> size_t GenericFill<concept_feature_relationship>(const DB& db, const LIST& params, concept_feature_relationship* in)
  2175. {
  2176. size_t base = 0;
  2177. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to concept_feature_relationship"); } do { // convert the 'name' argument
  2178. std::shared_ptr<const DataType> arg = params[base++];
  2179. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::concept_feature_relationship, 4>::aux_is_derived[0] = true; break; }
  2180. try { GenericConvert(in->name, arg, db); break; }
  2181. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to concept_feature_relationship to be a `label`")); }
  2182. } while (0);
  2183. do { // convert the 'description' argument
  2184. std::shared_ptr<const DataType> arg = params[base++];
  2185. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::concept_feature_relationship, 4>::aux_is_derived[1] = true; break; }
  2186. if (dynamic_cast<const UNSET*>(&*arg)) break;
  2187. try { GenericConvert(in->description, arg, db); break; }
  2188. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to concept_feature_relationship to be a `text`")); }
  2189. } while (0);
  2190. do { // convert the 'relating_product_concept_feature' argument
  2191. std::shared_ptr<const DataType> arg = params[base++];
  2192. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::concept_feature_relationship, 4>::aux_is_derived[2] = true; break; }
  2193. try { GenericConvert(in->relating_product_concept_feature, arg, db); break; }
  2194. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to concept_feature_relationship to be a `product_concept_feature`")); }
  2195. } while (0);
  2196. do { // convert the 'related_product_concept_feature' argument
  2197. std::shared_ptr<const DataType> arg = params[base++];
  2198. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::concept_feature_relationship, 4>::aux_is_derived[3] = true; break; }
  2199. try { GenericConvert(in->related_product_concept_feature, arg, db); break; }
  2200. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to concept_feature_relationship to be a `product_concept_feature`")); }
  2201. } while (0);
  2202. return base;
  2203. }
  2204. // -----------------------------------------------------------------------------------------------------------
  2205. template <> size_t GenericFill<concept_feature_relationship_with_condition>(const DB& db, const LIST& params, concept_feature_relationship_with_condition* in)
  2206. {
  2207. size_t base = GenericFill(db, params, static_cast<concept_feature_relationship*>(in));
  2208. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to concept_feature_relationship_with_condition"); } do { // convert the 'conditional_operator' argument
  2209. std::shared_ptr<const DataType> arg = params[base++];
  2210. try { GenericConvert(in->conditional_operator, arg, db); break; }
  2211. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to concept_feature_relationship_with_condition to be a `concept_feature_operator`")); }
  2212. } while (0);
  2213. return base;
  2214. }
  2215. // -----------------------------------------------------------------------------------------------------------
  2216. template <> size_t GenericFill<product_concept_feature>(const DB& db, const LIST& params, product_concept_feature* in)
  2217. {
  2218. size_t base = 0;
  2219. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to product_concept_feature"); } do { // convert the 'id' argument
  2220. std::shared_ptr<const DataType> arg = params[base++];
  2221. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_concept_feature, 3>::aux_is_derived[0] = true; break; }
  2222. try { GenericConvert(in->id, arg, db); break; }
  2223. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to product_concept_feature to be a `identifier`")); }
  2224. } while (0);
  2225. do { // convert the 'name' argument
  2226. std::shared_ptr<const DataType> arg = params[base++];
  2227. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_concept_feature, 3>::aux_is_derived[1] = true; break; }
  2228. try { GenericConvert(in->name, arg, db); break; }
  2229. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to product_concept_feature to be a `label`")); }
  2230. } while (0);
  2231. do { // convert the 'description' argument
  2232. std::shared_ptr<const DataType> arg = params[base++];
  2233. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_concept_feature, 3>::aux_is_derived[2] = true; break; }
  2234. if (dynamic_cast<const UNSET*>(&*arg)) break;
  2235. try { GenericConvert(in->description, arg, db); break; }
  2236. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to product_concept_feature to be a `text`")); }
  2237. } while (0);
  2238. return base;
  2239. }
  2240. // -----------------------------------------------------------------------------------------------------------
  2241. template <> size_t GenericFill<conditional_concept_feature>(const DB& db, const LIST& params, conditional_concept_feature* in)
  2242. {
  2243. size_t base = GenericFill(db, params, static_cast<product_concept_feature*>(in));
  2244. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to conditional_concept_feature"); } do { // convert the 'condition' argument
  2245. std::shared_ptr<const DataType> arg = params[base++];
  2246. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::conditional_concept_feature, 1>::aux_is_derived[0] = true; break; }
  2247. try { GenericConvert(in->condition, arg, db); break; }
  2248. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to conditional_concept_feature to be a `concept_feature_relationship_with_condition`")); }
  2249. } while (0);
  2250. return base;
  2251. }
  2252. // -----------------------------------------------------------------------------------------------------------
  2253. template <> size_t GenericFill<conductance_measure_with_unit>(const DB& db, const LIST& params, conductance_measure_with_unit* in)
  2254. {
  2255. size_t base = GenericFill(db, params, static_cast<measure_with_unit*>(in));
  2256. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to conductance_measure_with_unit"); } return base;
  2257. }
  2258. // -----------------------------------------------------------------------------------------------------------
  2259. template <> size_t GenericFill<conductance_unit>(const DB& db, const LIST& params, conductance_unit* in)
  2260. {
  2261. size_t base = GenericFill(db, params, static_cast<derived_unit*>(in));
  2262. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to conductance_unit"); } return base;
  2263. }
  2264. // -----------------------------------------------------------------------------------------------------------
  2265. template <> size_t GenericFill<configuration_item>(const DB& db, const LIST& params, configuration_item* in)
  2266. {
  2267. size_t base = 0;
  2268. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to configuration_item"); } do { // convert the 'id' argument
  2269. std::shared_ptr<const DataType> arg = params[base++];
  2270. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item, 5>::aux_is_derived[0] = true; break; }
  2271. try { GenericConvert(in->id, arg, db); break; }
  2272. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to configuration_item to be a `identifier`")); }
  2273. } while (0);
  2274. do { // convert the 'name' argument
  2275. std::shared_ptr<const DataType> arg = params[base++];
  2276. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item, 5>::aux_is_derived[1] = true; break; }
  2277. try { GenericConvert(in->name, arg, db); break; }
  2278. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to configuration_item to be a `label`")); }
  2279. } while (0);
  2280. do { // convert the 'description' argument
  2281. std::shared_ptr<const DataType> arg = params[base++];
  2282. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item, 5>::aux_is_derived[2] = true; break; }
  2283. if (dynamic_cast<const UNSET*>(&*arg)) break;
  2284. try { GenericConvert(in->description, arg, db); break; }
  2285. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to configuration_item to be a `text`")); }
  2286. } while (0);
  2287. do { // convert the 'item_concept' argument
  2288. std::shared_ptr<const DataType> arg = params[base++];
  2289. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item, 5>::aux_is_derived[3] = true; break; }
  2290. try { GenericConvert(in->item_concept, arg, db); break; }
  2291. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to configuration_item to be a `product_concept`")); }
  2292. } while (0);
  2293. do { // convert the 'purpose' argument
  2294. std::shared_ptr<const DataType> arg = params[base++];
  2295. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item, 5>::aux_is_derived[4] = true; break; }
  2296. if (dynamic_cast<const UNSET*>(&*arg)) break;
  2297. try { GenericConvert(in->purpose, arg, db); break; }
  2298. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to configuration_item to be a `label`")); }
  2299. } while (0);
  2300. return base;
  2301. }
  2302. // -----------------------------------------------------------------------------------------------------------
  2303. template <> size_t GenericFill<configurable_item>(const DB& db, const LIST& params, configurable_item* in)
  2304. {
  2305. size_t base = GenericFill(db, params, static_cast<configuration_item*>(in));
  2306. if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to configurable_item"); } do { // convert the 'item_concept_feature' argument
  2307. std::shared_ptr<const DataType> arg = params[base++];
  2308. try { GenericConvert(in->item_concept_feature, arg, db); break; }
  2309. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 5 to configurable_item to be a `SET [1:?] OF product_concept_feature_association`")); }
  2310. } while (0);
  2311. return base;
  2312. }
  2313. // -----------------------------------------------------------------------------------------------------------
  2314. template <> size_t GenericFill<effectivity>(const DB& db, const LIST& params, effectivity* in)
  2315. {
  2316. size_t base = 0;
  2317. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to effectivity"); } do { // convert the 'id' argument
  2318. std::shared_ptr<const DataType> arg = params[base++];
  2319. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::effectivity, 1>::aux_is_derived[0] = true; break; }
  2320. try { GenericConvert(in->id, arg, db); break; }
  2321. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to effectivity to be a `identifier`")); }
  2322. } while (0);
  2323. return base;
  2324. }
  2325. // -----------------------------------------------------------------------------------------------------------
  2326. template <> size_t GenericFill<product_definition_effectivity>(const DB& db, const LIST& params, product_definition_effectivity* in)
  2327. {
  2328. size_t base = GenericFill(db, params, static_cast<effectivity*>(in));
  2329. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to product_definition_effectivity"); } do { // convert the 'usage' argument
  2330. std::shared_ptr<const DataType> arg = params[base++];
  2331. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_definition_effectivity, 1>::aux_is_derived[0] = true; break; }
  2332. try { GenericConvert(in->usage, arg, db); break; }
  2333. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to product_definition_effectivity to be a `product_definition_relationship`")); }
  2334. } while (0);
  2335. return base;
  2336. }
  2337. // -----------------------------------------------------------------------------------------------------------
  2338. template <> size_t GenericFill<configuration_effectivity>(const DB& db, const LIST& params, configuration_effectivity* in)
  2339. {
  2340. size_t base = GenericFill(db, params, static_cast<product_definition_effectivity*>(in));
  2341. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to configuration_effectivity"); } do { // convert the 'configuration' argument
  2342. std::shared_ptr<const DataType> arg = params[base++];
  2343. try { GenericConvert(in->configuration, arg, db); break; }
  2344. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to configuration_effectivity to be a `configuration_design`")); }
  2345. } while (0);
  2346. return base;
  2347. }
  2348. // -----------------------------------------------------------------------------------------------------------
  2349. template <> size_t GenericFill<configuration_item_relationship>(const DB& db, const LIST& params, configuration_item_relationship* in)
  2350. {
  2351. size_t base = 0;
  2352. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to configuration_item_relationship"); } do { // convert the 'name' argument
  2353. std::shared_ptr<const DataType> arg = params[base++];
  2354. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item_relationship, 4>::aux_is_derived[0] = true; break; }
  2355. try { GenericConvert(in->name, arg, db); break; }
  2356. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to configuration_item_relationship to be a `label`")); }
  2357. } while (0);
  2358. do { // convert the 'description' argument
  2359. std::shared_ptr<const DataType> arg = params[base++];
  2360. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item_relationship, 4>::aux_is_derived[1] = true; break; }
  2361. if (dynamic_cast<const UNSET*>(&*arg)) break;
  2362. try { GenericConvert(in->description, arg, db); break; }
  2363. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to configuration_item_relationship to be a `text`")); }
  2364. } while (0);
  2365. do { // convert the 'relating_configuration_item' argument
  2366. std::shared_ptr<const DataType> arg = params[base++];
  2367. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item_relationship, 4>::aux_is_derived[2] = true; break; }
  2368. try { GenericConvert(in->relating_configuration_item, arg, db); break; }
  2369. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to configuration_item_relationship to be a `configuration_item`")); }
  2370. } while (0);
  2371. do { // convert the 'related_configuration_item' argument
  2372. std::shared_ptr<const DataType> arg = params[base++];
  2373. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item_relationship, 4>::aux_is_derived[3] = true; break; }
  2374. try { GenericConvert(in->related_configuration_item, arg, db); break; }
  2375. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to configuration_item_relationship to be a `configuration_item`")); }
  2376. } while (0);
  2377. return base;
  2378. }
  2379. // -----------------------------------------------------------------------------------------------------------
  2380. template <> size_t GenericFill<configuration_item_hierarchical_relationship>(const DB& db, const LIST& params, configuration_item_hierarchical_relationship* in)
  2381. {
  2382. size_t base = GenericFill(db, params, static_cast<configuration_item_relationship*>(in));
  2383. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to configuration_item_hierarchical_relationship"); } return base;
  2384. }
  2385. // -----------------------------------------------------------------------------------------------------------
  2386. template <> size_t GenericFill<configuration_item_revision_sequence>(const DB& db, const LIST& params, configuration_item_revision_sequence* in)
  2387. {
  2388. size_t base = GenericFill(db, params, static_cast<configuration_item_relationship*>(in));
  2389. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to configuration_item_revision_sequence"); } return base;
  2390. }
  2391. // -----------------------------------------------------------------------------------------------------------
  2392. template <> size_t GenericFill<configured_effectivity_assignment>(const DB& db, const LIST& params, configured_effectivity_assignment* in)
  2393. {
  2394. size_t base = GenericFill(db, params, static_cast<effectivity_assignment*>(in));
  2395. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to configured_effectivity_assignment"); } do { // convert the 'items' argument
  2396. std::shared_ptr<const DataType> arg = params[base++];
  2397. try { GenericConvert(in->items, arg, db); break; }
  2398. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to configured_effectivity_assignment to be a `SET [1:?] OF configured_effectivity_item`")); }
  2399. } while (0);
  2400. return base;
  2401. }
  2402. // -----------------------------------------------------------------------------------------------------------
  2403. template <> size_t GenericFill<configured_effectivity_context_assignment>(const DB& db, const LIST& params, configured_effectivity_context_assignment* in)
  2404. {
  2405. size_t base = GenericFill(db, params, static_cast<effectivity_context_assignment*>(in));
  2406. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to configured_effectivity_context_assignment"); } do { // convert the 'items' argument
  2407. std::shared_ptr<const DataType> arg = params[base++];
  2408. try { GenericConvert(in->items, arg, db); break; }
  2409. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to configured_effectivity_context_assignment to be a `SET [1:?] OF configured_effectivity_context_item`")); }
  2410. } while (0);
  2411. return base;
  2412. }
  2413. // -----------------------------------------------------------------------------------------------------------
  2414. template <> size_t GenericFill<conical_stepped_hole_transition>(const DB& db, const LIST& params, conical_stepped_hole_transition* in)
  2415. {
  2416. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  2417. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to conical_stepped_hole_transition"); } do { // convert the 'transition_number' argument
  2418. std::shared_ptr<const DataType> arg = params[base++];
  2419. try { GenericConvert(in->transition_number, arg, db); break; }
  2420. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to conical_stepped_hole_transition to be a `positive_integer`")); }
  2421. } while (0);
  2422. do { // convert the 'cone_apex_angle' argument
  2423. std::shared_ptr<const DataType> arg = params[base++];
  2424. try { GenericConvert(in->cone_apex_angle, arg, db); break; }
  2425. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to conical_stepped_hole_transition to be a `plane_angle_measure`")); }
  2426. } while (0);
  2427. do { // convert the 'cone_base_radius' argument
  2428. std::shared_ptr<const DataType> arg = params[base++];
  2429. try { GenericConvert(in->cone_base_radius, arg, db); break; }
  2430. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to conical_stepped_hole_transition to be a `positive_length_measure`")); }
  2431. } while (0);
  2432. return base;
  2433. }
  2434. // -----------------------------------------------------------------------------------------------------------
  2435. template <> size_t GenericFill<elementary_surface>(const DB& db, const LIST& params, elementary_surface* in)
  2436. {
  2437. size_t base = GenericFill(db, params, static_cast<surface*>(in));
  2438. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to elementary_surface"); } do { // convert the 'position' argument
  2439. std::shared_ptr<const DataType> arg = params[base++];
  2440. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::elementary_surface, 1>::aux_is_derived[0] = true; break; }
  2441. try { GenericConvert(in->position, arg, db); break; }
  2442. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to elementary_surface to be a `axis2_placement_3d`")); }
  2443. } while (0);
  2444. return base;
  2445. }
  2446. // -----------------------------------------------------------------------------------------------------------
  2447. template <> size_t GenericFill<conical_surface>(const DB& db, const LIST& params, conical_surface* in)
  2448. {
  2449. size_t base = GenericFill(db, params, static_cast<elementary_surface*>(in));
  2450. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to conical_surface"); } do { // convert the 'radius' argument
  2451. std::shared_ptr<const DataType> arg = params[base++];
  2452. try { GenericConvert(in->radius, arg, db); break; }
  2453. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to conical_surface to be a `length_measure`")); }
  2454. } while (0);
  2455. do { // convert the 'semi_angle' argument
  2456. std::shared_ptr<const DataType> arg = params[base++];
  2457. try { GenericConvert(in->semi_angle, arg, db); break; }
  2458. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to conical_surface to be a `plane_angle_measure`")); }
  2459. } while (0);
  2460. return base;
  2461. }
  2462. // -----------------------------------------------------------------------------------------------------------
  2463. template <> size_t GenericFill<connected_edge_set>(const DB& db, const LIST& params, connected_edge_set* in)
  2464. {
  2465. size_t base = GenericFill(db, params, static_cast<topological_representation_item*>(in));
  2466. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to connected_edge_set"); } do { // convert the 'ces_edges' argument
  2467. std::shared_ptr<const DataType> arg = params[base++];
  2468. try { GenericConvert(in->ces_edges, arg, db); break; }
  2469. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to connected_edge_set to be a `SET [1:?] OF edge`")); }
  2470. } while (0);
  2471. return base;
  2472. }
  2473. // -----------------------------------------------------------------------------------------------------------
  2474. template <> size_t GenericFill<connected_face_sub_set>(const DB& db, const LIST& params, connected_face_sub_set* in)
  2475. {
  2476. size_t base = GenericFill(db, params, static_cast<connected_face_set*>(in));
  2477. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to connected_face_sub_set"); } do { // convert the 'parent_face_set' argument
  2478. std::shared_ptr<const DataType> arg = params[base++];
  2479. try { GenericConvert(in->parent_face_set, arg, db); break; }
  2480. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to connected_face_sub_set to be a `connected_face_set`")); }
  2481. } while (0);
  2482. return base;
  2483. }
  2484. // -----------------------------------------------------------------------------------------------------------
  2485. template <> size_t GenericFill<constructive_geometry_representation>(const DB& db, const LIST& params, constructive_geometry_representation* in)
  2486. {
  2487. size_t base = GenericFill(db, params, static_cast<representation*>(in));
  2488. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to constructive_geometry_representation"); } return base;
  2489. }
  2490. // -----------------------------------------------------------------------------------------------------------
  2491. template <> size_t GenericFill<representation_relationship>(const DB& db, const LIST& params, representation_relationship* in)
  2492. {
  2493. size_t base = 0;
  2494. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to representation_relationship"); } do { // convert the 'name' argument
  2495. std::shared_ptr<const DataType> arg = params[base++];
  2496. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::representation_relationship, 4>::aux_is_derived[0] = true; break; }
  2497. try { GenericConvert(in->name, arg, db); break; }
  2498. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to representation_relationship to be a `label`")); }
  2499. } while (0);
  2500. do { // convert the 'description' argument
  2501. std::shared_ptr<const DataType> arg = params[base++];
  2502. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::representation_relationship, 4>::aux_is_derived[1] = true; break; }
  2503. if (dynamic_cast<const UNSET*>(&*arg)) break;
  2504. try { GenericConvert(in->description, arg, db); break; }
  2505. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to representation_relationship to be a `text`")); }
  2506. } while (0);
  2507. do { // convert the 'rep_1' argument
  2508. std::shared_ptr<const DataType> arg = params[base++];
  2509. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::representation_relationship, 4>::aux_is_derived[2] = true; break; }
  2510. try { GenericConvert(in->rep_1, arg, db); break; }
  2511. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to representation_relationship to be a `representation`")); }
  2512. } while (0);
  2513. do { // convert the 'rep_2' argument
  2514. std::shared_ptr<const DataType> arg = params[base++];
  2515. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::representation_relationship, 4>::aux_is_derived[3] = true; break; }
  2516. try { GenericConvert(in->rep_2, arg, db); break; }
  2517. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to representation_relationship to be a `representation`")); }
  2518. } while (0);
  2519. return base;
  2520. }
  2521. // -----------------------------------------------------------------------------------------------------------
  2522. template <> size_t GenericFill<constructive_geometry_representation_relationship>(const DB& db, const LIST& params, constructive_geometry_representation_relationship* in)
  2523. {
  2524. size_t base = GenericFill(db, params, static_cast<representation_relationship*>(in));
  2525. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to constructive_geometry_representation_relationship"); } return base;
  2526. }
  2527. // -----------------------------------------------------------------------------------------------------------
  2528. template <> size_t GenericFill<contact_ratio_representation>(const DB& db, const LIST& params, contact_ratio_representation* in)
  2529. {
  2530. size_t base = GenericFill(db, params, static_cast<representation*>(in));
  2531. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to contact_ratio_representation"); } return base;
  2532. }
  2533. // -----------------------------------------------------------------------------------------------------------
  2534. template <> size_t GenericFill<invisibility>(const DB& db, const LIST& params, invisibility* in)
  2535. {
  2536. size_t base = 0;
  2537. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to invisibility"); } do { // convert the 'invisible_items' argument
  2538. std::shared_ptr<const DataType> arg = params[base++];
  2539. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::invisibility, 1>::aux_is_derived[0] = true; break; }
  2540. try { GenericConvert(in->invisible_items, arg, db); break; }
  2541. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to invisibility to be a `SET [1:?] OF invisible_item`")); }
  2542. } while (0);
  2543. return base;
  2544. }
  2545. // -----------------------------------------------------------------------------------------------------------
  2546. template <> size_t GenericFill<context_dependent_invisibility>(const DB& db, const LIST& params, context_dependent_invisibility* in)
  2547. {
  2548. size_t base = GenericFill(db, params, static_cast<invisibility*>(in));
  2549. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to context_dependent_invisibility"); } do { // convert the 'presentation_context' argument
  2550. std::shared_ptr<const DataType> arg = params[base++];
  2551. try { GenericConvert(in->presentation_context, arg, db); break; }
  2552. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to context_dependent_invisibility to be a `invisibility_context`")); }
  2553. } while (0);
  2554. return base;
  2555. }
  2556. // -----------------------------------------------------------------------------------------------------------
  2557. template <> size_t GenericFill<over_riding_styled_item>(const DB& db, const LIST& params, over_riding_styled_item* in)
  2558. {
  2559. size_t base = GenericFill(db, params, static_cast<styled_item*>(in));
  2560. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to over_riding_styled_item"); } do { // convert the 'over_ridden_style' argument
  2561. std::shared_ptr<const DataType> arg = params[base++];
  2562. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::over_riding_styled_item, 1>::aux_is_derived[0] = true; break; }
  2563. try { GenericConvert(in->over_ridden_style, arg, db); break; }
  2564. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to over_riding_styled_item to be a `styled_item`")); }
  2565. } while (0);
  2566. return base;
  2567. }
  2568. // -----------------------------------------------------------------------------------------------------------
  2569. template <> size_t GenericFill<context_dependent_over_riding_styled_item>(const DB& db, const LIST& params, context_dependent_over_riding_styled_item* in)
  2570. {
  2571. size_t base = GenericFill(db, params, static_cast<over_riding_styled_item*>(in));
  2572. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to context_dependent_over_riding_styled_item"); } do { // convert the 'style_context' argument
  2573. std::shared_ptr<const DataType> arg = params[base++];
  2574. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::context_dependent_over_riding_styled_item, 1>::aux_is_derived[0] = true; break; }
  2575. try { GenericConvert(in->style_context, arg, db); break; }
  2576. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to context_dependent_over_riding_styled_item to be a `LIST [1:?] OF style_context_select`")); }
  2577. } while (0);
  2578. return base;
  2579. }
  2580. // -----------------------------------------------------------------------------------------------------------
  2581. template <> size_t GenericFill<context_dependent_unit>(const DB& db, const LIST& params, context_dependent_unit* in)
  2582. {
  2583. size_t base = GenericFill(db, params, static_cast<named_unit*>(in));
  2584. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to context_dependent_unit"); } do { // convert the 'name' argument
  2585. std::shared_ptr<const DataType> arg = params[base++];
  2586. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::context_dependent_unit, 1>::aux_is_derived[0] = true; break; }
  2587. try { GenericConvert(in->name, arg, db); break; }
  2588. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to context_dependent_unit to be a `label`")); }
  2589. } while (0);
  2590. return base;
  2591. }
  2592. // -----------------------------------------------------------------------------------------------------------
  2593. template <> size_t GenericFill<conversion_based_unit>(const DB& db, const LIST& params, conversion_based_unit* in)
  2594. {
  2595. size_t base = GenericFill(db, params, static_cast<named_unit*>(in));
  2596. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to conversion_based_unit"); } do { // convert the 'name' argument
  2597. std::shared_ptr<const DataType> arg = params[base++];
  2598. try { GenericConvert(in->name, arg, db); break; }
  2599. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to conversion_based_unit to be a `label`")); }
  2600. } while (0);
  2601. do { // convert the 'conversion_factor' argument
  2602. std::shared_ptr<const DataType> arg = params[base++];
  2603. try { GenericConvert(in->conversion_factor, arg, db); break; }
  2604. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to conversion_based_unit to be a `measure_with_unit`")); }
  2605. } while (0);
  2606. return base;
  2607. }
  2608. // -----------------------------------------------------------------------------------------------------------
  2609. template <> size_t GenericFill<csg_shape_representation>(const DB& db, const LIST& params, csg_shape_representation* in)
  2610. {
  2611. size_t base = GenericFill(db, params, static_cast<shape_representation*>(in));
  2612. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to csg_shape_representation"); } return base;
  2613. }
  2614. // -----------------------------------------------------------------------------------------------------------
  2615. template <> size_t GenericFill<csg_solid>(const DB& db, const LIST& params, csg_solid* in)
  2616. {
  2617. size_t base = GenericFill(db, params, static_cast<solid_model*>(in));
  2618. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to csg_solid"); } do { // convert the 'tree_root_expression' argument
  2619. std::shared_ptr<const DataType> arg = params[base++];
  2620. try { GenericConvert(in->tree_root_expression, arg, db); break; }
  2621. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to csg_solid to be a `csg_select`")); }
  2622. } while (0);
  2623. return base;
  2624. }
  2625. // -----------------------------------------------------------------------------------------------------------
  2626. template <> size_t GenericFill<currency>(const DB& db, const LIST& params, currency* in)
  2627. {
  2628. size_t base = GenericFill(db, params, static_cast<context_dependent_unit*>(in));
  2629. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to currency"); } return base;
  2630. }
  2631. // -----------------------------------------------------------------------------------------------------------
  2632. template <> size_t GenericFill<currency_measure_with_unit>(const DB& db, const LIST& params, currency_measure_with_unit* in)
  2633. {
  2634. size_t base = GenericFill(db, params, static_cast<measure_with_unit*>(in));
  2635. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to currency_measure_with_unit"); } return base;
  2636. }
  2637. // -----------------------------------------------------------------------------------------------------------
  2638. template <> size_t GenericFill<curve_bounded_surface>(const DB& db, const LIST& params, curve_bounded_surface* in)
  2639. {
  2640. size_t base = GenericFill(db, params, static_cast<bounded_surface*>(in));
  2641. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to curve_bounded_surface"); } do { // convert the 'basis_surface' argument
  2642. std::shared_ptr<const DataType> arg = params[base++];
  2643. try { GenericConvert(in->basis_surface, arg, db); break; }
  2644. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to curve_bounded_surface to be a `surface`")); }
  2645. } while (0);
  2646. do { // convert the 'boundaries' argument
  2647. std::shared_ptr<const DataType> arg = params[base++];
  2648. try { GenericConvert(in->boundaries, arg, db); break; }
  2649. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to curve_bounded_surface to be a `SET [1:?] OF boundary_curve`")); }
  2650. } while (0);
  2651. do { // convert the 'implicit_outer' argument
  2652. std::shared_ptr<const DataType> arg = params[base++];
  2653. try { GenericConvert(in->implicit_outer, arg, db); break; }
  2654. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to curve_bounded_surface to be a `BOOLEAN`")); }
  2655. } while (0);
  2656. return base;
  2657. }
  2658. // -----------------------------------------------------------------------------------------------------------
  2659. template <> size_t GenericFill<curve_dimension>(const DB& db, const LIST& params, curve_dimension* in)
  2660. {
  2661. size_t base = GenericFill(db, params, static_cast<dimension_curve_directed_callout*>(in));
  2662. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to curve_dimension"); } return base;
  2663. }
  2664. // -----------------------------------------------------------------------------------------------------------
  2665. template <> size_t GenericFill<curve_replica>(const DB& db, const LIST& params, curve_replica* in)
  2666. {
  2667. size_t base = GenericFill(db, params, static_cast<curve*>(in));
  2668. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to curve_replica"); } do { // convert the 'parent_curve' argument
  2669. std::shared_ptr<const DataType> arg = params[base++];
  2670. try { GenericConvert(in->parent_curve, arg, db); break; }
  2671. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to curve_replica to be a `curve`")); }
  2672. } while (0);
  2673. do { // convert the 'transformation' argument
  2674. std::shared_ptr<const DataType> arg = params[base++];
  2675. try { GenericConvert(in->transformation, arg, db); break; }
  2676. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to curve_replica to be a `cartesian_transformation_operator`")); }
  2677. } while (0);
  2678. return base;
  2679. }
  2680. // -----------------------------------------------------------------------------------------------------------
  2681. template <> size_t GenericFill<curve_style>(const DB& db, const LIST& params, curve_style* in)
  2682. {
  2683. size_t base = GenericFill(db, params, static_cast<founded_item*>(in));
  2684. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to curve_style"); } do { // convert the 'name' argument
  2685. std::shared_ptr<const DataType> arg = params[base++];
  2686. try { GenericConvert(in->name, arg, db); break; }
  2687. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to curve_style to be a `label`")); }
  2688. } while (0);
  2689. do { // convert the 'curve_font' argument
  2690. std::shared_ptr<const DataType> arg = params[base++];
  2691. try { GenericConvert(in->curve_font, arg, db); break; }
  2692. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to curve_style to be a `curve_font_or_scaled_curve_font_select`")); }
  2693. } while (0);
  2694. do { // convert the 'curve_width' argument
  2695. std::shared_ptr<const DataType> arg = params[base++];
  2696. try { GenericConvert(in->curve_width, arg, db); break; }
  2697. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to curve_style to be a `size_select`")); }
  2698. } while (0);
  2699. do { // convert the 'curve_colour' argument
  2700. std::shared_ptr<const DataType> arg = params[base++];
  2701. try { GenericConvert(in->curve_colour, arg, db); break; }
  2702. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to curve_style to be a `colour`")); }
  2703. } while (0);
  2704. return base;
  2705. }
  2706. // -----------------------------------------------------------------------------------------------------------
  2707. template <> size_t GenericFill<curve_style_font>(const DB& db, const LIST& params, curve_style_font* in)
  2708. {
  2709. size_t base = GenericFill(db, params, static_cast<founded_item*>(in));
  2710. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to curve_style_font"); } do { // convert the 'name' argument
  2711. std::shared_ptr<const DataType> arg = params[base++];
  2712. try { GenericConvert(in->name, arg, db); break; }
  2713. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to curve_style_font to be a `label`")); }
  2714. } while (0);
  2715. do { // convert the 'pattern_list' argument
  2716. std::shared_ptr<const DataType> arg = params[base++];
  2717. try { GenericConvert(in->pattern_list, arg, db); break; }
  2718. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to curve_style_font to be a `LIST [1:?] OF curve_style_font_pattern`")); }
  2719. } while (0);
  2720. return base;
  2721. }
  2722. // -----------------------------------------------------------------------------------------------------------
  2723. template <> size_t GenericFill<curve_style_font_and_scaling>(const DB& db, const LIST& params, curve_style_font_and_scaling* in)
  2724. {
  2725. size_t base = GenericFill(db, params, static_cast<founded_item*>(in));
  2726. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to curve_style_font_and_scaling"); } do { // convert the 'name' argument
  2727. std::shared_ptr<const DataType> arg = params[base++];
  2728. try { GenericConvert(in->name, arg, db); break; }
  2729. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to curve_style_font_and_scaling to be a `label`")); }
  2730. } while (0);
  2731. do { // convert the 'curve_font' argument
  2732. std::shared_ptr<const DataType> arg = params[base++];
  2733. try { GenericConvert(in->curve_font, arg, db); break; }
  2734. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to curve_style_font_and_scaling to be a `curve_style_font_select`")); }
  2735. } while (0);
  2736. do { // convert the 'curve_font_scaling' argument
  2737. std::shared_ptr<const DataType> arg = params[base++];
  2738. try { GenericConvert(in->curve_font_scaling, arg, db); break; }
  2739. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to curve_style_font_and_scaling to be a `REAL`")); }
  2740. } while (0);
  2741. return base;
  2742. }
  2743. // -----------------------------------------------------------------------------------------------------------
  2744. template <> size_t GenericFill<curve_style_font_pattern>(const DB& db, const LIST& params, curve_style_font_pattern* in)
  2745. {
  2746. size_t base = GenericFill(db, params, static_cast<founded_item*>(in));
  2747. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to curve_style_font_pattern"); } do { // convert the 'visible_segment_length' argument
  2748. std::shared_ptr<const DataType> arg = params[base++];
  2749. try { GenericConvert(in->visible_segment_length, arg, db); break; }
  2750. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to curve_style_font_pattern to be a `positive_length_measure`")); }
  2751. } while (0);
  2752. do { // convert the 'invisible_segment_length' argument
  2753. std::shared_ptr<const DataType> arg = params[base++];
  2754. try { GenericConvert(in->invisible_segment_length, arg, db); break; }
  2755. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to curve_style_font_pattern to be a `positive_length_measure`")); }
  2756. } while (0);
  2757. return base;
  2758. }
  2759. // -----------------------------------------------------------------------------------------------------------
  2760. template <> size_t GenericFill<curve_swept_solid_shape_representation>(const DB& db, const LIST& params, curve_swept_solid_shape_representation* in)
  2761. {
  2762. size_t base = GenericFill(db, params, static_cast<shape_representation*>(in));
  2763. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to curve_swept_solid_shape_representation"); } return base;
  2764. }
  2765. // -----------------------------------------------------------------------------------------------------------
  2766. template <> size_t GenericFill<cylindrical_surface>(const DB& db, const LIST& params, cylindrical_surface* in)
  2767. {
  2768. size_t base = GenericFill(db, params, static_cast<elementary_surface*>(in));
  2769. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to cylindrical_surface"); } do { // convert the 'radius' argument
  2770. std::shared_ptr<const DataType> arg = params[base++];
  2771. try { GenericConvert(in->radius, arg, db); break; }
  2772. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to cylindrical_surface to be a `positive_length_measure`")); }
  2773. } while (0);
  2774. return base;
  2775. }
  2776. // -----------------------------------------------------------------------------------------------------------
  2777. template <> size_t GenericFill<cylindricity_tolerance>(const DB& db, const LIST& params, cylindricity_tolerance* in)
  2778. {
  2779. size_t base = GenericFill(db, params, static_cast<geometric_tolerance*>(in));
  2780. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to cylindricity_tolerance"); } return base;
  2781. }
  2782. // -----------------------------------------------------------------------------------------------------------
  2783. template <> size_t GenericFill<date_representation_item>(const DB& db, const LIST& params, date_representation_item* in)
  2784. {
  2785. size_t base = 0;
  2786. return base;
  2787. }
  2788. // -----------------------------------------------------------------------------------------------------------
  2789. template <> size_t GenericFill<date_time_representation_item>(const DB& db, const LIST& params, date_time_representation_item* in)
  2790. {
  2791. size_t base = 0;
  2792. return base;
  2793. }
  2794. // -----------------------------------------------------------------------------------------------------------
  2795. template <> size_t GenericFill<dated_effectivity>(const DB& db, const LIST& params, dated_effectivity* in)
  2796. {
  2797. size_t base = GenericFill(db, params, static_cast<effectivity*>(in));
  2798. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to dated_effectivity"); } do { // convert the 'effectivity_end_date' argument
  2799. std::shared_ptr<const DataType> arg = params[base++];
  2800. if (dynamic_cast<const UNSET*>(&*arg)) break;
  2801. try { GenericConvert(in->effectivity_end_date, arg, db); break; }
  2802. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to dated_effectivity to be a `date_time_or_event_occurrence`")); }
  2803. } while (0);
  2804. do { // convert the 'effectivity_start_date' argument
  2805. std::shared_ptr<const DataType> arg = params[base++];
  2806. try { GenericConvert(in->effectivity_start_date, arg, db); break; }
  2807. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to dated_effectivity to be a `date_time_or_event_occurrence`")); }
  2808. } while (0);
  2809. return base;
  2810. }
  2811. // -----------------------------------------------------------------------------------------------------------
  2812. template <> size_t GenericFill<datum>(const DB& db, const LIST& params, datum* in)
  2813. {
  2814. size_t base = GenericFill(db, params, static_cast<shape_aspect*>(in));
  2815. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to datum"); } do { // convert the 'identification' argument
  2816. std::shared_ptr<const DataType> arg = params[base++];
  2817. try { GenericConvert(in->identification, arg, db); break; }
  2818. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to datum to be a `identifier`")); }
  2819. } while (0);
  2820. return base;
  2821. }
  2822. // -----------------------------------------------------------------------------------------------------------
  2823. template <> size_t GenericFill<datum_feature>(const DB& db, const LIST& params, datum_feature* in)
  2824. {
  2825. size_t base = GenericFill(db, params, static_cast<shape_aspect*>(in));
  2826. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to datum_feature"); } return base;
  2827. }
  2828. // -----------------------------------------------------------------------------------------------------------
  2829. template <> size_t GenericFill<datum_feature_callout>(const DB& db, const LIST& params, datum_feature_callout* in)
  2830. {
  2831. size_t base = GenericFill(db, params, static_cast<draughting_callout*>(in));
  2832. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to datum_feature_callout"); } return base;
  2833. }
  2834. // -----------------------------------------------------------------------------------------------------------
  2835. template <> size_t GenericFill<datum_reference>(const DB& db, const LIST& params, datum_reference* in)
  2836. {
  2837. size_t base = 0;
  2838. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to datum_reference"); } do { // convert the 'precedence' argument
  2839. std::shared_ptr<const DataType> arg = params[base++];
  2840. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::datum_reference, 2>::aux_is_derived[0] = true; break; }
  2841. try { GenericConvert(in->precedence, arg, db); break; }
  2842. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to datum_reference to be a `INTEGER`")); }
  2843. } while (0);
  2844. do { // convert the 'referenced_datum' argument
  2845. std::shared_ptr<const DataType> arg = params[base++];
  2846. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::datum_reference, 2>::aux_is_derived[1] = true; break; }
  2847. try { GenericConvert(in->referenced_datum, arg, db); break; }
  2848. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to datum_reference to be a `datum`")); }
  2849. } while (0);
  2850. return base;
  2851. }
  2852. // -----------------------------------------------------------------------------------------------------------
  2853. template <> size_t GenericFill<datum_target>(const DB& db, const LIST& params, datum_target* in)
  2854. {
  2855. size_t base = GenericFill(db, params, static_cast<shape_aspect*>(in));
  2856. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to datum_target"); } do { // convert the 'target_id' argument
  2857. std::shared_ptr<const DataType> arg = params[base++];
  2858. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::datum_target, 1>::aux_is_derived[0] = true; break; }
  2859. try { GenericConvert(in->target_id, arg, db); break; }
  2860. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to datum_target to be a `identifier`")); }
  2861. } while (0);
  2862. return base;
  2863. }
  2864. // -----------------------------------------------------------------------------------------------------------
  2865. template <> size_t GenericFill<datum_target_callout>(const DB& db, const LIST& params, datum_target_callout* in)
  2866. {
  2867. size_t base = GenericFill(db, params, static_cast<draughting_callout*>(in));
  2868. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to datum_target_callout"); } return base;
  2869. }
  2870. // -----------------------------------------------------------------------------------------------------------
  2871. template <> size_t GenericFill<default_tolerance_table>(const DB& db, const LIST& params, default_tolerance_table* in)
  2872. {
  2873. size_t base = GenericFill(db, params, static_cast<representation*>(in));
  2874. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to default_tolerance_table"); } return base;
  2875. }
  2876. // -----------------------------------------------------------------------------------------------------------
  2877. template <> size_t GenericFill<default_tolerance_table_cell>(const DB& db, const LIST& params, default_tolerance_table_cell* in)
  2878. {
  2879. size_t base = GenericFill(db, params, static_cast<compound_representation_item*>(in));
  2880. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to default_tolerance_table_cell"); } return base;
  2881. }
  2882. // -----------------------------------------------------------------------------------------------------------
  2883. template <> size_t GenericFill<defined_symbol>(const DB& db, const LIST& params, defined_symbol* in)
  2884. {
  2885. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  2886. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to defined_symbol"); } do { // convert the 'definition' argument
  2887. std::shared_ptr<const DataType> arg = params[base++];
  2888. try { GenericConvert(in->definition, arg, db); break; }
  2889. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to defined_symbol to be a `defined_symbol_select`")); }
  2890. } while (0);
  2891. do { // convert the 'target' argument
  2892. std::shared_ptr<const DataType> arg = params[base++];
  2893. try { GenericConvert(in->target, arg, db); break; }
  2894. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to defined_symbol to be a `symbol_target`")); }
  2895. } while (0);
  2896. return base;
  2897. }
  2898. // -----------------------------------------------------------------------------------------------------------
  2899. template <> size_t GenericFill<definitional_representation>(const DB& db, const LIST& params, definitional_representation* in)
  2900. {
  2901. size_t base = GenericFill(db, params, static_cast<representation*>(in));
  2902. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to definitional_representation"); } return base;
  2903. }
  2904. // -----------------------------------------------------------------------------------------------------------
  2905. template <> size_t GenericFill<definitional_representation_relationship>(const DB& db, const LIST& params, definitional_representation_relationship* in)
  2906. {
  2907. size_t base = GenericFill(db, params, static_cast<representation_relationship*>(in));
  2908. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to definitional_representation_relationship"); } return base;
  2909. }
  2910. // -----------------------------------------------------------------------------------------------------------
  2911. template <> size_t GenericFill<definitional_representation_relationship_with_same_context>(const DB& db, const LIST& params, definitional_representation_relationship_with_same_context* in)
  2912. {
  2913. size_t base = GenericFill(db, params, static_cast<definitional_representation_relationship*>(in));
  2914. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to definitional_representation_relationship_with_same_context"); } return base;
  2915. }
  2916. // -----------------------------------------------------------------------------------------------------------
  2917. template <> size_t GenericFill<degenerate_pcurve>(const DB& db, const LIST& params, degenerate_pcurve* in)
  2918. {
  2919. size_t base = GenericFill(db, params, static_cast<point*>(in));
  2920. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to degenerate_pcurve"); } do { // convert the 'basis_surface' argument
  2921. std::shared_ptr<const DataType> arg = params[base++];
  2922. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::degenerate_pcurve, 2>::aux_is_derived[0] = true; break; }
  2923. try { GenericConvert(in->basis_surface, arg, db); break; }
  2924. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to degenerate_pcurve to be a `surface`")); }
  2925. } while (0);
  2926. do { // convert the 'reference_to_curve' argument
  2927. std::shared_ptr<const DataType> arg = params[base++];
  2928. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::degenerate_pcurve, 2>::aux_is_derived[1] = true; break; }
  2929. try { GenericConvert(in->reference_to_curve, arg, db); break; }
  2930. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to degenerate_pcurve to be a `definitional_representation`")); }
  2931. } while (0);
  2932. return base;
  2933. }
  2934. // -----------------------------------------------------------------------------------------------------------
  2935. template <> size_t GenericFill<toroidal_surface>(const DB& db, const LIST& params, toroidal_surface* in)
  2936. {
  2937. size_t base = GenericFill(db, params, static_cast<elementary_surface*>(in));
  2938. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to toroidal_surface"); } do { // convert the 'major_radius' argument
  2939. std::shared_ptr<const DataType> arg = params[base++];
  2940. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::toroidal_surface, 2>::aux_is_derived[0] = true; break; }
  2941. try { GenericConvert(in->major_radius, arg, db); break; }
  2942. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to toroidal_surface to be a `positive_length_measure`")); }
  2943. } while (0);
  2944. do { // convert the 'minor_radius' argument
  2945. std::shared_ptr<const DataType> arg = params[base++];
  2946. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::toroidal_surface, 2>::aux_is_derived[1] = true; break; }
  2947. try { GenericConvert(in->minor_radius, arg, db); break; }
  2948. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to toroidal_surface to be a `positive_length_measure`")); }
  2949. } while (0);
  2950. return base;
  2951. }
  2952. // -----------------------------------------------------------------------------------------------------------
  2953. template <> size_t GenericFill<degenerate_toroidal_surface>(const DB& db, const LIST& params, degenerate_toroidal_surface* in)
  2954. {
  2955. size_t base = GenericFill(db, params, static_cast<toroidal_surface*>(in));
  2956. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to degenerate_toroidal_surface"); } do { // convert the 'select_outer' argument
  2957. std::shared_ptr<const DataType> arg = params[base++];
  2958. try { GenericConvert(in->select_outer, arg, db); break; }
  2959. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to degenerate_toroidal_surface to be a `BOOLEAN`")); }
  2960. } while (0);
  2961. return base;
  2962. }
  2963. // -----------------------------------------------------------------------------------------------------------
  2964. template <> size_t GenericFill<descriptive_representation_item>(const DB& db, const LIST& params, descriptive_representation_item* in)
  2965. {
  2966. size_t base = GenericFill(db, params, static_cast<representation_item*>(in));
  2967. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to descriptive_representation_item"); } do { // convert the 'description' argument
  2968. std::shared_ptr<const DataType> arg = params[base++];
  2969. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::descriptive_representation_item, 1>::aux_is_derived[0] = true; break; }
  2970. try { GenericConvert(in->description, arg, db); break; }
  2971. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to descriptive_representation_item to be a `text`")); }
  2972. } while (0);
  2973. return base;
  2974. }
  2975. // -----------------------------------------------------------------------------------------------------------
  2976. template <> size_t GenericFill<product_definition_context>(const DB& db, const LIST& params, product_definition_context* in)
  2977. {
  2978. size_t base = GenericFill(db, params, static_cast<application_context_element*>(in));
  2979. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to product_definition_context"); } do { // convert the 'life_cycle_stage' argument
  2980. std::shared_ptr<const DataType> arg = params[base++];
  2981. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_definition_context, 1>::aux_is_derived[0] = true; break; }
  2982. try { GenericConvert(in->life_cycle_stage, arg, db); break; }
  2983. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to product_definition_context to be a `label`")); }
  2984. } while (0);
  2985. return base;
  2986. }
  2987. // -----------------------------------------------------------------------------------------------------------
  2988. template <> size_t GenericFill<design_context>(const DB& db, const LIST& params, design_context* in)
  2989. {
  2990. size_t base = GenericFill(db, params, static_cast<product_definition_context*>(in));
  2991. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to design_context"); } return base;
  2992. }
  2993. // -----------------------------------------------------------------------------------------------------------
  2994. template <> size_t GenericFill<design_make_from_relationship>(const DB& db, const LIST& params, design_make_from_relationship* in)
  2995. {
  2996. size_t base = GenericFill(db, params, static_cast<product_definition_relationship*>(in));
  2997. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to design_make_from_relationship"); } return base;
  2998. }
  2999. // -----------------------------------------------------------------------------------------------------------
  3000. template <> size_t GenericFill<diameter_dimension>(const DB& db, const LIST& params, diameter_dimension* in)
  3001. {
  3002. size_t base = GenericFill(db, params, static_cast<dimension_curve_directed_callout*>(in));
  3003. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to diameter_dimension"); } return base;
  3004. }
  3005. // -----------------------------------------------------------------------------------------------------------
  3006. template <> size_t GenericFill<ratio_measure_with_unit>(const DB& db, const LIST& params, ratio_measure_with_unit* in)
  3007. {
  3008. size_t base = GenericFill(db, params, static_cast<measure_with_unit*>(in));
  3009. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to ratio_measure_with_unit"); } return base;
  3010. }
  3011. // -----------------------------------------------------------------------------------------------------------
  3012. template <> size_t GenericFill<dielectric_constant_measure_with_unit>(const DB& db, const LIST& params, dielectric_constant_measure_with_unit* in)
  3013. {
  3014. size_t base = GenericFill(db, params, static_cast<ratio_measure_with_unit*>(in));
  3015. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to dielectric_constant_measure_with_unit"); } return base;
  3016. }
  3017. // -----------------------------------------------------------------------------------------------------------
  3018. template <> size_t GenericFill<dimension_callout>(const DB& db, const LIST& params, dimension_callout* in)
  3019. {
  3020. size_t base = GenericFill(db, params, static_cast<draughting_callout*>(in));
  3021. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to dimension_callout"); } return base;
  3022. }
  3023. // -----------------------------------------------------------------------------------------------------------
  3024. template <> size_t GenericFill<draughting_callout_relationship>(const DB& db, const LIST& params, draughting_callout_relationship* in)
  3025. {
  3026. size_t base = 0;
  3027. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to draughting_callout_relationship"); } do { // convert the 'name' argument
  3028. std::shared_ptr<const DataType> arg = params[base++];
  3029. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::draughting_callout_relationship, 4>::aux_is_derived[0] = true; break; }
  3030. try { GenericConvert(in->name, arg, db); break; }
  3031. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to draughting_callout_relationship to be a `label`")); }
  3032. } while (0);
  3033. do { // convert the 'description' argument
  3034. std::shared_ptr<const DataType> arg = params[base++];
  3035. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::draughting_callout_relationship, 4>::aux_is_derived[1] = true; break; }
  3036. try { GenericConvert(in->description, arg, db); break; }
  3037. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to draughting_callout_relationship to be a `text`")); }
  3038. } while (0);
  3039. do { // convert the 'relating_draughting_callout' argument
  3040. std::shared_ptr<const DataType> arg = params[base++];
  3041. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::draughting_callout_relationship, 4>::aux_is_derived[2] = true; break; }
  3042. try { GenericConvert(in->relating_draughting_callout, arg, db); break; }
  3043. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to draughting_callout_relationship to be a `draughting_callout`")); }
  3044. } while (0);
  3045. do { // convert the 'related_draughting_callout' argument
  3046. std::shared_ptr<const DataType> arg = params[base++];
  3047. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::draughting_callout_relationship, 4>::aux_is_derived[3] = true; break; }
  3048. try { GenericConvert(in->related_draughting_callout, arg, db); break; }
  3049. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to draughting_callout_relationship to be a `draughting_callout`")); }
  3050. } while (0);
  3051. return base;
  3052. }
  3053. }
  3054. }