StepFileGen2.cpp 220 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068
  1. /*
  2. Open Asset Import Library (ASSIMP)
  3. ----------------------------------------------------------------------
  4. Copyright (c) 2006-2020, 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. // -----------------------------------------------------------------------------------------------------------
  1940. template <> size_t GenericFill<common_datum>(const DB& db, const LIST& params, common_datum* in)
  1941. {
  1942. size_t base = 0;
  1943. return base;
  1944. }
  1945. // -----------------------------------------------------------------------------------------------------------
  1946. template <> size_t GenericFill<comparison_expression>(const DB& db, const LIST& params, comparison_expression* in)
  1947. {
  1948. size_t base = 0;
  1949. return base;
  1950. }*/
  1951. // -----------------------------------------------------------------------------------------------------------
  1952. template <> size_t GenericFill<complex_clause>(const DB& db, const LIST& params, complex_clause* in)
  1953. {
  1954. size_t base = GenericFill(db, params, static_cast<compound_representation_item*>(in));
  1955. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to complex_clause"); } return base;
  1956. }
  1957. // -----------------------------------------------------------------------------------------------------------
  1958. template <> size_t GenericFill<complex_conjunctive_clause>(const DB& db, const LIST& params, complex_conjunctive_clause* in)
  1959. {
  1960. size_t base = GenericFill(db, params, static_cast<complex_clause*>(in));
  1961. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to complex_conjunctive_clause"); } return base;
  1962. }
  1963. // -----------------------------------------------------------------------------------------------------------
  1964. template <> size_t GenericFill<complex_disjunctive_clause>(const DB& db, const LIST& params, complex_disjunctive_clause* in)
  1965. {
  1966. size_t base = GenericFill(db, params, static_cast<complex_clause*>(in));
  1967. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to complex_disjunctive_clause"); } return base;
  1968. }
  1969. // -----------------------------------------------------------------------------------------------------------
  1970. template <> size_t GenericFill<modified_solid>(const DB& db, const LIST& params, modified_solid* in)
  1971. {
  1972. size_t base = GenericFill(db, params, static_cast<solid_model*>(in));
  1973. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to modified_solid"); } do { // convert the 'rationale' argument
  1974. std::shared_ptr<const DataType> arg = params[base++];
  1975. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::modified_solid, 2>::aux_is_derived[0] = true; break; }
  1976. try { GenericConvert(in->rationale, arg, db); break; }
  1977. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to modified_solid to be a `text`")); }
  1978. } while (0);
  1979. do { // convert the 'base_solid' argument
  1980. std::shared_ptr<const DataType> arg = params[base++];
  1981. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::modified_solid, 2>::aux_is_derived[1] = true; break; }
  1982. try { GenericConvert(in->base_solid, arg, db); break; }
  1983. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to modified_solid to be a `base_solid_select`")); }
  1984. } while (0);
  1985. return base;
  1986. }
  1987. // -----------------------------------------------------------------------------------------------------------
  1988. template <> size_t GenericFill<shelled_solid>(const DB& db, const LIST& params, shelled_solid* in)
  1989. {
  1990. size_t base = GenericFill(db, params, static_cast<modified_solid*>(in));
  1991. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to shelled_solid"); } do { // convert the 'deleted_face_set' argument
  1992. std::shared_ptr<const DataType> arg = params[base++];
  1993. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::shelled_solid, 2>::aux_is_derived[0] = true; break; }
  1994. try { GenericConvert(in->deleted_face_set, arg, db); break; }
  1995. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to shelled_solid to be a `SET [1:?] OF face_surface`")); }
  1996. } while (0);
  1997. do { // convert the 'thickness' argument
  1998. std::shared_ptr<const DataType> arg = params[base++];
  1999. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::shelled_solid, 2>::aux_is_derived[1] = true; break; }
  2000. try { GenericConvert(in->thickness, arg, db); break; }
  2001. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to shelled_solid to be a `length_measure`")); }
  2002. } while (0);
  2003. return base;
  2004. }
  2005. // -----------------------------------------------------------------------------------------------------------
  2006. template <> size_t GenericFill<complex_shelled_solid>(const DB& db, const LIST& params, complex_shelled_solid* in)
  2007. {
  2008. size_t base = GenericFill(db, params, static_cast<shelled_solid*>(in));
  2009. if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to complex_shelled_solid"); } do { // convert the 'thickness_list' argument
  2010. std::shared_ptr<const DataType> arg = params[base++];
  2011. try { GenericConvert(in->thickness_list, arg, db); break; }
  2012. 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`")); }
  2013. } while (0);
  2014. return base;
  2015. }
  2016. // -----------------------------------------------------------------------------------------------------------
  2017. template <> size_t GenericFill<composite_assembly_definition>(const DB& db, const LIST& params, composite_assembly_definition* in)
  2018. {
  2019. size_t base = GenericFill(db, params, static_cast<product_definition*>(in));
  2020. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to composite_assembly_definition"); } return base;
  2021. }
  2022. // -----------------------------------------------------------------------------------------------------------
  2023. template <> size_t GenericFill<composite_assembly_sequence_definition>(const DB& db, const LIST& params, composite_assembly_sequence_definition* in)
  2024. {
  2025. size_t base = GenericFill(db, params, static_cast<product_definition*>(in));
  2026. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to composite_assembly_sequence_definition"); } return base;
  2027. }
  2028. // -----------------------------------------------------------------------------------------------------------
  2029. template <> size_t GenericFill<laminate_table>(const DB& db, const LIST& params, laminate_table* in)
  2030. {
  2031. size_t base = GenericFill(db, params, static_cast<product_definition*>(in));
  2032. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to laminate_table"); } return base;
  2033. }
  2034. // -----------------------------------------------------------------------------------------------------------
  2035. template <> size_t GenericFill<part_laminate_table>(const DB& db, const LIST& params, part_laminate_table* in)
  2036. {
  2037. size_t base = GenericFill(db, params, static_cast<laminate_table*>(in));
  2038. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to part_laminate_table"); } return base;
  2039. }
  2040. // -----------------------------------------------------------------------------------------------------------
  2041. template <> size_t GenericFill<composite_assembly_table>(const DB& db, const LIST& params, composite_assembly_table* in)
  2042. {
  2043. size_t base = GenericFill(db, params, static_cast<part_laminate_table*>(in));
  2044. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to composite_assembly_table"); } return base;
  2045. }
  2046. // -----------------------------------------------------------------------------------------------------------
  2047. template <> size_t GenericFill<composite_curve_segment>(const DB& db, const LIST& params, composite_curve_segment* in)
  2048. {
  2049. size_t base = GenericFill(db, params, static_cast<founded_item*>(in));
  2050. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to composite_curve_segment"); } do { // convert the 'transition' argument
  2051. std::shared_ptr<const DataType> arg = params[base++];
  2052. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::composite_curve_segment, 3>::aux_is_derived[0] = true; break; }
  2053. try { GenericConvert(in->transition, arg, db); break; }
  2054. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to composite_curve_segment to be a `transition_code`")); }
  2055. } while (0);
  2056. do { // convert the 'same_sense' argument
  2057. std::shared_ptr<const DataType> arg = params[base++];
  2058. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::composite_curve_segment, 3>::aux_is_derived[1] = true; break; }
  2059. try { GenericConvert(in->same_sense, arg, db); break; }
  2060. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to composite_curve_segment to be a `BOOLEAN`")); }
  2061. } while (0);
  2062. do { // convert the 'parent_curve' argument
  2063. std::shared_ptr<const DataType> arg = params[base++];
  2064. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::composite_curve_segment, 3>::aux_is_derived[2] = true; break; }
  2065. try { GenericConvert(in->parent_curve, arg, db); break; }
  2066. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to composite_curve_segment to be a `curve`")); }
  2067. } while (0);
  2068. return base;
  2069. }
  2070. // -----------------------------------------------------------------------------------------------------------
  2071. template <> size_t GenericFill<material_designation>(const DB& db, const LIST& params, material_designation* in)
  2072. {
  2073. size_t base = 0;
  2074. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to material_designation"); } do { // convert the 'name' argument
  2075. std::shared_ptr<const DataType> arg = params[base++];
  2076. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::material_designation, 2>::aux_is_derived[0] = true; break; }
  2077. try { GenericConvert(in->name, arg, db); break; }
  2078. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to material_designation to be a `label`")); }
  2079. } while (0);
  2080. do { // convert the 'definitions' argument
  2081. std::shared_ptr<const DataType> arg = params[base++];
  2082. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::material_designation, 2>::aux_is_derived[1] = true; break; }
  2083. try { GenericConvert(in->definitions, arg, db); break; }
  2084. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to material_designation to be a `SET [1:?] OF characterized_definition`")); }
  2085. } while (0);
  2086. return base;
  2087. }
  2088. // -----------------------------------------------------------------------------------------------------------
  2089. template <> size_t GenericFill<composite_material_designation>(const DB& db, const LIST& params, composite_material_designation* in)
  2090. {
  2091. size_t base = GenericFill(db, params, static_cast<material_designation*>(in));
  2092. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to composite_material_designation"); } return base;
  2093. }
  2094. // -----------------------------------------------------------------------------------------------------------
  2095. template <> size_t GenericFill<composite_shape_aspect>(const DB& db, const LIST& params, composite_shape_aspect* in)
  2096. {
  2097. size_t base = GenericFill(db, params, static_cast<shape_aspect*>(in));
  2098. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to composite_shape_aspect"); } return base;
  2099. }
  2100. // -----------------------------------------------------------------------------------------------------------
  2101. template <> size_t GenericFill<composite_sheet_representation>(const DB& db, const LIST& params, composite_sheet_representation* in)
  2102. {
  2103. size_t base = GenericFill(db, params, static_cast<shape_representation*>(in));
  2104. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to composite_sheet_representation"); } return base;
  2105. }
  2106. // -----------------------------------------------------------------------------------------------------------
  2107. template <> size_t GenericFill<composite_text>(const DB& db, const LIST& params, composite_text* in)
  2108. {
  2109. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  2110. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to composite_text"); } do { // convert the 'collected_text' argument
  2111. std::shared_ptr<const DataType> arg = params[base++];
  2112. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::composite_text, 1>::aux_is_derived[0] = true; break; }
  2113. try { GenericConvert(in->collected_text, arg, db); break; }
  2114. 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`")); }
  2115. } while (0);
  2116. return base;
  2117. }
  2118. // -----------------------------------------------------------------------------------------------------------
  2119. template <> size_t GenericFill<composite_text_with_associated_curves>(const DB& db, const LIST& params, composite_text_with_associated_curves* in)
  2120. {
  2121. size_t base = GenericFill(db, params, static_cast<composite_text*>(in));
  2122. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to composite_text_with_associated_curves"); } do { // convert the 'associated_curves' argument
  2123. std::shared_ptr<const DataType> arg = params[base++];
  2124. try { GenericConvert(in->associated_curves, arg, db); break; }
  2125. 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`")); }
  2126. } while (0);
  2127. return base;
  2128. }
  2129. // -----------------------------------------------------------------------------------------------------------
  2130. template <> size_t GenericFill<composite_text_with_blanking_box>(const DB& db, const LIST& params, composite_text_with_blanking_box* in)
  2131. {
  2132. size_t base = GenericFill(db, params, static_cast<composite_text*>(in));
  2133. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to composite_text_with_blanking_box"); } do { // convert the 'blanking' argument
  2134. std::shared_ptr<const DataType> arg = params[base++];
  2135. try { GenericConvert(in->blanking, arg, db); break; }
  2136. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to composite_text_with_blanking_box to be a `planar_box`")); }
  2137. } while (0);
  2138. return base;
  2139. }
  2140. // -----------------------------------------------------------------------------------------------------------
  2141. template <> size_t GenericFill<composite_text_with_delineation>(const DB& db, const LIST& params, composite_text_with_delineation* in)
  2142. {
  2143. size_t base = GenericFill(db, params, static_cast<composite_text*>(in));
  2144. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to composite_text_with_delineation"); } do { // convert the 'delineation' argument
  2145. std::shared_ptr<const DataType> arg = params[base++];
  2146. try { GenericConvert(in->delineation, arg, db); break; }
  2147. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to composite_text_with_delineation to be a `text_delineation`")); }
  2148. } while (0);
  2149. return base;
  2150. }
  2151. // -----------------------------------------------------------------------------------------------------------
  2152. template <> size_t GenericFill<composite_text_with_extent>(const DB& db, const LIST& params, composite_text_with_extent* in)
  2153. {
  2154. size_t base = GenericFill(db, params, static_cast<composite_text*>(in));
  2155. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to composite_text_with_extent"); } do { // convert the 'extent' argument
  2156. std::shared_ptr<const DataType> arg = params[base++];
  2157. try { GenericConvert(in->extent, arg, db); break; }
  2158. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to composite_text_with_extent to be a `planar_extent`")); }
  2159. } while (0);
  2160. return base;
  2161. }
  2162. // -----------------------------------------------------------------------------------------------------------
  2163. template <> size_t GenericFill<compound_shape_representation>(const DB& db, const LIST& params, compound_shape_representation* in)
  2164. {
  2165. size_t base = GenericFill(db, params, static_cast<shape_representation*>(in));
  2166. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to compound_shape_representation"); } return base;
  2167. }
  2168. // -----------------------------------------------------------------------------------------------------------
  2169. template <> size_t GenericFill<concentricity_tolerance>(const DB& db, const LIST& params, concentricity_tolerance* in)
  2170. {
  2171. size_t base = GenericFill(db, params, static_cast<geometric_tolerance_with_datum_reference*>(in));
  2172. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to concentricity_tolerance"); } return base;
  2173. }
  2174. // -----------------------------------------------------------------------------------------------------------
  2175. template <> size_t GenericFill<concept_feature_relationship>(const DB& db, const LIST& params, concept_feature_relationship* in)
  2176. {
  2177. size_t base = 0;
  2178. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to concept_feature_relationship"); } do { // convert the 'name' argument
  2179. std::shared_ptr<const DataType> arg = params[base++];
  2180. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::concept_feature_relationship, 4>::aux_is_derived[0] = true; break; }
  2181. try { GenericConvert(in->name, arg, db); break; }
  2182. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to concept_feature_relationship to be a `label`")); }
  2183. } while (0);
  2184. do { // convert the 'description' argument
  2185. std::shared_ptr<const DataType> arg = params[base++];
  2186. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::concept_feature_relationship, 4>::aux_is_derived[1] = true; break; }
  2187. if (dynamic_cast<const UNSET*>(&*arg)) break;
  2188. try { GenericConvert(in->description, arg, db); break; }
  2189. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to concept_feature_relationship to be a `text`")); }
  2190. } while (0);
  2191. do { // convert the 'relating_product_concept_feature' argument
  2192. std::shared_ptr<const DataType> arg = params[base++];
  2193. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::concept_feature_relationship, 4>::aux_is_derived[2] = true; break; }
  2194. try { GenericConvert(in->relating_product_concept_feature, arg, db); break; }
  2195. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to concept_feature_relationship to be a `product_concept_feature`")); }
  2196. } while (0);
  2197. do { // convert the 'related_product_concept_feature' argument
  2198. std::shared_ptr<const DataType> arg = params[base++];
  2199. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::concept_feature_relationship, 4>::aux_is_derived[3] = true; break; }
  2200. try { GenericConvert(in->related_product_concept_feature, arg, db); break; }
  2201. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to concept_feature_relationship to be a `product_concept_feature`")); }
  2202. } while (0);
  2203. return base;
  2204. }
  2205. // -----------------------------------------------------------------------------------------------------------
  2206. template <> size_t GenericFill<concept_feature_relationship_with_condition>(const DB& db, const LIST& params, concept_feature_relationship_with_condition* in)
  2207. {
  2208. size_t base = GenericFill(db, params, static_cast<concept_feature_relationship*>(in));
  2209. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to concept_feature_relationship_with_condition"); } do { // convert the 'conditional_operator' argument
  2210. std::shared_ptr<const DataType> arg = params[base++];
  2211. try { GenericConvert(in->conditional_operator, arg, db); break; }
  2212. 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`")); }
  2213. } while (0);
  2214. return base;
  2215. }
  2216. // -----------------------------------------------------------------------------------------------------------
  2217. template <> size_t GenericFill<product_concept_feature>(const DB& db, const LIST& params, product_concept_feature* in)
  2218. {
  2219. size_t base = 0;
  2220. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to product_concept_feature"); } do { // convert the 'id' argument
  2221. std::shared_ptr<const DataType> arg = params[base++];
  2222. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_concept_feature, 3>::aux_is_derived[0] = true; break; }
  2223. try { GenericConvert(in->id, arg, db); break; }
  2224. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to product_concept_feature to be a `identifier`")); }
  2225. } while (0);
  2226. do { // convert the 'name' argument
  2227. std::shared_ptr<const DataType> arg = params[base++];
  2228. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_concept_feature, 3>::aux_is_derived[1] = true; break; }
  2229. try { GenericConvert(in->name, arg, db); break; }
  2230. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to product_concept_feature to be a `label`")); }
  2231. } while (0);
  2232. do { // convert the 'description' argument
  2233. std::shared_ptr<const DataType> arg = params[base++];
  2234. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_concept_feature, 3>::aux_is_derived[2] = true; break; }
  2235. if (dynamic_cast<const UNSET*>(&*arg)) break;
  2236. try { GenericConvert(in->description, arg, db); break; }
  2237. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to product_concept_feature to be a `text`")); }
  2238. } while (0);
  2239. return base;
  2240. }
  2241. // -----------------------------------------------------------------------------------------------------------
  2242. template <> size_t GenericFill<conditional_concept_feature>(const DB& db, const LIST& params, conditional_concept_feature* in)
  2243. {
  2244. size_t base = GenericFill(db, params, static_cast<product_concept_feature*>(in));
  2245. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to conditional_concept_feature"); } do { // convert the 'condition' argument
  2246. std::shared_ptr<const DataType> arg = params[base++];
  2247. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::conditional_concept_feature, 1>::aux_is_derived[0] = true; break; }
  2248. try { GenericConvert(in->condition, arg, db); break; }
  2249. 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`")); }
  2250. } while (0);
  2251. return base;
  2252. }
  2253. // -----------------------------------------------------------------------------------------------------------
  2254. template <> size_t GenericFill<conductance_measure_with_unit>(const DB& db, const LIST& params, conductance_measure_with_unit* in)
  2255. {
  2256. size_t base = GenericFill(db, params, static_cast<measure_with_unit*>(in));
  2257. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to conductance_measure_with_unit"); } return base;
  2258. }
  2259. // -----------------------------------------------------------------------------------------------------------
  2260. template <> size_t GenericFill<conductance_unit>(const DB& db, const LIST& params, conductance_unit* in)
  2261. {
  2262. size_t base = GenericFill(db, params, static_cast<derived_unit*>(in));
  2263. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to conductance_unit"); } return base;
  2264. }
  2265. // -----------------------------------------------------------------------------------------------------------
  2266. template <> size_t GenericFill<configuration_item>(const DB& db, const LIST& params, configuration_item* in)
  2267. {
  2268. size_t base = 0;
  2269. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to configuration_item"); } do { // convert the 'id' argument
  2270. std::shared_ptr<const DataType> arg = params[base++];
  2271. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item, 5>::aux_is_derived[0] = true; break; }
  2272. try { GenericConvert(in->id, arg, db); break; }
  2273. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to configuration_item to be a `identifier`")); }
  2274. } while (0);
  2275. do { // convert the 'name' argument
  2276. std::shared_ptr<const DataType> arg = params[base++];
  2277. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item, 5>::aux_is_derived[1] = true; break; }
  2278. try { GenericConvert(in->name, arg, db); break; }
  2279. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to configuration_item to be a `label`")); }
  2280. } while (0);
  2281. do { // convert the 'description' argument
  2282. std::shared_ptr<const DataType> arg = params[base++];
  2283. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item, 5>::aux_is_derived[2] = true; break; }
  2284. if (dynamic_cast<const UNSET*>(&*arg)) break;
  2285. try { GenericConvert(in->description, arg, db); break; }
  2286. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to configuration_item to be a `text`")); }
  2287. } while (0);
  2288. do { // convert the 'item_concept' argument
  2289. std::shared_ptr<const DataType> arg = params[base++];
  2290. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item, 5>::aux_is_derived[3] = true; break; }
  2291. try { GenericConvert(in->item_concept, arg, db); break; }
  2292. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to configuration_item to be a `product_concept`")); }
  2293. } while (0);
  2294. do { // convert the 'purpose' argument
  2295. std::shared_ptr<const DataType> arg = params[base++];
  2296. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item, 5>::aux_is_derived[4] = true; break; }
  2297. if (dynamic_cast<const UNSET*>(&*arg)) break;
  2298. try { GenericConvert(in->purpose, arg, db); break; }
  2299. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to configuration_item to be a `label`")); }
  2300. } while (0);
  2301. return base;
  2302. }
  2303. // -----------------------------------------------------------------------------------------------------------
  2304. template <> size_t GenericFill<configurable_item>(const DB& db, const LIST& params, configurable_item* in)
  2305. {
  2306. size_t base = GenericFill(db, params, static_cast<configuration_item*>(in));
  2307. if (params.GetSize() < 6) { throw STEP::TypeError("expected 6 arguments to configurable_item"); } do { // convert the 'item_concept_feature' argument
  2308. std::shared_ptr<const DataType> arg = params[base++];
  2309. try { GenericConvert(in->item_concept_feature, arg, db); break; }
  2310. 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`")); }
  2311. } while (0);
  2312. return base;
  2313. }
  2314. // -----------------------------------------------------------------------------------------------------------
  2315. template <> size_t GenericFill<effectivity>(const DB& db, const LIST& params, effectivity* in)
  2316. {
  2317. size_t base = 0;
  2318. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to effectivity"); } do { // convert the 'id' argument
  2319. std::shared_ptr<const DataType> arg = params[base++];
  2320. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::effectivity, 1>::aux_is_derived[0] = true; break; }
  2321. try { GenericConvert(in->id, arg, db); break; }
  2322. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to effectivity to be a `identifier`")); }
  2323. } while (0);
  2324. return base;
  2325. }
  2326. // -----------------------------------------------------------------------------------------------------------
  2327. template <> size_t GenericFill<product_definition_effectivity>(const DB& db, const LIST& params, product_definition_effectivity* in)
  2328. {
  2329. size_t base = GenericFill(db, params, static_cast<effectivity*>(in));
  2330. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to product_definition_effectivity"); } do { // convert the 'usage' argument
  2331. std::shared_ptr<const DataType> arg = params[base++];
  2332. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_definition_effectivity, 1>::aux_is_derived[0] = true; break; }
  2333. try { GenericConvert(in->usage, arg, db); break; }
  2334. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to product_definition_effectivity to be a `product_definition_relationship`")); }
  2335. } while (0);
  2336. return base;
  2337. }
  2338. // -----------------------------------------------------------------------------------------------------------
  2339. template <> size_t GenericFill<configuration_effectivity>(const DB& db, const LIST& params, configuration_effectivity* in)
  2340. {
  2341. size_t base = GenericFill(db, params, static_cast<product_definition_effectivity*>(in));
  2342. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to configuration_effectivity"); } do { // convert the 'configuration' argument
  2343. std::shared_ptr<const DataType> arg = params[base++];
  2344. try { GenericConvert(in->configuration, arg, db); break; }
  2345. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to configuration_effectivity to be a `configuration_design`")); }
  2346. } while (0);
  2347. return base;
  2348. }
  2349. // -----------------------------------------------------------------------------------------------------------
  2350. template <> size_t GenericFill<configuration_item_relationship>(const DB& db, const LIST& params, configuration_item_relationship* in)
  2351. {
  2352. size_t base = 0;
  2353. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to configuration_item_relationship"); } do { // convert the 'name' argument
  2354. std::shared_ptr<const DataType> arg = params[base++];
  2355. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item_relationship, 4>::aux_is_derived[0] = true; break; }
  2356. try { GenericConvert(in->name, arg, db); break; }
  2357. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to configuration_item_relationship to be a `label`")); }
  2358. } while (0);
  2359. do { // convert the 'description' argument
  2360. std::shared_ptr<const DataType> arg = params[base++];
  2361. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item_relationship, 4>::aux_is_derived[1] = true; break; }
  2362. if (dynamic_cast<const UNSET*>(&*arg)) break;
  2363. try { GenericConvert(in->description, arg, db); break; }
  2364. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to configuration_item_relationship to be a `text`")); }
  2365. } while (0);
  2366. do { // convert the 'relating_configuration_item' argument
  2367. std::shared_ptr<const DataType> arg = params[base++];
  2368. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item_relationship, 4>::aux_is_derived[2] = true; break; }
  2369. try { GenericConvert(in->relating_configuration_item, arg, db); break; }
  2370. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to configuration_item_relationship to be a `configuration_item`")); }
  2371. } while (0);
  2372. do { // convert the 'related_configuration_item' argument
  2373. std::shared_ptr<const DataType> arg = params[base++];
  2374. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::configuration_item_relationship, 4>::aux_is_derived[3] = true; break; }
  2375. try { GenericConvert(in->related_configuration_item, arg, db); break; }
  2376. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to configuration_item_relationship to be a `configuration_item`")); }
  2377. } while (0);
  2378. return base;
  2379. }
  2380. // -----------------------------------------------------------------------------------------------------------
  2381. template <> size_t GenericFill<configuration_item_hierarchical_relationship>(const DB& db, const LIST& params, configuration_item_hierarchical_relationship* in)
  2382. {
  2383. size_t base = GenericFill(db, params, static_cast<configuration_item_relationship*>(in));
  2384. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to configuration_item_hierarchical_relationship"); } return base;
  2385. }
  2386. // -----------------------------------------------------------------------------------------------------------
  2387. template <> size_t GenericFill<configuration_item_revision_sequence>(const DB& db, const LIST& params, configuration_item_revision_sequence* in)
  2388. {
  2389. size_t base = GenericFill(db, params, static_cast<configuration_item_relationship*>(in));
  2390. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to configuration_item_revision_sequence"); } return base;
  2391. }
  2392. // -----------------------------------------------------------------------------------------------------------
  2393. template <> size_t GenericFill<configured_effectivity_assignment>(const DB& db, const LIST& params, configured_effectivity_assignment* in)
  2394. {
  2395. size_t base = GenericFill(db, params, static_cast<effectivity_assignment*>(in));
  2396. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to configured_effectivity_assignment"); } do { // convert the 'items' argument
  2397. std::shared_ptr<const DataType> arg = params[base++];
  2398. try { GenericConvert(in->items, arg, db); break; }
  2399. 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`")); }
  2400. } while (0);
  2401. return base;
  2402. }
  2403. // -----------------------------------------------------------------------------------------------------------
  2404. template <> size_t GenericFill<configured_effectivity_context_assignment>(const DB& db, const LIST& params, configured_effectivity_context_assignment* in)
  2405. {
  2406. size_t base = GenericFill(db, params, static_cast<effectivity_context_assignment*>(in));
  2407. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to configured_effectivity_context_assignment"); } do { // convert the 'items' argument
  2408. std::shared_ptr<const DataType> arg = params[base++];
  2409. try { GenericConvert(in->items, arg, db); break; }
  2410. 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`")); }
  2411. } while (0);
  2412. return base;
  2413. }
  2414. // -----------------------------------------------------------------------------------------------------------
  2415. template <> size_t GenericFill<conical_stepped_hole_transition>(const DB& db, const LIST& params, conical_stepped_hole_transition* in)
  2416. {
  2417. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  2418. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to conical_stepped_hole_transition"); } do { // convert the 'transition_number' argument
  2419. std::shared_ptr<const DataType> arg = params[base++];
  2420. try { GenericConvert(in->transition_number, arg, db); break; }
  2421. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to conical_stepped_hole_transition to be a `positive_integer`")); }
  2422. } while (0);
  2423. do { // convert the 'cone_apex_angle' argument
  2424. std::shared_ptr<const DataType> arg = params[base++];
  2425. try { GenericConvert(in->cone_apex_angle, arg, db); break; }
  2426. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to conical_stepped_hole_transition to be a `plane_angle_measure`")); }
  2427. } while (0);
  2428. do { // convert the 'cone_base_radius' argument
  2429. std::shared_ptr<const DataType> arg = params[base++];
  2430. try { GenericConvert(in->cone_base_radius, arg, db); break; }
  2431. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to conical_stepped_hole_transition to be a `positive_length_measure`")); }
  2432. } while (0);
  2433. return base;
  2434. }
  2435. // -----------------------------------------------------------------------------------------------------------
  2436. template <> size_t GenericFill<elementary_surface>(const DB& db, const LIST& params, elementary_surface* in)
  2437. {
  2438. size_t base = GenericFill(db, params, static_cast<surface*>(in));
  2439. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to elementary_surface"); } do { // convert the 'position' argument
  2440. std::shared_ptr<const DataType> arg = params[base++];
  2441. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::elementary_surface, 1>::aux_is_derived[0] = true; break; }
  2442. try { GenericConvert(in->position, arg, db); break; }
  2443. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to elementary_surface to be a `axis2_placement_3d`")); }
  2444. } while (0);
  2445. return base;
  2446. }
  2447. // -----------------------------------------------------------------------------------------------------------
  2448. template <> size_t GenericFill<conical_surface>(const DB& db, const LIST& params, conical_surface* in)
  2449. {
  2450. size_t base = GenericFill(db, params, static_cast<elementary_surface*>(in));
  2451. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to conical_surface"); } do { // convert the 'radius' argument
  2452. std::shared_ptr<const DataType> arg = params[base++];
  2453. try { GenericConvert(in->radius, arg, db); break; }
  2454. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to conical_surface to be a `length_measure`")); }
  2455. } while (0);
  2456. do { // convert the 'semi_angle' argument
  2457. std::shared_ptr<const DataType> arg = params[base++];
  2458. try { GenericConvert(in->semi_angle, arg, db); break; }
  2459. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to conical_surface to be a `plane_angle_measure`")); }
  2460. } while (0);
  2461. return base;
  2462. }
  2463. // -----------------------------------------------------------------------------------------------------------
  2464. template <> size_t GenericFill<connected_edge_set>(const DB& db, const LIST& params, connected_edge_set* in)
  2465. {
  2466. size_t base = GenericFill(db, params, static_cast<topological_representation_item*>(in));
  2467. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to connected_edge_set"); } do { // convert the 'ces_edges' argument
  2468. std::shared_ptr<const DataType> arg = params[base++];
  2469. try { GenericConvert(in->ces_edges, arg, db); break; }
  2470. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to connected_edge_set to be a `SET [1:?] OF edge`")); }
  2471. } while (0);
  2472. return base;
  2473. }
  2474. // -----------------------------------------------------------------------------------------------------------
  2475. template <> size_t GenericFill<connected_face_sub_set>(const DB& db, const LIST& params, connected_face_sub_set* in)
  2476. {
  2477. size_t base = GenericFill(db, params, static_cast<connected_face_set*>(in));
  2478. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to connected_face_sub_set"); } do { // convert the 'parent_face_set' argument
  2479. std::shared_ptr<const DataType> arg = params[base++];
  2480. try { GenericConvert(in->parent_face_set, arg, db); break; }
  2481. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to connected_face_sub_set to be a `connected_face_set`")); }
  2482. } while (0);
  2483. return base;
  2484. }
  2485. // -----------------------------------------------------------------------------------------------------------
  2486. template <> size_t GenericFill<constructive_geometry_representation>(const DB& db, const LIST& params, constructive_geometry_representation* in)
  2487. {
  2488. size_t base = GenericFill(db, params, static_cast<representation*>(in));
  2489. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to constructive_geometry_representation"); } return base;
  2490. }
  2491. // -----------------------------------------------------------------------------------------------------------
  2492. template <> size_t GenericFill<representation_relationship>(const DB& db, const LIST& params, representation_relationship* in)
  2493. {
  2494. size_t base = 0;
  2495. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to representation_relationship"); } do { // convert the 'name' argument
  2496. std::shared_ptr<const DataType> arg = params[base++];
  2497. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::representation_relationship, 4>::aux_is_derived[0] = true; break; }
  2498. try { GenericConvert(in->name, arg, db); break; }
  2499. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to representation_relationship to be a `label`")); }
  2500. } while (0);
  2501. do { // convert the 'description' argument
  2502. std::shared_ptr<const DataType> arg = params[base++];
  2503. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::representation_relationship, 4>::aux_is_derived[1] = true; break; }
  2504. if (dynamic_cast<const UNSET*>(&*arg)) break;
  2505. try { GenericConvert(in->description, arg, db); break; }
  2506. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to representation_relationship to be a `text`")); }
  2507. } while (0);
  2508. do { // convert the 'rep_1' argument
  2509. std::shared_ptr<const DataType> arg = params[base++];
  2510. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::representation_relationship, 4>::aux_is_derived[2] = true; break; }
  2511. try { GenericConvert(in->rep_1, arg, db); break; }
  2512. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to representation_relationship to be a `representation`")); }
  2513. } while (0);
  2514. do { // convert the 'rep_2' argument
  2515. std::shared_ptr<const DataType> arg = params[base++];
  2516. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::representation_relationship, 4>::aux_is_derived[3] = true; break; }
  2517. try { GenericConvert(in->rep_2, arg, db); break; }
  2518. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to representation_relationship to be a `representation`")); }
  2519. } while (0);
  2520. return base;
  2521. }
  2522. // -----------------------------------------------------------------------------------------------------------
  2523. template <> size_t GenericFill<constructive_geometry_representation_relationship>(const DB& db, const LIST& params, constructive_geometry_representation_relationship* in)
  2524. {
  2525. size_t base = GenericFill(db, params, static_cast<representation_relationship*>(in));
  2526. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to constructive_geometry_representation_relationship"); } return base;
  2527. }
  2528. // -----------------------------------------------------------------------------------------------------------
  2529. template <> size_t GenericFill<contact_ratio_representation>(const DB& db, const LIST& params, contact_ratio_representation* in)
  2530. {
  2531. size_t base = GenericFill(db, params, static_cast<representation*>(in));
  2532. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to contact_ratio_representation"); } return base;
  2533. }
  2534. // -----------------------------------------------------------------------------------------------------------
  2535. template <> size_t GenericFill<invisibility>(const DB& db, const LIST& params, invisibility* in)
  2536. {
  2537. size_t base = 0;
  2538. if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to invisibility"); } do { // convert the 'invisible_items' argument
  2539. std::shared_ptr<const DataType> arg = params[base++];
  2540. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::invisibility, 1>::aux_is_derived[0] = true; break; }
  2541. try { GenericConvert(in->invisible_items, arg, db); break; }
  2542. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to invisibility to be a `SET [1:?] OF invisible_item`")); }
  2543. } while (0);
  2544. return base;
  2545. }
  2546. // -----------------------------------------------------------------------------------------------------------
  2547. template <> size_t GenericFill<context_dependent_invisibility>(const DB& db, const LIST& params, context_dependent_invisibility* in)
  2548. {
  2549. size_t base = GenericFill(db, params, static_cast<invisibility*>(in));
  2550. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to context_dependent_invisibility"); } do { // convert the 'presentation_context' argument
  2551. std::shared_ptr<const DataType> arg = params[base++];
  2552. try { GenericConvert(in->presentation_context, arg, db); break; }
  2553. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to context_dependent_invisibility to be a `invisibility_context`")); }
  2554. } while (0);
  2555. return base;
  2556. }
  2557. // -----------------------------------------------------------------------------------------------------------
  2558. template <> size_t GenericFill<over_riding_styled_item>(const DB& db, const LIST& params, over_riding_styled_item* in)
  2559. {
  2560. size_t base = GenericFill(db, params, static_cast<styled_item*>(in));
  2561. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to over_riding_styled_item"); } do { // convert the 'over_ridden_style' argument
  2562. std::shared_ptr<const DataType> arg = params[base++];
  2563. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::over_riding_styled_item, 1>::aux_is_derived[0] = true; break; }
  2564. try { GenericConvert(in->over_ridden_style, arg, db); break; }
  2565. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to over_riding_styled_item to be a `styled_item`")); }
  2566. } while (0);
  2567. return base;
  2568. }
  2569. // -----------------------------------------------------------------------------------------------------------
  2570. template <> size_t GenericFill<context_dependent_over_riding_styled_item>(const DB& db, const LIST& params, context_dependent_over_riding_styled_item* in)
  2571. {
  2572. size_t base = GenericFill(db, params, static_cast<over_riding_styled_item*>(in));
  2573. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to context_dependent_over_riding_styled_item"); } do { // convert the 'style_context' argument
  2574. std::shared_ptr<const DataType> arg = params[base++];
  2575. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::context_dependent_over_riding_styled_item, 1>::aux_is_derived[0] = true; break; }
  2576. try { GenericConvert(in->style_context, arg, db); break; }
  2577. 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`")); }
  2578. } while (0);
  2579. return base;
  2580. }
  2581. // -----------------------------------------------------------------------------------------------------------
  2582. template <> size_t GenericFill<context_dependent_unit>(const DB& db, const LIST& params, context_dependent_unit* in)
  2583. {
  2584. size_t base = GenericFill(db, params, static_cast<named_unit*>(in));
  2585. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to context_dependent_unit"); } do { // convert the 'name' argument
  2586. std::shared_ptr<const DataType> arg = params[base++];
  2587. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::context_dependent_unit, 1>::aux_is_derived[0] = true; break; }
  2588. try { GenericConvert(in->name, arg, db); break; }
  2589. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to context_dependent_unit to be a `label`")); }
  2590. } while (0);
  2591. return base;
  2592. }
  2593. // -----------------------------------------------------------------------------------------------------------
  2594. template <> size_t GenericFill<conversion_based_unit>(const DB& db, const LIST& params, conversion_based_unit* in)
  2595. {
  2596. size_t base = GenericFill(db, params, static_cast<named_unit*>(in));
  2597. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to conversion_based_unit"); } do { // convert the 'name' argument
  2598. std::shared_ptr<const DataType> arg = params[base++];
  2599. try { GenericConvert(in->name, arg, db); break; }
  2600. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to conversion_based_unit to be a `label`")); }
  2601. } while (0);
  2602. do { // convert the 'conversion_factor' argument
  2603. std::shared_ptr<const DataType> arg = params[base++];
  2604. try { GenericConvert(in->conversion_factor, arg, db); break; }
  2605. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to conversion_based_unit to be a `measure_with_unit`")); }
  2606. } while (0);
  2607. return base;
  2608. }
  2609. // -----------------------------------------------------------------------------------------------------------
  2610. template <> size_t GenericFill<csg_shape_representation>(const DB& db, const LIST& params, csg_shape_representation* in)
  2611. {
  2612. size_t base = GenericFill(db, params, static_cast<shape_representation*>(in));
  2613. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to csg_shape_representation"); } return base;
  2614. }
  2615. // -----------------------------------------------------------------------------------------------------------
  2616. template <> size_t GenericFill<csg_solid>(const DB& db, const LIST& params, csg_solid* in)
  2617. {
  2618. size_t base = GenericFill(db, params, static_cast<solid_model*>(in));
  2619. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to csg_solid"); } do { // convert the 'tree_root_expression' argument
  2620. std::shared_ptr<const DataType> arg = params[base++];
  2621. try { GenericConvert(in->tree_root_expression, arg, db); break; }
  2622. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to csg_solid to be a `csg_select`")); }
  2623. } while (0);
  2624. return base;
  2625. }
  2626. // -----------------------------------------------------------------------------------------------------------
  2627. template <> size_t GenericFill<currency>(const DB& db, const LIST& params, currency* in)
  2628. {
  2629. size_t base = GenericFill(db, params, static_cast<context_dependent_unit*>(in));
  2630. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to currency"); } return base;
  2631. }
  2632. // -----------------------------------------------------------------------------------------------------------
  2633. template <> size_t GenericFill<currency_measure_with_unit>(const DB& db, const LIST& params, currency_measure_with_unit* in)
  2634. {
  2635. size_t base = GenericFill(db, params, static_cast<measure_with_unit*>(in));
  2636. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to currency_measure_with_unit"); } return base;
  2637. }
  2638. // -----------------------------------------------------------------------------------------------------------
  2639. template <> size_t GenericFill<curve_bounded_surface>(const DB& db, const LIST& params, curve_bounded_surface* in)
  2640. {
  2641. size_t base = GenericFill(db, params, static_cast<bounded_surface*>(in));
  2642. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to curve_bounded_surface"); } do { // convert the 'basis_surface' argument
  2643. std::shared_ptr<const DataType> arg = params[base++];
  2644. try { GenericConvert(in->basis_surface, arg, db); break; }
  2645. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to curve_bounded_surface to be a `surface`")); }
  2646. } while (0);
  2647. do { // convert the 'boundaries' argument
  2648. std::shared_ptr<const DataType> arg = params[base++];
  2649. try { GenericConvert(in->boundaries, arg, db); break; }
  2650. 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`")); }
  2651. } while (0);
  2652. do { // convert the 'implicit_outer' argument
  2653. std::shared_ptr<const DataType> arg = params[base++];
  2654. try { GenericConvert(in->implicit_outer, arg, db); break; }
  2655. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to curve_bounded_surface to be a `BOOLEAN`")); }
  2656. } while (0);
  2657. return base;
  2658. }
  2659. // -----------------------------------------------------------------------------------------------------------
  2660. template <> size_t GenericFill<curve_dimension>(const DB& db, const LIST& params, curve_dimension* in)
  2661. {
  2662. size_t base = GenericFill(db, params, static_cast<dimension_curve_directed_callout*>(in));
  2663. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to curve_dimension"); } return base;
  2664. }
  2665. // -----------------------------------------------------------------------------------------------------------
  2666. template <> size_t GenericFill<curve_replica>(const DB& db, const LIST& params, curve_replica* in)
  2667. {
  2668. size_t base = GenericFill(db, params, static_cast<curve*>(in));
  2669. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to curve_replica"); } do { // convert the 'parent_curve' argument
  2670. std::shared_ptr<const DataType> arg = params[base++];
  2671. try { GenericConvert(in->parent_curve, arg, db); break; }
  2672. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to curve_replica to be a `curve`")); }
  2673. } while (0);
  2674. do { // convert the 'transformation' argument
  2675. std::shared_ptr<const DataType> arg = params[base++];
  2676. try { GenericConvert(in->transformation, arg, db); break; }
  2677. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to curve_replica to be a `cartesian_transformation_operator`")); }
  2678. } while (0);
  2679. return base;
  2680. }
  2681. // -----------------------------------------------------------------------------------------------------------
  2682. template <> size_t GenericFill<curve_style>(const DB& db, const LIST& params, curve_style* in)
  2683. {
  2684. size_t base = GenericFill(db, params, static_cast<founded_item*>(in));
  2685. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to curve_style"); } do { // convert the 'name' argument
  2686. std::shared_ptr<const DataType> arg = params[base++];
  2687. try { GenericConvert(in->name, arg, db); break; }
  2688. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to curve_style to be a `label`")); }
  2689. } while (0);
  2690. do { // convert the 'curve_font' argument
  2691. std::shared_ptr<const DataType> arg = params[base++];
  2692. try { GenericConvert(in->curve_font, arg, db); break; }
  2693. 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`")); }
  2694. } while (0);
  2695. do { // convert the 'curve_width' argument
  2696. std::shared_ptr<const DataType> arg = params[base++];
  2697. try { GenericConvert(in->curve_width, arg, db); break; }
  2698. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to curve_style to be a `size_select`")); }
  2699. } while (0);
  2700. do { // convert the 'curve_colour' argument
  2701. std::shared_ptr<const DataType> arg = params[base++];
  2702. try { GenericConvert(in->curve_colour, arg, db); break; }
  2703. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to curve_style to be a `colour`")); }
  2704. } while (0);
  2705. return base;
  2706. }
  2707. // -----------------------------------------------------------------------------------------------------------
  2708. template <> size_t GenericFill<curve_style_font>(const DB& db, const LIST& params, curve_style_font* in)
  2709. {
  2710. size_t base = GenericFill(db, params, static_cast<founded_item*>(in));
  2711. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to curve_style_font"); } do { // convert the 'name' argument
  2712. std::shared_ptr<const DataType> arg = params[base++];
  2713. try { GenericConvert(in->name, arg, db); break; }
  2714. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to curve_style_font to be a `label`")); }
  2715. } while (0);
  2716. do { // convert the 'pattern_list' argument
  2717. std::shared_ptr<const DataType> arg = params[base++];
  2718. try { GenericConvert(in->pattern_list, arg, db); break; }
  2719. 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`")); }
  2720. } while (0);
  2721. return base;
  2722. }
  2723. // -----------------------------------------------------------------------------------------------------------
  2724. template <> size_t GenericFill<curve_style_font_and_scaling>(const DB& db, const LIST& params, curve_style_font_and_scaling* in)
  2725. {
  2726. size_t base = GenericFill(db, params, static_cast<founded_item*>(in));
  2727. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to curve_style_font_and_scaling"); } do { // convert the 'name' argument
  2728. std::shared_ptr<const DataType> arg = params[base++];
  2729. try { GenericConvert(in->name, arg, db); break; }
  2730. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to curve_style_font_and_scaling to be a `label`")); }
  2731. } while (0);
  2732. do { // convert the 'curve_font' argument
  2733. std::shared_ptr<const DataType> arg = params[base++];
  2734. try { GenericConvert(in->curve_font, arg, db); break; }
  2735. 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`")); }
  2736. } while (0);
  2737. do { // convert the 'curve_font_scaling' argument
  2738. std::shared_ptr<const DataType> arg = params[base++];
  2739. try { GenericConvert(in->curve_font_scaling, arg, db); break; }
  2740. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to curve_style_font_and_scaling to be a `REAL`")); }
  2741. } while (0);
  2742. return base;
  2743. }
  2744. // -----------------------------------------------------------------------------------------------------------
  2745. template <> size_t GenericFill<curve_style_font_pattern>(const DB& db, const LIST& params, curve_style_font_pattern* in)
  2746. {
  2747. size_t base = GenericFill(db, params, static_cast<founded_item*>(in));
  2748. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to curve_style_font_pattern"); } do { // convert the 'visible_segment_length' argument
  2749. std::shared_ptr<const DataType> arg = params[base++];
  2750. try { GenericConvert(in->visible_segment_length, arg, db); break; }
  2751. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to curve_style_font_pattern to be a `positive_length_measure`")); }
  2752. } while (0);
  2753. do { // convert the 'invisible_segment_length' argument
  2754. std::shared_ptr<const DataType> arg = params[base++];
  2755. try { GenericConvert(in->invisible_segment_length, arg, db); break; }
  2756. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to curve_style_font_pattern to be a `positive_length_measure`")); }
  2757. } while (0);
  2758. return base;
  2759. }
  2760. // -----------------------------------------------------------------------------------------------------------
  2761. template <> size_t GenericFill<curve_swept_solid_shape_representation>(const DB& db, const LIST& params, curve_swept_solid_shape_representation* in)
  2762. {
  2763. size_t base = GenericFill(db, params, static_cast<shape_representation*>(in));
  2764. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to curve_swept_solid_shape_representation"); } return base;
  2765. }
  2766. // -----------------------------------------------------------------------------------------------------------
  2767. template <> size_t GenericFill<cylindrical_surface>(const DB& db, const LIST& params, cylindrical_surface* in)
  2768. {
  2769. size_t base = GenericFill(db, params, static_cast<elementary_surface*>(in));
  2770. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to cylindrical_surface"); } do { // convert the 'radius' argument
  2771. std::shared_ptr<const DataType> arg = params[base++];
  2772. try { GenericConvert(in->radius, arg, db); break; }
  2773. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to cylindrical_surface to be a `positive_length_measure`")); }
  2774. } while (0);
  2775. return base;
  2776. }
  2777. // -----------------------------------------------------------------------------------------------------------
  2778. template <> size_t GenericFill<cylindricity_tolerance>(const DB& db, const LIST& params, cylindricity_tolerance* in)
  2779. {
  2780. size_t base = GenericFill(db, params, static_cast<geometric_tolerance*>(in));
  2781. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to cylindricity_tolerance"); } return base;
  2782. }
  2783. // -----------------------------------------------------------------------------------------------------------
  2784. /*template <> size_t GenericFill<date_representation_item>(const DB& db, const LIST& params, date_representation_item* in)
  2785. {
  2786. size_t base = 0;
  2787. return base;
  2788. }
  2789. // -----------------------------------------------------------------------------------------------------------
  2790. template <> size_t GenericFill<date_time_representation_item>(const DB& db, const LIST& params, date_time_representation_item* in)
  2791. {
  2792. size_t base = 0;
  2793. return base;
  2794. }*/
  2795. // -----------------------------------------------------------------------------------------------------------
  2796. template <> size_t GenericFill<dated_effectivity>(const DB& db, const LIST& params, dated_effectivity* in)
  2797. {
  2798. size_t base = GenericFill(db, params, static_cast<effectivity*>(in));
  2799. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to dated_effectivity"); } do { // convert the 'effectivity_end_date' argument
  2800. std::shared_ptr<const DataType> arg = params[base++];
  2801. if (dynamic_cast<const UNSET*>(&*arg)) break;
  2802. try { GenericConvert(in->effectivity_end_date, arg, db); break; }
  2803. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to dated_effectivity to be a `date_time_or_event_occurrence`")); }
  2804. } while (0);
  2805. do { // convert the 'effectivity_start_date' argument
  2806. std::shared_ptr<const DataType> arg = params[base++];
  2807. try { GenericConvert(in->effectivity_start_date, arg, db); break; }
  2808. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to dated_effectivity to be a `date_time_or_event_occurrence`")); }
  2809. } while (0);
  2810. return base;
  2811. }
  2812. // -----------------------------------------------------------------------------------------------------------
  2813. template <> size_t GenericFill<datum>(const DB& db, const LIST& params, datum* in)
  2814. {
  2815. size_t base = GenericFill(db, params, static_cast<shape_aspect*>(in));
  2816. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to datum"); } do { // convert the 'identification' argument
  2817. std::shared_ptr<const DataType> arg = params[base++];
  2818. try { GenericConvert(in->identification, arg, db); break; }
  2819. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to datum to be a `identifier`")); }
  2820. } while (0);
  2821. return base;
  2822. }
  2823. // -----------------------------------------------------------------------------------------------------------
  2824. template <> size_t GenericFill<datum_feature>(const DB& db, const LIST& params, datum_feature* in)
  2825. {
  2826. size_t base = GenericFill(db, params, static_cast<shape_aspect*>(in));
  2827. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to datum_feature"); } return base;
  2828. }
  2829. // -----------------------------------------------------------------------------------------------------------
  2830. template <> size_t GenericFill<datum_feature_callout>(const DB& db, const LIST& params, datum_feature_callout* in)
  2831. {
  2832. size_t base = GenericFill(db, params, static_cast<draughting_callout*>(in));
  2833. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to datum_feature_callout"); } return base;
  2834. }
  2835. // -----------------------------------------------------------------------------------------------------------
  2836. template <> size_t GenericFill<datum_reference>(const DB& db, const LIST& params, datum_reference* in)
  2837. {
  2838. size_t base = 0;
  2839. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to datum_reference"); } do { // convert the 'precedence' argument
  2840. std::shared_ptr<const DataType> arg = params[base++];
  2841. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::datum_reference, 2>::aux_is_derived[0] = true; break; }
  2842. try { GenericConvert(in->precedence, arg, db); break; }
  2843. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to datum_reference to be a `INTEGER`")); }
  2844. } while (0);
  2845. do { // convert the 'referenced_datum' argument
  2846. std::shared_ptr<const DataType> arg = params[base++];
  2847. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::datum_reference, 2>::aux_is_derived[1] = true; break; }
  2848. try { GenericConvert(in->referenced_datum, arg, db); break; }
  2849. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to datum_reference to be a `datum`")); }
  2850. } while (0);
  2851. return base;
  2852. }
  2853. // -----------------------------------------------------------------------------------------------------------
  2854. template <> size_t GenericFill<datum_target>(const DB& db, const LIST& params, datum_target* in)
  2855. {
  2856. size_t base = GenericFill(db, params, static_cast<shape_aspect*>(in));
  2857. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to datum_target"); } do { // convert the 'target_id' argument
  2858. std::shared_ptr<const DataType> arg = params[base++];
  2859. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::datum_target, 1>::aux_is_derived[0] = true; break; }
  2860. try { GenericConvert(in->target_id, arg, db); break; }
  2861. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to datum_target to be a `identifier`")); }
  2862. } while (0);
  2863. return base;
  2864. }
  2865. // -----------------------------------------------------------------------------------------------------------
  2866. template <> size_t GenericFill<datum_target_callout>(const DB& db, const LIST& params, datum_target_callout* in)
  2867. {
  2868. size_t base = GenericFill(db, params, static_cast<draughting_callout*>(in));
  2869. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to datum_target_callout"); } return base;
  2870. }
  2871. // -----------------------------------------------------------------------------------------------------------
  2872. template <> size_t GenericFill<default_tolerance_table>(const DB& db, const LIST& params, default_tolerance_table* in)
  2873. {
  2874. size_t base = GenericFill(db, params, static_cast<representation*>(in));
  2875. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to default_tolerance_table"); } return base;
  2876. }
  2877. // -----------------------------------------------------------------------------------------------------------
  2878. template <> size_t GenericFill<default_tolerance_table_cell>(const DB& db, const LIST& params, default_tolerance_table_cell* in)
  2879. {
  2880. size_t base = GenericFill(db, params, static_cast<compound_representation_item*>(in));
  2881. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to default_tolerance_table_cell"); } return base;
  2882. }
  2883. // -----------------------------------------------------------------------------------------------------------
  2884. template <> size_t GenericFill<defined_symbol>(const DB& db, const LIST& params, defined_symbol* in)
  2885. {
  2886. size_t base = GenericFill(db, params, static_cast<geometric_representation_item*>(in));
  2887. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to defined_symbol"); } do { // convert the 'definition' argument
  2888. std::shared_ptr<const DataType> arg = params[base++];
  2889. try { GenericConvert(in->definition, arg, db); break; }
  2890. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to defined_symbol to be a `defined_symbol_select`")); }
  2891. } while (0);
  2892. do { // convert the 'target' argument
  2893. std::shared_ptr<const DataType> arg = params[base++];
  2894. try { GenericConvert(in->target, arg, db); break; }
  2895. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to defined_symbol to be a `symbol_target`")); }
  2896. } while (0);
  2897. return base;
  2898. }
  2899. // -----------------------------------------------------------------------------------------------------------
  2900. template <> size_t GenericFill<definitional_representation>(const DB& db, const LIST& params, definitional_representation* in)
  2901. {
  2902. size_t base = GenericFill(db, params, static_cast<representation*>(in));
  2903. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to definitional_representation"); } return base;
  2904. }
  2905. // -----------------------------------------------------------------------------------------------------------
  2906. template <> size_t GenericFill<definitional_representation_relationship>(const DB& db, const LIST& params, definitional_representation_relationship* in)
  2907. {
  2908. size_t base = GenericFill(db, params, static_cast<representation_relationship*>(in));
  2909. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to definitional_representation_relationship"); } return base;
  2910. }
  2911. // -----------------------------------------------------------------------------------------------------------
  2912. template <> size_t GenericFill<definitional_representation_relationship_with_same_context>(const DB& db, const LIST& params, definitional_representation_relationship_with_same_context* in)
  2913. {
  2914. size_t base = GenericFill(db, params, static_cast<definitional_representation_relationship*>(in));
  2915. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to definitional_representation_relationship_with_same_context"); } return base;
  2916. }
  2917. // -----------------------------------------------------------------------------------------------------------
  2918. template <> size_t GenericFill<degenerate_pcurve>(const DB& db, const LIST& params, degenerate_pcurve* in)
  2919. {
  2920. size_t base = GenericFill(db, params, static_cast<point*>(in));
  2921. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to degenerate_pcurve"); } do { // convert the 'basis_surface' argument
  2922. std::shared_ptr<const DataType> arg = params[base++];
  2923. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::degenerate_pcurve, 2>::aux_is_derived[0] = true; break; }
  2924. try { GenericConvert(in->basis_surface, arg, db); break; }
  2925. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to degenerate_pcurve to be a `surface`")); }
  2926. } while (0);
  2927. do { // convert the 'reference_to_curve' argument
  2928. std::shared_ptr<const DataType> arg = params[base++];
  2929. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::degenerate_pcurve, 2>::aux_is_derived[1] = true; break; }
  2930. try { GenericConvert(in->reference_to_curve, arg, db); break; }
  2931. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to degenerate_pcurve to be a `definitional_representation`")); }
  2932. } while (0);
  2933. return base;
  2934. }
  2935. // -----------------------------------------------------------------------------------------------------------
  2936. template <> size_t GenericFill<toroidal_surface>(const DB& db, const LIST& params, toroidal_surface* in)
  2937. {
  2938. size_t base = GenericFill(db, params, static_cast<elementary_surface*>(in));
  2939. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to toroidal_surface"); } do { // convert the 'major_radius' argument
  2940. std::shared_ptr<const DataType> arg = params[base++];
  2941. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::toroidal_surface, 2>::aux_is_derived[0] = true; break; }
  2942. try { GenericConvert(in->major_radius, arg, db); break; }
  2943. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to toroidal_surface to be a `positive_length_measure`")); }
  2944. } while (0);
  2945. do { // convert the 'minor_radius' argument
  2946. std::shared_ptr<const DataType> arg = params[base++];
  2947. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::toroidal_surface, 2>::aux_is_derived[1] = true; break; }
  2948. try { GenericConvert(in->minor_radius, arg, db); break; }
  2949. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to toroidal_surface to be a `positive_length_measure`")); }
  2950. } while (0);
  2951. return base;
  2952. }
  2953. // -----------------------------------------------------------------------------------------------------------
  2954. template <> size_t GenericFill<degenerate_toroidal_surface>(const DB& db, const LIST& params, degenerate_toroidal_surface* in)
  2955. {
  2956. size_t base = GenericFill(db, params, static_cast<toroidal_surface*>(in));
  2957. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to degenerate_toroidal_surface"); } do { // convert the 'select_outer' argument
  2958. std::shared_ptr<const DataType> arg = params[base++];
  2959. try { GenericConvert(in->select_outer, arg, db); break; }
  2960. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to degenerate_toroidal_surface to be a `BOOLEAN`")); }
  2961. } while (0);
  2962. return base;
  2963. }
  2964. // -----------------------------------------------------------------------------------------------------------
  2965. template <> size_t GenericFill<descriptive_representation_item>(const DB& db, const LIST& params, descriptive_representation_item* in)
  2966. {
  2967. size_t base = GenericFill(db, params, static_cast<representation_item*>(in));
  2968. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to descriptive_representation_item"); } do { // convert the 'description' argument
  2969. std::shared_ptr<const DataType> arg = params[base++];
  2970. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::descriptive_representation_item, 1>::aux_is_derived[0] = true; break; }
  2971. try { GenericConvert(in->description, arg, db); break; }
  2972. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to descriptive_representation_item to be a `text`")); }
  2973. } while (0);
  2974. return base;
  2975. }
  2976. // -----------------------------------------------------------------------------------------------------------
  2977. template <> size_t GenericFill<product_definition_context>(const DB& db, const LIST& params, product_definition_context* in)
  2978. {
  2979. size_t base = GenericFill(db, params, static_cast<application_context_element*>(in));
  2980. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to product_definition_context"); } do { // convert the 'life_cycle_stage' argument
  2981. std::shared_ptr<const DataType> arg = params[base++];
  2982. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::product_definition_context, 1>::aux_is_derived[0] = true; break; }
  2983. try { GenericConvert(in->life_cycle_stage, arg, db); break; }
  2984. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to product_definition_context to be a `label`")); }
  2985. } while (0);
  2986. return base;
  2987. }
  2988. // -----------------------------------------------------------------------------------------------------------
  2989. template <> size_t GenericFill<design_context>(const DB& db, const LIST& params, design_context* in)
  2990. {
  2991. size_t base = GenericFill(db, params, static_cast<product_definition_context*>(in));
  2992. if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to design_context"); } return base;
  2993. }
  2994. // -----------------------------------------------------------------------------------------------------------
  2995. template <> size_t GenericFill<design_make_from_relationship>(const DB& db, const LIST& params, design_make_from_relationship* in)
  2996. {
  2997. size_t base = GenericFill(db, params, static_cast<product_definition_relationship*>(in));
  2998. if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to design_make_from_relationship"); } return base;
  2999. }
  3000. // -----------------------------------------------------------------------------------------------------------
  3001. template <> size_t GenericFill<diameter_dimension>(const DB& db, const LIST& params, diameter_dimension* in)
  3002. {
  3003. size_t base = GenericFill(db, params, static_cast<dimension_curve_directed_callout*>(in));
  3004. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to diameter_dimension"); } return base;
  3005. }
  3006. // -----------------------------------------------------------------------------------------------------------
  3007. template <> size_t GenericFill<ratio_measure_with_unit>(const DB& db, const LIST& params, ratio_measure_with_unit* in)
  3008. {
  3009. size_t base = GenericFill(db, params, static_cast<measure_with_unit*>(in));
  3010. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to ratio_measure_with_unit"); } return base;
  3011. }
  3012. // -----------------------------------------------------------------------------------------------------------
  3013. template <> size_t GenericFill<dielectric_constant_measure_with_unit>(const DB& db, const LIST& params, dielectric_constant_measure_with_unit* in)
  3014. {
  3015. size_t base = GenericFill(db, params, static_cast<ratio_measure_with_unit*>(in));
  3016. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to dielectric_constant_measure_with_unit"); } return base;
  3017. }
  3018. // -----------------------------------------------------------------------------------------------------------
  3019. template <> size_t GenericFill<dimension_callout>(const DB& db, const LIST& params, dimension_callout* in)
  3020. {
  3021. size_t base = GenericFill(db, params, static_cast<draughting_callout*>(in));
  3022. if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to dimension_callout"); } return base;
  3023. }
  3024. // -----------------------------------------------------------------------------------------------------------
  3025. template <> size_t GenericFill<draughting_callout_relationship>(const DB& db, const LIST& params, draughting_callout_relationship* in)
  3026. {
  3027. size_t base = 0;
  3028. if (params.GetSize() < 4) { throw STEP::TypeError("expected 4 arguments to draughting_callout_relationship"); } do { // convert the 'name' argument
  3029. std::shared_ptr<const DataType> arg = params[base++];
  3030. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::draughting_callout_relationship, 4>::aux_is_derived[0] = true; break; }
  3031. try { GenericConvert(in->name, arg, db); break; }
  3032. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to draughting_callout_relationship to be a `label`")); }
  3033. } while (0);
  3034. do { // convert the 'description' argument
  3035. std::shared_ptr<const DataType> arg = params[base++];
  3036. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::draughting_callout_relationship, 4>::aux_is_derived[1] = true; break; }
  3037. try { GenericConvert(in->description, arg, db); break; }
  3038. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to draughting_callout_relationship to be a `text`")); }
  3039. } while (0);
  3040. do { // convert the 'relating_draughting_callout' argument
  3041. std::shared_ptr<const DataType> arg = params[base++];
  3042. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::draughting_callout_relationship, 4>::aux_is_derived[2] = true; break; }
  3043. try { GenericConvert(in->relating_draughting_callout, arg, db); break; }
  3044. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to draughting_callout_relationship to be a `draughting_callout`")); }
  3045. } while (0);
  3046. do { // convert the 'related_draughting_callout' argument
  3047. std::shared_ptr<const DataType> arg = params[base++];
  3048. if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::StepFile::draughting_callout_relationship, 4>::aux_is_derived[3] = true; break; }
  3049. try { GenericConvert(in->related_draughting_callout, arg, db); break; }
  3050. catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to draughting_callout_relationship to be a `draughting_callout`")); }
  3051. } while (0);
  3052. return base;
  3053. }
  3054. }
  3055. }