part403ts_wg3n2635mim_lf.exp 634 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378
  1. (*
  2. $Id: mim_lf.exp,v 1.43 2009/09/10 20:08:09 darla Exp $
  3. ISO TC184/SC4/WG3 N2635 - ISO/TS 10303-403 AP203 configuration controlled 3d design of mechanical parts and assemblies - EXPRESS MIM Long form
  4. Supersedes ISO TC184/SC4/WG3 N2464
  5. *)
  6. SCHEMA Ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies_mim_lf;
  7. CONSTANT
  8. deprecated_constructed_data_types : SET [0:?] OF STRING := ['approved_item',
  9. 'certified_item',
  10. 'change_request_item',
  11. 'contracted_item',
  12. 'cc_classified_item',
  13. 'date_time_item',
  14. 'cc_person_organization_item',
  15. 'cc_specified_item',
  16. 'start_request_item',
  17. 'work_item'];
  18. deprecated_entity_data_types : SET [0:?] OF STRING := ['cc_design_approval',
  19. 'cc_design_certification',
  20. 'cc_design_contract',
  21. 'cc_design_date_and_time_assignment',
  22. 'cc_design_person_and_organization_assignment',
  23. 'cc_design_security_classification',
  24. 'cc_design_specification_reference',
  25. 'change',
  26. 'change_request',
  27. 'design_context',
  28. 'design_make_from_relationship',
  29. 'mechanical_context',
  30. 'start_request',
  31. 'start_work',
  32. 'supplied_part_relationship'];
  33. deprecated_interfaced_data_types : SET [0:?] OF STRING := ['document_with_class',
  34. 'ordinal_date',
  35. 'product_definition_formation_with_specified_source',
  36. 'week_of_year_and_day_date'];
  37. dummy_gri : geometric_representation_item := representation_item('')||
  38. geometric_representation_item();
  39. dummy_tri : topological_representation_item := representation_item('')||
  40. topological_representation_item();
  41. pre_defined_picture_representation_types : SET [0:?] OF STRING := [ 'JPEG', 'PNG', 'TIFF', 'BMP', 'GIF'];
  42. END_CONSTANT;
  43. TYPE absorbed_dose_measure = REAL;
  44. END_TYPE;
  45. TYPE acceleration_measure = REAL;
  46. END_TYPE;
  47. TYPE action_items = SELECT (
  48. action_directive,
  49. certification_item,
  50. characterized_object,
  51. classification_item,
  52. configuration_effectivity,
  53. document_reference_item,
  54. identification_item,
  55. organization,
  56. person_and_organization,
  57. product_definition,
  58. product_definition_formation,
  59. product_definition_formation_relationship,
  60. product_definition_relationship,
  61. requirement_assigned_item);
  62. END_TYPE;
  63. TYPE action_method_items = SELECT (
  64. product,
  65. product_definition_formation);
  66. END_TYPE;
  67. TYPE action_request_item = SELECT (
  68. product_definition,
  69. product_definition_formation,
  70. product_definition_formation_relationship,
  71. product_definition_relationship,
  72. property_definition,
  73. versioned_action_request);
  74. END_TYPE;
  75. TYPE ahead_or_behind = ENUMERATION OF (
  76. ahead,
  77. exact,
  78. behind );
  79. END_TYPE;
  80. TYPE amount_of_substance_measure = REAL;
  81. END_TYPE;
  82. TYPE angle_direction_reference_select = SELECT (
  83. direction,
  84. curve,
  85. point_path);
  86. END_TYPE;
  87. TYPE angle_direction_reference_with_a2p3d_select = SELECT (
  88. angle_direction_reference_select,
  89. axis2_placement_3d);
  90. END_TYPE;
  91. TYPE angle_relator = ENUMERATION OF (
  92. equal,
  93. large,
  94. small );
  95. END_TYPE;
  96. TYPE annotation_plane_element = SELECT (
  97. draughting_callout,
  98. styled_item);
  99. END_TYPE;
  100. TYPE annotation_representation_select = SELECT (
  101. presentation_area,
  102. presentation_view,
  103. symbol_representation);
  104. END_TYPE;
  105. TYPE annotation_symbol_occurrence_item = SELECT (
  106. annotation_symbol,
  107. defined_symbol);
  108. END_TYPE;
  109. TYPE annotation_text_occurrence_item = SELECT (
  110. text_literal,
  111. annotation_text,
  112. annotation_text_character,
  113. composite_text);
  114. END_TYPE;
  115. TYPE approval_item = SELECT (
  116. action,
  117. action_directive,
  118. alternate_product_relationship,
  119. applied_action_assignment,
  120. applied_usage_right,
  121. assembly_component_usage_substitute,
  122. certification,
  123. configuration_effectivity,
  124. configuration_item,
  125. contract,
  126. date,
  127. directed_action,
  128. document,
  129. document_file,
  130. effectivity,
  131. executed_action,
  132. general_property_relationship,
  133. group,
  134. group_relationship,
  135. information_usage_right,
  136. product,
  137. product_definition,
  138. product_definition_formation,
  139. product_definition_formation_relationship,
  140. product_definition_relationship,
  141. representation,
  142. requirement_assignment,
  143. security_classification,
  144. shape_aspect_relationship,
  145. versioned_action_request);
  146. END_TYPE;
  147. TYPE approved_item = SELECT (
  148. certification,
  149. change,
  150. change_request,
  151. configuration_effectivity,
  152. configuration_item,
  153. contract,
  154. product,
  155. security_classification,
  156. start_request,
  157. start_work);
  158. END_TYPE;
  159. TYPE area_measure = REAL;
  160. END_TYPE;
  161. TYPE area_or_view = SELECT (
  162. presentation_area,
  163. presentation_view);
  164. END_TYPE;
  165. TYPE attribute_classification_item = SELECT (
  166. action_directive,
  167. action_method,
  168. action_property,
  169. action_property_representation,
  170. action_relationship,
  171. action_request_solution,
  172. action_request_status,
  173. alternate_product_relationship,
  174. applied_action_assignment,
  175. applied_action_request_assignment,
  176. applied_approval_assignment,
  177. applied_certification_assignment,
  178. applied_document_reference,
  179. applied_document_usage_constraint_assignment,
  180. applied_effectivity_assignment,
  181. applied_event_occurrence_assignment,
  182. applied_external_identification_assignment,
  183. applied_identification_assignment,
  184. applied_organization_assignment,
  185. applied_organizational_project_assignment,
  186. applied_person_and_organization_assignment,
  187. approval,
  188. approval_person_organization,
  189. approval_relationship,
  190. approval_status,
  191. certification,
  192. context_dependent_unit,
  193. contract,
  194. date_and_time_assignment,
  195. date_assignment,
  196. derived_unit,
  197. descriptive_representation_item,
  198. document_file,
  199. document_relationship,
  200. effectivity,
  201. event_occurrence_relationship,
  202. executed_action,
  203. general_property,
  204. general_property_relationship,
  205. group,
  206. group_relationship,
  207. information_right,
  208. information_usage_right,
  209. language,
  210. measure_representation_item,
  211. measure_with_unit,
  212. named_unit,
  213. organization_relationship,
  214. organizational_address,
  215. organizational_project_relationship,
  216. person_and_organization,
  217. person_and_organization_address,
  218. product,
  219. product_category,
  220. product_concept,
  221. product_concept_context,
  222. product_definition,
  223. product_definition_context,
  224. product_definition_formation,
  225. product_definition_formation_relationship,
  226. product_definition_relationship,
  227. property_definition,
  228. property_definition_relationship,
  229. property_definition_representation,
  230. representation,
  231. representation_context,
  232. representation_item,
  233. security_classification,
  234. time_interval_relationship,
  235. uncertainty_measure_with_unit,
  236. usage_association,
  237. versioned_action_request);
  238. END_TYPE;
  239. TYPE attribute_language_item = SELECT (
  240. alternate_product_relationship,
  241. application_context,
  242. applied_certification_assignment,
  243. applied_document_reference,
  244. applied_document_usage_constraint_assignment,
  245. applied_external_identification_assignment,
  246. applied_identification_assignment,
  247. applied_organizational_project_assignment,
  248. applied_security_classification_assignment,
  249. approval,
  250. approval_relationship,
  251. approval_status,
  252. assembly_component_usage_substitute,
  253. attribute_value_assignment,
  254. certification,
  255. certification_type,
  256. configuration_design,
  257. configuration_item,
  258. contract,
  259. date_role,
  260. date_time_role,
  261. descriptive_representation_item,
  262. document_relationship,
  263. document_usage_role,
  264. effectivity,
  265. effectivity_relationship,
  266. event_occurrence,
  267. external_source,
  268. general_property,
  269. general_property_relationship,
  270. geometric_representation_item,
  271. geometric_tolerance,
  272. identification_role,
  273. information_right,
  274. information_usage_right,
  275. make_from_usage_option,
  276. mapped_item,
  277. multi_language_attribute_assignment,
  278. object_role,
  279. organization_relationship,
  280. organization_role,
  281. organizational_project,
  282. organizational_project_relationship,
  283. organizational_project_role,
  284. person_and_organization,
  285. person_and_organization_role,
  286. product,
  287. product_concept,
  288. product_concept_relationship,
  289. product_definition,
  290. product_definition_context,
  291. product_definition_formation,
  292. product_definition_formation_relationship,
  293. product_definition_relationship,
  294. product_definition_shape,
  295. product_related_product_category,
  296. property_definition,
  297. representation,
  298. security_classification,
  299. security_classification_assignment,
  300. shape_aspect,
  301. shape_aspect_relationship,
  302. shape_representation,
  303. time_interval_role,
  304. topological_representation_item,
  305. uncertainty_measure_with_unit,
  306. uncertainty_qualifier,
  307. usage_association);
  308. END_TYPE;
  309. TYPE attribute_type = SELECT (
  310. label,
  311. text);
  312. END_TYPE;
  313. TYPE axis2_placement = SELECT (
  314. axis2_placement_2d,
  315. axis2_placement_3d);
  316. END_TYPE;
  317. TYPE b_spline_curve_form = ENUMERATION OF (
  318. polyline_form,
  319. circular_arc,
  320. elliptic_arc,
  321. parabolic_arc,
  322. hyperbolic_arc,
  323. unspecified );
  324. END_TYPE;
  325. TYPE b_spline_surface_form = ENUMERATION OF (
  326. plane_surf,
  327. cylindrical_surf,
  328. conical_surf,
  329. spherical_surf,
  330. toroidal_surf,
  331. surf_of_revolution,
  332. ruled_surf,
  333. generalised_cone,
  334. quadric_surf,
  335. surf_of_linear_extrusion,
  336. unspecified );
  337. END_TYPE;
  338. TYPE base_solid_select = SELECT (
  339. solid_model,
  340. csg_primitive,
  341. boolean_result);
  342. WHERE
  343. WR1 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRIMITIVE_2D' IN TYPEOF(SELF));
  344. END_TYPE;
  345. TYPE blend_end_condition_select = SELECT (
  346. point_on_curve,
  347. edge_curve,
  348. vertex);
  349. END_TYPE;
  350. TYPE blend_radius_variation_type = ENUMERATION OF (
  351. linear_blend,
  352. cubic_blend,
  353. unspecified_blend );
  354. END_TYPE;
  355. TYPE boolean_operand = SELECT (
  356. solid_model,
  357. half_space_solid,
  358. csg_primitive,
  359. boolean_result);
  360. END_TYPE;
  361. TYPE boolean_operator = ENUMERATION OF (
  362. union,
  363. intersection,
  364. difference );
  365. END_TYPE;
  366. TYPE box_characteristic_select = SELECT (
  367. box_height,
  368. box_width,
  369. box_slant_angle,
  370. box_rotate_angle);
  371. END_TYPE;
  372. TYPE box_height = positive_ratio_measure;
  373. END_TYPE;
  374. TYPE box_rotate_angle = plane_angle_measure;
  375. END_TYPE;
  376. TYPE box_slant_angle = plane_angle_measure;
  377. END_TYPE;
  378. TYPE box_width = positive_ratio_measure;
  379. END_TYPE;
  380. TYPE camera_model_d3_multi_clipping_interection_select = SELECT (
  381. camera_model_d3_multi_clipping_union,
  382. plane);
  383. END_TYPE;
  384. TYPE camera_model_d3_multi_clipping_union_select = SELECT (
  385. camera_model_d3_multi_clipping_intersection,
  386. plane);
  387. END_TYPE;
  388. TYPE capacitance_measure = REAL;
  389. END_TYPE;
  390. TYPE category_usage_item = SELECT (
  391. product_class);
  392. END_TYPE;
  393. TYPE cc_classified_item = SELECT (
  394. assembly_component_usage,
  395. product_definition_formation);
  396. END_TYPE;
  397. TYPE cc_person_organization_item = SELECT (
  398. change,
  399. change_request,
  400. configuration_item,
  401. contract,
  402. product,
  403. product_definition,
  404. product_definition_formation,
  405. security_classification,
  406. start_request,
  407. start_work);
  408. END_TYPE;
  409. TYPE cc_specified_item = SELECT (
  410. product_definition,
  411. shape_aspect);
  412. END_TYPE;
  413. TYPE celsius_temperature_measure = REAL;
  414. END_TYPE;
  415. TYPE central_or_parallel = ENUMERATION OF (
  416. central,
  417. parallel );
  418. END_TYPE;
  419. TYPE certification_item = SELECT (
  420. alternate_product_relationship,
  421. make_from_usage_option,
  422. product_definition_formation,
  423. product_definition_formation_relationship);
  424. END_TYPE;
  425. TYPE certified_item = SELECT (
  426. supplied_part_relationship);
  427. END_TYPE;
  428. TYPE change_request_item = SELECT (
  429. product_definition_formation);
  430. END_TYPE;
  431. TYPE character_spacing_select = SELECT (
  432. length_measure,
  433. ratio_measure,
  434. measure_with_unit,
  435. descriptive_measure);
  436. END_TYPE;
  437. TYPE character_style_select = SELECT (
  438. character_glyph_style_stroke,
  439. character_glyph_style_outline,
  440. text_style_for_defined_font);
  441. END_TYPE;
  442. TYPE characterized_action_definition = SELECT (
  443. action,
  444. action_method,
  445. action_method_relationship,
  446. action_relationship);
  447. END_TYPE;
  448. TYPE characterized_definition = SELECT (
  449. characterized_object,
  450. characterized_product_definition,
  451. shape_definition);
  452. END_TYPE;
  453. TYPE characterized_material_property = SELECT (
  454. material_property_representation,
  455. product_material_composition_relationship);
  456. END_TYPE;
  457. TYPE characterized_product_composition_value = SELECT (
  458. measure_with_unit);
  459. END_TYPE;
  460. TYPE characterized_product_definition = SELECT (
  461. product_definition,
  462. product_definition_relationship);
  463. END_TYPE;
  464. TYPE class_usage_effectivity_context_item = SELECT (
  465. product_definition);
  466. END_TYPE;
  467. TYPE classification_item = SELECT (
  468. action,
  469. action_directive,
  470. action_method,
  471. action_property,
  472. action_relationship,
  473. action_request_solution,
  474. action_request_status,
  475. address,
  476. alternate_product_relationship,
  477. applied_action_assignment,
  478. applied_action_request_assignment,
  479. applied_approval_assignment,
  480. applied_certification_assignment,
  481. applied_contract_assignment,
  482. applied_date_and_time_assignment,
  483. applied_date_assignment,
  484. applied_document_reference,
  485. applied_document_usage_constraint_assignment,
  486. applied_effectivity_assignment,
  487. applied_event_occurrence_assignment,
  488. applied_external_identification_assignment,
  489. applied_identification_assignment,
  490. applied_organization_assignment,
  491. applied_organizational_project_assignment,
  492. applied_person_and_organization_assignment,
  493. applied_security_classification_assignment,
  494. approval,
  495. approval_person_organization,
  496. approval_relationship,
  497. approval_status,
  498. assembly_component_usage_substitute,
  499. calendar_date,
  500. certification,
  501. characterized_class,
  502. characterized_object,
  503. class,
  504. classified_item,
  505. configuration_item,
  506. context_dependent_unit,
  507. contract,
  508. conversion_based_unit,
  509. date_and_time,
  510. date_and_time_assignment,
  511. date_assignment,
  512. derived_unit,
  513. descriptive_representation_item,
  514. directed_action,
  515. document_file,
  516. document_relationship,
  517. effectivity,
  518. event_occurrence,
  519. executed_action,
  520. general_property,
  521. general_property_relationship,
  522. group,
  523. identification_assignment,
  524. information_right,
  525. information_usage_right,
  526. language,
  527. measure_representation_item,
  528. measure_with_unit,
  529. multi_language_attribute_assignment,
  530. named_unit,
  531. organization,
  532. organization_relationship,
  533. organizational_address,
  534. organizational_project,
  535. organizational_project_relationship,
  536. person,
  537. person_and_organization_address,
  538. product,
  539. product_concept,
  540. product_definition,
  541. product_definition_context,
  542. product_definition_formation,
  543. product_definition_formation_relationship,
  544. product_definition_relationship,
  545. property_definition,
  546. property_definition_representation,
  547. representation,
  548. representation_context,
  549. representation_item,
  550. security_classification,
  551. uncertainty_measure_with_unit,
  552. usage_association,
  553. versioned_action_request);
  554. END_TYPE;
  555. TYPE classified_item = SELECT (
  556. product,
  557. product_definition,
  558. product_definition_formation);
  559. END_TYPE;
  560. TYPE compound_item_definition = SELECT (
  561. list_representation_item,
  562. set_representation_item);
  563. END_TYPE;
  564. TYPE conductance_measure = REAL;
  565. END_TYPE;
  566. TYPE configuration_design_item = SELECT (
  567. product_definition,
  568. product_definition_formation);
  569. END_TYPE;
  570. TYPE configured_effectivity_context_item = SELECT (
  571. product_concept_feature_association);
  572. END_TYPE;
  573. TYPE configured_effectivity_item = SELECT (
  574. product_definition);
  575. END_TYPE;
  576. TYPE constructive_geometry_representation_or_shape_represenation = SELECT (
  577. constructive_geometry_representation,
  578. shape_representation);
  579. END_TYPE;
  580. TYPE context_dependent_measure = REAL;
  581. END_TYPE;
  582. TYPE contract_item = SELECT (
  583. action_directive,
  584. alternate_product_relationship,
  585. directed_action,
  586. executed_action,
  587. information_usage_right,
  588. organization,
  589. person_and_organization,
  590. product,
  591. product_definition_formation);
  592. END_TYPE;
  593. TYPE contracted_item = SELECT (
  594. product_definition_formation);
  595. END_TYPE;
  596. TYPE count_measure = NUMBER;
  597. END_TYPE;
  598. TYPE csg_primitive = SELECT (
  599. sphere,
  600. block,
  601. right_angular_wedge,
  602. torus,
  603. right_circular_cone,
  604. right_circular_cylinder);
  605. END_TYPE;
  606. TYPE csg_select = SELECT (
  607. boolean_result,
  608. csg_primitive);
  609. END_TYPE;
  610. TYPE curve_font_or_scaled_curve_font_select = SELECT (
  611. curve_style_font_select,
  612. curve_style_font_and_scaling);
  613. END_TYPE;
  614. TYPE curve_on_surface = SELECT (
  615. pcurve,
  616. surface_curve,
  617. composite_curve_on_surface);
  618. END_TYPE;
  619. TYPE curve_or_annotation_curve_occurrence = SELECT (
  620. curve,
  621. annotation_curve_occurrence);
  622. END_TYPE;
  623. TYPE curve_or_render = SELECT (
  624. curve_style,
  625. curve_style_rendering);
  626. END_TYPE;
  627. TYPE curve_style_font_select = SELECT (
  628. curve_style_font,
  629. pre_defined_curve_font,
  630. externally_defined_curve_font);
  631. END_TYPE;
  632. TYPE date_and_time_item = SELECT (
  633. action,
  634. action_directive,
  635. applied_action_assignment,
  636. applied_organization_assignment,
  637. applied_person_and_organization_assignment,
  638. applied_security_classification_assignment,
  639. approval_person_organization,
  640. certification,
  641. contract,
  642. directed_action,
  643. document,
  644. document_file,
  645. event_occurrence,
  646. executed_action,
  647. information_usage_right,
  648. organizational_project,
  649. product_definition,
  650. product_definition_formation,
  651. product_definition_relationship,
  652. rule_action,
  653. security_classification,
  654. versioned_action_request);
  655. END_TYPE;
  656. TYPE date_item = SELECT (
  657. action,
  658. action_directive,
  659. applied_action_assignment,
  660. applied_organization_assignment,
  661. applied_person_and_organization_assignment,
  662. applied_security_classification_assignment,
  663. approval_person_organization,
  664. certification,
  665. contract,
  666. directed_action,
  667. document,
  668. document_file,
  669. event_occurrence,
  670. executed_action,
  671. information_usage_right,
  672. organizational_project,
  673. product_definition,
  674. product_definition_formation,
  675. product_definition_relationship,
  676. security_classification,
  677. versioned_action_request);
  678. END_TYPE;
  679. TYPE date_time_item = SELECT (
  680. approval_person_organization,
  681. certification,
  682. change,
  683. change_request,
  684. contract,
  685. product_definition,
  686. security_classification,
  687. start_request,
  688. start_work);
  689. END_TYPE;
  690. TYPE date_time_or_event_occurrence = SELECT (
  691. date_time_select,
  692. event_occurrence);
  693. END_TYPE;
  694. TYPE date_time_select = SELECT (
  695. date,
  696. date_and_time,
  697. local_time);
  698. END_TYPE;
  699. TYPE day_in_month_number = INTEGER;
  700. WHERE
  701. WR1 : {1 <= SELF <= 31};
  702. END_TYPE;
  703. TYPE day_in_week_number = INTEGER;
  704. WHERE
  705. WR1 : { 1 <= SELF <= 7 };
  706. END_TYPE;
  707. TYPE day_in_year_number = INTEGER;
  708. WHERE
  709. WR1 : {1 <= SELF <= 366};
  710. END_TYPE;
  711. TYPE defined_symbol_select = SELECT (
  712. pre_defined_symbol,
  713. externally_defined_symbol);
  714. END_TYPE;
  715. TYPE derived_property_select = SELECT (
  716. property_definition,
  717. action_property);
  718. END_TYPE;
  719. TYPE description_attribute_select = SELECT (
  720. action_request_solution,
  721. application_context,
  722. approval_role,
  723. configuration_design,
  724. date_role,
  725. date_time_role,
  726. context_dependent_shape_representation,
  727. effectivity,
  728. external_source,
  729. organization_role,
  730. person_and_organization_role,
  731. person_and_organization,
  732. property_definition_representation,
  733. representation);
  734. END_TYPE;
  735. TYPE descriptive_measure = STRING;
  736. END_TYPE;
  737. TYPE dimension_count = INTEGER;
  738. WHERE
  739. WR1 : SELF > 0;
  740. END_TYPE;
  741. TYPE dimension_extent_usage = ENUMERATION OF (
  742. origin,
  743. target );
  744. END_TYPE;
  745. TYPE dimensional_characteristic = SELECT (
  746. dimensional_location,
  747. dimensional_size);
  748. END_TYPE;
  749. TYPE direction_count_select = SELECT (
  750. u_direction_count,
  751. v_direction_count);
  752. END_TYPE;
  753. TYPE document_identifier_assigned_item = SELECT (
  754. document);
  755. END_TYPE;
  756. TYPE document_reference_item = SELECT (
  757. action_method,
  758. applied_external_identification_assignment,
  759. assembly_component_usage,
  760. characterized_class,
  761. characterized_object,
  762. configuration_item,
  763. descriptive_representation_item,
  764. dimensional_size,
  765. executed_action,
  766. externally_defined_dimension_definition,
  767. externally_defined_item,
  768. group,
  769. group_relationship,
  770. information_right,
  771. information_usage_right,
  772. material_designation,
  773. measure_representation_item,
  774. product,
  775. product_category,
  776. product_definition,
  777. product_definition_formation,
  778. product_definition_formation_relationship,
  779. product_definition_relationship,
  780. property_definition,
  781. representation,
  782. representation_item,
  783. rule_set,
  784. shape_aspect,
  785. shape_aspect_relationship,
  786. usage_association,
  787. versioned_action_request);
  788. END_TYPE;
  789. TYPE dose_equivalent_measure = REAL;
  790. END_TYPE;
  791. TYPE draughting_callout_element = SELECT (
  792. annotation_text_occurrence,
  793. annotation_symbol_occurrence,
  794. annotation_curve_occurrence);
  795. END_TYPE;
  796. TYPE draughting_model_item_association_select = SELECT (
  797. annotation_occurrence,
  798. draughting_callout);
  799. END_TYPE;
  800. TYPE draughting_model_item_select = SELECT (
  801. mapped_item,
  802. styled_item,
  803. axis2_placement,
  804. camera_model,
  805. draughting_callout);
  806. END_TYPE;
  807. TYPE draughting_titled_item = SELECT (
  808. drawing_revision,
  809. drawing_sheet_revision);
  810. END_TYPE;
  811. TYPE effectivity_item = SELECT (
  812. assembly_component_usage_substitute,
  813. product,
  814. product_definition,
  815. product_definition_formation,
  816. product_definition_relationship,
  817. product_definition_substitute);
  818. END_TYPE;
  819. TYPE electric_charge_measure = REAL;
  820. END_TYPE;
  821. TYPE electric_current_measure = REAL;
  822. END_TYPE;
  823. TYPE electric_potential_measure = REAL;
  824. END_TYPE;
  825. TYPE energy_measure = REAL;
  826. END_TYPE;
  827. TYPE event_occurrence_item = SELECT (
  828. organizational_project);
  829. END_TYPE;
  830. TYPE external_identification_item = SELECT (
  831. action_relationship,
  832. action_request_status,
  833. applied_organization_assignment,
  834. applied_person_and_organization_assignment,
  835. approval,
  836. approval_status,
  837. date_and_time_assignment,
  838. date_assignment,
  839. document_file,
  840. external_source,
  841. externally_defined_class,
  842. externally_defined_context_dependent_unit,
  843. externally_defined_conversion_based_unit,
  844. externally_defined_general_property,
  845. externally_defined_picture_representation_item,
  846. externally_defined_representation_item,
  847. organizational_address,
  848. product_definition,
  849. security_classification,
  850. trimmed_curve,
  851. versioned_action_request);
  852. END_TYPE;
  853. TYPE fill_area_style_tile_shape_select = SELECT (
  854. fill_area_style_tile_curve_with_style,
  855. fill_area_style_tile_coloured_region,
  856. fill_area_style_tile_symbol_with_style,
  857. pre_defined_tile,
  858. externally_defined_tile);
  859. END_TYPE;
  860. TYPE fill_style_select = SELECT (
  861. fill_area_style_colour,
  862. externally_defined_tile_style,
  863. fill_area_style_tiles,
  864. externally_defined_hatch_style,
  865. fill_area_style_hatching);
  866. END_TYPE;
  867. TYPE font_select = SELECT (
  868. pre_defined_text_font,
  869. externally_defined_text_font,
  870. text_font);
  871. END_TYPE;
  872. TYPE force_measure = REAL;
  873. END_TYPE;
  874. TYPE founded_item_select = SELECT (
  875. founded_item,
  876. representation_item);
  877. END_TYPE;
  878. TYPE frequency_measure = REAL;
  879. END_TYPE;
  880. TYPE generalized_surface_select = SELECT (
  881. surface,
  882. face_surface,
  883. surfaced_open_shell);
  884. END_TYPE;
  885. TYPE geometric_item_specific_usage_select = SELECT (
  886. shape_aspect,
  887. shape_aspect_relationship);
  888. END_TYPE;
  889. TYPE geometric_set_select = SELECT (
  890. point,
  891. curve,
  892. surface);
  893. END_TYPE;
  894. TYPE groupable_item = SELECT (
  895. geometric_representation_item,
  896. group_relationship,
  897. mapped_item,
  898. package_product_concept_feature,
  899. product_concept_feature,
  900. product_definition,
  901. product_definition_formation,
  902. property_definition_representation,
  903. representation,
  904. representation_item,
  905. representation_relationship_with_transformation,
  906. shape_aspect,
  907. shape_aspect_relationship,
  908. shape_representation_relationship,
  909. styled_item,
  910. topological_representation_item);
  911. WHERE
  912. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GROUP' IN TYPEOF(SELF));
  913. END_TYPE;
  914. TYPE hour_in_day = INTEGER;
  915. WHERE
  916. WR1 : { 0 <= SELF < 24 };
  917. END_TYPE;
  918. TYPE id_attribute_select = SELECT (
  919. action,
  920. address,
  921. product_category,
  922. property_definition,
  923. shape_aspect,
  924. shape_aspect_relationship,
  925. application_context,
  926. group,
  927. organizational_project,
  928. representation);
  929. END_TYPE;
  930. TYPE identification_item = SELECT (
  931. approval_status,
  932. characterized_class,
  933. class,
  934. configuration_item,
  935. contract,
  936. dimensional_size,
  937. document_file,
  938. general_property,
  939. group,
  940. group_relationship,
  941. information_right,
  942. information_usage_right,
  943. material_designation,
  944. organization,
  945. person_and_organization,
  946. product,
  947. product_category,
  948. product_class,
  949. product_concept,
  950. product_concept_feature,
  951. product_definition,
  952. product_definition_formation,
  953. product_identification,
  954. representation,
  955. rule_set,
  956. security_classification,
  957. security_classification_level,
  958. shape_aspect_relationship,
  959. shape_representation,
  960. usage_association);
  961. END_TYPE;
  962. TYPE identifier = STRING;
  963. END_TYPE;
  964. TYPE illuminance_measure = REAL;
  965. END_TYPE;
  966. TYPE inductance_measure = REAL;
  967. END_TYPE;
  968. TYPE instance_usage_context_select = SELECT (
  969. product_definition_relationship,
  970. product_definition_usage);
  971. END_TYPE;
  972. TYPE invisibility_context = SELECT (
  973. draughting_model,
  974. presentation_representation,
  975. presentation_set);
  976. END_TYPE;
  977. TYPE invisible_item = SELECT (
  978. draughting_callout,
  979. presentation_layer_assignment,
  980. representation,
  981. styled_item);
  982. END_TYPE;
  983. TYPE ir_usage_item = action_items;
  984. WHERE
  985. wr1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONFIGURATION_EFFECTIVITY' IN TYPEOF(SELF));
  986. END_TYPE;
  987. TYPE knot_type = ENUMERATION OF (
  988. uniform_knots,
  989. quasi_uniform_knots,
  990. piecewise_bezier_knots,
  991. unspecified );
  992. END_TYPE;
  993. TYPE label = STRING;
  994. END_TYPE;
  995. TYPE layered_item = SELECT (
  996. presentation_representation,
  997. representation_item);
  998. END_TYPE;
  999. TYPE length_measure = REAL;
  1000. END_TYPE;
  1001. TYPE limit_condition = ENUMERATION OF (
  1002. maximum_material_condition,
  1003. least_material_condition,
  1004. regardless_of_feature_size );
  1005. END_TYPE;
  1006. TYPE list_of_reversible_topology_item = LIST [0:?] OF reversible_topology_item;
  1007. END_TYPE;
  1008. TYPE list_representation_item = LIST [1:?] OF representation_item;
  1009. END_TYPE;
  1010. TYPE luminous_flux_measure = REAL;
  1011. END_TYPE;
  1012. TYPE luminous_intensity_measure = REAL;
  1013. END_TYPE;
  1014. TYPE magnetic_flux_density_measure = REAL;
  1015. END_TYPE;
  1016. TYPE magnetic_flux_measure = REAL;
  1017. END_TYPE;
  1018. TYPE marker_select = SELECT (
  1019. marker_type,
  1020. pre_defined_marker);
  1021. END_TYPE;
  1022. TYPE marker_type = ENUMERATION OF (
  1023. dot,
  1024. x,
  1025. plus,
  1026. asterisk,
  1027. ring,
  1028. square,
  1029. triangle );
  1030. END_TYPE;
  1031. TYPE mass_measure = REAL;
  1032. END_TYPE;
  1033. TYPE measure_value = SELECT (
  1034. absorbed_dose_measure,
  1035. dose_equivalent_measure,
  1036. radioactivity_measure,
  1037. acceleration_measure,
  1038. amount_of_substance_measure,
  1039. area_measure,
  1040. celsius_temperature_measure,
  1041. context_dependent_measure,
  1042. count_measure,
  1043. descriptive_measure,
  1044. capacitance_measure,
  1045. electric_charge_measure,
  1046. conductance_measure,
  1047. electric_current_measure,
  1048. electric_potential_measure,
  1049. energy_measure,
  1050. magnetic_flux_density_measure,
  1051. force_measure,
  1052. frequency_measure,
  1053. illuminance_measure,
  1054. inductance_measure,
  1055. length_measure,
  1056. luminous_flux_measure,
  1057. luminous_intensity_measure,
  1058. magnetic_flux_measure,
  1059. mass_measure,
  1060. numeric_measure,
  1061. non_negative_length_measure,
  1062. parameter_value,
  1063. plane_angle_measure,
  1064. positive_length_measure,
  1065. positive_plane_angle_measure,
  1066. positive_ratio_measure,
  1067. power_measure,
  1068. pressure_measure,
  1069. ratio_measure,
  1070. resistance_measure,
  1071. solid_angle_measure,
  1072. thermodynamic_temperature_measure,
  1073. time_measure,
  1074. velocity_measure,
  1075. volume_measure);
  1076. END_TYPE;
  1077. TYPE mechanical_design_and_draughting_relationship_select = SELECT (
  1078. draughting_model,
  1079. mechanical_design_geometric_presentation_representation,
  1080. mechanical_design_presentation_representation_with_draughting,
  1081. mechanical_design_shaded_presentation_representation,
  1082. shape_representation);
  1083. END_TYPE;
  1084. TYPE mechanical_design_geometric_presentation_area_items = SELECT (
  1085. axis2_placement,
  1086. mapped_item);
  1087. END_TYPE;
  1088. TYPE mechanical_design_geometric_presentation_representation_items = SELECT (
  1089. axis2_placement,
  1090. camera_model_d3,
  1091. mapped_item,
  1092. styled_item);
  1093. END_TYPE;
  1094. TYPE message = STRING;
  1095. END_TYPE;
  1096. TYPE minute_in_hour = INTEGER;
  1097. WHERE
  1098. WR1 : { 0 <= SELF <= 59 };
  1099. END_TYPE;
  1100. TYPE month_in_year_number = INTEGER;
  1101. WHERE
  1102. WR1 : { 1 <= SELF <= 12 };
  1103. END_TYPE;
  1104. TYPE multi_language_attribute_item = SELECT (
  1105. alternate_product_relationship,
  1106. application_context,
  1107. applied_certification_assignment,
  1108. applied_document_reference,
  1109. applied_document_usage_constraint_assignment,
  1110. applied_external_identification_assignment,
  1111. applied_identification_assignment,
  1112. applied_organizational_project_assignment,
  1113. approval,
  1114. approval_relationship,
  1115. approval_status,
  1116. assembly_component_usage_substitute,
  1117. attribute_value_assignment,
  1118. certification,
  1119. certification_type,
  1120. colour,
  1121. configuration_design,
  1122. configuration_item,
  1123. contract,
  1124. date_role,
  1125. date_time_role,
  1126. descriptive_representation_item,
  1127. document_relationship,
  1128. document_usage_role,
  1129. effectivity,
  1130. effectivity_relationship,
  1131. event_occurrence,
  1132. external_source,
  1133. general_property,
  1134. general_property_relationship,
  1135. geometric_representation_item,
  1136. geometric_tolerance,
  1137. identification_role,
  1138. information_right,
  1139. information_usage_right,
  1140. make_from_usage_option,
  1141. mapped_item,
  1142. object_role,
  1143. organization_relationship,
  1144. organization_role,
  1145. organizational_project,
  1146. organizational_project_relationship,
  1147. organizational_project_role,
  1148. person_and_organization,
  1149. person_and_organization_role,
  1150. product,
  1151. product_concept,
  1152. product_concept_relationship,
  1153. product_definition,
  1154. product_definition_context,
  1155. product_definition_formation,
  1156. product_definition_formation_relationship,
  1157. product_definition_relationship,
  1158. product_definition_shape,
  1159. product_related_product_category,
  1160. property_definition,
  1161. representation,
  1162. representation_relationship,
  1163. security_classification,
  1164. security_classification_assignment,
  1165. shape_aspect,
  1166. shape_aspect_relationship,
  1167. shape_representation,
  1168. time_interval_role,
  1169. topological_representation_item,
  1170. uncertainty_measure_with_unit,
  1171. usage_association);
  1172. END_TYPE;
  1173. TYPE name_attribute_select = SELECT (
  1174. action_request_solution,
  1175. address,
  1176. configuration_design,
  1177. context_dependent_shape_representation,
  1178. derived_unit,
  1179. effectivity,
  1180. person_and_organization,
  1181. product_definition,
  1182. product_definition_substitute,
  1183. property_definition_representation);
  1184. END_TYPE;
  1185. TYPE name_item = SELECT (
  1186. assembly_component_usage,
  1187. external_class_library,
  1188. group,
  1189. group_relationship,
  1190. product,
  1191. product_definition);
  1192. END_TYPE;
  1193. TYPE non_negative_length_measure = length_measure;
  1194. WHERE
  1195. WR1 : SELF >= 0.0;
  1196. END_TYPE;
  1197. TYPE nonnegative_integer = INTEGER;
  1198. WHERE
  1199. nonnegativity : SELF >= 0;
  1200. END_TYPE;
  1201. TYPE null_style = ENUMERATION OF (
  1202. null );
  1203. END_TYPE;
  1204. TYPE numeric_measure = NUMBER;
  1205. END_TYPE;
  1206. TYPE organization_item = SELECT (
  1207. action,
  1208. action_directive,
  1209. alternate_product_relationship,
  1210. applied_action_assignment,
  1211. applied_classification_assignment,
  1212. applied_identification_assignment,
  1213. applied_security_classification_assignment,
  1214. approval,
  1215. assembly_component_usage_substitute,
  1216. certification,
  1217. class,
  1218. configuration_item,
  1219. contract,
  1220. document_file,
  1221. executed_action,
  1222. general_property,
  1223. information_usage_right,
  1224. organizational_project,
  1225. product,
  1226. product_definition,
  1227. product_definition_formation,
  1228. product_definition_formation_relationship,
  1229. property_definition,
  1230. rule_action,
  1231. security_classification,
  1232. shape_representation,
  1233. versioned_action_request);
  1234. END_TYPE;
  1235. TYPE orientation_basis_select = SELECT (
  1236. axis2_placement_3d,
  1237. min_and_major_ply_orientation_basis);
  1238. END_TYPE;
  1239. TYPE parameter_value = REAL;
  1240. END_TYPE;
  1241. TYPE pcurve_or_surface = SELECT (
  1242. pcurve,
  1243. surface);
  1244. END_TYPE;
  1245. TYPE person_and_organization_item = SELECT (
  1246. action,
  1247. action_directive,
  1248. alternate_product_relationship,
  1249. applied_action_assignment,
  1250. applied_classification_assignment,
  1251. applied_identification_assignment,
  1252. applied_security_classification_assignment,
  1253. approval,
  1254. assembly_component_usage_substitute,
  1255. certification,
  1256. configuration_item,
  1257. contract,
  1258. document_file,
  1259. executed_action,
  1260. general_property,
  1261. information_usage_right,
  1262. organizational_project,
  1263. person_and_organization,
  1264. product,
  1265. product_definition,
  1266. product_definition_formation,
  1267. product_definition_formation_relationship,
  1268. property_definition,
  1269. rule_action,
  1270. security_classification,
  1271. shape_representation,
  1272. versioned_action_request);
  1273. END_TYPE;
  1274. TYPE person_organization_select = SELECT (
  1275. person,
  1276. organization,
  1277. person_and_organization);
  1278. END_TYPE;
  1279. TYPE picture_representation_item_select = SELECT (
  1280. styled_item,
  1281. planar_box,
  1282. axis2_placement_2d);
  1283. END_TYPE;
  1284. TYPE plane_angle_measure = REAL;
  1285. END_TYPE;
  1286. TYPE plane_or_planar_box = SELECT (
  1287. plane,
  1288. planar_box);
  1289. END_TYPE;
  1290. TYPE point_and_vector_member = SELECT (
  1291. point,
  1292. direction);
  1293. END_TYPE;
  1294. TYPE point_and_vector_members = LIST [2:3] OF point_and_vector_member;
  1295. END_TYPE;
  1296. TYPE point_path_members = LIST [1:?] OF point_and_vector;
  1297. END_TYPE;
  1298. TYPE positive_integer = nonnegative_integer;
  1299. WHERE
  1300. positivity : SELF > 0;
  1301. END_TYPE;
  1302. TYPE positive_length_measure = non_negative_length_measure;
  1303. WHERE
  1304. WR1 : SELF > 0.0;
  1305. END_TYPE;
  1306. TYPE positive_plane_angle_measure = plane_angle_measure;
  1307. WHERE
  1308. WR1 : SELF > 0.0;
  1309. END_TYPE;
  1310. TYPE positive_ratio_measure = ratio_measure;
  1311. WHERE
  1312. WR1 : SELF > 0.0;
  1313. END_TYPE;
  1314. TYPE power_measure = REAL;
  1315. END_TYPE;
  1316. TYPE preferred_surface_curve_representation = ENUMERATION OF (
  1317. curve_3d,
  1318. pcurve_s1,
  1319. pcurve_s2 );
  1320. END_TYPE;
  1321. TYPE presentable_text = STRING;
  1322. WHERE
  1323. WR1 : control_characters_free(SELF);
  1324. END_TYPE;
  1325. TYPE presentation_representation_select = SELECT (
  1326. presentation_representation,
  1327. presentation_set);
  1328. END_TYPE;
  1329. TYPE presentation_size_assignment_select = SELECT (
  1330. presentation_view,
  1331. presentation_area,
  1332. area_in_set);
  1333. END_TYPE;
  1334. TYPE presentation_style_select = SELECT (
  1335. point_style,
  1336. curve_style,
  1337. surface_style_usage,
  1338. symbol_style,
  1339. fill_area_style,
  1340. text_style,
  1341. null_style);
  1342. END_TYPE;
  1343. TYPE presented_item_select = SELECT (
  1344. action,
  1345. action_method,
  1346. action_relationship,
  1347. product_concept,
  1348. product_concept_feature,
  1349. product_concept_feature_category,
  1350. product_definition,
  1351. product_definition_formation,
  1352. product_definition_relationship);
  1353. END_TYPE;
  1354. TYPE pressure_measure = REAL;
  1355. END_TYPE;
  1356. TYPE product_definition_or_assembly_relationship = SELECT (
  1357. assembly_component_usage,
  1358. product_definition);
  1359. END_TYPE;
  1360. TYPE product_definition_or_breakdown_element_usage = SELECT (
  1361. product_definition,
  1362. product_definition_usage);
  1363. END_TYPE;
  1364. TYPE product_definition_or_product_definition_relationship = SELECT (
  1365. product_definition,
  1366. product_definition_usage);
  1367. END_TYPE;
  1368. TYPE product_or_formation_or_definition = SELECT (
  1369. product,
  1370. product_definition_formation,
  1371. product_definition);
  1372. END_TYPE;
  1373. TYPE project_item = SELECT (
  1374. executed_action,
  1375. product_concept);
  1376. END_TYPE;
  1377. TYPE radioactivity_measure = REAL;
  1378. END_TYPE;
  1379. TYPE ratio_measure = REAL;
  1380. END_TYPE;
  1381. TYPE rendering_properties_select = SELECT (
  1382. surface_style_reflectance_ambient,
  1383. surface_style_transparent);
  1384. END_TYPE;
  1385. TYPE represented_definition = SELECT (
  1386. general_property,
  1387. property_definition,
  1388. property_definition_relationship,
  1389. shape_aspect,
  1390. shape_aspect_relationship);
  1391. END_TYPE;
  1392. TYPE requirement_assigned_item = SELECT (
  1393. configuration_item,
  1394. descriptive_representation_item,
  1395. product,
  1396. product_class,
  1397. product_definition,
  1398. product_definition_formation,
  1399. product_definition_relationship,
  1400. representation,
  1401. shape_aspect);
  1402. END_TYPE;
  1403. TYPE requirement_satisfaction_item = SELECT (
  1404. requirement_assigned_item);
  1405. END_TYPE;
  1406. TYPE requirement_source_item = SELECT (
  1407. characterized_object,
  1408. group,
  1409. group_relationship,
  1410. product,
  1411. product_definition,
  1412. product_definition_formation,
  1413. product_definition_relationship,
  1414. shape_aspect);
  1415. END_TYPE;
  1416. TYPE resistance_measure = REAL;
  1417. END_TYPE;
  1418. TYPE reversible_topology = SELECT (
  1419. reversible_topology_item,
  1420. list_of_reversible_topology_item,
  1421. set_of_reversible_topology_item);
  1422. END_TYPE;
  1423. TYPE reversible_topology_item = SELECT (
  1424. edge,
  1425. path,
  1426. face,
  1427. face_bound,
  1428. closed_shell,
  1429. open_shell);
  1430. END_TYPE;
  1431. TYPE role_select = SELECT (
  1432. action_assignment,
  1433. action_request_assignment,
  1434. approval_assignment,
  1435. approval_date_time,
  1436. certification_assignment,
  1437. contract_assignment,
  1438. document_reference,
  1439. effectivity_assignment,
  1440. group_assignment,
  1441. name_assignment,
  1442. security_classification_assignment);
  1443. END_TYPE;
  1444. TYPE rule_superseded_item = SELECT (
  1445. product_definition_formation);
  1446. END_TYPE;
  1447. TYPE second_in_minute = REAL;
  1448. WHERE
  1449. WR1 : { 0 <= SELF <= 60.0 };
  1450. END_TYPE;
  1451. TYPE security_classification_item = SELECT (
  1452. assembly_component_usage,
  1453. document,
  1454. document_file,
  1455. make_from_usage_option,
  1456. product,
  1457. product_definition,
  1458. product_definition_formation,
  1459. product_definition_usage);
  1460. END_TYPE;
  1461. TYPE set_of_reversible_topology_item = SET [0:?] OF reversible_topology_item;
  1462. END_TYPE;
  1463. TYPE set_representation_item = SET [1:?] OF representation_item;
  1464. END_TYPE;
  1465. TYPE shading_curve_method = ENUMERATION OF (
  1466. constant_colour,
  1467. linear_colour );
  1468. END_TYPE;
  1469. TYPE shading_surface_method = ENUMERATION OF (
  1470. constant_shading,
  1471. colour_shading,
  1472. dot_shading,
  1473. normal_shading );
  1474. END_TYPE;
  1475. TYPE shape_definition = SELECT (
  1476. product_definition_shape,
  1477. shape_aspect,
  1478. shape_aspect_relationship);
  1479. END_TYPE;
  1480. TYPE shell = SELECT (
  1481. vertex_shell,
  1482. wire_shell,
  1483. open_shell,
  1484. closed_shell);
  1485. END_TYPE;
  1486. TYPE si_prefix = ENUMERATION OF (
  1487. exa,
  1488. peta,
  1489. tera,
  1490. giga,
  1491. mega,
  1492. kilo,
  1493. hecto,
  1494. deca,
  1495. deci,
  1496. centi,
  1497. milli,
  1498. micro,
  1499. nano,
  1500. pico,
  1501. femto,
  1502. atto );
  1503. END_TYPE;
  1504. TYPE si_unit_name = ENUMERATION OF (
  1505. metre,
  1506. gram,
  1507. second,
  1508. ampere,
  1509. kelvin,
  1510. mole,
  1511. candela,
  1512. radian,
  1513. steradian,
  1514. hertz,
  1515. newton,
  1516. pascal,
  1517. joule,
  1518. watt,
  1519. coulomb,
  1520. volt,
  1521. farad,
  1522. ohm,
  1523. siemens,
  1524. weber,
  1525. tesla,
  1526. henry,
  1527. degree_Celsius,
  1528. lumen,
  1529. lux,
  1530. becquerel,
  1531. gray,
  1532. sievert );
  1533. END_TYPE;
  1534. TYPE size_select = SELECT (
  1535. positive_length_measure,
  1536. measure_with_unit,
  1537. descriptive_measure);
  1538. END_TYPE;
  1539. TYPE sketch_basis_select = SELECT (
  1540. curve_bounded_surface,
  1541. face_surface);
  1542. END_TYPE;
  1543. TYPE solid_angle_measure = REAL;
  1544. END_TYPE;
  1545. TYPE source = ENUMERATION OF (
  1546. made,
  1547. bought,
  1548. not_known );
  1549. END_TYPE;
  1550. TYPE source_item = SELECT (
  1551. identifier,
  1552. message);
  1553. END_TYPE;
  1554. TYPE start_request_item = SELECT (
  1555. product_definition_formation);
  1556. END_TYPE;
  1557. TYPE string_representation_item_select = SELECT (
  1558. descriptive_representation_item,
  1559. included_text_block,
  1560. structured_text_composition);
  1561. END_TYPE;
  1562. TYPE style_context_select = SELECT (
  1563. group,
  1564. presentation_layer_assignment,
  1565. presentation_set,
  1566. representation,
  1567. representation_item,
  1568. representation_relationship);
  1569. END_TYPE;
  1570. TYPE surface_side = ENUMERATION OF (
  1571. positive,
  1572. negative,
  1573. both );
  1574. END_TYPE;
  1575. TYPE surface_side_style_select = SELECT (
  1576. surface_side_style,
  1577. pre_defined_surface_side_style);
  1578. END_TYPE;
  1579. TYPE surface_style_element_select = SELECT (
  1580. surface_style_fill_area,
  1581. surface_style_boundary,
  1582. surface_style_silhouette,
  1583. surface_style_segmentation_curve,
  1584. surface_style_control_grid,
  1585. surface_style_parameter_line,
  1586. surface_style_rendering);
  1587. END_TYPE;
  1588. TYPE symbol_style_select = SELECT (
  1589. symbol_colour);
  1590. END_TYPE;
  1591. TYPE text = STRING;
  1592. END_TYPE;
  1593. TYPE text_alignment = label;
  1594. END_TYPE;
  1595. TYPE text_delineation = label;
  1596. END_TYPE;
  1597. TYPE text_or_character = SELECT (
  1598. annotation_text,
  1599. annotation_text_character,
  1600. composite_text,
  1601. text_literal);
  1602. END_TYPE;
  1603. TYPE text_path = ENUMERATION OF (
  1604. left,
  1605. right,
  1606. up,
  1607. down );
  1608. END_TYPE;
  1609. TYPE text_string_representation_item = SELECT (
  1610. text_literal,
  1611. annotation_text,
  1612. annotation_text_character,
  1613. composite_text,
  1614. axis2_placement);
  1615. END_TYPE;
  1616. TYPE thermodynamic_temperature_measure = REAL;
  1617. END_TYPE;
  1618. TYPE time_interval_item = SELECT (
  1619. action,
  1620. time_interval_based_effectivity);
  1621. END_TYPE;
  1622. TYPE time_measure = REAL;
  1623. END_TYPE;
  1624. TYPE tolerance_method_definition = SELECT (
  1625. tolerance_value,
  1626. limits_and_fits);
  1627. END_TYPE;
  1628. TYPE transformation = SELECT (
  1629. item_defined_transformation,
  1630. functionally_defined_transformation);
  1631. END_TYPE;
  1632. TYPE transition_code = ENUMERATION OF (
  1633. discontinuous,
  1634. continuous,
  1635. cont_same_gradient,
  1636. cont_same_gradient_same_curvature );
  1637. END_TYPE;
  1638. TYPE trim_condition_select = SELECT (
  1639. length_measure,
  1640. plane_angle_measure,
  1641. generalized_surface_select,
  1642. solid_model);
  1643. END_TYPE;
  1644. TYPE trim_intent = ENUMERATION OF (
  1645. blind,
  1646. offset,
  1647. through_all,
  1648. unspecified,
  1649. up_to_next );
  1650. END_TYPE;
  1651. TYPE trimming_preference = ENUMERATION OF (
  1652. cartesian,
  1653. parameter,
  1654. unspecified );
  1655. END_TYPE;
  1656. TYPE trimming_select = SELECT (
  1657. cartesian_point,
  1658. parameter_value);
  1659. END_TYPE;
  1660. TYPE u_direction_count = INTEGER;
  1661. WHERE
  1662. WR1 : SELF > 1;
  1663. END_TYPE;
  1664. TYPE unit = SELECT (
  1665. derived_unit,
  1666. named_unit);
  1667. END_TYPE;
  1668. TYPE v_direction_count = INTEGER;
  1669. WHERE
  1670. WR1 : SELF > 1;
  1671. END_TYPE;
  1672. TYPE value_qualifier = SELECT (
  1673. precision_qualifier,
  1674. type_qualifier,
  1675. uncertainty_qualifier);
  1676. END_TYPE;
  1677. TYPE vector_or_direction = SELECT (
  1678. vector,
  1679. direction);
  1680. END_TYPE;
  1681. TYPE velocity_measure = REAL;
  1682. END_TYPE;
  1683. TYPE volume_measure = REAL;
  1684. END_TYPE;
  1685. TYPE week_in_year_number = INTEGER;
  1686. WHERE
  1687. WR1 : { 1 <= SELF <= 53 };
  1688. END_TYPE;
  1689. TYPE work_item = SELECT (
  1690. product_definition_formation);
  1691. END_TYPE;
  1692. TYPE year_number = INTEGER;
  1693. END_TYPE;
  1694. ENTITY absorbed_dose_measure_with_unit
  1695. SUBTYPE OF (measure_with_unit);
  1696. WHERE
  1697. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ABSORBED_DOSE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  1698. END_ENTITY;
  1699. ENTITY absorbed_dose_unit
  1700. SUBTYPE OF (derived_unit);
  1701. WHERE
  1702. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.gray);
  1703. END_ENTITY;
  1704. ENTITY abstract_variable
  1705. SUBTYPE OF (property_definition, property_definition_representation, representation, representation_item);
  1706. END_ENTITY;
  1707. ENTITY acceleration_measure_with_unit
  1708. SUBTYPE OF (measure_with_unit);
  1709. WHERE
  1710. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ACCELERATION_UNIT' IN TYPEOF (SELF\measure_with_unit.unit_component);
  1711. END_ENTITY;
  1712. ENTITY acceleration_unit
  1713. SUBTYPE OF (derived_unit);
  1714. WHERE
  1715. WR1 : derive_dimensional_exponents(SELF) =
  1716. dimensional_exponents ( 1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0 );
  1717. END_ENTITY;
  1718. ENTITY action;
  1719. name : label;
  1720. description : OPTIONAL text;
  1721. chosen_method : action_method;
  1722. DERIVE
  1723. id : identifier := get_id_value(SELF);
  1724. WHERE
  1725. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
  1726. END_ENTITY;
  1727. ENTITY action_assignment
  1728. ABSTRACT SUPERTYPE;
  1729. assigned_action : action;
  1730. DERIVE
  1731. role : object_role := get_role(SELF);
  1732. WHERE
  1733. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
  1734. END_ENTITY;
  1735. ENTITY action_directive;
  1736. name : label;
  1737. description : OPTIONAL text;
  1738. analysis : text;
  1739. comment : text;
  1740. requests : SET [1:?] OF versioned_action_request;
  1741. END_ENTITY;
  1742. ENTITY action_method;
  1743. name : label;
  1744. description : OPTIONAL text;
  1745. consequence : text;
  1746. purpose : text;
  1747. END_ENTITY;
  1748. ENTITY action_method_assignment
  1749. ABSTRACT SUPERTYPE;
  1750. assigned_action_method : action_method;
  1751. role : action_method_role;
  1752. END_ENTITY;
  1753. ENTITY action_method_relationship;
  1754. name : label;
  1755. description : OPTIONAL text;
  1756. relating_method : action_method;
  1757. related_method : action_method;
  1758. END_ENTITY;
  1759. ENTITY action_method_role;
  1760. name : label;
  1761. description : OPTIONAL text;
  1762. END_ENTITY;
  1763. ENTITY action_property;
  1764. name : label;
  1765. description : text;
  1766. definition : characterized_action_definition;
  1767. END_ENTITY;
  1768. ENTITY action_property_representation;
  1769. name : label;
  1770. description : text;
  1771. property : action_property;
  1772. representation : representation;
  1773. END_ENTITY;
  1774. ENTITY action_relationship;
  1775. name : label;
  1776. description : OPTIONAL text;
  1777. relating_action : action;
  1778. related_action : action;
  1779. END_ENTITY;
  1780. ENTITY action_request_assignment
  1781. ABSTRACT SUPERTYPE;
  1782. assigned_action_request : versioned_action_request;
  1783. DERIVE
  1784. role : object_role := get_role(SELF);
  1785. WHERE
  1786. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
  1787. END_ENTITY;
  1788. ENTITY action_request_solution;
  1789. method : action_method;
  1790. request : versioned_action_request;
  1791. DERIVE
  1792. description : text := get_description_value(SELF);
  1793. name : label := get_name_value(SELF);
  1794. WHERE
  1795. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
  1796. WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
  1797. END_ENTITY;
  1798. ENTITY action_request_status;
  1799. status : label;
  1800. assigned_request : versioned_action_request;
  1801. END_ENTITY;
  1802. ENTITY action_status;
  1803. status : label;
  1804. assigned_action : executed_action;
  1805. END_ENTITY;
  1806. ENTITY address;
  1807. internal_location : OPTIONAL label;
  1808. street_number : OPTIONAL label;
  1809. street : OPTIONAL label;
  1810. postal_box : OPTIONAL label;
  1811. town : OPTIONAL label;
  1812. region : OPTIONAL label;
  1813. postal_code : OPTIONAL label;
  1814. country : OPTIONAL label;
  1815. facsimile_number : OPTIONAL label;
  1816. telephone_number : OPTIONAL label;
  1817. electronic_mail_address : OPTIONAL label;
  1818. telex_number : OPTIONAL label;
  1819. DERIVE
  1820. name : label := get_name_value(SELF);
  1821. url : identifier := get_id_value(SELF);
  1822. WHERE
  1823. WR1 : EXISTS(internal_location) OR EXISTS(street_number) OR EXISTS(street) OR EXISTS(postal_box) OR EXISTS(town) OR EXISTS(region) OR EXISTS(postal_code) OR EXISTS(country) OR EXISTS(facsimile_number) OR EXISTS(telephone_number) OR EXISTS(electronic_mail_address) OR EXISTS(telex_number);
  1824. END_ENTITY;
  1825. ENTITY advanced_brep_shape_representation
  1826. SUBTYPE OF (shape_representation);
  1827. WHERE
  1828. WR1 : SIZEOF (
  1829. QUERY ( it <* SELF.items| NOT ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0;
  1830. WR2 : SIZEOF (
  1831. QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) > 0;
  1832. WR3 : SIZEOF (
  1833. QUERY ( msb <*
  1834. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF (it)) )| NOT ( SIZEOF (
  1835. QUERY ( csh <* msb_shells(msb)| NOT ( SIZEOF (
  1836. QUERY ( fcs <* csh\connected_face_set.cfs_faces| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fcs)) )) = 0) )) = 0) )) = 0;
  1837. WR4 : SIZEOF (
  1838. QUERY ( msb <*
  1839. QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF (it)) )| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF (msb\manifold_solid_brep.outer)) )) = 0;
  1840. WR5 : SIZEOF (
  1841. QUERY ( brv <*
  1842. QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BREP_WITH_VOIDS' IN TYPEOF (it)) )| NOT ( SIZEOF (
  1843. QUERY ( csh <* brv\brep_with_voids.voids| csh\oriented_closed_shell.orientation )) = 0) )) = 0;
  1844. WR6 : SIZEOF (
  1845. QUERY ( mi <*
  1846. QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_BREP_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0;
  1847. END_ENTITY;
  1848. ENTITY advanced_face
  1849. SUBTYPE OF (face_surface);
  1850. WHERE
  1851. WR1 : SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_SURFACE' ] * TYPEOF (face_geometry)) = 1;
  1852. WR2 : SIZEOF (
  1853. QUERY ( elp_fbnds <*
  1854. QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF (
  1855. QUERY ( oe <* elp_fbnds.bound\path.edge_list| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (oe\oriented_edge.edge_element)) )) = 0) )) = 0;
  1856. WR3 : SIZEOF (
  1857. QUERY ( elp_fbnds <*
  1858. QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF (
  1859. QUERY ( oe <* elp_fbnds.bound\path.edge_list| NOT ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' ] * TYPEOF (oe.edge_element\edge_curve.edge_geometry)) = 1) )) = 0) )) = 0;
  1860. WR4 : SIZEOF (
  1861. QUERY ( elp_fbnds <*
  1862. QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF (
  1863. QUERY ( oe <* elp_fbnds.bound\path.edge_list| NOT ((('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (oe\edge.edge_start)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (oe\edge.edge_start\vertex_point.vertex_geometry))) AND (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (oe\edge.edge_end)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (oe\edge.edge_end\vertex_point.vertex_geometry)))) )) = 0) )) = 0;
  1864. WR5 : SIZEOF (
  1865. QUERY ( elp_fbnds <*
  1866. QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_PATH' IN TYPEOF (elp_fbnds.bound)) )) = 0;
  1867. WR6 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_SURFACE' IN TYPEOF (face_geometry)) OR ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' ] * TYPEOF (face_geometry\swept_surface.swept_curve)) = 1);
  1868. WR7 : SIZEOF (
  1869. QUERY ( vlp_fbnds <*
  1870. QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) )| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex\vertex_point.vertex_geometry))) )) = 0;
  1871. WR8 : SIZEOF (
  1872. QUERY ( bnd <* bounds| NOT ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' ] * TYPEOF (bnd.bound)) = 1) )) = 0;
  1873. WR9 : SIZEOF (
  1874. QUERY ( elp_fbnds <*
  1875. QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF (
  1876. QUERY ( oe <* elp_fbnds.bound\path.edge_list| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF (oe\oriented_edge.edge_element\edge_curve.edge_geometry)) AND NOT ( SIZEOF (
  1877. QUERY ( sc_ag <* oe.edge_element\edge_curve.edge_geometry\surface_curve.associated_geometry| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF (sc_ag)) )) = 0) )) = 0) )) = 0;
  1878. WR10 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_SURFACE' IN TYPEOF (face_geometry)) OR (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (face_geometry\swept_surface.swept_curve)) OR ( SIZEOF (face_geometry\swept_surface.swept_curve\polyline.points) >= 3))) AND ( SIZEOF (
  1879. QUERY ( elp_fbnds <*
  1880. QUERY ( bnds <* bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) )| NOT ( SIZEOF (
  1881. QUERY ( oe <* elp_fbnds.bound\path.edge_list| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (oe\oriented_edge.edge_element\edge_curve.edge_geometry)) AND NOT ( SIZEOF (oe\oriented_edge.edge_element\edge_curve.edge_geometry\polyline.points) >= 3) )) = 0) )) = 0);
  1882. END_ENTITY;
  1883. ENTITY alternate_product_relationship;
  1884. name : label;
  1885. definition : OPTIONAL text;
  1886. alternate : product;
  1887. base : product;
  1888. basis : text;
  1889. UNIQUE
  1890. UR1 : alternate, base;
  1891. WHERE
  1892. WR1 : alternate :<>: base;
  1893. END_ENTITY;
  1894. ENTITY amount_of_substance_measure_with_unit
  1895. SUBTYPE OF (measure_with_unit);
  1896. WHERE
  1897. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AMOUNT_OF_SUBSTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  1898. END_ENTITY;
  1899. ENTITY amount_of_substance_unit
  1900. SUBTYPE OF (named_unit);
  1901. WHERE
  1902. WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 1.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
  1903. END_ENTITY;
  1904. ENTITY angle_direction_reference
  1905. SUBTYPE OF (representation_item_relationship, geometric_representation_item);
  1906. SELF\representation_item_relationship.related_representation_item : angle_direction_reference_select;
  1907. SELF\representation_item_relationship.relating_representation_item : orientation_basis_select;
  1908. WHERE
  1909. WR1 : ((('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_PATH' IN TYPEOF(related_representation_item)) AND
  1910. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MIN_AND_MAJOR_PLY_ORIENTATION_BASIS' IN TYPEOF(relating_representation_item)))
  1911. OR
  1912. (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_PATH' IN TYPEOF(related_representation_item)) AND
  1913. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(relating_representation_item))));
  1914. END_ENTITY;
  1915. ENTITY angular_dimension
  1916. SUBTYPE OF (dimension_curve_directed_callout);
  1917. END_ENTITY;
  1918. ENTITY angular_location
  1919. SUBTYPE OF (dimensional_location);
  1920. angle_selection : angle_relator;
  1921. END_ENTITY;
  1922. ENTITY angular_size
  1923. SUBTYPE OF (dimensional_size);
  1924. angle_selection : angle_relator;
  1925. END_ENTITY;
  1926. ENTITY angularity_tolerance
  1927. SUBTYPE OF (geometric_tolerance_with_datum_reference);
  1928. WHERE
  1929. WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) < 3;
  1930. END_ENTITY;
  1931. ENTITY annotation_curve_occurrence
  1932. SUBTYPE OF (annotation_occurrence);
  1933. SELF\styled_item.item : curve;
  1934. END_ENTITY;
  1935. ENTITY annotation_fill_area
  1936. SUBTYPE OF (geometric_representation_item);
  1937. boundaries : SET [1:?] OF curve;
  1938. WHERE
  1939. WR1 : (SELF\geometric_representation_item.dim = 3) OR (SIZEOF (QUERY (curve <* SELF.boundaries |
  1940. NOT (
  1941. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE' IN TYPEOF (curve)) OR
  1942. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE' IN TYPEOF (curve)) OR
  1943. ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (curve))
  1944. AND (curve\b_spline_curve.closed_curve = TRUE) ) OR
  1945. ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE' IN TYPEOF (curve))
  1946. AND (curve\composite_curve.closed_curve = TRUE) ) OR
  1947. ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (curve))
  1948. AND (curve\polyline.points[LOINDEX(curve\polyline.points)] =
  1949. curve\polyline.points[HIINDEX(curve\polyline.points)]) )
  1950. ) )) = 0);
  1951. END_ENTITY;
  1952. ENTITY annotation_fill_area_occurrence
  1953. SUBTYPE OF (annotation_occurrence);
  1954. fill_style_target : point;
  1955. SELF\styled_item.item : annotation_fill_area;
  1956. END_ENTITY;
  1957. ENTITY annotation_occurrence
  1958. SUPERTYPE OF (ONEOF (annotation_curve_occurrence, annotation_fill_area_occurrence, annotation_text_occurrence, annotation_symbol_occurrence))
  1959. SUBTYPE OF (styled_item);
  1960. WHERE
  1961. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN
  1962. TYPEOF (SELF);
  1963. WR2 : SIZEOF (QUERY (reps <* using_representations(SELF) |
  1964. NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_REPRESENTATION_SELECT' IN TYPEOF(reps)))) = 0;
  1965. END_ENTITY;
  1966. ENTITY annotation_occurrence_associativity
  1967. SUBTYPE OF (annotation_occurrence_relationship);
  1968. WHERE
  1969. WR1 : SIZEOF (TYPEOF (SELF.related_annotation_occurrence) *
  1970. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE',
  1971. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE',
  1972. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE']) = 1;
  1973. END_ENTITY;
  1974. ENTITY annotation_occurrence_relationship;
  1975. name : label;
  1976. description : text;
  1977. relating_annotation_occurrence : annotation_occurrence;
  1978. related_annotation_occurrence : annotation_occurrence;
  1979. END_ENTITY;
  1980. ENTITY annotation_plane
  1981. SUBTYPE OF (annotation_occurrence, geometric_representation_item);
  1982. elements : OPTIONAL SET [1:?] OF annotation_plane_element;
  1983. SELF\styled_item.item : plane_or_planar_box;
  1984. WHERE
  1985. WR1 : SELF\geometric_representation_item.dim = 3;
  1986. WR2 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) OR
  1987. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\styled_item.item\planar_box.placement));
  1988. WR3 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PLANAR_BOX' IN TYPEOF(SELF\styled_item.item)) AND
  1989. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'CURVE_STYLE' IN TYPEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles[1]))) OR
  1990. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PLANE' IN TYPEOF(SELF\styled_item.item)) AND
  1991. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'FILL_AREA_STYLE' IN TYPEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles[1])));
  1992. WR4 : (SIZEOF(SELF\styled_item.styles) = 1) AND
  1993. (SIZEOF(SELF\styled_item.styles[1]\presentation_style_assignment.styles) = 1);
  1994. END_ENTITY;
  1995. ENTITY annotation_subfigure_occurrence
  1996. SUBTYPE OF (annotation_symbol_occurrence);
  1997. WHERE
  1998. WR1 : SIZEOF (QUERY (sty <* SELF.styles |
  1999. NOT (SIZEOF (sty.styles) = 1)
  2000. )) = 0;
  2001. WR2 : SIZEOF (QUERY (sty <* SELF.styles |
  2002. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NULL_STYLE'
  2003. IN TYPEOF (sty.styles[1])) ))=0;
  2004. WR3 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL'
  2005. IN TYPEOF (SELF.item));
  2006. WR4 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_SUBFIGURE_REPRESENTATION'
  2007. IN TYPEOF
  2008. (SELF.item\mapped_item.mapping_source.mapped_representation));
  2009. END_ENTITY;
  2010. ENTITY annotation_symbol
  2011. SUBTYPE OF (mapped_item);
  2012. SELF\mapped_item.mapping_source : symbol_representation_map;
  2013. SELF\mapped_item.mapping_target : symbol_target;
  2014. WHERE
  2015. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN
  2016. TYPEOF (SELF);
  2017. END_ENTITY;
  2018. ENTITY annotation_symbol_occurrence
  2019. SUBTYPE OF (annotation_occurrence);
  2020. SELF\styled_item.item : annotation_symbol_occurrence_item;
  2021. END_ENTITY;
  2022. ENTITY annotation_text
  2023. SUBTYPE OF (mapped_item);
  2024. SELF\mapped_item.mapping_target : axis2_placement;
  2025. WHERE
  2026. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_STRING_REPRESENTATION' IN
  2027. TYPEOF( SELF\mapped_item.mapping_source.mapped_representation);
  2028. WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN
  2029. TYPEOF( SELF);
  2030. END_ENTITY;
  2031. ENTITY annotation_text_character
  2032. SUBTYPE OF (mapped_item);
  2033. alignment : text_alignment;
  2034. SELF\mapped_item.mapping_target : axis2_placement;
  2035. WHERE
  2036. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CHARACTER_GLYPH_SYMBOL' IN
  2037. TYPEOF (SELF\mapped_item.mapping_source.mapped_representation);
  2038. WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN
  2039. TYPEOF (SELF);
  2040. END_ENTITY;
  2041. ENTITY annotation_text_occurrence
  2042. SUBTYPE OF (annotation_occurrence);
  2043. SELF\styled_item.item : annotation_text_occurrence_item;
  2044. END_ENTITY;
  2045. ENTITY apex
  2046. SUBTYPE OF (derived_shape_aspect);
  2047. END_ENTITY;
  2048. ENTITY application_context;
  2049. application : label;
  2050. DERIVE
  2051. description : text := get_description_value(SELF);
  2052. id : identifier := get_id_value(SELF);
  2053. INVERSE
  2054. context_elements: SET [1:?] OF application_context_element FOR frame_of_reference;
  2055. WHERE
  2056. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
  2057. WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
  2058. END_ENTITY;
  2059. ENTITY application_context_element
  2060. SUPERTYPE OF (ONEOF (product_concept_context, product_context, product_definition_context));
  2061. name : label;
  2062. frame_of_reference : application_context;
  2063. END_ENTITY;
  2064. ENTITY application_protocol_definition;
  2065. status : label;
  2066. application_interpreted_model_schema_name : label;
  2067. application_protocol_year : year_number;
  2068. application : application_context;
  2069. END_ENTITY;
  2070. ENTITY applied_action_assignment
  2071. SUBTYPE OF (action_assignment);
  2072. items : SET [1:?] OF action_items;
  2073. END_ENTITY;
  2074. ENTITY applied_action_method_assignment
  2075. SUBTYPE OF (action_method_assignment);
  2076. items : SET [1:?] OF action_method_items;
  2077. END_ENTITY;
  2078. ENTITY applied_action_request_assignment
  2079. SUBTYPE OF (action_request_assignment);
  2080. items : SET [1:?] OF action_request_item;
  2081. END_ENTITY;
  2082. ENTITY applied_approval_assignment
  2083. SUBTYPE OF (approval_assignment);
  2084. items : SET [1:?] OF approval_item;
  2085. END_ENTITY;
  2086. ENTITY applied_attribute_classification_assignment
  2087. SUBTYPE OF (attribute_classification_assignment);
  2088. items : SET [1:?] OF attribute_classification_item;
  2089. SELF\attribute_classification_assignment.assigned_class : class;
  2090. END_ENTITY;
  2091. ENTITY applied_certification_assignment
  2092. SUBTYPE OF (certification_assignment);
  2093. items : SET [1:?] OF certification_item;
  2094. END_ENTITY;
  2095. ENTITY applied_classification_assignment
  2096. SUBTYPE OF (classification_assignment);
  2097. items : SET [1:?] OF classification_item;
  2098. END_ENTITY;
  2099. ENTITY applied_contract_assignment
  2100. SUBTYPE OF (contract_assignment);
  2101. items : SET [1:?] OF contract_item;
  2102. END_ENTITY;
  2103. ENTITY applied_date_and_time_assignment
  2104. SUBTYPE OF (date_and_time_assignment);
  2105. items : SET [1:?] OF date_and_time_item;
  2106. END_ENTITY;
  2107. ENTITY applied_date_assignment
  2108. SUBTYPE OF (date_assignment);
  2109. items : SET [1:?] OF date_item;
  2110. END_ENTITY;
  2111. ENTITY applied_document_reference
  2112. SUBTYPE OF (document_reference);
  2113. items : SET [1:?] OF document_reference_item;
  2114. END_ENTITY;
  2115. ENTITY applied_document_usage_constraint_assignment
  2116. SUBTYPE OF (document_usage_constraint_assignment);
  2117. items : SET [1:?] OF document_reference_item;
  2118. END_ENTITY;
  2119. ENTITY applied_effectivity_assignment
  2120. SUBTYPE OF (effectivity_assignment);
  2121. items : SET [1:?] OF effectivity_item;
  2122. END_ENTITY;
  2123. ENTITY applied_event_occurrence_assignment
  2124. SUBTYPE OF (event_occurrence_assignment);
  2125. items : SET [1:?] OF event_occurrence_item;
  2126. END_ENTITY;
  2127. ENTITY applied_external_identification_assignment
  2128. SUBTYPE OF (external_identification_assignment);
  2129. items : SET [1:?] OF external_identification_item;
  2130. END_ENTITY;
  2131. ENTITY applied_group_assignment
  2132. SUBTYPE OF (group_assignment);
  2133. items : SET [1:?] OF groupable_item;
  2134. END_ENTITY;
  2135. ENTITY applied_identification_assignment
  2136. SUBTYPE OF (identification_assignment);
  2137. items : SET [1:?] OF identification_item;
  2138. END_ENTITY;
  2139. ENTITY applied_name_assignment
  2140. SUBTYPE OF (name_assignment);
  2141. item : name_item;
  2142. END_ENTITY;
  2143. ENTITY applied_organization_assignment
  2144. SUBTYPE OF (organization_assignment);
  2145. items : SET [1:?] OF organization_item;
  2146. END_ENTITY;
  2147. ENTITY applied_organizational_project_assignment
  2148. SUBTYPE OF (organizational_project_assignment);
  2149. items : SET [1:?] OF project_item;
  2150. END_ENTITY;
  2151. ENTITY applied_person_and_organization_assignment
  2152. SUBTYPE OF (person_and_organization_assignment);
  2153. items : SET [1:?] OF person_and_organization_item;
  2154. END_ENTITY;
  2155. ENTITY applied_presented_item
  2156. SUBTYPE OF (presented_item);
  2157. items : SET [1:?] OF presented_item_select;
  2158. END_ENTITY;
  2159. ENTITY applied_security_classification_assignment
  2160. SUBTYPE OF (security_classification_assignment);
  2161. items : SET [1:?] OF security_classification_item;
  2162. END_ENTITY;
  2163. ENTITY applied_time_interval_assignment
  2164. SUBTYPE OF (time_interval_assignment);
  2165. items : SET [0:?] OF time_interval_item;
  2166. END_ENTITY;
  2167. ENTITY applied_usage_right
  2168. SUBTYPE OF (applied_action_assignment);
  2169. SELF\applied_action_assignment.items : SET [1:?] OF ir_usage_item;
  2170. END_ENTITY;
  2171. ENTITY approval;
  2172. status : approval_status;
  2173. level : label;
  2174. END_ENTITY;
  2175. ENTITY approval_assignment
  2176. ABSTRACT SUPERTYPE;
  2177. assigned_approval : approval;
  2178. DERIVE
  2179. role : object_role := get_role(SELF);
  2180. WHERE
  2181. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
  2182. END_ENTITY;
  2183. ENTITY approval_date_time;
  2184. date_time : date_time_select;
  2185. dated_approval : approval;
  2186. DERIVE
  2187. role : object_role := get_role(SELF);
  2188. WHERE
  2189. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
  2190. END_ENTITY;
  2191. ENTITY approval_person_organization;
  2192. person_organization : person_organization_select;
  2193. authorized_approval : approval;
  2194. role : approval_role;
  2195. END_ENTITY;
  2196. ENTITY approval_relationship;
  2197. name : label;
  2198. description : OPTIONAL text;
  2199. relating_approval : approval;
  2200. related_approval : approval;
  2201. END_ENTITY;
  2202. ENTITY approval_role;
  2203. role : label;
  2204. DERIVE
  2205. description : text := get_description_value(SELF);
  2206. WHERE
  2207. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
  2208. END_ENTITY;
  2209. ENTITY approval_status;
  2210. name : label;
  2211. END_ENTITY;
  2212. ENTITY area_in_set;
  2213. area : presentation_area;
  2214. in_set : presentation_set;
  2215. END_ENTITY;
  2216. ENTITY area_measure_with_unit
  2217. SUBTYPE OF (measure_with_unit);
  2218. WHERE
  2219. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AREA_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  2220. END_ENTITY;
  2221. ENTITY area_unit
  2222. SUBTYPE OF (derived_unit);
  2223. WHERE
  2224. WR1 : derive_dimensional_exponents(SELF) =
  2225. dimensional_exponents ( 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 );
  2226. END_ENTITY;
  2227. ENTITY assembly_component_usage
  2228. SUPERTYPE OF (ONEOF (next_assembly_usage_occurrence, specified_higher_usage_occurrence, promissory_usage_occurrence))
  2229. SUBTYPE OF (product_definition_usage);
  2230. reference_designator : OPTIONAL identifier;
  2231. END_ENTITY;
  2232. ENTITY assembly_component_usage_substitute;
  2233. name : label;
  2234. definition : OPTIONAL text;
  2235. base : assembly_component_usage;
  2236. substitute : assembly_component_usage;
  2237. UNIQUE
  2238. UR1 : base, substitute;
  2239. WHERE
  2240. WR1 : base.relating_product_definition :=:
  2241. substitute.relating_product_definition;
  2242. WR2 : base :<>: substitute;
  2243. END_ENTITY;
  2244. ENTITY assigned_requirement
  2245. SUBTYPE OF (group_assignment);
  2246. items : SET [1:1] OF product_definition;
  2247. SELF\group_assignment.assigned_group : requirement_assignment;
  2248. END_ENTITY;
  2249. ENTITY atomic_formula
  2250. SUBTYPE OF (compound_representation_item);
  2251. END_ENTITY;
  2252. ENTITY attribute_assertion
  2253. SUBTYPE OF (fact_type, property_definition_representation, representation);
  2254. END_ENTITY;
  2255. ENTITY attribute_classification_assignment
  2256. ABSTRACT SUPERTYPE;
  2257. assigned_class : group;
  2258. attribute_name : label;
  2259. role : classification_role;
  2260. END_ENTITY;
  2261. ENTITY attribute_language_assignment
  2262. SUBTYPE OF (attribute_classification_assignment);
  2263. items : SET [1:?] OF attribute_language_item;
  2264. SELF\attribute_classification_assignment.assigned_class : language;
  2265. WHERE
  2266. WR1 : SELF\attribute_classification_assignment.role.name IN ['primary', 'translated'];
  2267. WR2 : SELF\attribute_classification_assignment.attribute_name<> '';
  2268. END_ENTITY;
  2269. ENTITY attribute_value_assignment
  2270. ABSTRACT SUPERTYPE;
  2271. attribute_name : label;
  2272. attribute_value : attribute_type;
  2273. role : attribute_value_role;
  2274. END_ENTITY;
  2275. ENTITY attribute_value_role;
  2276. name : label;
  2277. description : OPTIONAL text;
  2278. END_ENTITY;
  2279. ENTITY auxiliary_geometric_representation_item
  2280. SUBTYPE OF (geometric_representation_item, variational_representation_item);
  2281. END_ENTITY;
  2282. ENTITY axis1_placement
  2283. SUBTYPE OF (placement);
  2284. axis : OPTIONAL direction;
  2285. DERIVE
  2286. z : direction := NVL(normalise(axis), dummy_gri ||
  2287. direction([0.0,0.0,1.0]));
  2288. WHERE
  2289. WR1 : SELF\geometric_representation_item.dim = 3;
  2290. END_ENTITY;
  2291. ENTITY axis2_placement_2d
  2292. SUBTYPE OF (placement);
  2293. ref_direction : OPTIONAL direction;
  2294. DERIVE
  2295. p : LIST [2:2] OF direction := build_2axes(ref_direction);
  2296. WHERE
  2297. WR1 : SELF\geometric_representation_item.dim = 2;
  2298. END_ENTITY;
  2299. ENTITY axis2_placement_3d
  2300. SUBTYPE OF (placement);
  2301. axis : OPTIONAL direction;
  2302. ref_direction : OPTIONAL direction;
  2303. DERIVE
  2304. p : LIST [3:3] OF direction := build_axes(axis,ref_direction);
  2305. WHERE
  2306. WR1 : SELF\placement.location.dim = 3;
  2307. WR2 : (NOT (EXISTS (axis))) OR (axis.dim = 3);
  2308. WR3 : (NOT (EXISTS (ref_direction))) OR (ref_direction.dim = 3);
  2309. WR4 : (NOT (EXISTS (axis))) OR (NOT (EXISTS (ref_direction))) OR
  2310. (cross_product(axis,ref_direction).magnitude > 0.0);
  2311. END_ENTITY;
  2312. ENTITY b_spline_curve
  2313. SUPERTYPE OF ((ONEOF (uniform_curve, b_spline_curve_with_knots, quasi_uniform_curve, bezier_curve) ANDOR rational_b_spline_curve))
  2314. SUBTYPE OF (bounded_curve);
  2315. degree : INTEGER;
  2316. control_points_list : LIST [2:?] OF cartesian_point;
  2317. curve_form : b_spline_curve_form;
  2318. closed_curve : LOGICAL;
  2319. self_intersect : LOGICAL;
  2320. DERIVE
  2321. control_points : ARRAY [0:upper_index_on_control_points] OF cartesian_point := list_to_array(control_points_list,0,
  2322. upper_index_on_control_points);
  2323. upper_index_on_control_points : INTEGER := (SIZEOF(control_points_list) - 1);
  2324. WHERE
  2325. WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.UNIFORM_CURVE' IN TYPEOF(self)) OR
  2326. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.QUASI_UNIFORM_CURVE' IN TYPEOF(self)) OR
  2327. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BEZIER_CURVE' IN TYPEOF(self)) OR
  2328. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF(self));
  2329. END_ENTITY;
  2330. ENTITY b_spline_curve_with_knots
  2331. SUBTYPE OF (b_spline_curve);
  2332. knot_multiplicities : LIST [2:?] OF INTEGER;
  2333. knots : LIST [2:?] OF parameter_value;
  2334. knot_spec : knot_type;
  2335. DERIVE
  2336. upper_index_on_knots : INTEGER := SIZEOF(knots);
  2337. WHERE
  2338. WR1 : constraints_param_b_spline(degree, upper_index_on_knots,
  2339. upper_index_on_control_points,
  2340. knot_multiplicities, knots);
  2341. WR2 : SIZEOF(knot_multiplicities) = upper_index_on_knots;
  2342. END_ENTITY;
  2343. ENTITY b_spline_surface
  2344. SUPERTYPE OF ((ONEOF (b_spline_surface_with_knots, uniform_surface, quasi_uniform_surface, bezier_surface) ANDOR rational_b_spline_surface))
  2345. SUBTYPE OF (bounded_surface);
  2346. u_degree : INTEGER;
  2347. v_degree : INTEGER;
  2348. control_points_list : LIST [2:?] OF LIST [2:?] OF cartesian_point;
  2349. surface_form : b_spline_surface_form;
  2350. u_closed : LOGICAL;
  2351. v_closed : LOGICAL;
  2352. self_intersect : LOGICAL;
  2353. DERIVE
  2354. control_points : ARRAY [0:u_upper] OF ARRAY [0:v_upper] OF cartesian_point := make_array_of_array(control_points_list,
  2355. 0,u_upper,0,v_upper);
  2356. u_upper : INTEGER := SIZEOF(control_points_list) - 1;
  2357. v_upper : INTEGER := SIZEOF(control_points_list[1]) - 1;
  2358. WHERE
  2359. WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.UNIFORM_SURFACE' IN TYPEOF(SELF)) OR
  2360. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.QUASI_UNIFORM_SURFACE' IN TYPEOF(SELF)) OR
  2361. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BEZIER_SURFACE' IN TYPEOF(SELF)) OR
  2362. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF(SELF));
  2363. END_ENTITY;
  2364. ENTITY b_spline_surface_with_knots
  2365. SUBTYPE OF (b_spline_surface);
  2366. u_multiplicities : LIST [2:?] OF INTEGER;
  2367. v_multiplicities : LIST [2:?] OF INTEGER;
  2368. u_knots : LIST [2:?] OF parameter_value;
  2369. v_knots : LIST [2:?] OF parameter_value;
  2370. knot_spec : knot_type;
  2371. DERIVE
  2372. knot_u_upper : INTEGER := SIZEOF(u_knots);
  2373. knot_v_upper : INTEGER := SIZEOF(v_knots);
  2374. WHERE
  2375. WR1 : constraints_param_b_spline(SELF\b_spline_surface.u_degree,
  2376. knot_u_upper, SELF\b_spline_surface.u_upper,
  2377. u_multiplicities, u_knots);
  2378. WR2 : constraints_param_b_spline(SELF\b_spline_surface.v_degree,
  2379. knot_v_upper, SELF\b_spline_surface.v_upper,
  2380. v_multiplicities, v_knots);
  2381. WR3 : SIZEOF(u_multiplicities) = knot_u_upper;
  2382. WR4 : SIZEOF(v_multiplicities) = knot_v_upper;
  2383. END_ENTITY;
  2384. ENTITY back_chaining_rule
  2385. SUBTYPE OF (rule_definition);
  2386. END_ENTITY;
  2387. ENTITY back_chaining_rule_body
  2388. SUBTYPE OF (property_definition, property_definition_representation, representation);
  2389. END_ENTITY;
  2390. ENTITY background_colour
  2391. SUBTYPE OF (colour);
  2392. presentation : area_or_view;
  2393. UNIQUE
  2394. UR1 : presentation;
  2395. END_ENTITY;
  2396. ENTITY beveled_sheet_representation
  2397. SUBTYPE OF (shape_representation);
  2398. END_ENTITY;
  2399. ENTITY bezier_curve
  2400. SUBTYPE OF (b_spline_curve);
  2401. END_ENTITY;
  2402. ENTITY bezier_surface
  2403. SUBTYPE OF (b_spline_surface);
  2404. END_ENTITY;
  2405. ENTITY binary_generic_expression
  2406. ABSTRACT SUPERTYPE
  2407. SUBTYPE OF (generic_expression);
  2408. operands : LIST [2:2] OF generic_expression;
  2409. END_ENTITY;
  2410. ENTITY binary_numeric_expression
  2411. ABSTRACT SUPERTYPE
  2412. SUBTYPE OF (numeric_expression, binary_generic_expression);
  2413. SELF\binary_generic_expression.operands : LIST [2:2] OF numeric_expression;
  2414. END_ENTITY;
  2415. ENTITY binary_representation_item
  2416. SUBTYPE OF (representation_item);
  2417. binary_value : BINARY;
  2418. END_ENTITY;
  2419. ENTITY block
  2420. SUBTYPE OF (geometric_representation_item);
  2421. position : axis2_placement_3d;
  2422. x : positive_length_measure;
  2423. y : positive_length_measure;
  2424. z : positive_length_measure;
  2425. END_ENTITY;
  2426. ENTITY boolean_expression
  2427. ABSTRACT SUPERTYPE OF (ONEOF (simple_boolean_expression, multiple_arity_boolean_expression, comparison_expression, interval_expression))
  2428. SUBTYPE OF (expression);
  2429. END_ENTITY;
  2430. ENTITY boolean_literal
  2431. SUBTYPE OF (simple_boolean_expression, generic_literal);
  2432. the_value : BOOLEAN;
  2433. END_ENTITY;
  2434. ENTITY boolean_representation_item
  2435. SUBTYPE OF (representation_item, boolean_literal);
  2436. END_ENTITY;
  2437. ENTITY boolean_result
  2438. SUBTYPE OF (geometric_representation_item);
  2439. operator : boolean_operator;
  2440. first_operand : boolean_operand;
  2441. second_operand : boolean_operand;
  2442. END_ENTITY;
  2443. ENTITY boundary_curve
  2444. SUBTYPE OF (composite_curve_on_surface);
  2445. WHERE
  2446. WR1 : SELF\composite_curve.closed_curve;
  2447. END_ENTITY;
  2448. ENTITY bounded_curve
  2449. SUPERTYPE OF (ONEOF (polyline, b_spline_curve, trimmed_curve, bounded_pcurve, bounded_surface_curve, composite_curve))
  2450. SUBTYPE OF (curve);
  2451. END_ENTITY;
  2452. ENTITY bounded_pcurve
  2453. SUBTYPE OF (pcurve, bounded_curve);
  2454. WHERE
  2455. WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE' IN
  2456. TYPEOF(SELF\pcurve.reference_to_curve.items[1]));
  2457. END_ENTITY;
  2458. ENTITY bounded_surface
  2459. SUPERTYPE OF (ONEOF (b_spline_surface, rectangular_trimmed_surface, curve_bounded_surface, rectangular_composite_surface))
  2460. SUBTYPE OF (surface);
  2461. END_ENTITY;
  2462. ENTITY bounded_surface_curve
  2463. SUBTYPE OF (surface_curve, bounded_curve);
  2464. WHERE
  2465. WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE' IN
  2466. TYPEOF(SELF\surface_curve.curve_3d));
  2467. END_ENTITY;
  2468. ENTITY box_domain
  2469. SUBTYPE OF (founded_item);
  2470. corner : cartesian_point;
  2471. xlength : positive_length_measure;
  2472. ylength : positive_length_measure;
  2473. zlength : positive_length_measure;
  2474. WHERE
  2475. WR1 : SIZEOF(QUERY(item <* USEDIN(SELF,'')|
  2476. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOXED_HALF_SPACE'
  2477. IN TYPEOF(item)))) = 0;
  2478. END_ENTITY;
  2479. ENTITY boxed_half_space
  2480. SUBTYPE OF (half_space_solid);
  2481. enclosure : box_domain;
  2482. END_ENTITY;
  2483. ENTITY breakdown_context
  2484. SUBTYPE OF (product_definition_relationship);
  2485. END_ENTITY;
  2486. ENTITY breakdown_element_group_assignment
  2487. SUBTYPE OF (group_assignment);
  2488. items : SET [1:1] OF product_definition_or_breakdown_element_usage;
  2489. SELF\group_assignment.assigned_group : product_definition_element_relationship;
  2490. END_ENTITY;
  2491. ENTITY breakdown_element_realization
  2492. SUBTYPE OF (characterized_object, product_definition_element_relationship);
  2493. END_ENTITY;
  2494. ENTITY breakdown_element_usage
  2495. SUBTYPE OF (product_definition_relationship);
  2496. END_ENTITY;
  2497. ENTITY breakdown_of
  2498. SUBTYPE OF (product_definition_relationship);
  2499. END_ENTITY;
  2500. ENTITY brep_with_voids
  2501. SUBTYPE OF (manifold_solid_brep);
  2502. voids : SET [1:?] OF oriented_closed_shell;
  2503. END_ENTITY;
  2504. ENTITY bytes_representation_item
  2505. SUBTYPE OF (binary_representation_item);
  2506. DERIVE
  2507. no_of_bytes : INTEGER := BLENGTH(SELF\binary_representation_item.binary_value) DIV 8;
  2508. WHERE
  2509. WR1 : BLENGTH(SELF\binary_representation_item.binary_value) MOD 8 = 0;
  2510. END_ENTITY;
  2511. ENTITY calendar_date
  2512. SUBTYPE OF (date);
  2513. day_component : day_in_month_number;
  2514. month_component : month_in_year_number;
  2515. WHERE
  2516. WR1 : valid_calendar_date (SELF);
  2517. END_ENTITY;
  2518. ENTITY camera_image
  2519. SUBTYPE OF (mapped_item);
  2520. SELF\mapped_item.mapping_source : camera_usage;
  2521. SELF\mapped_item.mapping_target : planar_box;
  2522. WHERE
  2523. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM'
  2524. IN TYPEOF (SELF);
  2525. END_ENTITY;
  2526. ENTITY camera_image_3d_with_scale
  2527. SUBTYPE OF (camera_image);
  2528. DERIVE
  2529. scale : positive_ratio_measure := ((SELF\mapped_item.mapping_target\
  2530. planar_extent.size_in_x) / (SELF\mapped_item.mapping_source.
  2531. mapping_origin\camera_model_d3.perspective_of_volume.view_window.
  2532. size_in_x));
  2533. WHERE
  2534. WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAMERA_MODEL_D3'
  2535. IN TYPEOF (SELF\mapped_item.mapping_source.mapping_origin));
  2536. WR2 : aspect_ratio(SELF\mapped_item.mapping_target) =
  2537. aspect_ratio(SELF\mapped_item.mapping_source.mapping_origin\
  2538. camera_model_d3.perspective_of_volume.view_window);
  2539. WR3 : SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.
  2540. perspective_of_volume.front_plane_clipping
  2541. AND
  2542. SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.
  2543. perspective_of_volume.view_volume_sides_clipping;
  2544. WR4 : (SELF\mapped_item.mapping_target\planar_extent.size_in_x > 0)
  2545. AND
  2546. (SELF\mapped_item.mapping_target\planar_extent.size_in_y > 0);
  2547. WR5 : (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.
  2548. perspective_of_volume.view_window.size_in_x > 0)
  2549. AND
  2550. (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3.
  2551. perspective_of_volume.view_window.size_in_y > 0);
  2552. WR6 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  2553. 'AXIS2_PLACEMENT_2D' IN TYPEOF (SELF\mapped_item.
  2554. mapping_target\planar_box.placement))
  2555. AND NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  2556. 'AXIS2_PLACEMENT_3D' IN TYPEOF (SELF\mapped_item.
  2557. mapping_target\planar_box.placement));
  2558. END_ENTITY;
  2559. ENTITY camera_model
  2560. ABSTRACT SUPERTYPE
  2561. SUBTYPE OF (geometric_representation_item);
  2562. WHERE
  2563. WR1 : (SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  2564. 'ITEM_DEFINED_TRANSFORMATION.' +
  2565. 'TRANSFORM_ITEM_1')) +
  2566. SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  2567. 'REPRESENTATION_MAP.MAPPING_ORIGIN'))
  2568. ) > 0;
  2569. WR2 : SIZEOF(USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  2570. 'STYLED_ITEM.ITEM')) = 0;
  2571. END_ENTITY;
  2572. ENTITY camera_model_d3
  2573. SUBTYPE OF (camera_model);
  2574. view_reference_system : axis2_placement_3d;
  2575. perspective_of_volume : view_volume;
  2576. WHERE
  2577. WR1 : (dot_product (SELF.view_reference_system.p[3],
  2578. SELF.perspective_of_volume.view_window.placement.p[3]) = 1.0)
  2579. AND
  2580. (SELF.view_reference_system.location.coordinates[3] =
  2581. SELF.perspective_of_volume.view_window.
  2582. placement.location.coordinates[3]);
  2583. WR2 : SELF\geometric_representation_item.dim = 3;
  2584. END_ENTITY;
  2585. ENTITY camera_model_d3_multi_clipping
  2586. SUBTYPE OF (camera_model_d3);
  2587. shape_clipping : SET [1:?] OF camera_model_d3_multi_clipping_interection_select;
  2588. END_ENTITY;
  2589. ENTITY camera_model_d3_multi_clipping_intersection
  2590. SUBTYPE OF (geometric_representation_item);
  2591. shape_clipping : SET [2:?] OF camera_model_d3_multi_clipping_interection_select;
  2592. END_ENTITY;
  2593. ENTITY camera_model_d3_multi_clipping_union
  2594. SUBTYPE OF (geometric_representation_item);
  2595. shape_clipping : SET [2:?] OF camera_model_d3_multi_clipping_union_select;
  2596. END_ENTITY;
  2597. ENTITY camera_model_d3_with_hlhsr
  2598. SUBTYPE OF (camera_model_d3);
  2599. hidden_line_surface_removal : BOOLEAN;
  2600. END_ENTITY;
  2601. ENTITY camera_model_with_light_sources
  2602. SUBTYPE OF (camera_model_d3);
  2603. sources : SET [1:?] OF light_source;
  2604. END_ENTITY;
  2605. ENTITY camera_usage
  2606. SUBTYPE OF (representation_map);
  2607. SELF\representation_map.mapping_origin : camera_model;
  2608. WHERE
  2609. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_REPRESENTATION'
  2610. IN TYPEOF(SELF\representation_map.mapped_representation));
  2611. END_ENTITY;
  2612. ENTITY capacitance_measure_with_unit
  2613. SUBTYPE OF (measure_with_unit);
  2614. WHERE
  2615. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAPACITANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  2616. END_ENTITY;
  2617. ENTITY capacitance_unit
  2618. SUBTYPE OF (derived_unit);
  2619. WHERE
  2620. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.farad);
  2621. END_ENTITY;
  2622. ENTITY cartesian_point
  2623. SUBTYPE OF (point);
  2624. coordinates : LIST [1:3] OF length_measure;
  2625. END_ENTITY;
  2626. ENTITY cartesian_transformation_operator
  2627. SUPERTYPE OF (ONEOF (cartesian_transformation_operator_2d, cartesian_transformation_operator_3d))
  2628. SUBTYPE OF (geometric_representation_item, functionally_defined_transformation);
  2629. axis1 : OPTIONAL direction;
  2630. axis2 : OPTIONAL direction;
  2631. local_origin : cartesian_point;
  2632. scale : OPTIONAL REAL;
  2633. DERIVE
  2634. scl : REAL := NVL(scale, 1.0);
  2635. WHERE
  2636. WR1 : scl > 0.0;
  2637. END_ENTITY;
  2638. ENTITY cartesian_transformation_operator_2d
  2639. SUBTYPE OF (cartesian_transformation_operator);
  2640. DERIVE
  2641. u : LIST [2:2] OF direction := base_axis(2,SELF\cartesian_transformation_operator.axis1,
  2642. SELF\cartesian_transformation_operator.axis2,?);
  2643. WHERE
  2644. WR1 : SELF\geometric_representation_item.dim = 2;
  2645. END_ENTITY;
  2646. ENTITY cartesian_transformation_operator_3d
  2647. SUBTYPE OF (cartesian_transformation_operator);
  2648. axis3 : OPTIONAL direction;
  2649. DERIVE
  2650. u : LIST [3:3] OF direction := base_axis(3,SELF\cartesian_transformation_operator.axis1,
  2651. SELF\cartesian_transformation_operator.axis2,axis3);
  2652. WHERE
  2653. WR1 : SELF\geometric_representation_item.dim = 3;
  2654. END_ENTITY;
  2655. ENTITY cc_design_approval
  2656. SUBTYPE OF (approval_assignment);
  2657. items : SET [1:?] OF approved_item;
  2658. END_ENTITY;
  2659. ENTITY cc_design_certification
  2660. SUBTYPE OF (certification_assignment);
  2661. items : SET [1:?] OF certified_item;
  2662. END_ENTITY;
  2663. ENTITY cc_design_contract
  2664. SUBTYPE OF (contract_assignment);
  2665. items : SET [1:?] OF contracted_item;
  2666. END_ENTITY;
  2667. ENTITY cc_design_date_and_time_assignment
  2668. SUBTYPE OF (date_and_time_assignment);
  2669. items : SET [1:?] OF date_time_item;
  2670. END_ENTITY;
  2671. ENTITY cc_design_person_and_organization_assignment
  2672. SUBTYPE OF (person_and_organization_assignment);
  2673. items : SET [1:?] OF cc_person_organization_item;
  2674. WHERE
  2675. WR1 : cc_design_person_and_organization_correlation(SELF);
  2676. END_ENTITY;
  2677. ENTITY cc_design_security_classification
  2678. SUBTYPE OF (security_classification_assignment);
  2679. items : SET [1:?] OF cc_classified_item;
  2680. END_ENTITY;
  2681. ENTITY cc_design_specification_reference
  2682. SUBTYPE OF (document_reference);
  2683. items : SET [1:?] OF cc_specified_item;
  2684. END_ENTITY;
  2685. ENTITY celsius_temperature_measure_with_unit
  2686. SUBTYPE OF (measure_with_unit);
  2687. WHERE
  2688. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  2689. END_ENTITY;
  2690. ENTITY centre_of_symmetry
  2691. SUBTYPE OF (derived_shape_aspect);
  2692. WHERE
  2693. WR1 : SIZEOF
  2694. (QUERY(sadr<*SELF\derived_shape_aspect.deriving_relationships|
  2695. NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMMETRIC_SHAPE_ASPECT'
  2696. IN TYPEOF
  2697. (sadr\shape_aspect_relationship.related_shape_aspect))))=0;
  2698. END_ENTITY;
  2699. ENTITY certification;
  2700. name : label;
  2701. purpose : text;
  2702. kind : certification_type;
  2703. END_ENTITY;
  2704. ENTITY certification_assignment
  2705. ABSTRACT SUPERTYPE;
  2706. assigned_certification : certification;
  2707. DERIVE
  2708. role : object_role := get_role(SELF);
  2709. WHERE
  2710. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
  2711. END_ENTITY;
  2712. ENTITY certification_type;
  2713. description : label;
  2714. END_ENTITY;
  2715. ENTITY change
  2716. SUBTYPE OF (action_assignment);
  2717. items : SET [1:?] OF work_item;
  2718. END_ENTITY;
  2719. ENTITY change_request
  2720. SUBTYPE OF (action_request_assignment);
  2721. items : SET [1:?] OF change_request_item;
  2722. END_ENTITY;
  2723. ENTITY character_glyph_font_usage;
  2724. character : generic_character_glyph_symbol;
  2725. font : text_font;
  2726. END_ENTITY;
  2727. ENTITY character_glyph_style_outline
  2728. SUBTYPE OF (founded_item);
  2729. outline_style : curve_style;
  2730. END_ENTITY;
  2731. ENTITY character_glyph_style_stroke
  2732. SUBTYPE OF (founded_item);
  2733. stroke_style : curve_style;
  2734. END_ENTITY;
  2735. ENTITY character_glyph_symbol
  2736. SUBTYPE OF (generic_character_glyph_symbol);
  2737. character_box : planar_extent;
  2738. baseline_ratio : ratio_measure;
  2739. DERIVE
  2740. box_height : length_measure := character_box.size_in_y;
  2741. WHERE
  2742. WR1 : {0.0 <= baseline_ratio <= 1.0};
  2743. WR2 : item_in_context(SELF.character_box,
  2744. SELF\representation.context_of_items);
  2745. WR3 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE'
  2746. IN TYPEOF (SELF.box_height);
  2747. END_ENTITY;
  2748. ENTITY character_glyph_symbol_outline
  2749. SUBTYPE OF (character_glyph_symbol);
  2750. outlines : SET [1:?] OF annotation_fill_area;
  2751. WHERE
  2752. WR1 : SELF.outlines <= SELF\representation.items;
  2753. END_ENTITY;
  2754. ENTITY character_glyph_symbol_stroke
  2755. SUBTYPE OF (character_glyph_symbol);
  2756. strokes : SET [1:?] OF curve;
  2757. WHERE
  2758. WR1 : SELF.strokes <= SELF\representation.items;
  2759. END_ENTITY;
  2760. ENTITY characteristic_data_column_header
  2761. SUBTYPE OF (general_property);
  2762. END_ENTITY;
  2763. ENTITY characteristic_data_column_header_link
  2764. SUBTYPE OF (general_property_relationship);
  2765. END_ENTITY;
  2766. ENTITY characteristic_data_table_header
  2767. SUBTYPE OF (general_property);
  2768. END_ENTITY;
  2769. ENTITY characteristic_data_table_header_decomposition
  2770. SUBTYPE OF (general_property_relationship);
  2771. END_ENTITY;
  2772. ENTITY characteristic_type
  2773. SUBTYPE OF (group);
  2774. END_ENTITY;
  2775. ENTITY characterized_class
  2776. SUBTYPE OF (characterized_object, class);
  2777. END_ENTITY;
  2778. ENTITY characterized_object;
  2779. name : label;
  2780. description : OPTIONAL text;
  2781. END_ENTITY;
  2782. ENTITY circle
  2783. SUBTYPE OF (conic);
  2784. radius : positive_length_measure;
  2785. END_ENTITY;
  2786. ENTITY circular_runout_tolerance
  2787. SUBTYPE OF (geometric_tolerance_with_datum_reference);
  2788. WHERE
  2789. WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2;
  2790. END_ENTITY;
  2791. ENTITY class
  2792. SUBTYPE OF (group);
  2793. END_ENTITY;
  2794. ENTITY class_by_extension
  2795. SUBTYPE OF (class);
  2796. END_ENTITY;
  2797. ENTITY class_by_intension
  2798. SUBTYPE OF (class);
  2799. END_ENTITY;
  2800. ENTITY class_system
  2801. SUBTYPE OF (group);
  2802. END_ENTITY;
  2803. ENTITY class_usage_effectivity_context_assignment
  2804. SUBTYPE OF (effectivity_context_assignment);
  2805. items : SET [1:?] OF class_usage_effectivity_context_item;
  2806. WHERE
  2807. WR1 : SELF.role.name = 'class usage influence';
  2808. WR2 : SIZEOF( QUERY( i <* SELF.items | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) )) = 0;
  2809. WR3 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.APPLIED_EFFECTIVITY_ASSIGNMENT' IN TYPEOF(SELF.assigned_effectivity_assignment)) AND
  2810. (SIZEOF(TYPEOF(SELF.assigned_effectivity_assignment.assigned_effectivity) ) = 1) AND
  2811. (SELF.assigned_effectivity_assignment.assigned_effectivity.id = 'class usage') AND
  2812. (SIZEOF( QUERY( i <* SELF.assigned_effectivity_assignment\applied_effectivity_assignment.items |
  2813. NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i)) )) = 0);
  2814. END_ENTITY;
  2815. ENTITY classification_assignment
  2816. ABSTRACT SUPERTYPE;
  2817. assigned_class : group;
  2818. role : classification_role;
  2819. END_ENTITY;
  2820. ENTITY classification_role;
  2821. name : label;
  2822. description : OPTIONAL text;
  2823. END_ENTITY;
  2824. ENTITY closed_shell
  2825. SUBTYPE OF (connected_face_set);
  2826. END_ENTITY;
  2827. ENTITY coaxiality_tolerance
  2828. SUBTYPE OF (geometric_tolerance_with_datum_reference);
  2829. WHERE
  2830. WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2;
  2831. END_ENTITY;
  2832. ENTITY colour;
  2833. END_ENTITY;
  2834. ENTITY colour_rgb
  2835. SUBTYPE OF (colour_specification);
  2836. red : REAL;
  2837. green : REAL;
  2838. blue : REAL;
  2839. WHERE
  2840. WR1 : {0.0 <= red <= 1.0};
  2841. WR2 : {0.0 <= green <= 1.0};
  2842. WR3 : {0.0 <= blue <= 1.0};
  2843. END_ENTITY;
  2844. ENTITY colour_specification
  2845. SUBTYPE OF (colour);
  2846. name : label;
  2847. END_ENTITY;
  2848. ENTITY common_datum
  2849. SUBTYPE OF (composite_shape_aspect, datum);
  2850. WHERE
  2851. WR1 : SIZEOF (SELF\composite_shape_aspect.component_relationships) = 2;
  2852. WR2 : SIZEOF (QUERY ( sar <* SELF\composite_shape_aspect.component_relationships|
  2853. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM' IN TYPEOF (sar.related_shape_aspect)) AND
  2854. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMMON_DATUM' IN TYPEOF (sar.related_shape_aspect))) )) = 0;
  2855. END_ENTITY;
  2856. ENTITY comparison_expression
  2857. ABSTRACT SUPERTYPE
  2858. SUBTYPE OF (boolean_expression, binary_generic_expression);
  2859. SELF\binary_generic_expression.operands : LIST [2:2] OF expression;
  2860. WHERE
  2861. WR1 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NUMERIC_EXPRESSION'
  2862. IN TYPEOF(SELF\binary_generic_expression.operands[1]))
  2863. AND
  2864. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NUMERIC_EXPRESSION'
  2865. IN TYPEOF(SELF\binary_generic_expression.operands[2])))
  2866. OR
  2867. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOOLEAN_EXPRESSION'
  2868. IN TYPEOF(SELF\binary_generic_expression.operands[1]))
  2869. AND
  2870. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOOLEAN_EXPRESSION'
  2871. IN TYPEOF(SELF\binary_generic_expression.operands[2])))
  2872. OR
  2873. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION'
  2874. IN TYPEOF(SELF\binary_generic_expression.operands[1]))
  2875. AND
  2876. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION'
  2877. IN TYPEOF(SELF\binary_generic_expression.operands[2])));
  2878. END_ENTITY;
  2879. ENTITY complex_clause
  2880. SUBTYPE OF (compound_representation_item);
  2881. END_ENTITY;
  2882. ENTITY complex_conjunctive_clause
  2883. SUBTYPE OF (complex_clause);
  2884. END_ENTITY;
  2885. ENTITY complex_disjunctive_clause
  2886. SUBTYPE OF (complex_clause);
  2887. END_ENTITY;
  2888. ENTITY complex_shelled_solid
  2889. SUBTYPE OF (shelled_solid);
  2890. thickened_face_list : LIST [1:?] OF SET [1:?] OF face_surface;
  2891. thickness_list : LIST [1:?] OF length_measure;
  2892. WHERE
  2893. WR1 : SIZEOF(thickened_face_list) = SIZEOF(thickness_list);
  2894. WR2 : SIZEOF(QUERY(q <* thickness_list | (q = 0))) = 0;
  2895. END_ENTITY;
  2896. ENTITY composite_assembly_definition
  2897. SUBTYPE OF (product_definition);
  2898. WHERE
  2899. WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF,
  2900. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  2901. 'PRODUCT_DEFINITION_RELATIONSHIP.' +
  2902. 'RELATING_PRODUCT_DEFINITION') |
  2903. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  2904. 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN
  2905. TYPEOF (pdr))) = 1;
  2906. END_ENTITY;
  2907. ENTITY composite_assembly_sequence_definition
  2908. SUBTYPE OF (product_definition);
  2909. WHERE
  2910. WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF,
  2911. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  2912. 'PRODUCT_DEFINITION_RELATIONSHIP.' +
  2913. 'RELATING_PRODUCT_DEFINITION') |
  2914. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  2915. 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN
  2916. TYPEOF (pdr))) > 0;
  2917. END_ENTITY;
  2918. ENTITY composite_assembly_table
  2919. SUBTYPE OF (part_laminate_table);
  2920. END_ENTITY;
  2921. ENTITY composite_curve
  2922. SUBTYPE OF (bounded_curve);
  2923. segments : LIST [1:?] OF composite_curve_segment;
  2924. self_intersect : LOGICAL;
  2925. DERIVE
  2926. closed_curve : LOGICAL := segments[n_segments].transition <> discontinuous;
  2927. n_segments : INTEGER := SIZEOF(segments);
  2928. WHERE
  2929. WR1 : ((NOT closed_curve) AND (SIZEOF(QUERY(temp <* segments |
  2930. temp.transition = discontinuous)) = 1)) OR
  2931. ((closed_curve) AND (SIZEOF(QUERY(temp <* segments |
  2932. temp.transition = discontinuous)) = 0));
  2933. END_ENTITY;
  2934. ENTITY composite_curve_on_surface
  2935. SUPERTYPE OF (boundary_curve)
  2936. SUBTYPE OF (composite_curve);
  2937. DERIVE
  2938. basis_surface : SET [0:2] OF surface := get_basis_surface(SELF);
  2939. WHERE
  2940. WR1 : SIZEOF(basis_surface) > 0;
  2941. WR2 : constraints_composite_curve_on_surface(SELF);
  2942. END_ENTITY;
  2943. ENTITY composite_curve_segment
  2944. SUBTYPE OF (founded_item);
  2945. transition : transition_code;
  2946. same_sense : BOOLEAN;
  2947. parent_curve : curve;
  2948. INVERSE
  2949. using_curves: BAG [1:?] OF composite_curve FOR segments;
  2950. WHERE
  2951. WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE' IN TYPEOF(parent_curve));
  2952. END_ENTITY;
  2953. ENTITY composite_material_designation
  2954. SUBTYPE OF (material_designation);
  2955. END_ENTITY;
  2956. ENTITY composite_shape_aspect
  2957. SUBTYPE OF (shape_aspect);
  2958. INVERSE
  2959. component_relationships: SET [2:?] OF shape_aspect_relationship FOR relating_shape_aspect;
  2960. END_ENTITY;
  2961. ENTITY composite_sheet_representation
  2962. SUBTYPE OF (shape_representation);
  2963. WHERE
  2964. WR1 : SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  2965. 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION',
  2966. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  2967. 'MANIFOLD_SURFACE_SHAPE_REPRESENTATION'] * TYPEOF (SELF)) = 1;
  2968. END_ENTITY;
  2969. ENTITY composite_text
  2970. SUBTYPE OF (geometric_representation_item);
  2971. collected_text : SET [2:?] OF text_or_character;
  2972. WHERE
  2973. WR1 : acyclic_composite_text( SELF, SELF.collected_text);
  2974. END_ENTITY;
  2975. ENTITY composite_text_with_associated_curves
  2976. SUBTYPE OF (composite_text);
  2977. associated_curves : SET [1:?] OF curve;
  2978. END_ENTITY;
  2979. ENTITY composite_text_with_blanking_box
  2980. SUBTYPE OF (composite_text);
  2981. blanking : planar_box;
  2982. END_ENTITY;
  2983. ENTITY composite_text_with_delineation
  2984. SUBTYPE OF (composite_text);
  2985. delineation : text_delineation;
  2986. END_ENTITY;
  2987. ENTITY composite_text_with_extent
  2988. SUBTYPE OF (composite_text);
  2989. extent : planar_extent;
  2990. END_ENTITY;
  2991. ENTITY compound_representation_item
  2992. SUPERTYPE OF (ONEOF (point_and_vector, point_path, row_representation_item, table_representation_item))
  2993. SUBTYPE OF (representation_item);
  2994. item_element : compound_item_definition;
  2995. END_ENTITY;
  2996. ENTITY compound_shape_representation
  2997. SUBTYPE OF (shape_representation);
  2998. WHERE
  2999. WR1 : ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'GEOMETRIC_REPRESENTATION_CONTEXT'
  3000. IN TYPEOF ( SELF.context_of_items ) ) AND (
  3001. SELF.context_of_items\
  3002. geometric_representation_context.coordinate_space_dimension =3 );
  3003. WR2 : SIZEOF ( QUERY ( cbsr_i <* SELF.items | SIZEOF (
  3004. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'EDGE_BASED_WIREFRAME_MODEL' ,
  3005. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'FACE_BASED_SURFACE_MODEL' ,
  3006. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MAPPED_ITEM' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  3007. 'AXIS2_PLACEMENT_3D']* TYPEOF ( cbsr_i ) ) <>1 ) ) =0;
  3008. WR3 : SIZEOF ( QUERY ( cbsr_i <* SELF.items | SIZEOF (
  3009. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'EDGE_BASED_WIREFRAME_MODEL' ,
  3010. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'FACE_BASED_SURFACE_MODEL' ,
  3011. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MAPPED_ITEM']* TYPEOF ( cbsr_i ) ) =1 ) ) >0;
  3012. WR4 : SIZEOF ( QUERY ( cbsr_i <* SELF.items | (
  3013. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MAPPED_ITEM' IN TYPEOF ( cbsr_i ) )
  3014. AND ( SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  3015. 'COMPOUND_SHAPE_REPRESENTATION' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  3016. 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' ,
  3017. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  3018. 'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION']* TYPEOF (
  3019. cbsr_i\ mapped_item.mapping_source ) ) <>1 ) ) ) =0;
  3020. END_ENTITY;
  3021. ENTITY concentricity_tolerance
  3022. SUBTYPE OF (geometric_tolerance_with_datum_reference);
  3023. WHERE
  3024. WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) = 1;
  3025. END_ENTITY;
  3026. ENTITY concept_feature_operator;
  3027. name : label;
  3028. description : OPTIONAL text;
  3029. END_ENTITY;
  3030. ENTITY concept_feature_relationship;
  3031. name : label;
  3032. description : OPTIONAL text;
  3033. relating_product_concept_feature : product_concept_feature;
  3034. related_product_concept_feature : product_concept_feature;
  3035. END_ENTITY;
  3036. ENTITY concept_feature_relationship_with_condition
  3037. SUBTYPE OF (concept_feature_relationship);
  3038. conditional_operator : concept_feature_operator;
  3039. END_ENTITY;
  3040. ENTITY conditional_concept_feature
  3041. SUBTYPE OF (product_concept_feature);
  3042. condition : concept_feature_relationship_with_condition;
  3043. END_ENTITY;
  3044. ENTITY conductance_measure_with_unit
  3045. SUBTYPE OF (measure_with_unit);
  3046. WHERE
  3047. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  3048. END_ENTITY;
  3049. ENTITY conductance_unit
  3050. SUBTYPE OF (derived_unit);
  3051. WHERE
  3052. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.siemens);
  3053. END_ENTITY;
  3054. ENTITY configurable_item
  3055. SUBTYPE OF (configuration_item);
  3056. item_concept_feature : SET [1:?] OF product_concept_feature_association;
  3057. END_ENTITY;
  3058. ENTITY configuration_design;
  3059. configuration : configuration_item;
  3060. design : configuration_design_item;
  3061. DERIVE
  3062. description : text := get_description_value (SELF);
  3063. name : label := get_name_value (SELF);
  3064. UNIQUE
  3065. UR1 : configuration, design;
  3066. WHERE
  3067. WR1 : SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  3068. 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
  3069. WR2 : SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  3070. 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
  3071. END_ENTITY;
  3072. ENTITY configuration_effectivity
  3073. SUBTYPE OF (product_definition_effectivity);
  3074. configuration : configuration_design;
  3075. UNIQUE
  3076. UR1: configuration, SELF\product_definition_effectivity.usage, SELF\effectivity.id;
  3077. WHERE
  3078. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_USAGE' IN
  3079. TYPEOF (SELF\product_definition_effectivity.usage);
  3080. END_ENTITY;
  3081. ENTITY configuration_item;
  3082. id : identifier;
  3083. name : label;
  3084. description : OPTIONAL text;
  3085. item_concept : product_concept;
  3086. purpose : OPTIONAL label;
  3087. END_ENTITY;
  3088. ENTITY configuration_item_hierarchical_relationship
  3089. SUBTYPE OF (configuration_item_relationship);
  3090. END_ENTITY;
  3091. ENTITY configuration_item_relationship;
  3092. name : label;
  3093. description : OPTIONAL text;
  3094. relating_configuration_item : configuration_item;
  3095. related_configuration_item : configuration_item;
  3096. END_ENTITY;
  3097. ENTITY configuration_item_revision_sequence
  3098. SUBTYPE OF (configuration_item_relationship);
  3099. END_ENTITY;
  3100. ENTITY configured_effectivity_assignment
  3101. SUBTYPE OF (effectivity_assignment);
  3102. items : SET [1:?] OF configured_effectivity_item;
  3103. WHERE
  3104. WR1 : (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EFFECTIVITY'] * TYPEOF(SELF.assigned_effectivity) ) = 1)
  3105. AND (SELF.assigned_effectivity.id = 'configuration validity');
  3106. WR2 : SIZEOF(SELF.items) = 1;
  3107. WR3 : SIZEOF( QUERY( i <* SELF.items | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i))
  3108. OR NOT (i\product_definition.frame_of_reference.name IN ['conceptual definition','part occurrence', 'functional definition','alternative definition']) )) = 0;
  3109. WR4 : SELF.role.name IN ['design', 'usage'];
  3110. WR5 : (SELF.role.name <> 'design')
  3111. OR (SIZEOF( QUERY( i <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) AND (i\product_definition.frame_of_reference.name = 'part occurrence') )) = 0);
  3112. WR6 : (SELF.role.name <> 'usage') OR (SIZEOF( QUERY( i <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) AND (i\product_definition.frame_of_reference.name = 'conceptual definition') )) = 0);
  3113. WR7 : SELF.role.description IN ['exception', 'inherited', 'local'];
  3114. WR8 : SIZEOF( QUERY( x <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT' IN TYPEOF(x) )) = 1;
  3115. END_ENTITY;
  3116. ENTITY configured_effectivity_context_assignment
  3117. SUBTYPE OF (effectivity_context_assignment);
  3118. items : SET [1:?] OF configured_effectivity_context_item;
  3119. SELF\effectivity_context_assignment.assigned_effectivity_assignment : configured_effectivity_assignment;
  3120. WHERE
  3121. WR1 : SIZEOF(SELF.items) = 1;
  3122. END_ENTITY;
  3123. ENTITY conic
  3124. SUPERTYPE OF (ONEOF (circle, ellipse, hyperbola, parabola))
  3125. SUBTYPE OF (curve);
  3126. position : axis2_placement;
  3127. END_ENTITY;
  3128. ENTITY conical_stepped_hole_transition
  3129. SUBTYPE OF (geometric_representation_item);
  3130. transition_number : positive_integer;
  3131. cone_apex_angle : plane_angle_measure;
  3132. cone_base_radius : positive_length_measure;
  3133. END_ENTITY;
  3134. ENTITY conical_surface
  3135. SUBTYPE OF (elementary_surface);
  3136. radius : length_measure;
  3137. semi_angle : plane_angle_measure;
  3138. WHERE
  3139. WR1 : radius >= 0.0;
  3140. END_ENTITY;
  3141. ENTITY connected_edge_set
  3142. SUBTYPE OF (topological_representation_item);
  3143. ces_edges : SET [1:?] OF edge;
  3144. END_ENTITY;
  3145. ENTITY connected_face_set
  3146. SUPERTYPE OF (ONEOF (closed_shell, open_shell))
  3147. SUBTYPE OF (topological_representation_item);
  3148. cfs_faces : SET [1:?] OF face;
  3149. END_ENTITY;
  3150. ENTITY connected_face_sub_set
  3151. SUBTYPE OF (connected_face_set);
  3152. parent_face_set : connected_face_set;
  3153. END_ENTITY;
  3154. ENTITY constructive_geometry_representation
  3155. SUBTYPE OF (representation);
  3156. WHERE
  3157. WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.context_of_items)) AND ({2 <= SELF.context_of_items\geometric_representation_context. coordinate_space_dimension <= 3});
  3158. WR2 : SIZEOF( QUERY( cgr_i <* SELF.items | SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLACEMENT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT'] * TYPEOF(cgr_i)) <> 1 )) = 0;
  3159. WR3 : SIZEOF( USEDIN( SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_2') ) > 0;
  3160. WR4 : SIZEOF( USEDIN( SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') ) = 0;
  3161. END_ENTITY;
  3162. ENTITY constructive_geometry_representation_relationship
  3163. SUBTYPE OF (representation_relationship);
  3164. SELF\representation_relationship.rep_1 : constructive_geometry_representation_or_shape_represenation;
  3165. SELF\representation_relationship.rep_2 : constructive_geometry_representation;
  3166. WHERE
  3167. WR1 : (SELF.rep_1.context_of_items :=: SELF.rep_2.context_of_items) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.rep_1.context_of_items));
  3168. WR2 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF));
  3169. END_ENTITY;
  3170. ENTITY contact_ratio_representation
  3171. SUBTYPE OF (representation);
  3172. WHERE
  3173. WR1 : ( SIZEOF ( SELF.items ) =1 ) AND ( SIZEOF ( QUERY ( i <*
  3174. SELF.items | ( SIZEOF ( ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  3175. 'MEASURE_REPRESENTATION_ITEM' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  3176. 'VALUE_RANGE']* TYPEOF ( i ) ) =1 ) AND ( i.name =
  3177. 'ratio value' ) ) ) =1 );
  3178. WR2 : ( SIZEOF ( QUERY ( pdr <* USEDIN ( SELF ,
  3179. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
  3180. 'USED_REPRESENTATION' ) | pdr. name =
  3181. 'contact ratio reference' ) ) =1 ) AND ( SIZEOF ( QUERY (
  3182. pdr <* USEDIN ( SELF ,
  3183. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
  3184. 'USED_REPRESENTATION' ) | ( pdr. name =
  3185. 'contact ratio reference' ) AND ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  3186. 'PRODUCT_DEFINITION' IN TYPEOF ( pdr.
  3187. definition.definition ) ) ) ) =1 );
  3188. WR3 : ( SIZEOF ( USEDIN ( SELF ,
  3189. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
  3190. 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr
  3191. <* USEDIN ( SELF ,
  3192. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
  3193. 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN (
  3194. pdr. definition ,
  3195. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+
  3196. 'DERIVED_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  3197. 'GENERAL_PROPERTY' IN TYPEOF ( gpa. base_definition ) ) AND
  3198. ( gpa. base_definition.name ='surface_condition' ) ) ) =1 )
  3199. ) =1 );
  3200. END_ENTITY;
  3201. ENTITY context_dependent_invisibility
  3202. SUBTYPE OF (invisibility);
  3203. presentation_context : invisibility_context;
  3204. END_ENTITY;
  3205. ENTITY context_dependent_over_riding_styled_item
  3206. SUBTYPE OF (over_riding_styled_item);
  3207. style_context : LIST [1:?] OF style_context_select;
  3208. WHERE
  3209. WR1 : (SIZEOF(QUERY(sc <* SELF.style_context | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(sc)))= 1) OR
  3210. (SIZEOF(QUERY(sc <* SELF.style_context |
  3211. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(sc))
  3212. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF(sc)) ))
  3213. = SIZEOF(style_context));
  3214. END_ENTITY;
  3215. ENTITY context_dependent_shape_representation;
  3216. representation_relation : shape_representation_relationship;
  3217. represented_product_relation : product_definition_shape;
  3218. DERIVE
  3219. description : text := get_description_value(SELF);
  3220. name : label := get_name_value(SELF);
  3221. WHERE
  3222. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF.represented_product_relation.definition);
  3223. WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
  3224. WR3 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
  3225. END_ENTITY;
  3226. ENTITY context_dependent_unit
  3227. SUBTYPE OF (named_unit);
  3228. name : label;
  3229. END_ENTITY;
  3230. ENTITY contract;
  3231. name : label;
  3232. purpose : text;
  3233. kind : contract_type;
  3234. END_ENTITY;
  3235. ENTITY contract_assignment
  3236. ABSTRACT SUPERTYPE;
  3237. assigned_contract : contract;
  3238. DERIVE
  3239. role : object_role := get_role(SELF);
  3240. WHERE
  3241. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
  3242. END_ENTITY;
  3243. ENTITY contract_relationship;
  3244. id : identifier;
  3245. name : label;
  3246. description : OPTIONAL text;
  3247. relating_contract : contract;
  3248. related_contract : contract;
  3249. END_ENTITY;
  3250. ENTITY contract_type;
  3251. description : label;
  3252. END_ENTITY;
  3253. ENTITY conversion_based_unit
  3254. SUBTYPE OF (named_unit);
  3255. name : label;
  3256. conversion_factor : measure_with_unit;
  3257. WHERE
  3258. WR1 : SELF\named_unit.dimensions = derive_dimensional_exponents(conversion_factor\measure_with_unit.unit_component);
  3259. END_ENTITY;
  3260. ENTITY coordinated_universal_time_offset;
  3261. hour_offset : INTEGER;
  3262. minute_offset : OPTIONAL INTEGER;
  3263. sense : ahead_or_behind;
  3264. DERIVE
  3265. actual_minute_offset : INTEGER := NVL(minute_offset,0);
  3266. WHERE
  3267. WR1 : { 0 <= hour_offset < 24 };
  3268. WR2 : { 0 <= actual_minute_offset <= 59 };
  3269. WR3 : NOT (((hour_offset <> 0) OR (actual_minute_offset <>0)) AND (sense = exact));
  3270. END_ENTITY;
  3271. ENTITY csg_shape_representation
  3272. SUBTYPE OF (shape_representation);
  3273. WHERE
  3274. WR1 : SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3;
  3275. WR2 : SIZEOF (
  3276. QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CSG_SOLID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_REPLICA', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REVOLVED_FACE_SOLID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF (it)) <> 1) )) = 0;
  3277. WR3 : SIZEOF (
  3278. QUERY ( mi <*
  3279. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CSG_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0;
  3280. WR4 : SIZEOF (
  3281. QUERY ( sr <*
  3282. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_REPLICA' IN TYPEOF (it)) )| ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CSG_SOLID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REVOLVED_FACE_SOLID', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF (sr\solid_replica.parent_solid)) = 0) )) = 0;
  3283. WR5 : SIZEOF (
  3284. QUERY ( it <* SELF.items| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF (it)) )) > 0;
  3285. END_ENTITY;
  3286. ENTITY csg_solid
  3287. SUBTYPE OF (solid_model);
  3288. tree_root_expression : csg_select;
  3289. END_ENTITY;
  3290. ENTITY currency
  3291. ABSTRACT SUPERTYPE OF (ONEOF (externally_defined_currency, iso4217_currency))
  3292. SUBTYPE OF (context_dependent_unit);
  3293. WHERE
  3294. WR1 : ((SELF\named_unit.dimensions.length_exponent = 0.0) AND
  3295. (SELF\named_unit.dimensions.mass_exponent = 0.0) AND
  3296. (SELF\named_unit.dimensions.time_exponent = 0.0) AND
  3297. (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND
  3298. (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND
  3299. (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND
  3300. (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0));
  3301. END_ENTITY;
  3302. ENTITY currency_measure_with_unit
  3303. SUBTYPE OF (measure_with_unit);
  3304. SELF\measure_with_unit.unit_component : currency;
  3305. END_ENTITY;
  3306. ENTITY curve
  3307. SUPERTYPE OF (ONEOF (line, conic, pcurve, surface_curve, offset_curve_2d, offset_curve_3d, curve_replica))
  3308. SUBTYPE OF (geometric_representation_item);
  3309. END_ENTITY;
  3310. ENTITY curve_bounded_surface
  3311. SUBTYPE OF (bounded_surface);
  3312. basis_surface : surface;
  3313. boundaries : SET [1:?] OF boundary_curve;
  3314. implicit_outer : BOOLEAN;
  3315. WHERE
  3316. WR1 : (NOT implicit_outer) OR
  3317. (SIZEOF (QUERY (temp <* boundaries |
  3318. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp))) = 0);
  3319. WR2 : (NOT(implicit_outer)) OR
  3320. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_SURFACE' IN TYPEOF(basis_surface));
  3321. WR3 : SIZEOF(QUERY(temp <* boundaries |
  3322. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OUTER_BOUNDARY_CURVE' IN
  3323. TYPEOF(temp))) <= 1;
  3324. WR4 : SIZEOF(QUERY(temp <* boundaries |
  3325. (temp\composite_curve_on_surface.basis_surface [1] <>
  3326. SELF.basis_surface))) = 0;
  3327. END_ENTITY;
  3328. ENTITY curve_dimension
  3329. SUBTYPE OF (dimension_curve_directed_callout);
  3330. END_ENTITY;
  3331. ENTITY curve_replica
  3332. SUBTYPE OF (curve);
  3333. parent_curve : curve;
  3334. transformation : cartesian_transformation_operator;
  3335. WHERE
  3336. WR1 : transformation.dim = parent_curve.dim;
  3337. WR2 : acyclic_curve_replica (SELF, parent_curve);
  3338. END_ENTITY;
  3339. ENTITY curve_style
  3340. SUBTYPE OF (founded_item);
  3341. name : label;
  3342. curve_font : curve_font_or_scaled_curve_font_select;
  3343. curve_width : size_select;
  3344. curve_colour : colour;
  3345. END_ENTITY;
  3346. ENTITY curve_style_font
  3347. SUBTYPE OF (founded_item);
  3348. name : label;
  3349. pattern_list : LIST [1:?] OF curve_style_font_pattern;
  3350. END_ENTITY;
  3351. ENTITY curve_style_font_and_scaling
  3352. SUBTYPE OF (founded_item);
  3353. name : label;
  3354. curve_font : curve_style_font_select;
  3355. curve_font_scaling : REAL;
  3356. END_ENTITY;
  3357. ENTITY curve_style_font_pattern
  3358. SUBTYPE OF (founded_item);
  3359. visible_segment_length : positive_length_measure;
  3360. invisible_segment_length : positive_length_measure;
  3361. END_ENTITY;
  3362. ENTITY curve_style_rendering;
  3363. rendering_method : shading_curve_method;
  3364. rendering_properties : surface_rendering_properties;
  3365. END_ENTITY;
  3366. ENTITY curve_swept_solid_shape_representation
  3367. SUBTYPE OF (shape_representation);
  3368. WHERE
  3369. WR1 : SIZEOF (QUERY (it <* SELF.items |
  3370. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_AREA_SOLID',
  3371. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_DISK_SOLID',
  3372. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM',
  3373. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D'] *
  3374. TYPEOF(it)) = 1))) = 0;
  3375. WR2 : SIZEOF (QUERY (it <* SELF.items |
  3376. SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_AREA_SOLID',
  3377. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_DISK_SOLID',
  3378. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) =1 )) > 0;
  3379. WR3 : SIZEOF (QUERY (mi <* QUERY (it <* items |
  3380. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) |
  3381. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION' IN
  3382. TYPEOF(mi\mapped_item.mapping_source.
  3383. mapped_representation)))) = 0;
  3384. WR4 : SIZEOF (QUERY (scsas <* QUERY (it <* SELF.items |
  3385. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE_SWEPT_AREA_SOLID' IN
  3386. TYPEOF(it)) |
  3387. NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN
  3388. TYPEOF(scsas\surface_curve_swept_area_solid.directrix)) OR
  3389. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN
  3390. TYPEOF(scsas\surface_curve_swept_area_solid.directrix))))) = 0;
  3391. END_ENTITY;
  3392. ENTITY cylindrical_surface
  3393. SUBTYPE OF (elementary_surface);
  3394. radius : positive_length_measure;
  3395. END_ENTITY;
  3396. ENTITY cylindricity_tolerance
  3397. SUBTYPE OF (geometric_tolerance);
  3398. WHERE
  3399. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF));
  3400. END_ENTITY;
  3401. ENTITY data_environment;
  3402. name : label;
  3403. description : text;
  3404. elements : SET [1:?] OF property_definition_representation;
  3405. END_ENTITY;
  3406. ENTITY date
  3407. SUPERTYPE OF (ONEOF (calendar_date, ordinal_date, week_of_year_and_day_date, year_month));
  3408. year_component : year_number;
  3409. END_ENTITY;
  3410. ENTITY date_and_time;
  3411. date_component : date;
  3412. time_component : local_time;
  3413. END_ENTITY;
  3414. ENTITY date_and_time_assignment
  3415. ABSTRACT SUPERTYPE;
  3416. assigned_date_and_time : date_and_time;
  3417. role : date_time_role;
  3418. END_ENTITY;
  3419. ENTITY date_assignment
  3420. ABSTRACT SUPERTYPE;
  3421. assigned_date : date;
  3422. role : date_role;
  3423. END_ENTITY;
  3424. ENTITY date_representation_item
  3425. SUBTYPE OF (representation_item, date);
  3426. END_ENTITY;
  3427. ENTITY date_role;
  3428. name : label;
  3429. DERIVE
  3430. description : text := get_description_value (SELF);
  3431. WHERE
  3432. WR1 : SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
  3433. END_ENTITY;
  3434. ENTITY date_time_representation_item
  3435. SUBTYPE OF (representation_item, date_and_time);
  3436. END_ENTITY;
  3437. ENTITY date_time_role;
  3438. name : label;
  3439. DERIVE
  3440. description : text := get_description_value (SELF);
  3441. WHERE
  3442. WR1 : SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
  3443. END_ENTITY;
  3444. ENTITY dated_effectivity
  3445. SUBTYPE OF (effectivity);
  3446. effectivity_end_date : OPTIONAL date_time_or_event_occurrence;
  3447. effectivity_start_date : date_time_or_event_occurrence;
  3448. END_ENTITY;
  3449. ENTITY datum
  3450. SUBTYPE OF (shape_aspect);
  3451. identification : identifier;
  3452. INVERSE
  3453. established_by_relationships: SET [1:?] OF shape_aspect_relationship FOR related_shape_aspect;
  3454. WHERE
  3455. WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMMON_DATUM' IN TYPEOF(SELF)) XOR
  3456. ((SIZEOF(QUERY(x <* SELF\datum.established_by_relationships |
  3457. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM_FEATURE' IN TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)))) = 1) XOR
  3458. (SIZEOF(QUERY(x <* SELF\datum.established_by_relationships |
  3459. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM_TARGET' IN TYPEOF(x\shape_aspect_relationship.relating_shape_aspect)))) >= 1));
  3460. END_ENTITY;
  3461. ENTITY datum_feature
  3462. SUBTYPE OF (shape_aspect);
  3463. INVERSE
  3464. feature_basis_relationship: SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect;
  3465. WHERE
  3466. WR1 : SIZEOF(QUERY(sar <* SELF\datum_feature.feature_basis_relationship
  3467. | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM' IN TYPEOF
  3468. (sar\shape_aspect_relationship.related_shape_aspect)))) = 1;
  3469. WR2 : SELF\shape_aspect.product_definitional = TRUE;
  3470. END_ENTITY;
  3471. ENTITY datum_feature_callout
  3472. SUBTYPE OF (draughting_callout);
  3473. END_ENTITY;
  3474. ENTITY datum_reference;
  3475. precedence : INTEGER;
  3476. referenced_datum : datum;
  3477. WHERE
  3478. WR1 : precedence > 0;
  3479. END_ENTITY;
  3480. ENTITY datum_target
  3481. SUBTYPE OF (shape_aspect);
  3482. target_id : identifier;
  3483. INVERSE
  3484. target_basis_relationship: SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect;
  3485. WHERE
  3486. WR1 : SIZEOF(QUERY(sar <* SELF\datum_target.target_basis_relationship
  3487. | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM' IN TYPEOF
  3488. (sar\shape_aspect_relationship.related_shape_aspect)))) = 1;
  3489. WR2 : SELF\shape_aspect.product_definitional = TRUE;
  3490. END_ENTITY;
  3491. ENTITY datum_target_callout
  3492. SUBTYPE OF (draughting_callout);
  3493. END_ENTITY;
  3494. ENTITY default_tolerance_table
  3495. SUBTYPE OF (representation);
  3496. WHERE
  3497. WR1 : SIZEOF( QUERY( i <* SELF.items | NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEFAULT_TOLERANCE_TABLE_CELL' IN TYPEOF(i)) )) = 0;
  3498. WR2 : (SIZEOF( QUERY( rr <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_1') | rr.name < 'general tolerance definition' )) = 0) AND (SIZEOF( QUERY( rr <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_1') | (rr.name = 'general tolerance definition') AND (rr.rep_2.name < 'default tolerance') )) = 0) AND (SIZEOF( USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_2') ) = 0);
  3499. END_ENTITY;
  3500. ENTITY default_tolerance_table_cell
  3501. SUBTYPE OF (compound_representation_item);
  3502. WHERE
  3503. WR1 : SIZEOF(QUERY( x <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION.ITEMS') | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DEFAULT_TOLERANCE_TABLE' IN TYPEOF(x)))=1;
  3504. WR2 : default_tolerance_table_cell_wr2(SELF\compound_representation_item.item_element);
  3505. WR3 : default_tolerance_table_cell_wr3(SELF\compound_representation_item.item_element);
  3506. WR4 : default_tolerance_table_cell_wr4(SELF\compound_representation_item.item_element);
  3507. WR5 : default_tolerance_table_cell_wr5(SELF\compound_representation_item.item_element);
  3508. END_ENTITY;
  3509. ENTITY defined_symbol
  3510. SUBTYPE OF (geometric_representation_item);
  3511. definition : defined_symbol_select;
  3512. target : symbol_target;
  3513. END_ENTITY;
  3514. ENTITY definitional_representation
  3515. SUBTYPE OF (representation);
  3516. WHERE
  3517. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN
  3518. TYPEOF (SELF\representation.context_of_items );
  3519. END_ENTITY;
  3520. ENTITY definitional_representation_relationship
  3521. SUBTYPE OF (representation_relationship);
  3522. WHERE
  3523. WR1 : acyclic_representation_relationship(SELF,
  3524. [SELF\representation_relationship.rep_2],
  3525. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'REPRESENTATION');
  3526. END_ENTITY;
  3527. ENTITY definitional_representation_relationship_with_same_context
  3528. SUBTYPE OF (definitional_representation_relationship);
  3529. WHERE
  3530. WR1 : SELF\representation_relationship.rep_1.context_of_items :=:
  3531. SELF\representation_relationship.rep_2.context_of_items;
  3532. END_ENTITY;
  3533. ENTITY degenerate_pcurve
  3534. SUBTYPE OF (point);
  3535. basis_surface : surface;
  3536. reference_to_curve : definitional_representation;
  3537. WHERE
  3538. WR1 : SIZEOF(reference_to_curve\representation.items) = 1;
  3539. WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF
  3540. (reference_to_curve\representation.items[1]);
  3541. WR3 : reference_to_curve\representation.
  3542. items[1]\geometric_representation_item.dim =2;
  3543. END_ENTITY;
  3544. ENTITY degenerate_toroidal_surface
  3545. SUBTYPE OF (toroidal_surface);
  3546. select_outer : BOOLEAN;
  3547. WHERE
  3548. WR1 : major_radius < minor_radius;
  3549. END_ENTITY;
  3550. ENTITY derived_shape_aspect
  3551. SUPERTYPE OF (ONEOF (apex, centre_of_symmetry, geometric_alignment, geometric_intersection, parallel_offset, perpendicular_to, extension, tangent))
  3552. SUBTYPE OF (shape_aspect);
  3553. INVERSE
  3554. deriving_relationships: SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect;
  3555. WHERE
  3556. WR1 : SIZEOF (QUERY (dr <*
  3557. SELF\derived_shape_aspect.deriving_relationships |
  3558. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  3559. 'SHAPE_ASPECT_DERIVING_RELATIONSHIP'
  3560. IN TYPEOF (dr)))) = 0;
  3561. END_ENTITY;
  3562. ENTITY derived_unit
  3563. SUPERTYPE OF (ONEOF (absorbed_dose_unit, acceleration_unit, radioactivity_unit, area_unit, capacitance_unit, dose_equivalent_unit, electric_charge_unit, conductance_unit, electric_potential_unit, energy_unit, magnetic_flux_density_unit, force_unit, frequency_unit, illuminance_unit, inductance_unit, magnetic_flux_unit, power_unit, pressure_unit, resistance_unit, velocity_unit, volume_unit));
  3564. elements : SET [1:?] OF derived_unit_element;
  3565. DERIVE
  3566. name : label := get_name_value(SELF);
  3567. WHERE
  3568. WR1 : (SIZEOF(elements) > 1) OR ((SIZEOF(elements) = 1) AND (elements[1].exponent <> 1.0));
  3569. WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
  3570. END_ENTITY;
  3571. ENTITY derived_unit_element;
  3572. unit : named_unit;
  3573. exponent : REAL;
  3574. END_ENTITY;
  3575. ENTITY description_attribute;
  3576. attribute_value : text;
  3577. described_item : description_attribute_select;
  3578. END_ENTITY;
  3579. ENTITY descriptive_representation_item
  3580. SUPERTYPE OF (ONEOF (tagged_text_item, uniform_resource_identifier))
  3581. SUBTYPE OF (representation_item);
  3582. description : text;
  3583. END_ENTITY;
  3584. ENTITY design_context
  3585. SUBTYPE OF (product_definition_context);
  3586. WHERE
  3587. WR1 : SELF.life_cycle_stage = 'design';
  3588. END_ENTITY;
  3589. ENTITY design_make_from_relationship
  3590. SUBTYPE OF (product_definition_relationship);
  3591. END_ENTITY;
  3592. ENTITY diameter_dimension
  3593. SUBTYPE OF (dimension_curve_directed_callout);
  3594. END_ENTITY;
  3595. ENTITY dielectric_constant_measure_with_unit
  3596. SUBTYPE OF (ratio_measure_with_unit);
  3597. END_ENTITY;
  3598. ENTITY dimension_callout
  3599. SUBTYPE OF (draughting_callout);
  3600. WHERE
  3601. WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT'
  3602. IN (TYPEOF (SELF))) XOR
  3603. (SIZEOF (QUERY(dce_1 <* SELF\draughting_callout.contents |
  3604. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE'
  3605. IN (TYPEOF(dce_1))))) = 0);
  3606. WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_DIRECTED_CALLOUT'
  3607. IN (TYPEOF (SELF))) XOR
  3608. (SIZEOF (QUERY(dce_1 <* SELF\draughting_callout.contents |
  3609. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE'
  3610. IN (TYPEOF(dce_1))))) = 0);
  3611. WR3 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT'
  3612. IN (TYPEOF (SELF))) XOR
  3613. (SIZEOF (QUERY(dce_1 <* SELF\draughting_callout.contents |
  3614. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE'
  3615. IN (TYPEOF(dce_1))))) = 0);
  3616. END_ENTITY;
  3617. ENTITY dimension_callout_component_relationship
  3618. SUBTYPE OF (draughting_callout_relationship);
  3619. WHERE
  3620. WR1 : SELF.name IN ['prefix', 'suffix'];
  3621. WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRUCTURED_DIMENSION_CALLOUT'
  3622. IN TYPEOF (SELF.relating_draughting_callout);
  3623. WR3 : SIZEOF (TYPEOF (SELF.related_draughting_callout) *
  3624. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT',
  3625. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_DIRECTED_CALLOUT',
  3626. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT',
  3627. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRUCTURED_DIMENSION_CALLOUT']) = 0;
  3628. WR4 : SELF.related_draughting_callout.contents *
  3629. SELF.relating_draughting_callout.contents =
  3630. SELF.related_draughting_callout.contents;
  3631. WR5 : ((SELF.name = 'prefix') AND
  3632. (SIZEOF (QUERY (ato <* QUERY (con <*
  3633. SELF.related_draughting_callout.contents |
  3634. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  3635. IN TYPEOF(con))) |
  3636. NOT (ato.name = 'prefix text')
  3637. )) = 0));
  3638. WR6 : ((SELF.name = 'suffix') AND
  3639. (SIZEOF (QUERY (ato <* QUERY (con <*
  3640. SELF.related_draughting_callout.contents |
  3641. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  3642. IN TYPEOF(con))) |
  3643. NOT (ato.name = 'suffix text')
  3644. )) = 0));
  3645. END_ENTITY;
  3646. ENTITY dimension_callout_relationship
  3647. SUBTYPE OF (draughting_callout_relationship);
  3648. WHERE
  3649. WR1 : SELF.name IN ['primary', 'secondary'];
  3650. WR2 : SIZEOF (TYPEOF (SELF.relating_draughting_callout) *
  3651. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANGULAR_DIMENSION',
  3652. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_DIMENSION',
  3653. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIAMETER_DIMENSION',
  3654. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_DIMENSION',
  3655. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINEAR_DIMENSION',
  3656. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORDINATE_DIMENSION',
  3657. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RADIUS_DIMENSION'])>=1;
  3658. WR3 : SIZEOF (TYPEOF (SELF.related_draughting_callout) *
  3659. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT',
  3660. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_DIRECTED_CALLOUT',
  3661. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT']) = 0;
  3662. WR4 : SELF.related_draughting_callout.contents *
  3663. SELF.relating_draughting_callout.contents =
  3664. SELF.related_draughting_callout.contents;
  3665. END_ENTITY;
  3666. ENTITY dimension_curve
  3667. SUBTYPE OF (annotation_curve_occurrence);
  3668. WHERE
  3669. WR1 : (SIZEOF(
  3670. QUERY(dct <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  3671. 'TERMINATOR_SYMBOL.ANNOTATED_CURVE')
  3672. | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  3673. 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct))
  3674. ))
  3675. ) <= 2);
  3676. WR2 : SIZEOF(
  3677. QUERY( dcdc <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  3678. 'DRAUGHTING_CALLOUT.CONTENTS') |
  3679. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  3680. 'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(dcdc)))
  3681. )>= 1;
  3682. WR3 : (SIZEOF(
  3683. QUERY(dct1 <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  3684. 'TERMINATOR_SYMBOL.ANNOTATED_CURVE')
  3685. | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  3686. 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct1))
  3687. AND (dct1\dimension_curve_terminator.role = dimension_extent_usage.origin)))
  3688. ) <= 1)
  3689. AND
  3690. (SIZEOF(
  3691. QUERY (dct2 <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  3692. 'TERMINATOR_SYMBOL.ANNOTATED_CURVE')
  3693. | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  3694. 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct2))
  3695. AND (dct2\dimension_curve_terminator.role = dimension_extent_usage.target)))
  3696. ) <= 1);
  3697. END_ENTITY;
  3698. ENTITY dimension_curve_directed_callout
  3699. SUBTYPE OF (draughting_callout);
  3700. WHERE
  3701. WR1 : SIZEOF(QUERY(d_c<*SELF\draughting_callout.contents |
  3702. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(d_c))))=1;
  3703. WR2 : SIZEOF(SELF\draughting_callout.contents) >= 2;
  3704. END_ENTITY;
  3705. ENTITY dimension_curve_terminator
  3706. SUBTYPE OF (terminator_symbol);
  3707. role : dimension_extent_usage;
  3708. WHERE
  3709. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE' IN TYPEOF
  3710. (SELF\terminator_symbol.annotated_curve);
  3711. END_ENTITY;
  3712. ENTITY dimension_curve_terminator_to_projection_curve_associativity
  3713. SUBTYPE OF (annotation_occurrence_associativity);
  3714. SELF\annotation_occurrence_relationship.related_annotation_occurrence : projection_curve;
  3715. SELF\annotation_occurrence_relationship.relating_annotation_occurrence : dimension_curve_terminator;
  3716. END_ENTITY;
  3717. ENTITY dimension_pair
  3718. SUBTYPE OF (draughting_callout_relationship);
  3719. WHERE
  3720. WR1 : SELF.name IN ['chained', 'parallel'];
  3721. WR2 : SIZEOF (TYPEOF (SELF.relating_draughting_callout) *
  3722. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANGULAR_DIMENSION',
  3723. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_DIMENSION',
  3724. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIAMETER_DIMENSION',
  3725. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINEAR_DIMENSION',
  3726. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORDINATE_DIMENSION',
  3727. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RADIUS_DIMENSION'])=1;
  3728. WR3 : SIZEOF (TYPEOF (SELF.related_draughting_callout) *
  3729. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANGULAR_DIMENSION',
  3730. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_DIMENSION',
  3731. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIAMETER_DIMENSION',
  3732. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINEAR_DIMENSION',
  3733. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORDINATE_DIMENSION',
  3734. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RADIUS_DIMENSION'])=1;
  3735. END_ENTITY;
  3736. ENTITY dimension_related_tolerance_zone_element;
  3737. related_dimension : dimensional_location;
  3738. related_element : tolerance_zone_definition;
  3739. END_ENTITY;
  3740. ENTITY dimension_text_associativity
  3741. SUBTYPE OF (text_literal, mapped_item);
  3742. WHERE
  3743. WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_DIMENSION_REPRESENTATION'
  3744. IN TYPEOF (SELF\mapped_item.
  3745. mapping_source.mapped_representation));
  3746. WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT'
  3747. IN TYPEOF (SELF\mapped_item.mapping_target));
  3748. WR3 : SIZEOF (QUERY (ato <* QUERY (si <*
  3749. USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM.ITEM') |
  3750. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  3751. IN TYPEOF(si))) |
  3752. NOT (SIZEOF( QUERY (dc <*
  3753. USEDIN (ato, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  3754. 'DRAUGHTING_CALLOUT.CONTENTS') |
  3755. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT'
  3756. IN TYPEOF (dc)))
  3757. * [SELF\mapped_item.mapping_target]) = 1)
  3758. )) = 0;
  3759. END_ENTITY;
  3760. ENTITY dimensional_characteristic_representation;
  3761. dimension : dimensional_characteristic;
  3762. representation : shape_dimension_representation;
  3763. END_ENTITY;
  3764. ENTITY dimensional_exponents;
  3765. length_exponent : REAL;
  3766. mass_exponent : REAL;
  3767. time_exponent : REAL;
  3768. electric_current_exponent : REAL;
  3769. thermodynamic_temperature_exponent : REAL;
  3770. amount_of_substance_exponent : REAL;
  3771. luminous_intensity_exponent : REAL;
  3772. END_ENTITY;
  3773. ENTITY dimensional_location
  3774. SUPERTYPE OF (ONEOF (angular_location, dimensional_location_with_path))
  3775. SUBTYPE OF (shape_aspect_relationship);
  3776. END_ENTITY;
  3777. ENTITY dimensional_location_with_path
  3778. SUBTYPE OF (dimensional_location);
  3779. path : shape_aspect;
  3780. END_ENTITY;
  3781. ENTITY dimensional_size
  3782. SUPERTYPE OF (ONEOF (angular_size, dimensional_size_with_path));
  3783. applies_to : shape_aspect;
  3784. name : label;
  3785. WHERE
  3786. WR1 : applies_to.product_definitional = TRUE;
  3787. END_ENTITY;
  3788. ENTITY dimensional_size_with_path
  3789. SUBTYPE OF (dimensional_size);
  3790. path : shape_aspect;
  3791. END_ENTITY;
  3792. ENTITY directed_action
  3793. SUBTYPE OF (executed_action);
  3794. directive : action_directive;
  3795. END_ENTITY;
  3796. ENTITY directed_dimensional_location
  3797. SUBTYPE OF (dimensional_location);
  3798. END_ENTITY;
  3799. ENTITY direction
  3800. SUBTYPE OF (geometric_representation_item);
  3801. direction_ratios : LIST [2:3] OF REAL;
  3802. WHERE
  3803. WR1 : SIZEOF(QUERY(tmp <* direction_ratios | tmp <> 0.0)) > 0;
  3804. END_ENTITY;
  3805. ENTITY document;
  3806. id : identifier;
  3807. name : label;
  3808. description : OPTIONAL text;
  3809. kind : document_type;
  3810. INVERSE
  3811. representation_types: SET [0:?] OF document_representation_type FOR represented_document;
  3812. END_ENTITY;
  3813. ENTITY document_file
  3814. SUBTYPE OF (document, characterized_object);
  3815. WHERE
  3816. WR1 : SELF\characterized_object.name = '';
  3817. WR2 : NOT EXISTS(SELF\characterized_object.description);
  3818. WR3 : SIZEOF( QUERY( drt <* SELF\document.representation_types |
  3819. drt.name IN ['digital','physical'])) = 1;
  3820. END_ENTITY;
  3821. ENTITY document_identifier
  3822. SUBTYPE OF (group);
  3823. UNIQUE
  3824. UR1: SELF\group.name, SELF\group.description;
  3825. END_ENTITY;
  3826. ENTITY document_identifier_assignment
  3827. SUBTYPE OF (group_assignment);
  3828. items : SET [1:?] OF document_identifier_assigned_item;
  3829. SELF\group_assignment.assigned_group : document_identifier;
  3830. END_ENTITY;
  3831. ENTITY document_product_association;
  3832. name : label;
  3833. description : OPTIONAL text;
  3834. relating_document : document;
  3835. related_product : product_or_formation_or_definition;
  3836. END_ENTITY;
  3837. ENTITY document_product_equivalence
  3838. SUBTYPE OF (document_product_association);
  3839. WHERE
  3840. WR1 : SELF\document_product_association.name = 'equivalence';
  3841. WR2 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT' IN TYPEOF(SELF\document_product_association.related_product)) OR ((SELF\document_product_association.relating_document.kind. product_data_type = 'configuration controlled document') AND (SIZEOF( QUERY( prpc <* USEDIN(SELF\document_product_association.related_product,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document' )) = 1));
  3842. WR3 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN TYPEOF(SELF.related_product)) OR ((SELF\document_product_association.relating_document.kind.product_data_type = 'configuration controlled document version') AND (SIZEOF( QUERY( prpc <* USEDIN(SELF.related_product\product_definition_formation.of_product, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document')) = 1));
  3843. WR4 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(SELF.related_product)) OR ((SELF\document_product_association.relating_document.kind.product_data_type = 'configuration controlled document definition') AND (SIZEOF( QUERY( prpc <* USEDIN(SELF\document_product_association.related_product\product_definition.formation.of_product, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document' )) = 1));
  3844. END_ENTITY;
  3845. ENTITY document_reference
  3846. ABSTRACT SUPERTYPE;
  3847. assigned_document : document;
  3848. source : label;
  3849. DERIVE
  3850. role : object_role := get_role(SELF);
  3851. WHERE
  3852. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
  3853. END_ENTITY;
  3854. ENTITY document_relationship;
  3855. name : label;
  3856. description : OPTIONAL text;
  3857. relating_document : document;
  3858. related_document : document;
  3859. END_ENTITY;
  3860. ENTITY document_representation_type;
  3861. name : label;
  3862. represented_document : document;
  3863. END_ENTITY;
  3864. ENTITY document_type;
  3865. product_data_type : label;
  3866. END_ENTITY;
  3867. ENTITY document_usage_constraint;
  3868. source : document;
  3869. subject_element : label;
  3870. subject_element_value : text;
  3871. END_ENTITY;
  3872. ENTITY document_usage_constraint_assignment
  3873. ABSTRACT SUPERTYPE;
  3874. assigned_document_usage : document_usage_constraint;
  3875. role : document_usage_role;
  3876. END_ENTITY;
  3877. ENTITY document_usage_role;
  3878. name : label;
  3879. description : OPTIONAL text;
  3880. END_ENTITY;
  3881. ENTITY dose_equivalent_measure_with_unit
  3882. SUBTYPE OF (measure_with_unit);
  3883. WHERE
  3884. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DOSE_EQUIVALENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  3885. END_ENTITY;
  3886. ENTITY dose_equivalent_unit
  3887. SUBTYPE OF (derived_unit);
  3888. WHERE
  3889. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.sievert);
  3890. END_ENTITY;
  3891. ENTITY double_offset_shelled_solid
  3892. SUBTYPE OF (shelled_solid);
  3893. thickness2 : length_measure;
  3894. WHERE
  3895. WR1 : thickness2 <> 0;
  3896. WR2 : SELF\shelled_solid.thickness <> thickness2;
  3897. END_ENTITY;
  3898. ENTITY draped_defined_transformation
  3899. SUBTYPE OF (transformation_with_derived_angle);
  3900. END_ENTITY;
  3901. ENTITY draughting_annotation_occurrence
  3902. SUBTYPE OF (annotation_occurrence);
  3903. WHERE
  3904. WR1 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_CURVE_OCCURRENCE'
  3905. IN TYPEOF (SELF))) OR
  3906. (SIZEOF (QUERY (sty <* SELF.styles |
  3907. NOT ((SIZEOF (sty.styles) = 1)
  3908. AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
  3909. IN TYPEOF (sty.styles[1]))) )) = 0);
  3910. WR2 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE'
  3911. IN TYPEOF (SELF))) OR (SIZEOF (QUERY (sty <* SELF.styles |
  3912. NOT ((SIZEOF (sty.styles) = 1)
  3913. AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE'
  3914. IN TYPEOF (sty.styles[1]))) )) = 0);
  3915. WR3 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE'
  3916. IN TYPEOF (SELF))) OR (SIZEOF (QUERY (bound <*
  3917. SELF.item\annotation_fill_area.boundaries |
  3918. NOT (SIZEOF (QUERY (si <*
  3919. USEDIN (bound, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  3920. 'STYLED_ITEM.ITEM') |
  3921. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  3922. 'ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF (si)))) > 0))) = 0);
  3923. WR4 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE'
  3924. IN TYPEOF (SELF))) OR (SIZEOF (QUERY (sty <* SELF.styles |
  3925. NOT ((SIZEOF (sty.styles) = 1) AND
  3926. (SIZEOF (TYPEOF (sty.styles[1]) *
  3927. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMBOL_STYLE',
  3928. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NULL_STYLE']) = 1)) )) = 0);
  3929. WR5 : (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE'
  3930. IN TYPEOF (SELF)) AND
  3931. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL'
  3932. IN TYPEOF(SELF.item)))) OR
  3933. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  3934. 'DRAUGHTING_SYMBOL_REPRESENTATION',
  3935. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  3936. 'DRAUGHTING_SUBFIGURE_REPRESENTATION'] *
  3937. TYPEOF (SELF.item\mapped_item.mapping_source.
  3938. mapped_representation)) = 1);
  3939. WR6 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  3940. IN TYPEOF (SELF))) OR
  3941. (SIZEOF (QUERY (sty <* SELF.styles |
  3942. NOT ((SIZEOF (sty.styles) = 1)
  3943. AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_STYLE'
  3944. IN TYPEOF (sty.styles[1]))) )) = 0);
  3945. WR7 : (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  3946. IN TYPEOF (SELF))) OR
  3947. (SIZEOF (TYPEOF(SELF.item) *
  3948. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT',
  3949. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL']) = 1);
  3950. WR8 : (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  3951. IN TYPEOF (SELF)) AND
  3952. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'
  3953. IN TYPEOF (SELF.item)))) OR (SIZEOF (QUERY (tl <*
  3954. SELF.item\composite_text.collected_text |
  3955. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL'
  3956. IN TYPEOF (tl)) )) = 0);
  3957. WR9 : (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  3958. IN TYPEOF (SELF)) AND
  3959. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL'
  3960. IN TYPEOF (SELF.item)))) OR (SELF.item\text_literal.alignment
  3961. IN ['baseline left', 'baseline centre', 'baseline right']);
  3962. WR10 : (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  3963. IN TYPEOF (SELF)) AND
  3964. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'
  3965. IN TYPEOF (SELF.item)))) OR
  3966. (SIZEOF (QUERY (tl <* QUERY (text <* SELF.
  3967. item\composite_text.collected_text
  3968. |('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL' IN TYPEOF(text))) |
  3969. NOT (tl\text_literal.alignment IN
  3970. ['baseline left', 'baseline centre', 'baseline right']) )) = 0);
  3971. WR11 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  3972. IN TYPEOF(SELF)) AND
  3973. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'
  3974. IN TYPEOF (SELF.item))) OR check_text_alignment(SELF.item);
  3975. WR12 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  3976. IN TYPEOF(SELF)) AND
  3977. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'
  3978. IN TYPEOF (SELF.item))) OR check_text_font(SELF.item);
  3979. WR13 : (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  3980. IN TYPEOF(SELF)) AND
  3981. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'
  3982. IN TYPEOF (SELF.item)))) OR
  3983. (SIZEOF (QUERY (tl <* QUERY (text <*
  3984. SELF.item\composite_text.collected_text |
  3985. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL' IN TYPEOF (text))) |
  3986. NOT (SIZEOF (TYPEOF(tl) *
  3987. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  3988. 'TEXT_LITERAL_WITH_BLANKING_BOX',
  3989. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  3990. 'TEXT_LITERAL_WITH_ASSOCIATED_CURVES']) = 0) )) = 0);
  3991. WR14 : (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  3992. IN TYPEOF (SELF)) AND
  3993. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL_WITH_ASSOCIATED_CURVES'
  3994. IN TYPEOF (SELF.item)))) OR
  3995. (SIZEOF (QUERY (crv <*
  3996. SELF.item\text_literal_with_associated_curves.
  3997. associated_curves |
  3998. NOT (SIZEOF (QUERY (si <* USEDIN (crv,
  3999. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM.ITEM') |
  4000. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_CURVE_OCCURRENCE'
  4001. IN TYPEOF (si)) )) > 0) )) = 0);
  4002. WR15 : (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  4003. IN TYPEOF (SELF)) AND
  4004. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT_WITH_ASSOCIATED_CURVES'
  4005. IN TYPEOF (SELF.item)))) OR
  4006. (SIZEOF (QUERY (crv <*
  4007. SELF.item\composite_text_with_associated_curves.
  4008. associated_curves |
  4009. NOT (SIZEOF (QUERY (si <* USEDIN (crv,
  4010. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM.ITEM') |
  4011. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_CURVE_OCCURRENCE'
  4012. IN TYPEOF (si)) )) > 0) )) = 0);
  4013. WR16 : SIZEOF (QUERY (cs <* QUERY (sty <* SELF.styles |
  4014. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (sty.styles[1])))
  4015. | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE_WITH_UNIT'
  4016. IN TYPEOF (cs.styles[1]\curve_style.curve_width)) AND
  4017. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE'
  4018. IN TYPEOF (cs.styles[1]\curve_style.
  4019. curve_width\measure_with_unit.value_component))))) = 0;
  4020. WR17 : SIZEOF (QUERY (fas <* QUERY (sty <* SELF.styles |
  4021. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE'
  4022. IN TYPEOF (sty.styles[1]))) |
  4023. NOT ((SIZEOF (QUERY (fs <* fas.styles[1]\fill_area_style.fill_styles
  4024. | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE_TILES'
  4025. IN TYPEOF (fs)))) <= 1)
  4026. AND (SIZEOF (QUERY (fst <* QUERY (fs <*
  4027. fas.styles[1]\fill_area_style.fill_styles |
  4028. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE_TILES'
  4029. IN TYPEOF (fs))) |
  4030. NOT (SIZEOF (fst\fill_area_style_tiles.tiles) = 1)
  4031. )) = 0))
  4032. )) = 0;
  4033. WR18 : SIZEOF (QUERY (fas <* QUERY (sty <* SELF.styles |
  4034. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE'
  4035. IN TYPEOF (sty.styles[1]))) |
  4036. NOT (SIZEOF (QUERY (fsh <* QUERY (fs <*
  4037. fas.styles[1]\fill_area_style.fill_styles |
  4038. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FILL_AREA_STYLE_HATCHING'
  4039. IN TYPEOF (fs))) |
  4040. NOT (fsh\fill_area_style_hatching.point_of_reference_hatch_line :=:
  4041. fsh\fill_area_style_hatching.pattern_start) )) = 0) )) = 0;
  4042. WR19 : SIZEOF (QUERY (ts <* QUERY (sty <* SELF.styles |
  4043. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_STYLE'
  4044. IN TYPEOF(sty.styles[1]))) |
  4045. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  4046. 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS'
  4047. IN TYPEOF (ts.styles[1])))) = 0;
  4048. WR20 : SIZEOF (QUERY (ts <* QUERY (sty <* SELF.styles |
  4049. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_STYLE_WITH_BOX_CHARACTERISTICS'
  4050. IN TYPEOF (sty.styles[1]))) |
  4051. NOT (SIZEOF (ts.styles[1]\text_style_with_box_characteristics.
  4052. characteristics) = 4) )) = 0;
  4053. END_ENTITY;
  4054. ENTITY draughting_callout
  4055. SUPERTYPE OF ((ONEOF (datum_feature_callout, datum_target_callout, dimension_curve_directed_callout, draughting_elements, geometrical_tolerance_callout, leader_directed_callout, projection_directed_callout, structured_dimension_callout) ANDOR surface_condition_callout))
  4056. SUBTYPE OF (geometric_representation_item);
  4057. contents : SET [1:?] OF draughting_callout_element;
  4058. WHERE
  4059. WR1 : (SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents |
  4060. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN (TYPEOF(l_1)))) = 0) OR
  4061. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) AND
  4062. (SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents |
  4063. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(l_1)))) = 0) OR
  4064. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) AND
  4065. (SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents |
  4066. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(l_1)))) = 0) OR
  4067. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN (TYPEOF(SELF)));
  4068. END_ENTITY;
  4069. ENTITY draughting_callout_relationship;
  4070. name : label;
  4071. description : text;
  4072. relating_draughting_callout : draughting_callout;
  4073. related_draughting_callout : draughting_callout;
  4074. END_ENTITY;
  4075. ENTITY draughting_elements
  4076. SUBTYPE OF (draughting_callout);
  4077. WHERE
  4078. WR1 : SIZEOF (QUERY (l_c <* QUERY (con <* SELF.contents |
  4079. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN TYPEOF(con))) |
  4080. NOT (SIZEOF (QUERY (ldc <* USEDIN (l_c,
  4081. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_CALLOUT.CONTENTS') |
  4082. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT'
  4083. IN TYPEOF (ldc)))) <= 1)))=0;
  4084. WR2 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT'
  4085. IN TYPEOF(SELF)) OR
  4086. (SIZEOF (QUERY (con <* SELF.contents |
  4087. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE' IN
  4088. TYPEOF (con)))) <= 2);
  4089. WR3 : SIZEOF (QUERY (rc <* USEDIN (SELF,
  4090. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT_' +
  4091. 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') |
  4092. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  4093. 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND
  4094. (rc.name = 'primary') )) <= 1;
  4095. WR4 : SIZEOF (QUERY (rc <* USEDIN (SELF,
  4096. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT_' +
  4097. 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') |
  4098. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  4099. 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND
  4100. (rc.name = 'secondary') )) <= 1;
  4101. WR5 : SIZEOF (QUERY (sec <* QUERY (rc <* USEDIN (SELF,
  4102. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT_' +
  4103. 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') |
  4104. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  4105. 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (rc)) AND
  4106. (rc.name = 'secondary') ) |
  4107. NOT (SIZEOF (QUERY (prim <* USEDIN (SELF,
  4108. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT_' +
  4109. 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') |
  4110. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  4111. 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF (prim)) AND
  4112. (prim.name = 'primary') )) = 1))) = 0;
  4113. END_ENTITY;
  4114. ENTITY draughting_model
  4115. SUBTYPE OF (representation);
  4116. SELF\representation.items : SET [1:?] OF draughting_model_item_select;
  4117. UNIQUE
  4118. UR1: SELF\representation.name;
  4119. WHERE
  4120. WR1 : SIZEOF (QUERY (mi <* QUERY (it <* SELF.items |
  4121. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) |
  4122. NOT (
  4123. SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION',
  4124. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_MODEL'] *
  4125. TYPEOF (mi\mapped_item.mapping_source.
  4126. mapped_representation)) = 1
  4127. ))) = 0;
  4128. WR2 : SIZEOF (QUERY (smi <* QUERY (si <* QUERY (it <* SELF.items |
  4129. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(it))) |
  4130. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN
  4131. TYPEOF(si\styled_item.item))) |
  4132. (NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION' IN
  4133. TYPEOF(smi\styled_item.item\mapped_item.
  4134. mapping_source.mapped_representation))
  4135. AND
  4136. (SIZEOF (QUERY (sty <* smi\styled_item.styles |
  4137. (NOT (SIZEOF (QUERY (psa <* sty.styles |
  4138. (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF(psa))))) = 1
  4139. )))) = 1)))
  4140. )) = 0;
  4141. END_ENTITY;
  4142. ENTITY draughting_model_item_association
  4143. SUBTYPE OF (item_identified_representation_usage);
  4144. SELF\item_identified_representation_usage.definition : shape_definition;
  4145. SELF\item_identified_representation_usage.identified_item : draughting_model_item_association_select;
  4146. SELF\item_identified_representation_usage.used_representation : draughting_model;
  4147. END_ENTITY;
  4148. ENTITY draughting_pre_defined_colour
  4149. SUBTYPE OF (pre_defined_colour);
  4150. WHERE
  4151. WR1 : SELF.name IN
  4152. ['red',
  4153. 'green',
  4154. 'blue',
  4155. 'yellow',
  4156. 'magenta',
  4157. 'cyan',
  4158. 'black',
  4159. 'white'];
  4160. END_ENTITY;
  4161. ENTITY draughting_pre_defined_curve_font
  4162. SUBTYPE OF (pre_defined_curve_font);
  4163. WHERE
  4164. WR1 : SELF.name IN
  4165. ['continuous',
  4166. 'chain',
  4167. 'chain double dash',
  4168. 'dashed',
  4169. 'dotted'];
  4170. END_ENTITY;
  4171. ENTITY draughting_pre_defined_text_font
  4172. SUBTYPE OF (pre_defined_text_font);
  4173. WHERE
  4174. WR1 : SELF.name[1:8] = 'ISO 3098';
  4175. END_ENTITY;
  4176. ENTITY draughting_subfigure_representation
  4177. SUBTYPE OF (symbol_representation);
  4178. WHERE
  4179. WR1 : SIZEOF (QUERY (item <* SELF\representation.items |
  4180. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_OCCURRENCE',
  4181. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT',
  4182. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT']
  4183. * TYPEOF (item)) = 1))) = 0;
  4184. WR2 : SIZEOF (QUERY (item <* SELF\representation.items |
  4185. SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_OCCURRENCE',
  4186. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT'] *
  4187. TYPEOF (item)) = 1)) >= 1;
  4188. WR3 : SIZEOF (QUERY (srm <* QUERY (rm <*
  4189. USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  4190. 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') |
  4191. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMBOL_REPRESENTATION_MAP'
  4192. IN TYPEOF(rm))) |
  4193. NOT (SIZEOF (QUERY (a_s <* QUERY (mi <* srm.map_usage |
  4194. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi)))
  4195. | NOT (SIZEOF (QUERY (aso <*
  4196. USEDIN (a_s, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  4197. 'STYLED_ITEM.ITEM') |
  4198. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE'
  4199. IN TYPEOF(aso)))) = 0))) = 0))) > 0;
  4200. WR4 : NOT (acyclic_mapped_item_usage (SELF));
  4201. WR5 : SIZEOF (SELF.context_of_items.representations_in_context) = 1;
  4202. END_ENTITY;
  4203. ENTITY draughting_symbol_representation
  4204. SUBTYPE OF (symbol_representation);
  4205. UNIQUE
  4206. UR1: SELF\representation.name;
  4207. WHERE
  4208. WR1 : SIZEOF (QUERY (item <* SELF\representation.items |
  4209. NOT (SIZEOF (TYPEOF (item) *
  4210. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_CURVE_OCCURRENCE',
  4211. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE',
  4212. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE',
  4213. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE',
  4214. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT']) = 1)
  4215. )) = 0;
  4216. WR2 : SIZEOF (QUERY (item <* SELF\representation.items |
  4217. (SIZEOF (TYPEOF (item) *
  4218. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_CURVE_OCCURRENCE',
  4219. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE',
  4220. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE',
  4221. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE']) = 1)
  4222. )) >= 1;
  4223. WR3 : SIZEOF (QUERY (item <* SELF\representation.items |
  4224. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE'
  4225. IN TYPEOF (item))) = 0;
  4226. WR4 : SIZEOF (QUERY (srm <* QUERY (rm <*
  4227. USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  4228. 'REPRESENTATION_MAP.MAPPED_REPRESENTATION') |
  4229. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMBOL_REPRESENTATION_MAP'
  4230. IN TYPEOF(rm))) |
  4231. (SIZEOF (QUERY (a_s <* QUERY (mi <* srm.map_usage |
  4232. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi))) |
  4233. NOT (SIZEOF (QUERY(aso <*
  4234. USEDIN(a_s, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  4235. 'STYLED_ITEM.ITEM') |
  4236. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE'
  4237. IN TYPEOF(aso))
  4238. )) = 0) )) = 0) )) > 0;
  4239. WR5 : NOT (acyclic_mapped_item_usage (SELF));
  4240. WR6 : SIZEOF (SELF.context_of_items.representations_in_context) = 1;
  4241. END_ENTITY;
  4242. ENTITY draughting_text_literal_with_delineation
  4243. SUBTYPE OF (text_literal_with_delineation);
  4244. WHERE
  4245. WR1 : SELF.delineation IN ['underline', 'overline'];
  4246. END_ENTITY;
  4247. ENTITY draughting_title;
  4248. items : SET [1:?] OF draughting_titled_item;
  4249. language : label;
  4250. contents : text;
  4251. END_ENTITY;
  4252. ENTITY drawing_definition;
  4253. drawing_number : identifier;
  4254. drawing_type : OPTIONAL label;
  4255. END_ENTITY;
  4256. ENTITY drawing_revision
  4257. SUBTYPE OF (presentation_set);
  4258. revision_identifier : identifier;
  4259. drawing_identifier : drawing_definition;
  4260. intended_scale : OPTIONAL text;
  4261. UNIQUE
  4262. UR1 : revision_identifier, drawing_identifier;
  4263. END_ENTITY;
  4264. ENTITY drawing_revision_sequence;
  4265. predecessor : drawing_revision;
  4266. successor : drawing_revision;
  4267. WHERE
  4268. WR1 : predecessor :<>: successor;
  4269. END_ENTITY;
  4270. ENTITY drawing_sheet_revision
  4271. SUBTYPE OF (presentation_area);
  4272. revision_identifier : identifier;
  4273. WHERE
  4274. WR1 : SIZEOF( QUERY(item <* SELF\representation.items |
  4275. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN (TYPEOF(item)))
  4276. AND
  4277. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAWING_SHEET_REVISION' IN
  4278. (TYPEOF(item\mapped_item.mapping_source.mapped_representation)))))=0;
  4279. END_ENTITY;
  4280. ENTITY drawing_sheet_revision_sequence
  4281. SUBTYPE OF (representation_relationship);
  4282. WHERE
  4283. WR1 : SELF\representation_relationship.rep_1 :<>:
  4284. SELF\representation_relationship.rep_2;
  4285. WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAWING_SHEET_REVISION'
  4286. IN TYPEOF (SELF\representation_relationship.rep_1);
  4287. WR3 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAWING_SHEET_REVISION'
  4288. IN TYPEOF (SELF\representation_relationship.rep_2);
  4289. END_ENTITY;
  4290. ENTITY drawing_sheet_revision_usage
  4291. SUBTYPE OF (area_in_set);
  4292. sheet_number : identifier;
  4293. UNIQUE
  4294. UR1: sheet_number, SELF\area_in_set.in_set;
  4295. WHERE
  4296. WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAWING_SHEET_REVISION' IN
  4297. TYPEOF(SELF\area_in_set.area))
  4298. AND
  4299. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAWING_REVISION'
  4300. IN TYPEOF (SELF\area_in_set.in_set));
  4301. END_ENTITY;
  4302. ENTITY edge
  4303. SUPERTYPE OF (ONEOF (edge_curve, oriented_edge, subedge))
  4304. SUBTYPE OF (topological_representation_item);
  4305. edge_start : vertex;
  4306. edge_end : vertex;
  4307. END_ENTITY;
  4308. ENTITY edge_based_wireframe_model
  4309. SUBTYPE OF (geometric_representation_item);
  4310. ebwm_boundary : SET [1:?] OF connected_edge_set;
  4311. END_ENTITY;
  4312. ENTITY edge_based_wireframe_shape_representation
  4313. SUBTYPE OF (shape_representation);
  4314. WHERE
  4315. WR1 : SIZEOF (
  4316. QUERY ( it <* SELF.items| NOT ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0;
  4317. WR2 : SIZEOF (
  4318. QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) >= 1;
  4319. WR3 : SIZEOF (
  4320. QUERY ( ebwm <*
  4321. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
  4322. QUERY ( eb <* ebwm\edge_based_wireframe_model.ebwm_boundary| NOT ( SIZEOF (
  4323. QUERY ( edges <* eb.ces_edges| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (edges)) )) = 0) )) = 0) )) = 0;
  4324. WR4 : SIZEOF (
  4325. QUERY ( ebwm <*
  4326. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
  4327. QUERY ( eb <* ebwm\edge_based_wireframe_model.ebwm_boundary| NOT ( SIZEOF (
  4328. QUERY ( pline_edges <*
  4329. QUERY ( edges <* eb.ces_edges| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (edges\edge_curve.edge_geometry)) )| NOT ( SIZEOF (pline_edges\edge_curve.edge_geometry\polyline.points) > 2) )) = 0) )) = 0) )) = 0;
  4330. WR5 : SIZEOF (
  4331. QUERY ( ebwm <*
  4332. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
  4333. QUERY ( eb <* ebwm\edge_based_wireframe_model.ebwm_boundary| NOT ( SIZEOF (
  4334. QUERY ( edges <* eb.ces_edges| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (edges.edge_start)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (edges.edge_end))) )) = 0) )) = 0) )) = 0;
  4335. WR6 : SIZEOF (
  4336. QUERY ( ebwm <*
  4337. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
  4338. QUERY ( eb <* ebwm\edge_based_wireframe_model.ebwm_boundary| NOT ( SIZEOF (
  4339. QUERY ( edges <* eb.ces_edges| NOT valid_wireframe_edge_curve(edges\edge_curve.edge_geometry) )) = 0) )) = 0) )) = 0;
  4340. WR7 : SIZEOF (
  4341. QUERY ( ebwm <*
  4342. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
  4343. QUERY ( eb <* ebwm\edge_based_wireframe_model.ebwm_boundary| NOT ( SIZEOF (
  4344. QUERY ( edges <* eb.ces_edges| NOT (valid_wireframe_vertex_point(edges.edge_start\vertex_point.vertex_geometry) AND valid_wireframe_vertex_point(edges.edge_end\vertex_point.vertex_geometry)) )) = 0) )) = 0) )) = 0;
  4345. WR8 : SIZEOF (
  4346. QUERY ( mi <*
  4347. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0;
  4348. WR9 : SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3;
  4349. END_ENTITY;
  4350. ENTITY edge_blended_solid
  4351. ABSTRACT SUPERTYPE OF ((track_blended_solid ANDOR ONEOF (solid_with_constant_radius_edge_blend, solid_with_variable_radius_edge_blend, solid_with_chamfered_edges)))
  4352. SUBTYPE OF (modified_solid);
  4353. blended_edges : LIST [1:?] OF UNIQUE edge_curve;
  4354. END_ENTITY;
  4355. ENTITY edge_curve
  4356. SUBTYPE OF (edge, geometric_representation_item);
  4357. edge_geometry : curve;
  4358. same_sense : BOOLEAN;
  4359. END_ENTITY;
  4360. ENTITY edge_loop
  4361. SUBTYPE OF (loop, path);
  4362. DERIVE
  4363. ne : INTEGER := SIZEOF(SELF\path.edge_list);
  4364. WHERE
  4365. WR1 : (SELF\path.edge_list[1].edge_start) :=:
  4366. (SELF\path.edge_list[ne].edge_end);
  4367. END_ENTITY;
  4368. ENTITY effectivity
  4369. SUPERTYPE OF (ONEOF (serial_numbered_effectivity, dated_effectivity, lot_effectivity, time_interval_based_effectivity));
  4370. id : identifier;
  4371. DERIVE
  4372. description : text := get_description_value(SELF);
  4373. name : label := get_name_value(SELF);
  4374. WHERE
  4375. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
  4376. WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
  4377. END_ENTITY;
  4378. ENTITY effectivity_assignment
  4379. ABSTRACT SUPERTYPE;
  4380. assigned_effectivity : effectivity;
  4381. DERIVE
  4382. role : object_role := get_role(SELF);
  4383. WHERE
  4384. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
  4385. END_ENTITY;
  4386. ENTITY effectivity_context_assignment
  4387. ABSTRACT SUPERTYPE;
  4388. assigned_effectivity_assignment : effectivity_assignment;
  4389. role : effectivity_context_role;
  4390. END_ENTITY;
  4391. ENTITY effectivity_context_role;
  4392. name : label;
  4393. description : OPTIONAL text;
  4394. END_ENTITY;
  4395. ENTITY effectivity_relationship;
  4396. name : label;
  4397. description : OPTIONAL text;
  4398. related_effectivity : effectivity;
  4399. relating_effectivity : effectivity;
  4400. END_ENTITY;
  4401. ENTITY electric_charge_measure_with_unit
  4402. SUBTYPE OF (measure_with_unit);
  4403. WHERE
  4404. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_CHARGE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  4405. END_ENTITY;
  4406. ENTITY electric_charge_unit
  4407. SUBTYPE OF (derived_unit);
  4408. WHERE
  4409. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.coulomb);
  4410. END_ENTITY;
  4411. ENTITY electric_current_measure_with_unit
  4412. SUBTYPE OF (measure_with_unit);
  4413. WHERE
  4414. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_CURRENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  4415. END_ENTITY;
  4416. ENTITY electric_current_unit
  4417. SUBTYPE OF (named_unit);
  4418. WHERE
  4419. WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 1.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
  4420. END_ENTITY;
  4421. ENTITY electric_potential_measure_with_unit
  4422. SUBTYPE OF (measure_with_unit);
  4423. WHERE
  4424. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_POTENTIAL_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  4425. END_ENTITY;
  4426. ENTITY electric_potential_unit
  4427. SUBTYPE OF (derived_unit);
  4428. WHERE
  4429. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.volt);
  4430. END_ENTITY;
  4431. ENTITY elementary_brep_shape_representation
  4432. SUBTYPE OF (shape_representation);
  4433. WHERE
  4434. WR1 : SIZEOF (QUERY (it <* SELF.items |
  4435. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP',
  4436. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP',
  4437. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM',
  4438. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D'] *
  4439. TYPEOF(it)) = 1))) = 0;
  4440. WR2 : SIZEOF (QUERY (it <* SELF.items |
  4441. SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP',
  4442. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) =1 )) > 0;
  4443. WR3 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items |
  4444. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
  4445. NOT (SIZEOF (QUERY (csh <* msb_shells(msb) |
  4446. NOT (SIZEOF (QUERY(fcs <* csh.cfs_faces |
  4447. NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF(fcs)))) = 0
  4448. ))) = 0
  4449. ))) = 0;
  4450. WR4 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items |
  4451. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
  4452. NOT (SIZEOF (QUERY (csh <* msb_shells(msb) |
  4453. NOT (SIZEOF (QUERY(fcs <* csh\connected_face_set.cfs_faces |
  4454. NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_SURFACE' IN
  4455. TYPEOF(fcs\face_surface.face_geometry))
  4456. ))) = 0
  4457. ))) = 0
  4458. ))) = 0;
  4459. WR5 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items |
  4460. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
  4461. NOT (SIZEOF (QUERY (csh <* msb_shells(msb) |
  4462. NOT (SIZEOF (QUERY(fcs <* csh\connected_face_set.cfs_faces |
  4463. NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
  4464. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
  4465. NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
  4466. NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN
  4467. TYPEOF(oe.edge_element)))) = 0
  4468. ))) = 0
  4469. ))) = 0
  4470. ))) = 0
  4471. ))) = 0;
  4472. WR6 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items |
  4473. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
  4474. NOT (SIZEOF (QUERY (csh <* msb_shells(msb) |
  4475. NOT (SIZEOF (QUERY(fcs <* csh\connected_face_set.cfs_faces |
  4476. NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
  4477. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
  4478. NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
  4479. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE',
  4480. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC',
  4481. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE'] *
  4482. TYPEOF(oe.edge_element\edge_curve.edge_geometry)) = 1 )
  4483. )) = 0
  4484. ))) = 0
  4485. ))) = 0
  4486. ))) = 0
  4487. ))) = 0;
  4488. WR7 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items |
  4489. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
  4490. NOT (SIZEOF (QUERY (csh <* msb_shells(msb) |
  4491. NOT (SIZEOF (QUERY(fcs <* csh\connected_face_set.cfs_faces |
  4492. NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
  4493. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
  4494. NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
  4495. NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_start))
  4496. AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN
  4497. TYPEOF(oe.edge_end))
  4498. ))) = 0
  4499. ))) = 0
  4500. ))) = 0
  4501. ))) = 0
  4502. ))) = 0;
  4503. WR8 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items |
  4504. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
  4505. NOT (SIZEOF (QUERY (csh <* msb_shells(msb) |
  4506. NOT (SIZEOF (QUERY(fcs <* csh\connected_face_set.cfs_faces |
  4507. NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
  4508. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
  4509. NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
  4510. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN
  4511. TYPEOF(oe.edge_element\edge_curve.edge_geometry)) AND
  4512. (NOT (SIZEOF (oe\oriented_edge.edge_element\
  4513. edge_curve.edge_geometry\polyline.points) >= 3))
  4514. )) = 0
  4515. ))) = 0
  4516. ))) = 0
  4517. ))) = 0
  4518. ))) = 0;
  4519. WR9 : SIZEOF (QUERY (msb <* QUERY (it <* items |
  4520. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
  4521. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF
  4522. (msb\manifold_solid_brep.outer)))
  4523. = 0;
  4524. WR10 : SIZEOF (QUERY (brv <* QUERY (it <* items |
  4525. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BREP_WITH_VOIDS' IN TYPEOF(it)) |
  4526. NOT (SIZEOF (QUERY (csh <* brv\brep_with_voids.voids |
  4527. csh\oriented_closed_shell.orientation)) = 0))) = 0;
  4528. WR11 : SIZEOF (QUERY (mi <* QUERY (it <* items |
  4529. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) |
  4530. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION' IN
  4531. TYPEOF(mi\mapped_item.mapping_source.
  4532. mapped_representation)))) = 0;
  4533. WR12 : SIZEOF (QUERY (msb <* QUERY (it <* SELF.items |
  4534. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) |
  4535. NOT (SIZEOF (QUERY (csh <* msb_shells(msb) |
  4536. NOT (SIZEOF (QUERY(fcs <* csh\connected_face_set.cfs_faces |
  4537. NOT (SIZEOF(QUERY (vlp_fbnds <* QUERY (bnds <* fcs.bounds |
  4538. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF(bnds.bound)) |
  4539. NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN
  4540. TYPEOF(vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND
  4541. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN
  4542. TYPEOF(vlp_fbnds\face_bound.bound\vertex_loop.
  4543. loop_vertex\vertex_point.vertex_geometry))
  4544. ))) = 0))) = 0))) = 0))) =0;
  4545. END_ENTITY;
  4546. ENTITY elementary_surface
  4547. SUPERTYPE OF (ONEOF (plane, cylindrical_surface, conical_surface, spherical_surface, toroidal_surface))
  4548. SUBTYPE OF (surface);
  4549. position : axis2_placement_3d;
  4550. END_ENTITY;
  4551. ENTITY ellipse
  4552. SUBTYPE OF (conic);
  4553. semi_axis_1 : positive_length_measure;
  4554. semi_axis_2 : positive_length_measure;
  4555. END_ENTITY;
  4556. ENTITY energy_measure_with_unit
  4557. SUBTYPE OF (measure_with_unit);
  4558. WHERE
  4559. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ENERGY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  4560. END_ENTITY;
  4561. ENTITY energy_unit
  4562. SUBTYPE OF (derived_unit);
  4563. WHERE
  4564. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.joule);
  4565. END_ENTITY;
  4566. ENTITY entity_assertion
  4567. SUBTYPE OF (fact_type);
  4568. END_ENTITY;
  4569. ENTITY enum_reference_prefix
  4570. SUBTYPE OF (descriptive_representation_item);
  4571. END_ENTITY;
  4572. ENTITY environment;
  4573. syntactic_representation : generic_variable;
  4574. semantics : variable_semantics;
  4575. END_ENTITY;
  4576. ENTITY evaluated_characteristic
  4577. SUBTYPE OF (representation, representation_relationship);
  4578. UNIQUE
  4579. UR1: SELF\representation_relationship.rep_1, SELF\representation_relationship.rep_2;
  4580. WHERE
  4581. WR1 : SELF\representation_relationship.rep_1 <>
  4582. SELF\representation_relationship.rep_2;
  4583. END_ENTITY;
  4584. ENTITY evaluated_degenerate_pcurve
  4585. SUBTYPE OF (degenerate_pcurve);
  4586. equivalent_point : cartesian_point;
  4587. END_ENTITY;
  4588. ENTITY evaluation_product_definition
  4589. SUBTYPE OF (product_definition);
  4590. END_ENTITY;
  4591. ENTITY event_occurrence;
  4592. id : identifier;
  4593. name : label;
  4594. description : OPTIONAL text;
  4595. END_ENTITY;
  4596. ENTITY event_occurrence_assignment
  4597. ABSTRACT SUPERTYPE;
  4598. assigned_event_occurrence : event_occurrence;
  4599. role : event_occurrence_role;
  4600. END_ENTITY;
  4601. ENTITY event_occurrence_relationship;
  4602. name : label;
  4603. description : OPTIONAL text;
  4604. relating_event : event_occurrence;
  4605. related_event : event_occurrence;
  4606. END_ENTITY;
  4607. ENTITY event_occurrence_role;
  4608. name : label;
  4609. description : OPTIONAL text;
  4610. END_ENTITY;
  4611. ENTITY exclusive_product_concept_feature_category
  4612. SUBTYPE OF (product_concept_feature_category);
  4613. END_ENTITY;
  4614. ENTITY executed_action
  4615. SUBTYPE OF (action);
  4616. END_ENTITY;
  4617. ENTITY expanded_uncertainty
  4618. SUBTYPE OF (standard_uncertainty);
  4619. coverage_factor : REAL;
  4620. END_ENTITY;
  4621. ENTITY explicit_procedural_geometric_representation_item_relationship
  4622. SUBTYPE OF (explicit_procedural_representation_item_relationship);
  4623. SELF\representation_item_relationship.related_representation_item : geometric_representation_item;
  4624. SELF\representation_item_relationship.relating_representation_item : procedural_shape_representation_sequence;
  4625. WHERE
  4626. WR1 : NOT (
  4627. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION_SEQUENCE'
  4628. IN TYPEOF(
  4629. SELF\representation_item_relationship.related_representation_item));
  4630. END_ENTITY;
  4631. ENTITY explicit_procedural_representation_item_relationship
  4632. SUBTYPE OF (representation_item_relationship);
  4633. SELF\representation_item_relationship.relating_representation_item : procedural_representation_sequence;
  4634. WHERE
  4635. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROCEDURAL_REPRESENTATION_SEQUENCE'
  4636. IN TYPEOF(
  4637. SELF\representation_item_relationship.related_representation_item));
  4638. WR2 : SIZEOF(QUERY(q <* using_representations(
  4639. SELF\representation_item_relationship.related_representation_item) |
  4640. item_in_context(
  4641. SELF\representation_item_relationship.relating_representation_item,
  4642. q.context_of_items))) > 0;
  4643. END_ENTITY;
  4644. ENTITY explicit_procedural_representation_relationship
  4645. SUBTYPE OF (representation_relationship);
  4646. SELF\representation_relationship.rep_1 : procedural_representation;
  4647. WHERE
  4648. WR1 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROCEDURAL_REPRESENTATION'
  4649. IN TYPEOF(SELF\representation_relationship.rep_2))) AND
  4650. (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VARIATIONAL_REPRESENTATION'
  4651. IN TYPEOF(SELF\representation_relationship.rep_2)));
  4652. WR2 : SELF\representation_relationship.rep_1.context_of_items :=:
  4653. SELF\representation_relationship.rep_2.context_of_items;
  4654. END_ENTITY;
  4655. ENTITY explicit_procedural_shape_representation_relationship
  4656. SUBTYPE OF (explicit_procedural_representation_relationship);
  4657. SELF\representation_relationship.rep_1 : procedural_shape_representation;
  4658. SELF\representation_relationship.rep_2 : shape_representation;
  4659. END_ENTITY;
  4660. ENTITY expression
  4661. ABSTRACT SUPERTYPE OF (ONEOF (numeric_expression, boolean_expression))
  4662. SUBTYPE OF (generic_expression);
  4663. END_ENTITY;
  4664. ENTITY expression_conversion_based_unit
  4665. SUBTYPE OF (context_dependent_unit, variable_semantics);
  4666. INVERSE
  4667. associated_variable_environment: environment FOR semantics;
  4668. END_ENTITY;
  4669. ENTITY extension
  4670. SUBTYPE OF (derived_shape_aspect);
  4671. WHERE
  4672. WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1;
  4673. END_ENTITY;
  4674. ENTITY extent
  4675. SUBTYPE OF (characterized_object);
  4676. END_ENTITY;
  4677. ENTITY external_class_library
  4678. SUBTYPE OF (external_source);
  4679. END_ENTITY;
  4680. ENTITY external_identification_assignment
  4681. ABSTRACT SUPERTYPE
  4682. SUBTYPE OF (identification_assignment);
  4683. source : external_source;
  4684. END_ENTITY;
  4685. ENTITY external_source;
  4686. source_id : source_item;
  4687. DERIVE
  4688. description : text := get_description_value(SELF);
  4689. WHERE
  4690. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
  4691. END_ENTITY;
  4692. ENTITY external_source_relationship;
  4693. name : label;
  4694. description : OPTIONAL text;
  4695. relating_source : external_source;
  4696. related_source : external_source;
  4697. END_ENTITY;
  4698. ENTITY externally_defined_class
  4699. SUBTYPE OF (class, externally_defined_item);
  4700. END_ENTITY;
  4701. ENTITY externally_defined_colour
  4702. SUBTYPE OF (colour_specification, externally_defined_item);
  4703. END_ENTITY;
  4704. ENTITY externally_defined_context_dependent_unit
  4705. SUBTYPE OF (context_dependent_unit, externally_defined_item);
  4706. END_ENTITY;
  4707. ENTITY externally_defined_conversion_based_unit
  4708. SUBTYPE OF (conversion_based_unit, externally_defined_item);
  4709. END_ENTITY;
  4710. ENTITY externally_defined_currency
  4711. SUBTYPE OF (currency, externally_defined_context_dependent_unit);
  4712. END_ENTITY;
  4713. ENTITY externally_defined_curve_font
  4714. SUBTYPE OF (externally_defined_item);
  4715. END_ENTITY;
  4716. ENTITY externally_defined_dimension_definition
  4717. SUBTYPE OF (dimensional_size, externally_defined_item);
  4718. WHERE
  4719. WR1 : (SELF\externally_defined_item.item_id = 'external size dimension') AND (SELF\externally_defined_item.source.source_id = 'external size dimension specification');
  4720. WR2 : 1 >= SIZEOF(QUERY ( adr <* USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.APPLIED_DOCUMENT_REFERENCE.ITEMS')| (adr.assigned_document.description = 'external size dimension specification') ));
  4721. END_ENTITY;
  4722. ENTITY externally_defined_general_property
  4723. SUBTYPE OF (general_property, externally_defined_item);
  4724. END_ENTITY;
  4725. ENTITY externally_defined_hatch_style
  4726. SUBTYPE OF (externally_defined_item, geometric_representation_item);
  4727. END_ENTITY;
  4728. ENTITY externally_defined_item;
  4729. item_id : source_item;
  4730. source : external_source;
  4731. END_ENTITY;
  4732. ENTITY externally_defined_item_relationship;
  4733. name : label;
  4734. description : OPTIONAL text;
  4735. relating_item : externally_defined_item;
  4736. related_item : externally_defined_item;
  4737. END_ENTITY;
  4738. ENTITY externally_defined_marker
  4739. SUBTYPE OF (externally_defined_symbol, pre_defined_marker);
  4740. END_ENTITY;
  4741. ENTITY externally_defined_picture_representation_item
  4742. SUBTYPE OF (picture_representation_item);
  4743. INVERSE
  4744. source: applied_external_identification_assignment FOR items;
  4745. WHERE
  4746. WR1 : NOT (SELF\representation_item.name IN pre_defined_picture_representation_types);
  4747. END_ENTITY;
  4748. ENTITY externally_defined_representation_item
  4749. SUBTYPE OF (representation_item, externally_defined_item);
  4750. END_ENTITY;
  4751. ENTITY externally_defined_string
  4752. SUBTYPE OF (externally_defined_representation_item);
  4753. END_ENTITY;
  4754. ENTITY externally_defined_symbol
  4755. SUBTYPE OF (externally_defined_item);
  4756. END_ENTITY;
  4757. ENTITY externally_defined_terminator_symbol
  4758. SUBTYPE OF (externally_defined_symbol);
  4759. END_ENTITY;
  4760. ENTITY externally_defined_text_font
  4761. SUBTYPE OF (externally_defined_item);
  4762. END_ENTITY;
  4763. ENTITY externally_defined_tile
  4764. SUBTYPE OF (externally_defined_item);
  4765. END_ENTITY;
  4766. ENTITY externally_defined_tile_style
  4767. SUBTYPE OF (externally_defined_item, geometric_representation_item);
  4768. END_ENTITY;
  4769. ENTITY extruded_area_solid
  4770. SUBTYPE OF (swept_area_solid);
  4771. extruded_direction : direction;
  4772. depth : positive_length_measure;
  4773. WHERE
  4774. WR1 : dot_product(
  4775. (SELF\swept_area_solid.swept_area.basis_surface\
  4776. elementary_surface.position.p[3]), extruded_direction) <> 0.0;
  4777. END_ENTITY;
  4778. ENTITY extruded_face_solid
  4779. SUBTYPE OF (swept_face_solid);
  4780. extruded_direction : direction;
  4781. depth : positive_length_measure;
  4782. WHERE
  4783. WR1 : dot_product(
  4784. (SELF\swept_face_solid.swept_face.face_geometry\
  4785. elementary_surface.position.p[3]), extruded_direction) <> 0.0;
  4786. END_ENTITY;
  4787. ENTITY extruded_face_solid_with_draft_angle
  4788. SUBTYPE OF (extruded_face_solid_with_trim_conditions);
  4789. draft_angle : plane_angle_measure;
  4790. WHERE
  4791. WR1 : draft_angle <> 0;
  4792. END_ENTITY;
  4793. ENTITY extruded_face_solid_with_multiple_draft_angles
  4794. SUBTYPE OF (extruded_face_solid_with_trim_conditions);
  4795. drafted_edges : LIST [2:?] OF SET [1:?] OF edge_curve;
  4796. draft_angles : LIST [2:?] OF plane_angle_measure;
  4797. WHERE
  4798. WR1 : SIZEOF(drafted_edges) = SIZEOF(draft_angles);
  4799. WR2 : SIZEOF(QUERY(q <* draft_angles | q = 0)) = 0;
  4800. WR3 : SIZEOF(QUERY(q <* drafted_edges | (SIZEOF(QUERY(r <* q | NOT
  4801. (SELF\swept_face_solid.swept_face IN
  4802. using_items(r,[])))) > 0))) = 0;
  4803. END_ENTITY;
  4804. ENTITY extruded_face_solid_with_trim_conditions
  4805. SUPERTYPE OF (ONEOF (extruded_face_solid_with_draft_angle, extruded_face_solid_with_multiple_draft_angles))
  4806. SUBTYPE OF (extruded_face_solid);
  4807. first_trim_condition : trim_condition_select;
  4808. second_trim_condition : trim_condition_select;
  4809. first_trim_intent : trim_intent;
  4810. second_trim_intent : trim_intent;
  4811. first_offset : non_negative_length_measure;
  4812. second_offset : non_negative_length_measure;
  4813. WHERE
  4814. WR1 : NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_MEASURE'
  4815. IN TYPEOF(first_trim_condition)) OR
  4816. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_MEASURE'
  4817. IN TYPEOF(second_trim_condition)));
  4818. WR2 : NOT ((('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
  4819. IN TYPEOF(first_trim_condition)) AND
  4820. ((first_trim_intent = trim_intent.offset)
  4821. OR (first_trim_intent = trim_intent.up_to_next))) OR
  4822. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
  4823. IN TYPEOF(second_trim_condition)) AND
  4824. ((second_trim_intent = trim_intent.offset)
  4825. OR (second_trim_intent = trim_intent.up_to_next))));
  4826. WR3 : NOT (((NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
  4827. IN TYPEOF(first_trim_condition))) AND
  4828. ((first_trim_intent = trim_intent.blind)
  4829. OR (first_trim_intent = trim_intent.through_all))) OR
  4830. ((NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
  4831. IN TYPEOF(second_trim_condition))) AND
  4832. ((second_trim_intent = trim_intent.blind)
  4833. OR (second_trim_intent = trim_intent.through_all))));
  4834. WR4 : (((first_trim_intent = trim_intent.offset)
  4835. AND (first_offset > 0)) XOR
  4836. ((first_trim_intent <> trim_intent.offset)
  4837. AND (first_offset = 0))) AND
  4838. (((second_trim_intent = trim_intent.offset)
  4839. AND (second_offset > 0)) XOR
  4840. ((second_trim_intent <> trim_intent.offset)
  4841. AND (second_offset = 0)));
  4842. WR5 : NOT((('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
  4843. IN TYPEOF(first_trim_condition)) AND
  4844. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
  4845. IN TYPEOF(second_trim_condition))) AND
  4846. (first_trim_condition = second_trim_condition));
  4847. END_ENTITY;
  4848. ENTITY face
  4849. SUPERTYPE OF (ONEOF (face_surface, subface, oriented_face))
  4850. SUBTYPE OF (topological_representation_item);
  4851. bounds : SET [1:?] OF face_bound;
  4852. WHERE
  4853. WR1 : NOT (mixed_loop_type_set(list_to_set(list_face_loops(SELF))));
  4854. WR2 : SIZEOF(QUERY(temp <* bounds | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_OUTER_BOUND' IN
  4855. TYPEOF(temp))) <= 1;
  4856. END_ENTITY;
  4857. ENTITY face_based_surface_model
  4858. SUBTYPE OF (geometric_representation_item);
  4859. fbsm_faces : SET [1:?] OF connected_face_set;
  4860. END_ENTITY;
  4861. ENTITY face_bound
  4862. SUBTYPE OF (topological_representation_item);
  4863. bound : loop;
  4864. orientation : BOOLEAN;
  4865. END_ENTITY;
  4866. ENTITY face_outer_bound
  4867. SUBTYPE OF (face_bound);
  4868. END_ENTITY;
  4869. ENTITY face_surface
  4870. SUBTYPE OF (face, geometric_representation_item);
  4871. face_geometry : surface;
  4872. same_sense : BOOLEAN;
  4873. WHERE
  4874. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_SURFACE' IN TYPEOF(face_geometry));
  4875. END_ENTITY;
  4876. ENTITY faceted_brep
  4877. SUBTYPE OF (manifold_solid_brep);
  4878. END_ENTITY;
  4879. ENTITY faceted_brep_shape_representation
  4880. SUBTYPE OF (shape_representation);
  4881. WHERE
  4882. WR1 : SIZEOF (
  4883. QUERY ( it <* items| NOT ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0;
  4884. WR2 : SIZEOF (
  4885. QUERY ( it <* items| ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) > 0;
  4886. WR3 : SIZEOF (
  4887. QUERY ( fbrep <*
  4888. QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP' IN TYPEOF (it)) )| NOT ( SIZEOF (
  4889. QUERY ( csh <* msb_shells(fbrep)| NOT ( SIZEOF (
  4890. QUERY ( fcs <* csh\connected_face_set.cfs_faces| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF (fcs)) AND (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF (fcs\face_surface.face_geometry)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (fcs\face_surface.face_geometry\elementary_surface.position.location)))) )) = 0) )) = 0) )) = 0;
  4891. WR4 : SIZEOF (
  4892. QUERY ( fbrep <*
  4893. QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP' IN TYPEOF (it)) )| NOT ( SIZEOF (
  4894. QUERY ( csh <* msb_shells(fbrep)| NOT ( SIZEOF (
  4895. QUERY ( fcs <* csh\connected_face_set.cfs_faces| NOT ( SIZEOF (
  4896. QUERY ( bnds <* fcs.bounds| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF (bnds)) )) = 1) )) = 0) )) = 0) )) = 0;
  4897. WR5 : SIZEOF (
  4898. QUERY ( msb <*
  4899. QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF (it)) )| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF (msb\manifold_solid_brep.outer)) )) = 0;
  4900. WR6 : SIZEOF (
  4901. QUERY ( brv <*
  4902. QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BREP_WITH_VOIDS' IN TYPEOF (it)) )| NOT ( SIZEOF (
  4903. QUERY ( csh <* brv\brep_with_voids.voids| csh\oriented_closed_shell.orientation )) = 0) )) = 0;
  4904. WR7 : SIZEOF (
  4905. QUERY ( mi <*
  4906. QUERY ( it <* items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0;
  4907. END_ENTITY;
  4908. ENTITY fact_type
  4909. SUBTYPE OF (property_definition);
  4910. END_ENTITY;
  4911. ENTITY fill_area_style
  4912. SUBTYPE OF (founded_item);
  4913. name : label;
  4914. fill_styles : SET [1:?] OF fill_style_select;
  4915. WHERE
  4916. WR1 : SIZEOF(QUERY(fill_style <* SELF.fill_styles |
  4917. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  4918. 'FILL_AREA_STYLE_COLOUR' IN
  4919. TYPEOF(fill_style)
  4920. )) <= 1;
  4921. END_ENTITY;
  4922. ENTITY fill_area_style_colour;
  4923. name : label;
  4924. fill_colour : colour;
  4925. END_ENTITY;
  4926. ENTITY fill_area_style_hatching
  4927. SUBTYPE OF (geometric_representation_item);
  4928. hatch_line_appearance : curve_style;
  4929. start_of_next_hatch_line : one_direction_repeat_factor;
  4930. point_of_reference_hatch_line : cartesian_point;
  4931. pattern_start : cartesian_point;
  4932. hatch_line_angle : plane_angle_measure;
  4933. END_ENTITY;
  4934. ENTITY fill_area_style_tile_coloured_region
  4935. SUBTYPE OF (geometric_representation_item);
  4936. closed_curve : curve_or_annotation_curve_occurrence;
  4937. region_colour : colour;
  4938. WHERE
  4939. WR1 : (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF (closed_curve))) OR
  4940. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE' IN TYPEOF (closed_curve)) OR
  4941. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE' IN TYPEOF (closed_curve)) OR
  4942. ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (closed_curve))
  4943. AND (closed_curve\b_spline_curve.closed_curve = TRUE) ) OR
  4944. ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE' IN TYPEOF (closed_curve))
  4945. AND (closed_curve\composite_curve.closed_curve = TRUE) ) OR
  4946. ( ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (closed_curve))
  4947. AND (closed_curve\polyline.points[LOINDEX(closed_curve\polyline.points)] =
  4948. closed_curve\polyline.points[HIINDEX(closed_curve\polyline.points)]) );
  4949. END_ENTITY;
  4950. ENTITY fill_area_style_tile_curve_with_style
  4951. SUBTYPE OF (geometric_representation_item);
  4952. styled_curve : annotation_curve_occurrence;
  4953. END_ENTITY;
  4954. ENTITY fill_area_style_tile_symbol_with_style
  4955. SUBTYPE OF (geometric_representation_item);
  4956. symbol : annotation_symbol_occurrence;
  4957. END_ENTITY;
  4958. ENTITY fill_area_style_tiles
  4959. SUBTYPE OF (geometric_representation_item);
  4960. tiling_pattern : two_direction_repeat_factor;
  4961. tiles : SET [1:?] OF fill_area_style_tile_shape_select;
  4962. tiling_scale : positive_ratio_measure;
  4963. END_ENTITY;
  4964. ENTITY flat_pattern_ply_representation_relationship
  4965. SUBTYPE OF (shape_representation_relationship);
  4966. WHERE
  4967. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION' IN
  4968. (TYPEOF (SELF\representation_relationship.rep_1) *
  4969. TYPEOF (SELF\representation_relationship.rep_2));
  4970. WR2 : SELF\representation_relationship.rep_1.
  4971. context_of_items\geometric_representation_context.
  4972. coordinate_space_dimension = 3;
  4973. END_ENTITY;
  4974. ENTITY flatness_tolerance
  4975. SUBTYPE OF (geometric_tolerance);
  4976. WHERE
  4977. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF));
  4978. END_ENTITY;
  4979. ENTITY force_measure_with_unit
  4980. SUBTYPE OF (measure_with_unit);
  4981. WHERE
  4982. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FORCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  4983. END_ENTITY;
  4984. ENTITY force_unit
  4985. SUBTYPE OF (derived_unit);
  4986. WHERE
  4987. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.newton);
  4988. END_ENTITY;
  4989. ENTITY forward_chaining_rule
  4990. SUBTYPE OF (rule_definition);
  4991. END_ENTITY;
  4992. ENTITY forward_chaining_rule_premise
  4993. SUBTYPE OF (property_definition, property_definition_representation, representation);
  4994. END_ENTITY;
  4995. ENTITY founded_item
  4996. SUPERTYPE OF (ONEOF (character_glyph_style_outline, character_glyph_style_stroke, curve_style, curve_style_font, curve_style_font_and_scaling, curve_style_font_pattern, fill_area_style, point_style, presentation_style_assignment, surface_side_style, surface_style_boundary, surface_style_control_grid, surface_style_fill_area, surface_style_parameter_line, surface_style_segmentation_curve, surface_style_silhouette, surface_style_usage, symbol_style, text_style));
  4997. DERIVE
  4998. users : SET [0:?] OF founded_item_select := using_items(SELF,[]);
  4999. WHERE
  5000. WR1 : SIZEOF(users) > 0;
  5001. WR2 : NOT(SELF IN users);
  5002. END_ENTITY;
  5003. ENTITY frequency_measure_with_unit
  5004. SUBTYPE OF (measure_with_unit);
  5005. WHERE
  5006. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FREQUENCY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  5007. END_ENTITY;
  5008. ENTITY frequency_unit
  5009. SUBTYPE OF (derived_unit);
  5010. WHERE
  5011. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.hertz);
  5012. END_ENTITY;
  5013. ENTITY func
  5014. SUBTYPE OF (compound_representation_item);
  5015. END_ENTITY;
  5016. ENTITY functional_breakdown_context
  5017. SUBTYPE OF (breakdown_context);
  5018. END_ENTITY;
  5019. ENTITY functional_element_usage
  5020. SUBTYPE OF (breakdown_element_usage);
  5021. END_ENTITY;
  5022. ENTITY functionally_defined_transformation;
  5023. name : label;
  5024. description : OPTIONAL text;
  5025. END_ENTITY;
  5026. ENTITY general_material_property
  5027. SUBTYPE OF (general_property);
  5028. WHERE
  5029. WR1 : SIZEOF( QUERY( gpa <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.BASE_DEFINITION') |
  5030. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MATERIAL_PROPERTY' IN TYPEOF(gpa.derived_definition)) )) = 0;
  5031. END_ENTITY;
  5032. ENTITY general_property;
  5033. id : identifier;
  5034. name : label;
  5035. description : OPTIONAL text;
  5036. END_ENTITY;
  5037. ENTITY general_property_association;
  5038. name : label;
  5039. description : OPTIONAL text;
  5040. base_definition : general_property;
  5041. derived_definition : derived_property_select;
  5042. WHERE
  5043. WR1 : SIZEOF(USEDIN(derived_definition, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION')) = 1;
  5044. WR2 : derived_definition.name = base_definition.name;
  5045. END_ENTITY;
  5046. ENTITY general_property_relationship;
  5047. name : label;
  5048. description : OPTIONAL text;
  5049. relating_property : general_property;
  5050. related_property : general_property;
  5051. END_ENTITY;
  5052. ENTITY generic_character_glyph_symbol
  5053. ABSTRACT SUPERTYPE
  5054. SUBTYPE OF (symbol_representation);
  5055. END_ENTITY;
  5056. ENTITY generic_expression
  5057. ABSTRACT SUPERTYPE OF (ONEOF (simple_generic_expression, unary_generic_expression, binary_generic_expression, multiple_arity_generic_expression));
  5058. WHERE
  5059. WR1 : is_acyclic(SELF);
  5060. END_ENTITY;
  5061. ENTITY generic_literal
  5062. ABSTRACT SUPERTYPE
  5063. SUBTYPE OF (simple_generic_expression);
  5064. END_ENTITY;
  5065. ENTITY generic_variable
  5066. ABSTRACT SUPERTYPE
  5067. SUBTYPE OF (simple_generic_expression);
  5068. INVERSE
  5069. interpretation: environment FOR syntactic_representation;
  5070. END_ENTITY;
  5071. ENTITY geometric_alignment
  5072. SUBTYPE OF (derived_shape_aspect);
  5073. WHERE
  5074. WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)> 1;
  5075. END_ENTITY;
  5076. ENTITY geometric_curve_set
  5077. SUBTYPE OF (geometric_set);
  5078. WHERE
  5079. WR1 : SIZEOF(QUERY(temp <* SELF\geometric_set.elements |
  5080. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF(temp))) = 0;
  5081. END_ENTITY;
  5082. ENTITY geometric_intersection
  5083. SUBTYPE OF (derived_shape_aspect);
  5084. WHERE
  5085. WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)> 1;
  5086. END_ENTITY;
  5087. ENTITY geometric_item_specific_usage
  5088. SUBTYPE OF (item_identified_representation_usage);
  5089. SELF\item_identified_representation_usage.definition : geometric_item_specific_usage_select;
  5090. SELF\item_identified_representation_usage.identified_item : geometric_representation_item;
  5091. SELF\item_identified_representation_usage.used_representation : shape_representation;
  5092. END_ENTITY;
  5093. ENTITY geometric_model_element_relationship
  5094. SUBTYPE OF (geometric_representation_item, representation_item_relationship);
  5095. SELF\representation_item_relationship.related_representation_item : geometric_representation_item;
  5096. SELF\representation_item_relationship.relating_representation_item : geometric_representation_item;
  5097. UNIQUE
  5098. UR1 : relating_representation_item, related_representation_item;
  5099. WHERE
  5100. WR1 : SELF\representation_item_relationship.relating_representation_item :<>:
  5101. SELF\representation_item_relationship.related_representation_item;
  5102. END_ENTITY;
  5103. ENTITY geometric_representation_context
  5104. SUBTYPE OF (representation_context);
  5105. coordinate_space_dimension : dimension_count;
  5106. END_ENTITY;
  5107. ENTITY geometric_representation_item
  5108. SUPERTYPE OF (ONEOF (point, direction, vector, placement, cartesian_transformation_operator, curve, surface, edge_curve, face_surface, poly_loop, vertex_point, solid_model, boolean_result, sphere, right_circular_cone, right_circular_cylinder, torus, block, right_angular_wedge, half_space_solid, shell_based_surface_model, face_based_surface_model, shell_based_wireframe_model, edge_based_wireframe_model, geometric_set, camera_model, camera_model_d3_multi_clipping_intersection, camera_model_d3_multi_clipping_union, light_source))
  5109. SUBTYPE OF (representation_item);
  5110. DERIVE
  5111. dim : dimension_count := dimension_of(SELF);
  5112. WHERE
  5113. WR1 : SIZEOF (QUERY (using_rep <* using_representations (SELF) |
  5114. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN
  5115. TYPEOF (using_rep.context_of_items)))) = 0;
  5116. END_ENTITY;
  5117. ENTITY geometric_set
  5118. SUBTYPE OF (geometric_representation_item);
  5119. elements : SET [1:?] OF geometric_set_select;
  5120. END_ENTITY;
  5121. ENTITY geometric_tolerance;
  5122. name : label;
  5123. description : text;
  5124. magnitude : measure_with_unit;
  5125. toleranced_shape_aspect : shape_aspect;
  5126. WHERE
  5127. WR1 : ('NUMBER' IN TYPEOF
  5128. (magnitude\measure_with_unit.value_component)) AND
  5129. (magnitude\measure_with_unit.value_component >= 0.0);
  5130. END_ENTITY;
  5131. ENTITY geometric_tolerance_relationship;
  5132. name : label;
  5133. description : text;
  5134. relating_geometric_tolerance : geometric_tolerance;
  5135. related_geometric_tolerance : geometric_tolerance;
  5136. END_ENTITY;
  5137. ENTITY geometric_tolerance_with_datum_reference
  5138. SUBTYPE OF (geometric_tolerance);
  5139. datum_system : SET [1:?] OF datum_reference;
  5140. END_ENTITY;
  5141. ENTITY geometric_tolerance_with_defined_unit
  5142. SUBTYPE OF (geometric_tolerance);
  5143. unit_size : measure_with_unit;
  5144. WHERE
  5145. WR1 : ('NUMBER' IN TYPEOF
  5146. (unit_size\measure_with_unit.value_component)) AND
  5147. (unit_size\measure_with_unit.value_component > 0.0);
  5148. END_ENTITY;
  5149. ENTITY geometrical_tolerance_callout
  5150. SUBTYPE OF (draughting_callout);
  5151. END_ENTITY;
  5152. ENTITY geometrically_bounded_2d_wireframe_representation
  5153. SUBTYPE OF (shape_representation);
  5154. WHERE
  5155. WR1 : SELF.context_of_items\geometric_representation_context.
  5156. coordinate_space_dimension = 2;
  5157. WR2 : SIZEOF (QUERY (item <* SELF.items |
  5158. NOT (SIZEOF (TYPEOF (item) *
  5159. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET',
  5160. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_2D',
  5161. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM']) = 1)
  5162. )) = 0;
  5163. WR3 : SIZEOF (QUERY (item <* SELF.items |
  5164. SIZEOF (TYPEOF (item) *
  5165. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET',
  5166. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM']) = 1
  5167. )) >= 1;
  5168. WR4 : SIZEOF (QUERY (mi <* QUERY (item <* SELF.items |
  5169. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
  5170. IN TYPEOF (item))) |
  5171. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  5172. 'GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION'
  5173. IN TYPEOF
  5174. (mi\mapped_item.mapping_source.mapped_representation))
  5175. )) = 0;
  5176. WR5 : SIZEOF (QUERY (gcs <* QUERY (item <* SELF.items |
  5177. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET'
  5178. IN TYPEOF (item))) |
  5179. NOT (SIZEOF (QUERY (elem <* gcs\geometric_set.elements |
  5180. NOT (SIZEOF (TYPEOF (elem) *
  5181. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE',
  5182. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE',
  5183. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE',
  5184. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE',
  5185. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_2D',
  5186. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT',
  5187. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE',
  5188. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TRIMMED_CURVE']) =
  5189. 1)
  5190. )) = 0)
  5191. )) = 0;
  5192. WR6 : SIZEOF (QUERY (gcs <* QUERY (item <* SELF.items |
  5193. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET'
  5194. IN TYPEOF (item))) |
  5195. NOT (SIZEOF (QUERY (crv <*
  5196. QUERY (elem <* gcs\geometric_set.elements |
  5197. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE'
  5198. IN TYPEOF (elem))) |
  5199. NOT (valid_basis_curve_in_2d_wireframe
  5200. (crv))
  5201. )) = 0)
  5202. )) = 0;
  5203. WR7 : SIZEOF (QUERY (gcs <* QUERY (item <* SELF.items |
  5204. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET'
  5205. IN TYPEOF (item))) |
  5206. NOT (SIZEOF (QUERY (pnt <*
  5207. QUERY (elem <* gcs\geometric_set.elements |
  5208. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT'
  5209. IN TYPEOF(elem))) |
  5210. NOT (SIZEOF (TYPEOF (pnt) *
  5211. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT',
  5212. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE'])
  5213. = 1)
  5214. )) = 0)
  5215. )) = 0;
  5216. END_ENTITY;
  5217. ENTITY geometrically_bounded_surface_shape_representation
  5218. SUBTYPE OF (shape_representation);
  5219. WHERE
  5220. WR1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0;
  5221. WR2 : SIZEOF(QUERY(it <* SELF.items | SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0;
  5222. WR3 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) AND (SIZEOF(QUERY(mr_it <* mi\mapped_item.mapping_source.mapped_representation.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET' IN TYPEOF(mr_it)))) > 0)))) = 0;
  5223. WR4 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(pnt <* QUERY(gsel <* gs\geometric_set.elements | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT' IN TYPEOF(gsel)) | NOT (gbsf_check_point(pnt)))) = 0))) = 0;
  5224. WR5 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cv <* QUERY(gsel <* gs\geometric_set.elements | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF(gsel)) | NOT (gbsf_check_curve(cv)))) = 0))) = 0;
  5225. WR6 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(sf <* QUERY(gsel <* gs\geometric_set.elements | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF(gsel)) | NOT (gbsf_check_surface(sf)))) = 0))) = 0;
  5226. WR7 : SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | SIZEOF(QUERY(gsel <* gs\geometric_set.elements | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF(gsel))) > 0)) > 0;
  5227. END_ENTITY;
  5228. ENTITY geometrically_bounded_wireframe_shape_representation
  5229. SUBTYPE OF (shape_representation);
  5230. WHERE
  5231. WR1 : SIZEOF (
  5232. QUERY ( it <* SELF.items| NOT ( SIZEOF ( TYPEOF (it) * [ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ]) = 1) )) = 0;
  5233. WR2 : SIZEOF (
  5234. QUERY ( it <* SELF.items| ( SIZEOF ( TYPEOF (it) * [ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ]) = 1) )) >= 1;
  5235. WR3 : SIZEOF (
  5236. QUERY ( gcs <*
  5237. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF (
  5238. QUERY ( crv <*
  5239. QUERY ( elem <* gcs\geometric_set.elements| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF (elem)) )| NOT valid_geometrically_bounded_wf_curve(crv) )) = 0) )) = 0;
  5240. WR4 : SIZEOF (
  5241. QUERY ( gcs <*
  5242. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF (
  5243. QUERY ( pnts <*
  5244. QUERY ( elem <* gcs\geometric_set.elements| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT' IN TYPEOF (elem)) )| NOT valid_geometrically_bounded_wf_point(pnts) )) = 0) )) = 0;
  5245. WR5 : SIZEOF (
  5246. QUERY ( gcs <*
  5247. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF (
  5248. QUERY ( cnc <*
  5249. QUERY ( elem <* gcs\geometric_set.elements| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC' IN TYPEOF (elem)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF (cnc\conic.position)) )) = 0) )) = 0;
  5250. WR6 : SIZEOF (
  5251. QUERY ( gcs <*
  5252. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF (it)) )| NOT ( SIZEOF (
  5253. QUERY ( pline <*
  5254. QUERY ( elem <* gcs\geometric_set.elements| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (elem)) )| NOT ( SIZEOF (pline\polyline.points) > 2) )) = 0) )) = 0;
  5255. WR7 : SIZEOF (
  5256. QUERY ( mi <*
  5257. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0;
  5258. END_ENTITY;
  5259. ENTITY global_assignment
  5260. SUBTYPE OF (representation_item_relationship);
  5261. END_ENTITY;
  5262. ENTITY global_uncertainty_assigned_context
  5263. SUBTYPE OF (representation_context);
  5264. uncertainty : SET [1:?] OF uncertainty_measure_with_unit;
  5265. END_ENTITY;
  5266. ENTITY global_unit_assigned_context
  5267. SUBTYPE OF (representation_context);
  5268. units : SET [1:?] OF unit;
  5269. END_ENTITY;
  5270. ENTITY ground_fact
  5271. SUBTYPE OF (atomic_formula);
  5272. END_ENTITY;
  5273. ENTITY group;
  5274. name : label;
  5275. description : OPTIONAL text;
  5276. DERIVE
  5277. id : identifier := get_id_value(SELF);
  5278. WHERE
  5279. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
  5280. END_ENTITY;
  5281. ENTITY group_assignment
  5282. ABSTRACT SUPERTYPE;
  5283. assigned_group : group;
  5284. DERIVE
  5285. role : object_role := get_role(SELF);
  5286. WHERE
  5287. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
  5288. END_ENTITY;
  5289. ENTITY group_relationship;
  5290. name : label;
  5291. description : OPTIONAL text;
  5292. relating_group : group;
  5293. related_group : group;
  5294. END_ENTITY;
  5295. ENTITY half_space_solid
  5296. SUBTYPE OF (geometric_representation_item);
  5297. base_surface : surface;
  5298. agreement_flag : BOOLEAN;
  5299. END_ENTITY;
  5300. ENTITY hardness_representation
  5301. SUBTYPE OF (representation);
  5302. WHERE
  5303. WR1 : ( {2<= SIZEOF ( SELF.items ) <=4} ) AND ( SIZEOF ( QUERY (
  5304. i <* items | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  5305. 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND (
  5306. i.name IN [ 'measuring method' , 'measuring position' ] ) )
  5307. ) + SIZEOF ( QUERY ( i <* items | ( SIZEOF (
  5308. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' ,
  5309. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 )
  5310. AND ( i.name IN ['depth' , 'hardness'] ) ) ) = SIZEOF (
  5311. SELF.items ) );
  5312. WR2 : SIZEOF ( QUERY ( i <* SELF.items | i.name =
  5313. 'measuring method' ) ) =1;
  5314. WR3 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='hardness' ) )
  5315. =1;
  5316. WR4 : SIZEOF ( QUERY ( i <* SELF.items | i.name =
  5317. 'measuring position' ) ) <=1;
  5318. WR5 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='depth' ) )
  5319. <=1;
  5320. WR6 : ( SIZEOF ( USEDIN ( SELF ,
  5321. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
  5322. 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr
  5323. <* USEDIN ( SELF ,
  5324. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
  5325. 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN (
  5326. pdr. definition ,
  5327. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+
  5328. 'DERIVED_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  5329. 'GENERAL_PROPERTY' IN TYPEOF ( gpa. base_definition ) ) AND
  5330. ( gpa. base_definition.name ='surface_condition' ) ) ) =1 )
  5331. ) =1 );
  5332. END_ENTITY;
  5333. ENTITY hidden_element_over_riding_styled_item
  5334. SUBTYPE OF (context_dependent_over_riding_styled_item);
  5335. SELF\styled_item.item : camera_image;
  5336. SELF\context_dependent_over_riding_styled_item.style_context : LIST [1:1] OF presentation_view;
  5337. INVERSE
  5338. container: SET [1:?] OF presentation_view FOR items;
  5339. WHERE
  5340. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAMERA_MODEL_D3_WITH_HLHSR' IN TYPEOF
  5341. (SELF.item\mapped_item.mapping_source.mapping_origin);
  5342. END_ENTITY;
  5343. ENTITY hyperbola
  5344. SUBTYPE OF (conic);
  5345. semi_axis : positive_length_measure;
  5346. semi_imag_axis : positive_length_measure;
  5347. END_ENTITY;
  5348. ENTITY id_attribute;
  5349. attribute_value : identifier;
  5350. identified_item : id_attribute_select;
  5351. END_ENTITY;
  5352. ENTITY identification_assignment
  5353. ABSTRACT SUPERTYPE;
  5354. assigned_id : identifier;
  5355. role : identification_role;
  5356. END_ENTITY;
  5357. ENTITY identification_role;
  5358. name : label;
  5359. description : OPTIONAL text;
  5360. END_ENTITY;
  5361. ENTITY illuminance_measure_with_unit
  5362. SUBTYPE OF (measure_with_unit);
  5363. WHERE
  5364. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ILLUMINANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  5365. END_ENTITY;
  5366. ENTITY illuminance_unit
  5367. SUBTYPE OF (derived_unit);
  5368. WHERE
  5369. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.lux);
  5370. END_ENTITY;
  5371. ENTITY included_text_block
  5372. SUBTYPE OF (mapped_item);
  5373. WHERE
  5374. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRUCTURED_TEXT_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation);
  5375. END_ENTITY;
  5376. ENTITY inclusion_product_concept_feature
  5377. SUBTYPE OF (conditional_concept_feature);
  5378. WHERE
  5379. WR1 : NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PACKAGE_PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( SELF ) );
  5380. WR2 : SIZEOF (QUERY
  5381. ( cfr <* USEDIN
  5382. ( SELF ,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE' )
  5383. |
  5384. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF( cfr )
  5385. )
  5386. ) +
  5387. SIZEOF(QUERY
  5388. ( cfr <* USEDIN
  5389. (SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.RELATED_PRODUCT_CONCEPT_FEATURE' )
  5390. |
  5391. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr)
  5392. )
  5393. )= 0;
  5394. WR3 : SELF.condition.conditional_operator.name = 'implication';
  5395. END_ENTITY;
  5396. ENTITY indirectly_selected_elements
  5397. SUBTYPE OF (user_selected_elements);
  5398. indirectly_picked_items : SET [1:?] OF representation_item;
  5399. END_ENTITY;
  5400. ENTITY indirectly_selected_shape_elements
  5401. SUBTYPE OF (indirectly_selected_elements, user_selected_shape_elements);
  5402. WHERE
  5403. WR1 : SIZEOF(QUERY(q <*
  5404. SELF\indirectly_selected_elements.indirectly_picked_items
  5405. | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION_ITEM'
  5406. IN TYPEOF(q)))) = 0;
  5407. END_ENTITY;
  5408. ENTITY inductance_measure_with_unit
  5409. SUBTYPE OF (measure_with_unit);
  5410. WHERE
  5411. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INDUCTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  5412. END_ENTITY;
  5413. ENTITY inductance_unit
  5414. SUBTYPE OF (derived_unit);
  5415. WHERE
  5416. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.henry);
  5417. END_ENTITY;
  5418. ENTITY information_right
  5419. SUBTYPE OF (action_method);
  5420. END_ENTITY;
  5421. ENTITY information_usage_right
  5422. SUBTYPE OF (action_method);
  5423. END_ENTITY;
  5424. ENTITY instance_usage_context_assignment
  5425. SUBTYPE OF (product_definition_context);
  5426. items : SET [1:?] OF instance_usage_context_select;
  5427. END_ENTITY;
  5428. ENTITY instanced_feature
  5429. SUBTYPE OF (shape_aspect, shape_feature_definition);
  5430. WHERE
  5431. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN
  5432. TYPEOF(SELF\shape_aspect.of_shape.definition);
  5433. WR2 : SELF\shape_aspect.product_definitional;
  5434. END_ENTITY;
  5435. ENTITY int_literal
  5436. SUBTYPE OF (literal_number);
  5437. SELF\literal_number.the_value : INTEGER;
  5438. END_ENTITY;
  5439. ENTITY integer_representation_item
  5440. SUBTYPE OF (representation_item, int_literal);
  5441. END_ENTITY;
  5442. ENTITY intersection_curve
  5443. SUBTYPE OF (surface_curve);
  5444. WHERE
  5445. WR1 : SIZEOF(SELF\surface_curve.associated_geometry) = 2;
  5446. WR2 : associated_surface(SELF\surface_curve.associated_geometry[1]) <>
  5447. associated_surface(SELF\surface_curve.associated_geometry[2]);
  5448. END_ENTITY;
  5449. ENTITY interval_expression
  5450. SUBTYPE OF (boolean_expression, multiple_arity_generic_expression);
  5451. DERIVE
  5452. interval_high : generic_expression := SELF\multiple_arity_generic_expression.operands[3];
  5453. interval_item : generic_expression := SELF\multiple_arity_generic_expression.operands[2];
  5454. interval_low : generic_expression := SELF\multiple_arity_generic_expression.operands[1];
  5455. WHERE
  5456. WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXPRESSION'
  5457. IN TYPEOF(interval_low))
  5458. AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXPRESSION'
  5459. IN TYPEOF(interval_item) )
  5460. AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXPRESSION'
  5461. IN TYPEOF(interval_high));
  5462. WR2 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION'
  5463. IN TYPEOF (SELF.interval_low))
  5464. AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION'
  5465. IN TYPEOF (SELF.interval_high))
  5466. AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION'
  5467. IN TYPEOF (SELF.interval_item)))
  5468. OR
  5469. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_EXPRESSION'
  5470. IN TYPEOF(SELF.interval_low))
  5471. AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NUMERIC_EXPRESSION'
  5472. IN TYPEOF(SELF.interval_item))
  5473. AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NUMERIC_EXPRESSION'
  5474. IN TYPEOF(SELF.interval_high)));
  5475. END_ENTITY;
  5476. ENTITY invisibility;
  5477. invisible_items : SET [1:?] OF invisible_item;
  5478. END_ENTITY;
  5479. ENTITY iso4217_currency
  5480. SUBTYPE OF (currency);
  5481. END_ENTITY;
  5482. ENTITY item_defined_transformation;
  5483. name : label;
  5484. description : OPTIONAL text;
  5485. transform_item_1 : representation_item;
  5486. transform_item_2 : representation_item;
  5487. END_ENTITY;
  5488. ENTITY item_identified_representation_usage;
  5489. name : label;
  5490. description : OPTIONAL text;
  5491. definition : represented_definition;
  5492. used_representation : representation;
  5493. identified_item : representation_item;
  5494. WHERE
  5495. WR1 : SELF.used_representation IN using_representations(SELF.identified_item);
  5496. END_ENTITY;
  5497. ENTITY known_source
  5498. SUBTYPE OF (external_source, pre_defined_item);
  5499. END_ENTITY;
  5500. ENTITY laid_defined_transformation
  5501. SUBTYPE OF (transformation_with_derived_angle);
  5502. END_ENTITY;
  5503. ENTITY laminate_table
  5504. SUPERTYPE OF (ONEOF (part_laminate_table, zone_structural_makeup))
  5505. SUBTYPE OF (product_definition);
  5506. END_ENTITY;
  5507. ENTITY language
  5508. SUBTYPE OF (group);
  5509. WHERE
  5510. WR1 : SELF\group.name <> '';
  5511. END_ENTITY;
  5512. ENTITY leader_curve
  5513. SUBTYPE OF (annotation_curve_occurrence);
  5514. WHERE
  5515. WR1 : SIZEOF(
  5516. QUERY(ldc <* USEDIN( SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  5517. 'DRAUGHTING_CALLOUT.CONTENTS')
  5518. | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  5519. 'LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc))) >= 1;
  5520. END_ENTITY;
  5521. ENTITY leader_directed_callout
  5522. SUBTYPE OF (draughting_callout);
  5523. WHERE
  5524. WR1 : SIZEOF (QUERY (l_1 <* SELF\draughting_callout.contents |
  5525. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN (TYPEOF(l_1)))) >= 1;
  5526. WR2 : SIZEOF(SELF\draughting_callout.contents) >=2;
  5527. END_ENTITY;
  5528. ENTITY leader_directed_dimension
  5529. SUBTYPE OF (leader_directed_callout);
  5530. WHERE
  5531. WR1 : SIZEOF (QUERY (con <* SELF.contents |
  5532. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN TYPEOF (con)))=1;
  5533. END_ENTITY;
  5534. ENTITY leader_terminator
  5535. SUBTYPE OF (terminator_symbol);
  5536. WHERE
  5537. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_CURVE' IN TYPEOF
  5538. (SELF\terminator_symbol.annotated_curve);
  5539. END_ENTITY;
  5540. ENTITY length_measure_with_unit
  5541. SUBTYPE OF (measure_with_unit);
  5542. WHERE
  5543. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  5544. END_ENTITY;
  5545. ENTITY length_unit
  5546. SUBTYPE OF (named_unit);
  5547. WHERE
  5548. WR1 : (SELF\named_unit.dimensions.length_exponent = 1.0) AND
  5549. (SELF\named_unit.dimensions.mass_exponent = 0.0) AND
  5550. (SELF\named_unit.dimensions.time_exponent = 0.0) AND
  5551. (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND
  5552. (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND
  5553. (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND
  5554. (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
  5555. END_ENTITY;
  5556. ENTITY light_source
  5557. SUPERTYPE OF (ONEOF (light_source_ambient, light_source_directional, light_source_positional, light_source_spot))
  5558. SUBTYPE OF (geometric_representation_item);
  5559. light_colour : colour;
  5560. WHERE
  5561. WR1 : SIZEOF(USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  5562. 'STYLED_ITEM.ITEM')) = 0;
  5563. END_ENTITY;
  5564. ENTITY light_source_ambient
  5565. SUBTYPE OF (light_source);
  5566. END_ENTITY;
  5567. ENTITY light_source_directional
  5568. SUBTYPE OF (light_source);
  5569. orientation : direction;
  5570. END_ENTITY;
  5571. ENTITY light_source_positional
  5572. SUBTYPE OF (light_source);
  5573. position : cartesian_point;
  5574. constant_attenuation : REAL;
  5575. distance_attenuation : REAL;
  5576. END_ENTITY;
  5577. ENTITY light_source_spot
  5578. SUBTYPE OF (light_source);
  5579. position : cartesian_point;
  5580. orientation : direction;
  5581. concentration_exponent : REAL;
  5582. constant_attenuation : REAL;
  5583. distance_attenuation : REAL;
  5584. spread_angle : positive_plane_angle_measure;
  5585. END_ENTITY;
  5586. ENTITY limits_and_fits;
  5587. form_variance : label;
  5588. zone_variance : label;
  5589. grade : label;
  5590. source : text;
  5591. END_ENTITY;
  5592. ENTITY line
  5593. SUBTYPE OF (curve);
  5594. pnt : cartesian_point;
  5595. dir : vector;
  5596. WHERE
  5597. WR1 : dir.dim = pnt.dim;
  5598. END_ENTITY;
  5599. ENTITY line_profile_tolerance
  5600. SUBTYPE OF (geometric_tolerance);
  5601. WHERE
  5602. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF)) OR ( SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3);
  5603. WR2 : SIZEOF (
  5604. QUERY ( sar <* USEDIN (SELF\geometric_tolerance.toleranced_shape_aspect, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT')| (sar.name IN [ 'affected plane association', 'resulting intersection curve association' ]) )) = 1;
  5605. END_ENTITY;
  5606. ENTITY linear_dimension
  5607. SUBTYPE OF (dimension_curve_directed_callout);
  5608. END_ENTITY;
  5609. ENTITY literal_conjunction
  5610. SUBTYPE OF (simple_clause);
  5611. END_ENTITY;
  5612. ENTITY literal_disjunction
  5613. SUBTYPE OF (simple_clause);
  5614. END_ENTITY;
  5615. ENTITY literal_number
  5616. ABSTRACT SUPERTYPE OF (ONEOF (int_literal, real_literal))
  5617. SUBTYPE OF (simple_numeric_expression, generic_literal);
  5618. the_value : NUMBER;
  5619. END_ENTITY;
  5620. ENTITY local_time;
  5621. hour_component : hour_in_day;
  5622. minute_component : OPTIONAL minute_in_hour;
  5623. second_component : OPTIONAL second_in_minute;
  5624. zone : coordinated_universal_time_offset;
  5625. WHERE
  5626. WR1 : valid_time (SELF);
  5627. END_ENTITY;
  5628. ENTITY logical_literal
  5629. SUBTYPE OF (generic_literal);
  5630. lit_value : LOGICAL;
  5631. END_ENTITY;
  5632. ENTITY logical_representation_item
  5633. SUBTYPE OF (representation_item, logical_literal);
  5634. END_ENTITY;
  5635. ENTITY loop
  5636. SUPERTYPE OF (ONEOF (vertex_loop, edge_loop, poly_loop))
  5637. SUBTYPE OF (topological_representation_item);
  5638. END_ENTITY;
  5639. ENTITY loss_tangent_measure_with_unit
  5640. SUBTYPE OF (ratio_measure_with_unit);
  5641. END_ENTITY;
  5642. ENTITY lot_effectivity
  5643. SUBTYPE OF (effectivity);
  5644. effectivity_lot_id : identifier;
  5645. effectivity_lot_size : measure_with_unit;
  5646. END_ENTITY;
  5647. ENTITY luminous_flux_measure_with_unit
  5648. SUBTYPE OF (measure_with_unit);
  5649. WHERE
  5650. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LUMINOUS_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  5651. END_ENTITY;
  5652. ENTITY luminous_flux_unit
  5653. SUBTYPE OF (named_unit);
  5654. WHERE
  5655. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.lumen);
  5656. END_ENTITY;
  5657. ENTITY luminous_intensity_measure_with_unit
  5658. SUBTYPE OF (measure_with_unit);
  5659. WHERE
  5660. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LUMINOUS_INTENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  5661. END_ENTITY;
  5662. ENTITY luminous_intensity_unit
  5663. SUBTYPE OF (named_unit);
  5664. WHERE
  5665. WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 1.0);
  5666. END_ENTITY;
  5667. ENTITY magnetic_flux_density_measure_with_unit
  5668. SUBTYPE OF (measure_with_unit);
  5669. WHERE
  5670. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAGNETIC_FLUX_DENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  5671. END_ENTITY;
  5672. ENTITY magnetic_flux_density_unit
  5673. SUBTYPE OF (derived_unit);
  5674. WHERE
  5675. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.tesla);
  5676. END_ENTITY;
  5677. ENTITY magnetic_flux_measure_with_unit
  5678. SUBTYPE OF (measure_with_unit);
  5679. WHERE
  5680. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAGNETIC_FLUX_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  5681. END_ENTITY;
  5682. ENTITY magnetic_flux_unit
  5683. SUBTYPE OF (derived_unit);
  5684. WHERE
  5685. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.weber);
  5686. END_ENTITY;
  5687. ENTITY make_from_usage_option
  5688. SUBTYPE OF (product_definition_usage);
  5689. ranking : INTEGER;
  5690. ranking_rationale : text;
  5691. quantity : measure_with_unit;
  5692. WHERE
  5693. WR1 : (NOT ('NUMBER' IN TYPEOF(quantity.value_component)))
  5694. OR (quantity.value_component > 0);
  5695. END_ENTITY;
  5696. ENTITY manifold_solid_brep
  5697. SUBTYPE OF (solid_model);
  5698. outer : closed_shell;
  5699. END_ENTITY;
  5700. ENTITY manifold_subsurface_shape_representation
  5701. SUBTYPE OF (shape_representation);
  5702. WHERE
  5703. WR1 : SIZEOF (QUERY (it <* SELF.items |
  5704. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET',
  5705. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM',
  5706. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D'] *
  5707. TYPEOF(it)) = 1))) = 0;
  5708. WR2 : SIZEOF (QUERY (it <* SELF.items |
  5709. SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET',
  5710. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) =1 )) > 0;
  5711. WR3 : SIZEOF (QUERY (mi <* QUERY (it <* items |
  5712. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) |
  5713. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' IN
  5714. TYPEOF(mi\mapped_item.mapping_source.
  5715. mapped_representation)))) = 0;
  5716. WR4 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
  5717. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
  5718. NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OPEN_SHELL' IN TYPEOF(cfss)))) = 0;
  5719. WR5 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
  5720. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
  5721. NOT( (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN
  5722. TYPEOF(cfss\connected_face_sub_set.parent_face_set))AND
  5723. (SIZEOF(QUERY(fac <* cfss\connected_face_sub_set.parent_face_set\connected_face_set.cfs_faces | NOT
  5724. advanced_face_properties(fac))) = 0)) OR
  5725. (SIZEOF(QUERY(fac <* cfss\connected_face_sub_set.parent_face_set\connected_face_set.cfs_faces | NOT
  5726. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF(fac)))) = 0)
  5727. ))) = 0;
  5728. WR6 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
  5729. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
  5730. ( SIZEOF (QUERY (fac <* cfss\connected_face_set.cfs_faces | NOT
  5731. advanced_face_properties(fac))) = 0))) = 0;
  5732. WR7 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
  5733. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
  5734. NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces |
  5735. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND
  5736. NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
  5737. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
  5738. NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
  5739. NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN
  5740. TYPEOF(oe.edge_element)) OR
  5741. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBEDGE' IN
  5742. TYPEOF(oe.edge_element)) ))) = 0
  5743. ))) = 0
  5744. ))) = 0
  5745. ))) = 0;
  5746. WR8 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
  5747. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
  5748. NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces |
  5749. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND
  5750. NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
  5751. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
  5752. NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
  5753. NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_start))
  5754. AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN
  5755. TYPEOF(oe.edge_end))
  5756. ))) = 0
  5757. ))) = 0
  5758. ))) = 0
  5759. ))) = 0;
  5760. WR9 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
  5761. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
  5762. NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces |
  5763. ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND
  5764. ( NOT (SIZEOF(QUERY (bnds <* fcs.bounds |
  5765. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP',
  5766. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP'] *
  5767. TYPEOF(bnds.bound)) = 1 )
  5768. )) = 0)
  5769. ))) = 0
  5770. ))) = 0;
  5771. WR10 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
  5772. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
  5773. NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces |
  5774. ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND
  5775. ( NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
  5776. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
  5777. NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
  5778. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE',
  5779. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC',
  5780. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE',
  5781. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE',
  5782. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' ] *
  5783. TYPEOF(oe.edge_element\edge_curve.edge_geometry)) = 1 )
  5784. )) = 0
  5785. ))) = 0
  5786. )))) = 0
  5787. ))) = 0;
  5788. WR11 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
  5789. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
  5790. NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces |
  5791. ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND
  5792. (NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
  5793. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
  5794. NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
  5795. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN
  5796. TYPEOF(oe.edge_element\edge_curve.edge_geometry)) AND
  5797. (NOT ((SIZEOF (QUERY (sc_ag <*
  5798. oe.edge_element\edge_curve.edge_geometry\
  5799. surface_curve.associated_geometry |
  5800. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN
  5801. TYPEOF(sc_ag)))) = 0)))
  5802. )) = 0
  5803. ))) = 0
  5804. )))) = 0
  5805. ))) = 0;
  5806. WR12 : SIZEOF (QUERY (cfss <* QUERY (it <* SELF.items |
  5807. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) |
  5808. NOT (SIZEOF (QUERY(fcs <* cfss\connected_face_set.cfs_faces |
  5809. ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND
  5810. (NOT (SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* fcs.bounds |
  5811. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) |
  5812. NOT (SIZEOF (QUERY (oe <* elp_fbnds.bound\path.edge_list |
  5813. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN
  5814. TYPEOF(oe.edge_element\edge_curve.edge_geometry)) AND
  5815. (NOT (SIZEOF (oe\oriented_edge.edge_element\
  5816. edge_curve.edge_geometry\polyline.points) >= 3))
  5817. )) = 0
  5818. ))) = 0
  5819. )))) = 0
  5820. ))) = 0;
  5821. END_ENTITY;
  5822. ENTITY manifold_surface_shape_representation
  5823. SUBTYPE OF (shape_representation);
  5824. WHERE
  5825. WR1 : SIZEOF (QUERY (it <* SELF.items |
  5826. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL',
  5827. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM',
  5828. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF (it)) = 1))) = 0;
  5829. WR2 : SIZEOF (QUERY (it <* SELF.items |
  5830. SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL',
  5831. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * TYPEOF (it)) = 1)) > 0;
  5832. WR3 : SIZEOF (QUERY (mi <* QUERY (it <* SELF.items |
  5833. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) |
  5834. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MANIFOLD_SURFACE_SHAPE_REPRESENTATION'
  5835. IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation))
  5836. AND
  5837. (SIZEOF(QUERY (mr_it <*
  5838. mi\mapped_item.mapping_source.mapped_representation.items |
  5839. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL'
  5840. IN TYPEOF (mr_it)))) > 0 )))) = 0;
  5841. WR4 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
  5842. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  5843. NOT (SIZEOF (QUERY (sh <*
  5844. sbsm\shell_based_surface_model.sbsm_boundary |
  5845. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OPEN_SHELL',
  5846. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL',
  5847. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CLOSED_SHELL']
  5848. * TYPEOF (sh)) = 1))) = 0))) = 0;
  5849. WR5 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
  5850. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  5851. NOT (SIZEOF (QUERY (cfs <*
  5852. sbsm\shell_based_surface_model.sbsm_boundary |
  5853. NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
  5854. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF (fa)) )) = 0)))
  5855. = 0))) = 0;
  5856. WR6 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
  5857. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  5858. NOT (SIZEOF (QUERY (cfs <*
  5859. sbsm\shell_based_surface_model.sbsm_boundary |
  5860. NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
  5861. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  5862. OR
  5863. (msf_surface_check(fa\face_surface.face_geometry))))) = 0)))
  5864. = 0))) = 0;
  5865. WR7 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
  5866. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  5867. NOT (SIZEOF (QUERY (cfs <*
  5868. sbsm\shell_based_surface_model.sbsm_boundary |
  5869. NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
  5870. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  5871. OR
  5872. (SIZEOF (QUERY (bnds <* fa.bounds |
  5873. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP',
  5874. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP']
  5875. * TYPEOF (bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0;
  5876. WR8 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items|
  5877. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  5878. NOT (SIZEOF (QUERY (cfs <*
  5879. sbsm\shell_based_surface_model.sbsm_boundary |
  5880. NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
  5881. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  5882. OR
  5883. (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
  5884. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
  5885. NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
  5886. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF
  5887. (oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0;
  5888. WR9 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
  5889. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  5890. NOT (SIZEOF (QUERY (cfs <*
  5891. sbsm\shell_based_surface_model.sbsm_boundary |
  5892. NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
  5893. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  5894. OR
  5895. (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
  5896. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
  5897. NOT (SIZEOF (QUERY (oe_cv <* QUERY (oe <*
  5898. elp_fbnds\path.edge_list |
  5899. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (oe.edge_element)) |
  5900. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE',
  5901. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC',
  5902. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA',
  5903. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE',
  5904. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D',
  5905. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE',
  5906. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE',
  5907. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE'] *
  5908. TYPEOF (oe_cv.edge_element\edge_curve.edge_geometry))
  5909. = 1))) = 0))) = 0)))) = 0))) = 0))) = 0;
  5910. WR10 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
  5911. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  5912. NOT (SIZEOF (QUERY (cfs <*
  5913. sbsm\shell_based_surface_model.sbsm_boundary |
  5914. NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
  5915. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  5916. OR
  5917. (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
  5918. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
  5919. NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
  5920. NOT (msf_curve_check (oe.edge_element\edge_curve.edge_geometry))))
  5921. = 0))) = 0)))) = 0))) = 0))) = 0;
  5922. WR11 : SIZEOF (QUERY(sbsm <* QUERY (it <* SELF.items |
  5923. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  5924. NOT (SIZEOF (QUERY (cfs <*
  5925. sbsm\shell_based_surface_model.sbsm_boundary |
  5926. NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
  5927. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  5928. OR
  5929. (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
  5930. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
  5931. NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list|
  5932. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF
  5933. (oe.edge_element.edge_start))
  5934. AND
  5935. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN
  5936. TYPEOF (oe.edge_element.edge_end)))))
  5937. = 0))) = 0)))) = 0))) = 0))) = 0;
  5938. WR12 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
  5939. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  5940. NOT (SIZEOF (QUERY (cfs <*
  5941. sbsm\shell_based_surface_model.sbsm_boundary |
  5942. NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
  5943. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  5944. OR
  5945. (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
  5946. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
  5947. NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
  5948. NOT ((SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT',
  5949. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE',
  5950. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE',
  5951. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF
  5952. (oe.edge_element.edge_start\vertex_point.vertex_geometry)) = 1)
  5953. AND
  5954. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT',
  5955. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE',
  5956. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE',
  5957. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF
  5958. (oe.edge_element.edge_end\vertex_point.vertex_geometry)) = 1
  5959. )))) = 0))) = 0)))) = 0))) = 0))) = 0;
  5960. WR13 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
  5961. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  5962. NOT (SIZEOF (QUERY (cfs <*
  5963. sbsm\shell_based_surface_model.sbsm_boundary |
  5964. NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
  5965. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  5966. OR
  5967. (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds |
  5968. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) |
  5969. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF
  5970. (vlp_fbnds\vertex_loop.loop_vertex)))) = 0)))) = 0)))
  5971. = 0))) = 0;
  5972. WR14 : SIZEOF (QUERY (sbsm <* QUERY (it <* SELF.items |
  5973. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  5974. NOT (SIZEOF (QUERY (cfs <*
  5975. sbsm\shell_based_surface_model.sbsm_boundary |
  5976. NOT (SIZEOF (QUERY (fa <* cfs\connected_face_set.cfs_faces |
  5977. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  5978. OR
  5979. (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds |
  5980. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) |
  5981. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT',
  5982. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE',
  5983. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE',
  5984. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF
  5985. (vlp_fbnds\vertex_loop.loop_vertex\vertex_point.vertex_geometry))
  5986. = 1))) = 0)))) = 0))) = 0))) = 0;
  5987. END_ENTITY;
  5988. ENTITY mapped_item
  5989. SUBTYPE OF (representation_item);
  5990. mapping_source : representation_map;
  5991. mapping_target : representation_item;
  5992. WHERE
  5993. WR1 : acyclic_mapped_representation(SELF);
  5994. END_ENTITY;
  5995. ENTITY mass_measure_with_unit
  5996. SUBTYPE OF (measure_with_unit);
  5997. WHERE
  5998. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MASS_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  5999. END_ENTITY;
  6000. ENTITY mass_unit
  6001. SUBTYPE OF (named_unit);
  6002. WHERE
  6003. WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 1.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
  6004. END_ENTITY;
  6005. ENTITY material_designation;
  6006. name : label;
  6007. definitions : SET [1:?] OF characterized_definition;
  6008. END_ENTITY;
  6009. ENTITY material_designation_characterization;
  6010. name : label;
  6011. description : text;
  6012. designation : material_designation;
  6013. property : characterized_material_property;
  6014. END_ENTITY;
  6015. ENTITY material_property
  6016. SUBTYPE OF (property_definition);
  6017. UNIQUE
  6018. UR1: SELF\property_definition.name, SELF\property_definition.definition;
  6019. WHERE
  6020. WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CHARACTERIZED_OBJECT' IN
  6021. TYPEOF(SELF\property_definition.definition)) OR
  6022. (SIZEOF(bag_to_set(USEDIN(SELF ,
  6023. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6024. 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) -
  6025. QUERY(temp <* bag_to_set(USEDIN(SELF ,
  6026. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6027. 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) |
  6028. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6029. 'MATERIAL_PROPERTY_REPRESENTATION' IN
  6030. TYPEOF(temp)))) = 0);
  6031. END_ENTITY;
  6032. ENTITY material_property_representation
  6033. SUBTYPE OF (property_definition_representation);
  6034. dependent_environment : data_environment;
  6035. END_ENTITY;
  6036. ENTITY measure_qualification;
  6037. name : label;
  6038. description : text;
  6039. qualified_measure : measure_with_unit;
  6040. qualifiers : SET [1:?] OF value_qualifier;
  6041. WHERE
  6042. WR1 : SIZEOF(QUERY(temp <* qualifiers |
  6043. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRECISION_QUALIFIER'
  6044. IN TYPEOF(temp))) < 2;
  6045. WR2 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_ITEM'
  6046. IN TYPEOF(SELF\measure_qualification.qualified_measure));
  6047. END_ENTITY;
  6048. ENTITY measure_representation_item
  6049. SUBTYPE OF (representation_item, measure_with_unit);
  6050. END_ENTITY;
  6051. ENTITY measure_with_unit
  6052. SUPERTYPE OF (ONEOF (length_measure_with_unit, mass_measure_with_unit, time_measure_with_unit, electric_current_measure_with_unit, thermodynamic_temperature_measure_with_unit, celsius_temperature_measure_with_unit, amount_of_substance_measure_with_unit, luminous_intensity_measure_with_unit, plane_angle_measure_with_unit, solid_angle_measure_with_unit, area_measure_with_unit, volume_measure_with_unit, ratio_measure_with_unit, acceleration_measure_with_unit, capacitance_measure_with_unit, electric_charge_measure_with_unit, conductance_measure_with_unit, electric_potential_measure_with_unit, energy_measure_with_unit, magnetic_flux_density_measure_with_unit, force_measure_with_unit, frequency_measure_with_unit, illuminance_measure_with_unit, inductance_measure_with_unit, luminous_flux_measure_with_unit, magnetic_flux_measure_with_unit, power_measure_with_unit, pressure_measure_with_unit, resistance_measure_with_unit, velocity_measure_with_unit, absorbed_dose_measure_with_unit, radioactivity_measure_with_unit, dose_equivalent_measure_with_unit));
  6053. value_component : measure_value;
  6054. unit_component : unit;
  6055. WHERE
  6056. WR1 : valid_units(SELF);
  6057. END_ENTITY;
  6058. ENTITY mechanical_context
  6059. SUBTYPE OF (product_context);
  6060. WHERE
  6061. WR1 : SELF.discipline_type = 'mechanical';
  6062. END_ENTITY;
  6063. ENTITY mechanical_design_and_draughting_relationship
  6064. SUBTYPE OF (definitional_representation_relationship_with_same_context);
  6065. SELF\representation_relationship.rep_1 : mechanical_design_and_draughting_relationship_select;
  6066. SELF\representation_relationship.rep_2 : mechanical_design_and_draughting_relationship_select;
  6067. WHERE
  6068. WR1 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'DRAUGHTING_MODEL' IN TYPEOF(rep_2)) OR
  6069. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'DRAUGHTING_MODEL' IN TYPEOF(rep_1)) OR
  6070. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1)));
  6071. WR2 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR
  6072. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR
  6073. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1)));
  6074. WR3 : NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR
  6075. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR
  6076. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'SHAPE_REPRESENTATION' IN TYPEOF(rep_1)));
  6077. END_ENTITY;
  6078. ENTITY mechanical_design_geometric_presentation_area
  6079. SUBTYPE OF (presentation_area);
  6080. SELF\representation.items : SET [1:?] OF mechanical_design_geometric_presentation_area_items;
  6081. WHERE
  6082. WR1 : SIZEOF(QUERY(it1 <* SELF.items |
  6083. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
  6084. IN TYPEOF(it1))
  6085. OR
  6086. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW'
  6087. IN TYPEOF
  6088. (it1\mapped_item.mapping_source.mapped_representation)))) = 0;
  6089. WR2 : SIZEOF(QUERY(pv <* QUERY(mi1 <* QUERY(it1 <* SELF.items |
  6090. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
  6091. IN TYPEOF(it1)) |
  6092. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW'
  6093. IN TYPEOF
  6094. (mi1\mapped_item.mapping_source.mapped_representation)) |
  6095. -- search in all presentation_views for axis2_placements and
  6096. -- mapped_items and for the subtype of mapped_item
  6097. -- camera_image_3d_with_scale; the latter shall reference
  6098. -- a mechanical_design_geometric_presentation_representation;
  6099. -- the supertype mapped_item shall reference presentation_view.
  6100. NOT (SIZEOF(QUERY(it2 <* pv\mapped_item.mapping_source.
  6101. mapped_representation\representation.items |
  6102. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT'
  6103. IN TYPEOF(it2))
  6104. OR
  6105. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
  6106. IN TYPEOF(it2)) AND NOT
  6107. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6108. 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT (
  6109. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW'
  6110. IN TYPEOF
  6111. (it2\mapped_item.mapping_source.mapped_representation)))
  6112. OR
  6113. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6114. 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))
  6115. AND NOT (
  6116. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6117. 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION'
  6118. IN TYPEOF (it2\mapped_item.mapping_source.mapped_representation) ))
  6119. ))) = 0))) = 0;
  6120. WR3 : (SIZEOF(QUERY(ps <* USEDIN (SELF,
  6121. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6122. 'PRESENTATION_SIZE.UNIT') | ((ps.size\planar_extent.size_in_x <= 0)
  6123. OR
  6124. (ps.size\planar_extent.size_in_y <= 0)))) = 0)
  6125. AND
  6126. (SIZEOF(QUERY(ais <* USEDIN (SELF,
  6127. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6128. 'AREA_IN_SET.AREA') |
  6129. (SIZEOF(QUERY(ps <* USEDIN (ais,
  6130. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6131. 'PRESENTATION_SIZE.UNIT') |
  6132. ((ps.size\planar_extent.size_in_x <= 0)
  6133. OR
  6134. (ps.size\planar_extent.size_in_y <= 0)))) > 0))) = 0);
  6135. WR4 : (SIZEOF(QUERY(ps <* USEDIN (SELF,
  6136. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6137. 'PRESENTATION_SIZE.UNIT') |
  6138. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6139. 'AXIS2_PLACEMENT_2D' IN TYPEOF (ps.size.placement)))) = 1)
  6140. AND
  6141. (SIZEOF(QUERY(ps <* USEDIN (SELF,
  6142. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6143. 'PRESENTATION_SIZE.UNIT') |
  6144. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6145. 'AXIS2_PLACEMENT_3D' IN TYPEOF (ps.size.placement)))) = 0)
  6146. OR
  6147. ((SIZEOF(QUERY(ais <* USEDIN (SELF,
  6148. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6149. 'AREA_IN_SET.AREA') |
  6150. (SIZEOF(QUERY(ps <* USEDIN (ais,
  6151. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6152. 'PRESENTATION_SIZE.UNIT') |
  6153. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6154. 'AXIS2_PLACEMENT_2D' IN TYPEOF (ps.size.placement)))) = 1))) = 1)
  6155. AND
  6156. (SIZEOF(QUERY(ais <* USEDIN (SELF,
  6157. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6158. 'AREA_IN_SET.AREA') |
  6159. (SIZEOF(QUERY(ps <* USEDIN (ais,
  6160. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6161. 'PRESENTATION_SIZE.UNIT') |
  6162. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6163. 'AXIS2_PLACEMENT_3D' IN TYPEOF (ps.size.placement)))) = 0))) = 1));
  6164. END_ENTITY;
  6165. ENTITY mechanical_design_geometric_presentation_representation
  6166. SUBTYPE OF (representation);
  6167. SELF\representation.items : SET [1:?] OF mechanical_design_geometric_presentation_representation_items;
  6168. WHERE
  6169. WR1 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items |
  6170. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
  6171. IN TYPEOF(it))) | NOT (SIZEOF(
  6172. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6173. 'SHAPE_REPRESENTATION',
  6174. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6175. 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION']
  6176. * TYPEOF(mi\mapped_item.mapping_source.mapped_representation))
  6177. = 1))) = 0;
  6178. WR2 : SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items |
  6179. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6180. IN TYPEOF(it))) |
  6181. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
  6182. IN TYPEOF(si\styled_item.item))) | NOT (
  6183. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6184. 'SHAPE_REPRESENTATION' IN TYPEOF (smi\styled_item.
  6185. item\mapped_item.mapping_source.mapped_representation))) )) = 0;
  6186. WR3 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
  6187. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6188. IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
  6189. NOT (SIZEOF(QUERY(pss <* psa.styles | NOT (SIZEOF(
  6190. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_STYLE',
  6191. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE',
  6192. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE']
  6193. * TYPEOF(pss)) = 1))) = 0))) = 0))) = 0;
  6194. WR4 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
  6195. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6196. IN TYPEOF(it)) |
  6197. NOT (SIZEOF(QUERY(psbc <* QUERY(psa <* si\styled_item.styles |
  6198. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6199. 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(psa)) | NOT (SIZEOF(
  6200. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6201. 'REPRESENTATION_ITEM',
  6202. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION']
  6203. * TYPEOF(psbc\presentation_style_by_context.style_context))
  6204. = 1))) = 0))) = 0;
  6205. WR5 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
  6206. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6207. IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
  6208. NOT (SIZEOF(QUERY(ps <* QUERY(pss <* psa.styles |
  6209. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_STYLE'
  6210. IN TYPEOF(pss)) | NOT
  6211. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6212. 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (ps\point_style.marker_size))
  6213. AND (SIZEOF(
  6214. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6215. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6216. 'DRAUGHTING_PRE_DEFINED_COLOUR']
  6217. * TYPEOF(ps\point_style.marker_colour))
  6218. = 1)))) = 0))) = 0))) = 0;
  6219. WR6 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
  6220. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6221. IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
  6222. NOT (SIZEOF(QUERY(cs <* QUERY(pss <* psa.styles |
  6223. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
  6224. IN TYPEOF(pss)) | NOT((SIZEOF(
  6225. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6226. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6227. 'DRAUGHTING_PRE_DEFINED_COLOUR']
  6228. * TYPEOF(cs\curve_style.curve_colour)) = 1)
  6229. AND
  6230. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6231. 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (cs\curve_style.curve_width))
  6232. AND (SIZEOF(
  6233. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT',
  6234. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6235. 'DRAUGHTING_PRE_DEFINED_CURVE_FONT']
  6236. * TYPEOF(cs\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0;
  6237. WR7 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
  6238. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6239. IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
  6240. NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles |
  6241. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6242. IN TYPEOF(pss)) |
  6243. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6244. 'SURFACE_SIDE_STYLE' IN TYPEOF
  6245. (ssu\surface_style_usage.style)))) = 0))) = 0))) = 0;
  6246. WR8 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
  6247. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6248. IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
  6249. NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles |
  6250. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6251. IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sses <*
  6252. ssu\surface_style_usage.style\surface_side_style.styles |
  6253. NOT (SIZEOF(
  6254. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6255. 'SURFACE_STYLE_PARAMETER_LINE',
  6256. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6257. 'SURFACE_STYLE_CONTROL_GRID',
  6258. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6259. 'SURFACE_STYLE_SILHOUETTE',
  6260. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6261. 'SURFACE_STYLE_SEGMENTATION_CURVE',
  6262. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6263. 'SURFACE_STYLE_FILL_AREA',
  6264. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6265. 'SURFACE_STYLE_BOUNDARY']
  6266. * TYPEOF(sses)) = 1))) = 0))) = 0))) = 0))) = 0;
  6267. WR9 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
  6268. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6269. IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
  6270. NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles |
  6271. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6272. IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sspl <* QUERY(sses <*
  6273. ssu\surface_style_usage.style\surface_side_style.styles |
  6274. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6275. 'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF(sses)) |
  6276. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
  6277. IN TYPEOF
  6278. (sspl\surface_style_parameter_line.style_of_parameter_lines))
  6279. AND (SIZEOF(
  6280. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6281. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6282. 'DRAUGHTING_PRE_DEFINED_COLOUR']
  6283. * TYPEOF(sspl\surface_style_parameter_line.
  6284. style_of_parameter_lines\curve_style.curve_colour)) = 1)
  6285. AND (
  6286. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6287. 'POSITIVE_LENGTH_MEASURE' IN TYPEOF
  6288. (sspl\surface_style_parameter_line.
  6289. style_of_parameter_lines\curve_style.curve_width))
  6290. AND (SIZEOF(
  6291. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT',
  6292. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6293. 'DRAUGHTING_PRE_DEFINED_CURVE_FONT']
  6294. * TYPEOF(sspl\surface_style_parameter_line.
  6295. style_of_parameter_lines\curve_style.curve_font)) = 1))))
  6296. = 0))) = 0))) = 0))) = 0;
  6297. WR10 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
  6298. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6299. IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
  6300. NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles |
  6301. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6302. IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sscg <* QUERY(sses <*
  6303. ssu\surface_style_usage.style\surface_side_style.styles |
  6304. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6305. 'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF(sses)) |
  6306. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
  6307. IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid))
  6308. AND (SIZEOF(
  6309. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6310. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6311. 'DRAUGHTING_PRE_DEFINED_COLOUR']
  6312. * TYPEOF(sscg\surface_style_control_grid.
  6313. style_of_control_grid\curve_style.curve_colour)) = 1)
  6314. AND
  6315. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6316. 'POSITIVE_LENGTH_MEASURE' IN TYPEOF
  6317. (sscg\surface_style_control_grid.
  6318. style_of_control_grid\curve_style.curve_width))
  6319. AND (SIZEOF(
  6320. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT',
  6321. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6322. 'DRAUGHTING_PRE_DEFINED_CURVE_FONT']
  6323. * TYPEOF(sscg\surface_style_control_grid.
  6324. style_of_control_grid\curve_style.curve_font)) = 1))))
  6325. = 0))) = 0))) = 0))) = 0;
  6326. WR11 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
  6327. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6328. IN TYPEOF(it)) |
  6329. NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
  6330. NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles |
  6331. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6332. IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssh <* QUERY(sses <*
  6333. ssu\surface_style_usage.style\surface_side_style.styles |
  6334. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6335. 'SURFACE_STYLE_SILHOUETTE' IN TYPEOF(sses)) |
  6336. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
  6337. IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette))
  6338. AND (SIZEOF(
  6339. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6340. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6341. 'DRAUGHTING_PRE_DEFINED_COLOUR']
  6342. * TYPEOF(sssh\surface_style_silhouette.
  6343. style_of_silhouette\curve_style.curve_colour)) = 1)
  6344. AND
  6345. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6346. 'POSITIVE_LENGTH_MEASURE' IN TYPEOF
  6347. (sssh\surface_style_silhouette.style_of_silhouette\curve_style.
  6348. curve_width))
  6349. AND (SIZEOF(
  6350. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT',
  6351. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6352. 'DRAUGHTING_PRE_DEFINED_CURVE_FONT']
  6353. * TYPEOF(sssh\surface_style_silhouette.
  6354. style_of_silhouette\curve_style.curve_font)) = 1))))
  6355. = 0))) = 0))) = 0))) = 0;
  6356. WR12 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
  6357. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6358. IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
  6359. NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles |
  6360. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6361. IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssc <* QUERY(sses <*
  6362. ssu\surface_style_usage.style\surface_side_style.styles |
  6363. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6364. 'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF(sses)) |
  6365. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
  6366. IN TYPEOF
  6367. (sssc\surface_style_segmentation_curve.style_of_segmentation_curve))
  6368. AND (SIZEOF(
  6369. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6370. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6371. 'DRAUGHTING_PRE_DEFINED_COLOUR']
  6372. * TYPEOF(sssc\surface_style_segmentation_curve.
  6373. style_of_segmentation_curve\curve_style.curve_colour)) = 1)
  6374. AND
  6375. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6376. 'POSITIVE_LENGTH_MEASURE' IN TYPEOF
  6377. (sssc\surface_style_segmentation_curve.
  6378. style_of_segmentation_curve\curve_style.curve_width))
  6379. AND (SIZEOF(
  6380. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT',
  6381. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6382. 'DRAUGHTING_PRE_DEFINED_CURVE_FONT']
  6383. * TYPEOF(sssc\surface_style_segmentation_curve.
  6384. style_of_segmentation_curve\curve_style.curve_font)) = 1))))
  6385. = 0))) = 0))) = 0))) = 0;
  6386. WR13 : SIZEOF(QUERY(si <* QUERY(it <* SELF.items |
  6387. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6388. IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\styled_item.styles |
  6389. NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles |
  6390. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6391. IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(ssbd <* QUERY(sses <*
  6392. ssu\surface_style_usage.style\surface_side_style.styles |
  6393. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6394. 'SURFACE_STYLE_BOUNDARY' IN TYPEOF(sses)) |
  6395. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
  6396. IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary))
  6397. AND (SIZEOF(
  6398. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6399. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6400. 'DRAUGHTING_PRE_DEFINED_COLOUR']
  6401. * TYPEOF(ssbd\surface_style_boundary.
  6402. style_of_boundary\curve_style.curve_colour)) = 1)
  6403. AND
  6404. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6405. 'POSITIVE_LENGTH_MEASURE' IN TYPEOF (ssbd\surface_style_boundary.
  6406. style_of_boundary\curve_style.curve_width))
  6407. AND (SIZEOF(
  6408. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_FONT',
  6409. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6410. 'DRAUGHTING_PRE_DEFINED_CURVE_FONT']
  6411. * TYPEOF(ssbd\surface_style_boundary.
  6412. style_of_boundary\curve_style.curve_font)) = 1)))) = 0)))
  6413. = 0))) = 0))) = 0;
  6414. END_ENTITY;
  6415. ENTITY mechanical_design_presentation_representation_with_draughting
  6416. SUBTYPE OF (representation);
  6417. SELF\representation.items : SET [1:?] OF camera_model_d3;
  6418. END_ENTITY;
  6419. ENTITY mechanical_design_shaded_presentation_area
  6420. SUBTYPE OF (presentation_area);
  6421. WHERE
  6422. WR1 : SIZEOF (QUERY (it1 <* SELF.items |
  6423. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT'
  6424. IN TYPEOF (it1))
  6425. OR
  6426. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
  6427. IN TYPEOF (it1)) AND
  6428. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW'
  6429. IN TYPEOF
  6430. (it1\mapped_item.mapping_source.mapped_representation)))))) = 0;
  6431. WR2 : SIZEOF (QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items |
  6432. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
  6433. IN TYPEOF (it1)) |
  6434. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW'
  6435. IN TYPEOF
  6436. (mi1\mapped_item.mapping_source.mapped_representation)) |
  6437. (* search in all presentation_views for axis2_placements and
  6438. mapped_items and for the subtype of mapped_item,
  6439. camera_image_3d_with_scale; the latter shall reference
  6440. a mechanical_design_geometric_presentation_representation;
  6441. the supertype mapped_item shall reference presentation_view. *)
  6442. NOT (SIZEOF(QUERY(it2 <* pv\mapped_item.mapping_source.
  6443. mapped_representation\representation.items |
  6444. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT'
  6445. IN TYPEOF(it2))
  6446. OR
  6447. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
  6448. IN TYPEOF(it2)) AND NOT
  6449. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6450. 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT (
  6451. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW'
  6452. IN TYPEOF
  6453. (it2\mapped_item.mapping_source.mapped_representation)))
  6454. OR
  6455. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6456. 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))
  6457. AND NOT (
  6458. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6459. 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION'
  6460. IN TYPEOF (it2\mapped_item.mapping_source.mapped_representation) ))
  6461. ))) = 0))) = 0;
  6462. WR3 : (SIZEOF (QUERY(ps <* USEDIN (SELF,
  6463. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6464. 'PRESENTATION_SIZE.UNIT') |
  6465. NOT ((ps.size\planar_extent.size_in_x > 0)
  6466. AND (ps.size\planar_extent.size_in_y > 0)) )) = 0)
  6467. AND
  6468. (* check secondly for presentation_set, via area_in_set *)
  6469. (SIZEOF (QUERY(pset <* QUERY(ais <*
  6470. USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6471. 'AREA_IN_SET.AREA')
  6472. | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6473. 'PRESENTATION_SET' IN TYPEOF (ais.in_set)) |
  6474. (* after having collected all presentation_set, check their sizes *)
  6475. SIZEOF (QUERY(psize <* USEDIN(pset,
  6476. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6477. 'PRESENTATION_SIZE.UNIT')
  6478. | NOT ((psize.size\planar_extent.size_in_x > 0)
  6479. AND (psize.size\planar_extent.size_in_y > 0)) )) = 0)) = 0);
  6480. WR4 : (SIZEOF(QUERY( psize <* USEDIN (SELF,
  6481. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6482. 'PRESENTATION_SIZE.UNIT')
  6483. | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6484. 'AXIS2_PLACEMENT_2D'
  6485. IN TYPEOF (psize.size.placement))) = 1)
  6486. AND
  6487. (* check secondly for presentation_set, via area_in_set *)
  6488. (SIZEOF (QUERY(pset <* QUERY(ais <*
  6489. USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6490. 'AREA_IN_SET.AREA')
  6491. | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6492. 'PRESENTATION_SET' IN TYPEOF (ais.in_set)) |
  6493. (* after having collected all presentation_set, check their
  6494. dimension *)
  6495. SIZEOF (QUERY(psize <* USEDIN(pset,
  6496. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6497. 'PRESENTATION_SIZE.UNIT')
  6498. | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6499. 'AXIS2_PLACEMENT_2D'
  6500. IN TYPEOF (psize.size.placement)) )) = 0)) = 0);
  6501. WR5 : SIZEOF (QUERY (pv <* QUERY (mi1 <* QUERY (it1 <* SELF.items |
  6502. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
  6503. IN TYPEOF (it1)) |
  6504. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_VIEW'
  6505. IN TYPEOF
  6506. (mi1\mapped_item.mapping_source.mapped_representation)) |
  6507. (* search in all presentation_views for
  6508. mapped_items and for the subtype of mapped_item,
  6509. camera_image_3d_with_scale; the latter shall reference
  6510. a camera_usage that shall have as its mapping_origin either
  6511. camera_model_d3, camera_model_d3_with_hlhsr, or
  6512. camera_model_with_light_sources. *)
  6513. NOT (SIZEOF(QUERY(ci <* pv\mapped_item.mapping_source.
  6514. mapped_representation\representation.items |
  6515. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6516. 'CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(ci))
  6517. AND
  6518. (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6519. 'CAMERA_MODEL_D3',
  6520. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6521. 'CAMERA_MODEL_D3_WITH_HLHSR',
  6522. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6523. 'CAMERA_MODEL_WITH_LIGHT_SOURCES'] * TYPEOF
  6524. (ci\mapped_item.mapping_source.mapping_origin))
  6525. = 1))) = 0))) = 0;
  6526. END_ENTITY;
  6527. ENTITY mechanical_design_shaded_presentation_representation
  6528. SUBTYPE OF (representation);
  6529. WHERE
  6530. WR1 : SIZEOF(QUERY(it <* SELF.items |
  6531. NOT (SIZEOF(
  6532. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM',
  6533. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM',
  6534. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT',
  6535. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAMERA_MODEL_D3']
  6536. * TYPEOF(it)) = 1))) = 0;
  6537. WR2 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items |
  6538. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
  6539. IN TYPEOF(it))) | NOT (SIZEOF(
  6540. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6541. 'SHAPE_REPRESENTATION',
  6542. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6543. 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION']
  6544. * TYPEOF(mi\mapped_item.mapping_source.mapped_representation))
  6545. = 1))) = 0;
  6546. WR3 : SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items |
  6547. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6548. IN TYPEOF(it))) |
  6549. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'
  6550. IN TYPEOF(si\styled_item.item))) | NOT (
  6551. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  6552. 'SHAPE_REPRESENTATION' IN TYPEOF (smi\styled_item.
  6553. item\mapped_item.mapping_source.mapped_representation))) )) = 0;
  6554. WR4 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
  6555. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6556. IN TYPEOF (it)) |
  6557. NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
  6558. NOT (SIZEOF (QUERY (pss <* psa.styles |
  6559. NOT (SIZEOF (
  6560. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_STYLE',
  6561. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE',
  6562. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE']
  6563. * TYPEOF (pss)) = 1))) = 0))) = 0))) = 0;
  6564. WR5 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
  6565. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6566. IN TYPEOF (it)) |
  6567. NOT (SIZEOF (QUERY (psbc <* QUERY (psa <* si\styled_item.styles |
  6568. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6569. 'PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF (psa)) |
  6570. NOT (SIZEOF (
  6571. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_ITEM',
  6572. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION']
  6573. * TYPEOF (psbc\presentation_style_by_context.style_context)) = 1)))
  6574. = 0))) = 0;
  6575. WR6 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
  6576. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6577. IN TYPEOF (it)) |
  6578. NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
  6579. NOT (SIZEOF (QUERY (ps <* QUERY (pss <* psa.styles |
  6580. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_STYLE'
  6581. IN TYPEOF (pss)) |
  6582. NOT (
  6583. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MARKER_TYPE'
  6584. IN TYPEOF (ps\point_style.marker))
  6585. AND
  6586. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF
  6587. (ps\point_style.marker_size))
  6588. AND
  6589. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6590. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6591. 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
  6592. (ps\point_style.marker_colour)) = 1)))) = 0))) = 0))) = 0;
  6593. WR7 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
  6594. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6595. IN TYPEOF (it)) |
  6596. NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
  6597. NOT (SIZEOF (QUERY (cs <* QUERY (pss <* psa.styles |
  6598. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
  6599. IN TYPEOF (pss)) |
  6600. NOT (
  6601. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6602. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6603. 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
  6604. (cs\curve_style.curve_colour)) = 1)
  6605. AND
  6606. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF
  6607. (cs\curve_style.curve_width))
  6608. AND
  6609. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6610. 'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6611. 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF
  6612. (cs\curve_style.curve_font)) = 1)))) = 0))) = 0))) = 0;
  6613. WR8 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
  6614. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6615. IN TYPEOF (it)) |
  6616. NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
  6617. NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
  6618. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6619. IN TYPEOF (pss)) |
  6620. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_SIDE_STYLE'
  6621. IN TYPEOF (ssu\surface_style_usage.style)) )) = 0))) = 0 ))) = 0;
  6622. WR9 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
  6623. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6624. IN TYPEOF (it)) |
  6625. NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
  6626. NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
  6627. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6628. IN TYPEOF (pss)) |
  6629. NOT (SIZEOF (QUERY (sses <*
  6630. ssu\surface_style_usage.style\surface_side_style.styles |
  6631. NOT (SIZEOF (
  6632. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6633. 'SURFACE_STYLE_PARAMETER_LINE',
  6634. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6635. 'SURFACE_STYLE_CONTROL_GRID',
  6636. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6637. 'SURFACE_STYLE_SILHOUETTE',
  6638. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6639. 'SURFACE_STYLE_SEGMENTATION_CURVE',
  6640. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6641. 'SURFACE_STYLE_BOUNDARY',
  6642. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6643. 'SURFACE_STYLE_FILL_AREA',
  6644. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6645. 'SURFACE_STYLE_RENDERING'] * TYPEOF (sses)) = 1))) = 0))) = 0)))
  6646. = 0))) = 0;
  6647. WR10 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
  6648. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6649. IN TYPEOF (it)) |
  6650. NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
  6651. NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
  6652. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6653. IN TYPEOF (pss)) |
  6654. NOT (SIZEOF (QUERY (ssfa <* QUERY (sses <*
  6655. ssu\surface_style_usage.style\surface_side_style.styles |
  6656. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_FILL_AREA'
  6657. IN TYPEOF (sses)) |
  6658. NOT (SIZEOF (QUERY (fss <*
  6659. ssfa\surface_style_fill_area.fill_area.fill_styles |
  6660. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6661. 'FILL_AREA_STYLE_COLOUR' IN TYPEOF (fss))
  6662. AND
  6663. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6664. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6665. 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
  6666. (fss\fill_area_style_colour.fill_colour)) = 1)))) = 0))) = 0)))
  6667. = 0))) = 0))) = 0;
  6668. WR11 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
  6669. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6670. IN TYPEOF (it)) |
  6671. NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
  6672. NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
  6673. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6674. IN TYPEOF (pss)) |
  6675. NOT (SIZEOF (QUERY (sspl <* QUERY (sses <*
  6676. ssu\surface_style_usage.style\surface_side_style.styles |
  6677. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6678. 'SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF (sses)) |
  6679. NOT ((
  6680. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF
  6681. (sspl\surface_style_parameter_line.style_of_parameter_lines))
  6682. AND
  6683. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6684. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6685. 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
  6686. (sspl\surface_style_parameter_line.
  6687. style_of_parameter_lines\curve_style.curve_colour)) = 1)
  6688. AND
  6689. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF
  6690. (sspl\surface_style_parameter_line.
  6691. style_of_parameter_lines\curve_style.curve_width))
  6692. AND
  6693. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6694. 'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6695. 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF
  6696. (sspl\surface_style_parameter_line.
  6697. style_of_parameter_lines\curve_style.curve_font)) = 1))
  6698. OR
  6699. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_RENDERING'
  6700. IN TYPEOF
  6701. (sspl\surface_style_parameter_line.style_of_parameter_lines))
  6702. AND
  6703. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6704. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6705. 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
  6706. (sspl\surface_style_parameter_line.style_of_parameter_lines\
  6707. curve_style_rendering.rendering_properties.rendered_colour))
  6708. = 1))) )) = 0))) = 0))) = 0))) = 0;
  6709. WR12 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
  6710. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6711. IN TYPEOF (it)) |
  6712. NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
  6713. NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
  6714. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6715. IN TYPEOF (pss)) |
  6716. NOT (SIZEOF (QUERY (sscg <* QUERY (sses <*
  6717. ssu\surface_style_usage.style\surface_side_style.styles |
  6718. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6719. 'SURFACE_STYLE_CONTROL_GRID' IN TYPEOF (sses)) |
  6720. NOT ((
  6721. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
  6722. IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid))
  6723. AND
  6724. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6725. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6726. 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
  6727. (sscg\surface_style_control_grid.
  6728. style_of_control_grid\curve_style.curve_colour)) = 1)
  6729. AND
  6730. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF
  6731. (sscg\surface_style_control_grid.
  6732. style_of_control_grid\curve_style.curve_width))
  6733. AND
  6734. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6735. 'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6736. 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF
  6737. (sscg\surface_style_control_grid.
  6738. style_of_control_grid\curve_style.curve_font)) = 1))
  6739. OR
  6740. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_RENDERING'
  6741. IN TYPEOF (sscg\surface_style_control_grid.style_of_control_grid))
  6742. AND
  6743. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6744. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6745. 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
  6746. (sscg\surface_style_control_grid.style_of_control_grid\
  6747. curve_style_rendering.rendering_properties.rendered_colour))
  6748. = 1))) )) = 0))) = 0))) = 0))) = 0;
  6749. WR13 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
  6750. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6751. IN TYPEOF (it)) |
  6752. NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
  6753. NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
  6754. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6755. IN TYPEOF (pss)) |
  6756. NOT (SIZEOF (QUERY (sssh <* QUERY (sses <*
  6757. ssu\surface_style_usage.style\surface_side_style.styles |
  6758. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6759. 'SURFACE_STYLE_SILHOUETTE' IN TYPEOF (sses)) |
  6760. NOT ((
  6761. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
  6762. IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette))
  6763. AND
  6764. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6765. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6766. 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
  6767. (sssh\surface_style_silhouette.
  6768. style_of_silhouette\curve_style.curve_colour)) = 1)
  6769. AND
  6770. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF
  6771. (sssh\surface_style_silhouette.
  6772. style_of_silhouette\curve_style.curve_width))
  6773. AND
  6774. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6775. 'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6776. 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF
  6777. (sssh\surface_style_silhouette.
  6778. style_of_silhouette\curve_style.curve_font)) = 1))
  6779. OR
  6780. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_RENDERING'
  6781. IN TYPEOF (sssh\surface_style_silhouette.style_of_silhouette))
  6782. AND
  6783. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6784. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6785. 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
  6786. (sssh\surface_style_silhouette.style_of_silhouette\
  6787. curve_style_rendering.rendering_properties.rendered_colour))
  6788. = 1))) )) = 0))) = 0))) = 0))) = 0;
  6789. WR14 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
  6790. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6791. IN TYPEOF (it)) |
  6792. NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
  6793. NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
  6794. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6795. IN TYPEOF (pss)) |
  6796. NOT (SIZEOF (QUERY (sssc <* QUERY (sses <*
  6797. ssu\surface_style_usage.style\surface_side_style.styles |
  6798. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6799. 'SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF (sses)) |
  6800. NOT ((
  6801. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
  6802. IN TYPEOF
  6803. (sssc\surface_style_segmentation_curve.style_of_segmentation_curve))
  6804. AND
  6805. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6806. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6807. 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
  6808. (sssc\surface_style_segmentation_curve.
  6809. style_of_segmentation_curve\curve_style.curve_colour)) = 1)
  6810. AND
  6811. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF
  6812. (sssc\surface_style_segmentation_curve.
  6813. style_of_segmentation_curve\curve_style.curve_width))
  6814. AND
  6815. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6816. 'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6817. 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF
  6818. (sssc\surface_style_segmentation_curve.
  6819. style_of_segmentation_curve\curve_style.curve_font)) = 1))
  6820. OR
  6821. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_RENDERING'
  6822. IN TYPEOF (sssc\surface_style_segmentation_curve.
  6823. style_of_segmentation_curve))
  6824. AND
  6825. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6826. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6827. 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
  6828. (sssc\surface_style_segmentation_curve.style_of_segmentation_curve\
  6829. curve_style_rendering.rendering_properties.rendered_colour))
  6830. = 1))) )) = 0))) = 0))) = 0))) = 0;
  6831. WR15 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
  6832. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6833. IN TYPEOF (it)) |
  6834. NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
  6835. NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
  6836. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6837. IN TYPEOF (pss)) |
  6838. NOT (SIZEOF (QUERY (ssbd <* QUERY (sses <*
  6839. ssu\surface_style_usage.style\surface_side_style.styles |
  6840. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6841. 'SURFACE_STYLE_BOUNDARY' IN TYPEOF (sses)) |
  6842. NOT ((
  6843. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE'
  6844. IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary))
  6845. AND
  6846. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6847. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6848. 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
  6849. (ssbd\surface_style_boundary.
  6850. style_of_boundary\curve_style.curve_colour)) = 1)
  6851. AND
  6852. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF
  6853. (ssbd\surface_style_boundary.
  6854. style_of_boundary\curve_style.curve_width))
  6855. AND
  6856. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6857. 'CURVE_STYLE_FONT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6858. 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF
  6859. (ssbd\surface_style_boundary.
  6860. style_of_boundary\curve_style.curve_font)) = 1))
  6861. OR
  6862. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE_RENDERING'
  6863. IN TYPEOF (ssbd\surface_style_boundary.style_of_boundary))
  6864. AND
  6865. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6866. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6867. 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
  6868. (ssbd\surface_style_boundary.style_of_boundary\
  6869. curve_style_rendering.rendering_properties.rendered_colour))
  6870. = 1))) )) = 0))) = 0))) = 0))) = 0;
  6871. WR16 : SIZEOF (QUERY (si <* QUERY (it <* SELF.items |
  6872. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM'
  6873. IN TYPEOF (it)) |
  6874. NOT (SIZEOF (QUERY (psa <* si\styled_item.styles |
  6875. NOT (SIZEOF (QUERY (ssu <* QUERY (pss <* psa.styles |
  6876. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE'
  6877. IN TYPEOF (pss)) |
  6878. NOT (SIZEOF (QUERY (ssre <* QUERY (sses <*
  6879. ssu\surface_style_usage.style\surface_side_style.styles |
  6880. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6881. 'SURFACE_STYLE_RENDERING' IN TYPEOF (sses)) |
  6882. NOT
  6883. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COLOUR_RGB',
  6884. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6885. 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF
  6886. (ssre\surface_style_rendering.surface_colour)) = 1)))
  6887. = 0))) = 0))) = 0))) = 0;
  6888. END_ENTITY;
  6889. ENTITY min_and_major_ply_orientation_basis
  6890. SUBTYPE OF (representation_item_relationship, geometric_representation_item);
  6891. SELF\representation_item_relationship.related_representation_item : axis2_placement_3d;
  6892. SELF\representation_item_relationship.relating_representation_item : axis2_placement_3d;
  6893. DERIVE
  6894. major_orientation_basis : axis2_placement_3d := SELF\representation_item_relationship.related_representation_item;
  6895. minor_orientation_basis : axis2_placement_3d := SELF\representation_item_relationship.relating_representation_item;
  6896. END_ENTITY;
  6897. ENTITY modified_geometric_tolerance
  6898. SUBTYPE OF (geometric_tolerance);
  6899. modifier : limit_condition;
  6900. END_ENTITY;
  6901. ENTITY modified_solid
  6902. ABSTRACT SUPERTYPE OF (ONEOF (edge_blended_solid, sculptured_solid, shelled_solid, modified_solid_with_placed_configuration))
  6903. SUBTYPE OF (solid_model);
  6904. rationale : text;
  6905. base_solid : base_solid_select;
  6906. END_ENTITY;
  6907. ENTITY modified_solid_with_placed_configuration
  6908. ABSTRACT SUPERTYPE OF (ONEOF (solid_with_depression, solid_with_protrusion, solid_with_shape_element_pattern))
  6909. SUBTYPE OF (modified_solid);
  6910. placing : axis2_placement_3d;
  6911. END_ENTITY;
  6912. ENTITY moments_of_inertia_representation
  6913. SUBTYPE OF (representation);
  6914. WHERE
  6915. WR1 : (SIZEOF(SELF.items) = 1) AND
  6916. (SIZEOF( QUERY( i <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND
  6917. (i.name = 'moments of inertia matrix') )) = 1);
  6918. WR2 : SIZEOF( QUERY( i <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND
  6919. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'LIST_REPRESENTATION_ITEM' IN TYPEOF(i\compound_representation_item.item_element)) AND
  6920. value_range_aggregate_rep_item (i\compound_representation_item.item_element) )) = 1;
  6921. END_ENTITY;
  6922. ENTITY multi_language_attribute_assignment
  6923. SUBTYPE OF (attribute_value_assignment);
  6924. items : SET [1:?] OF multi_language_attribute_item;
  6925. DERIVE
  6926. translation_language : language := language_indication[1]\attribute_classification_assignment.assigned_class;
  6927. INVERSE
  6928. language_indication: SET [1:1] OF attribute_language_assignment FOR items;
  6929. WHERE
  6930. WR1 : (SELF\attribute_value_assignment.role.name = 'alternate language');
  6931. WR2 : SIZEOF( QUERY( ala <* language_indication |
  6932. (ala\attribute_classification_assignment.attribute_name = 'attribute_value') AND
  6933. (ala\attribute_classification_assignment.role.name='translated') )) = 1;
  6934. WR3 : SELF\attribute_value_assignment.attribute_name <> '';
  6935. WR4 : SIZEOF(QUERY(ci <* items |
  6936. SIZEOF(QUERY(ata <* USEDIN(ci, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') |
  6937. (ata\attribute_value_assignment.attribute_name = SELF\attribute_value_assignment.attribute_name) AND
  6938. (ata.translation_language :=: translation_language) ))>1 )) =0;
  6939. WR5 : SIZEOF(QUERY(ci <* items |
  6940. SIZEOF(QUERY(ata <* USEDIN(ci, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') |
  6941. (ata\attribute_classification_assignment.role.name='primary') AND
  6942. (ata\attribute_classification_assignment.attribute_name= SELF\attribute_value_assignment.attribute_name) AND
  6943. (ata\attribute_classification_assignment.assigned_class :=: translation_language) ))>0 )) =0;
  6944. END_ENTITY;
  6945. ENTITY multiple_arity_boolean_expression
  6946. ABSTRACT SUPERTYPE
  6947. SUBTYPE OF (boolean_expression, multiple_arity_generic_expression);
  6948. SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF boolean_expression;
  6949. END_ENTITY;
  6950. ENTITY multiple_arity_generic_expression
  6951. ABSTRACT SUPERTYPE
  6952. SUBTYPE OF (generic_expression);
  6953. operands : LIST [2:?] OF generic_expression;
  6954. END_ENTITY;
  6955. ENTITY multiple_arity_numeric_expression
  6956. ABSTRACT SUPERTYPE
  6957. SUBTYPE OF (numeric_expression, multiple_arity_generic_expression);
  6958. SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF numeric_expression;
  6959. END_ENTITY;
  6960. ENTITY name_assignment
  6961. ABSTRACT SUPERTYPE;
  6962. assigned_name : label;
  6963. DERIVE
  6964. role : object_role := get_role(SELF);
  6965. WHERE
  6966. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
  6967. END_ENTITY;
  6968. ENTITY name_attribute;
  6969. attribute_value : label;
  6970. named_item : name_attribute_select;
  6971. END_ENTITY;
  6972. ENTITY named_unit
  6973. SUPERTYPE OF ((ONEOF (si_unit, conversion_based_unit, context_dependent_unit) ANDOR ONEOF (length_unit, mass_unit, time_unit, electric_current_unit, thermodynamic_temperature_unit, amount_of_substance_unit, luminous_flux_unit, luminous_intensity_unit, plane_angle_unit, solid_angle_unit, ratio_unit)));
  6974. dimensions : dimensional_exponents;
  6975. END_ENTITY;
  6976. ENTITY next_assembly_usage_occurrence
  6977. SUBTYPE OF (assembly_component_usage);
  6978. END_ENTITY;
  6979. ENTITY non_manifold_surface_shape_representation
  6980. SUBTYPE OF (shape_representation);
  6981. WHERE
  6982. WR1 : SIZEOF (QUERY (it <* SELF.items |
  6983. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL',
  6984. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM',
  6985. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF (it)) = 1)))
  6986. = 0;
  6987. WR2 : SIZEOF (QUERY (it <* SELF.items |
  6988. SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL',
  6989. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM'] * TYPEOF (it)) = 1)) > 0;
  6990. WR3 : SIZEOF (QUERY (mi <* QUERY (it <* SELF.items |
  6991. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) |
  6992. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  6993. 'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION'
  6994. IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation))
  6995. AND
  6996. (SIZEOF(QUERY (mr_it <*
  6997. mi\mapped_item.mapping_source.mapped_representation.items |
  6998. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL'
  6999. IN TYPEOF (mr_it)))) > 0 )))) = 0;
  7000. WR4 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
  7001. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  7002. NOT (SIZEOF (QUERY (cfs <*
  7003. fbsm\face_based_surface_model.fbsm_faces |
  7004. NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
  7005. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE',
  7006. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_FACE'] * TYPEOF (fa)) = 1)))
  7007. = 0))) = 0))) = 0;
  7008. WR5 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
  7009. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  7010. NOT (SIZEOF (QUERY (cfs <*
  7011. fbsm\face_based_surface_model.fbsm_faces |
  7012. NOT (SIZEOF (QUERY (f_sf <* QUERY (fa <* cfs.cfs_faces |
  7013. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF (fa))) |
  7014. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (f_sf))
  7015. OR
  7016. (nmsf_surface_check(f_sf\face_surface.face_geometry))))) = 0)))
  7017. = 0))) = 0;
  7018. WR6 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
  7019. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  7020. NOT (SIZEOF (QUERY (cfs <*
  7021. fbsm\face_based_surface_model.fbsm_faces |
  7022. NOT (SIZEOF (QUERY (o_fa <* QUERY (fa <* cfs.cfs_faces |
  7023. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_FACE' IN TYPEOF (fa))) |
  7024. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF
  7025. (o_fa\oriented_face.face_element))
  7026. OR
  7027. (nmsf_surface_check
  7028. (o_fa\oriented_face.face_element\face_surface.face_geometry)))))
  7029. = 0))) = 0))) = 0;
  7030. WR7 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
  7031. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  7032. NOT (SIZEOF (QUERY (cfs <*
  7033. fbsm\face_based_surface_model.fbsm_faces |
  7034. NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
  7035. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  7036. OR
  7037. (SIZEOF (QUERY (bnds <* fa.bounds |
  7038. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP',
  7039. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP']
  7040. * TYPEOF (bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0;
  7041. WR8 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items|
  7042. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  7043. NOT (SIZEOF (QUERY (cfs <*
  7044. fbsm\face_based_surface_model.fbsm_faces |
  7045. NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
  7046. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  7047. OR
  7048. (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
  7049. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
  7050. NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
  7051. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF
  7052. (oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0;
  7053. WR9 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
  7054. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  7055. NOT (SIZEOF (QUERY (cfs <*
  7056. fbsm\face_based_surface_model.fbsm_faces |
  7057. NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
  7058. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  7059. OR
  7060. (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
  7061. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
  7062. NOT (SIZEOF (QUERY (oe_cv <* QUERY (oe <*
  7063. elp_fbnds\path.edge_list |
  7064. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (oe.edge_element)) |
  7065. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE',
  7066. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC',
  7067. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA',
  7068. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE',
  7069. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D',
  7070. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE',
  7071. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE',
  7072. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE'] *
  7073. TYPEOF (oe_cv.edge_element\edge_curve.edge_geometry))
  7074. = 1))) = 0))) = 0)))) = 0))) = 0))) = 0;
  7075. WR10 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
  7076. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  7077. NOT (SIZEOF (QUERY (cfs <*
  7078. fbsm\face_based_surface_model.fbsm_faces |
  7079. NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
  7080. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  7081. OR
  7082. (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
  7083. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
  7084. NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
  7085. NOT (nmsf_curve_check (oe.edge_element\edge_curve.edge_geometry))))
  7086. = 0))) = 0)))) = 0))) = 0))) = 0;
  7087. WR11 : SIZEOF (QUERY(fbsm <* QUERY (it <* SELF.items |
  7088. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  7089. NOT (SIZEOF (QUERY (cfs <*
  7090. fbsm\face_based_surface_model.fbsm_faces |
  7091. NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
  7092. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  7093. OR
  7094. (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
  7095. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
  7096. NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list|
  7097. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF
  7098. (oe.edge_element.edge_start))
  7099. AND
  7100. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN
  7101. TYPEOF (oe.edge_element.edge_end)))))
  7102. = 0))) = 0)))) = 0))) = 0))) = 0;
  7103. WR12 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
  7104. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  7105. NOT (SIZEOF (QUERY (cfs <*
  7106. fbsm\face_based_surface_model.fbsm_faces |
  7107. NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
  7108. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  7109. OR
  7110. (SIZEOF (QUERY (elp_fbnds <* QUERY (bnds <* fa.bounds |
  7111. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (bnds.bound)) |
  7112. NOT (SIZEOF (QUERY (oe <* elp_fbnds\path.edge_list |
  7113. NOT ((SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT',
  7114. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE',
  7115. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE',
  7116. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF
  7117. (oe.edge_element.edge_start\vertex_point.vertex_geometry)) = 1)
  7118. AND
  7119. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT',
  7120. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE',
  7121. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE',
  7122. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF
  7123. (oe.edge_element.edge_end\vertex_point.vertex_geometry)) = 1
  7124. )))) = 0))) = 0)))) = 0))) = 0))) = 0;
  7125. WR13 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
  7126. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  7127. NOT (SIZEOF (QUERY (cfs <*
  7128. fbsm\face_based_surface_model.fbsm_faces |
  7129. NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
  7130. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  7131. OR
  7132. (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds |
  7133. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) |
  7134. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF
  7135. (vlp_fbnds\vertex_loop.loop_vertex)))) = 0)))) = 0)))
  7136. = 0))) = 0;
  7137. WR14 : SIZEOF (QUERY (fbsm <* QUERY (it <* SELF.items |
  7138. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF (it)) |
  7139. NOT (SIZEOF (QUERY (cfs <*
  7140. fbsm\face_based_surface_model.fbsm_faces |
  7141. NOT (SIZEOF (QUERY (fa <* cfs.cfs_faces |
  7142. NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF (fa))
  7143. OR
  7144. (SIZEOF (QUERY (vlp_fbnds <* QUERY (bnds <* fa.bounds |
  7145. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (bnds.bound)) |
  7146. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT',
  7147. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE',
  7148. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE',
  7149. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE'] * TYPEOF
  7150. (vlp_fbnds\vertex_loop.loop_vertex\vertex_point.vertex_geometry))
  7151. = 1))) = 0)))) = 0))) = 0))) = 0;
  7152. END_ENTITY;
  7153. ENTITY null_representation_item
  7154. SUBTYPE OF (representation_item);
  7155. END_ENTITY;
  7156. ENTITY numeric_expression
  7157. ABSTRACT SUPERTYPE OF (ONEOF (simple_numeric_expression, unary_numeric_expression, binary_numeric_expression, multiple_arity_numeric_expression))
  7158. SUBTYPE OF (expression);
  7159. DERIVE
  7160. is_int : LOGICAL := is_int_expr (SELF);
  7161. sql_mappable : LOGICAL := is_SQL_mappable (SELF);
  7162. END_ENTITY;
  7163. ENTITY object_role;
  7164. name : label;
  7165. description : OPTIONAL text;
  7166. END_ENTITY;
  7167. ENTITY offset_curve_2d
  7168. SUBTYPE OF (curve);
  7169. basis_curve : curve;
  7170. distance : length_measure;
  7171. self_intersect : LOGICAL;
  7172. WHERE
  7173. WR1 : basis_curve.dim = 2;
  7174. END_ENTITY;
  7175. ENTITY offset_curve_3d
  7176. SUBTYPE OF (curve);
  7177. basis_curve : curve;
  7178. distance : length_measure;
  7179. self_intersect : LOGICAL;
  7180. ref_direction : direction;
  7181. WHERE
  7182. WR1 : (basis_curve.dim = 3) AND (ref_direction.dim = 3);
  7183. END_ENTITY;
  7184. ENTITY offset_surface
  7185. SUBTYPE OF (surface);
  7186. basis_surface : surface;
  7187. distance : length_measure;
  7188. self_intersect : LOGICAL;
  7189. END_ENTITY;
  7190. ENTITY one_direction_repeat_factor
  7191. SUBTYPE OF (geometric_representation_item);
  7192. repeat_factor : vector;
  7193. END_ENTITY;
  7194. ENTITY open_shell
  7195. SUBTYPE OF (connected_face_set);
  7196. END_ENTITY;
  7197. ENTITY ordinal_date
  7198. SUBTYPE OF (date);
  7199. day_component : day_in_year_number;
  7200. WHERE
  7201. WR1 : (NOT leap_year(SELF.year_component) AND { 1 <= day_component <= 365 }) OR (leap_year(SELF.year_component) AND { 1 <= day_component <= 366 });
  7202. END_ENTITY;
  7203. ENTITY ordinate_dimension
  7204. SUBTYPE OF (projection_directed_callout);
  7205. END_ENTITY;
  7206. ENTITY organization;
  7207. id : OPTIONAL identifier;
  7208. name : label;
  7209. description : OPTIONAL text;
  7210. END_ENTITY;
  7211. ENTITY organization_assignment
  7212. ABSTRACT SUPERTYPE;
  7213. assigned_organization : organization;
  7214. role : organization_role;
  7215. END_ENTITY;
  7216. ENTITY organization_relationship;
  7217. name : label;
  7218. description : OPTIONAL text;
  7219. relating_organization : organization;
  7220. related_organization : organization;
  7221. END_ENTITY;
  7222. ENTITY organization_role;
  7223. name : label;
  7224. DERIVE
  7225. description : text := get_description_value(SELF);
  7226. WHERE
  7227. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
  7228. END_ENTITY;
  7229. ENTITY organizational_address
  7230. SUBTYPE OF (address);
  7231. organizations : SET [1:?] OF organization;
  7232. description : OPTIONAL text;
  7233. END_ENTITY;
  7234. ENTITY organizational_project;
  7235. name : label;
  7236. description : OPTIONAL text;
  7237. responsible_organizations : SET [1:?] OF organization;
  7238. DERIVE
  7239. id : identifier := get_id_value(SELF);
  7240. WHERE
  7241. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
  7242. END_ENTITY;
  7243. ENTITY organizational_project_assignment
  7244. ABSTRACT SUPERTYPE;
  7245. assigned_organizational_project : organizational_project;
  7246. role : organizational_project_role;
  7247. END_ENTITY;
  7248. ENTITY organizational_project_relationship;
  7249. name : label;
  7250. description : OPTIONAL text;
  7251. relating_organizational_project : organizational_project;
  7252. related_organizational_project : organizational_project;
  7253. END_ENTITY;
  7254. ENTITY organizational_project_role;
  7255. name : label;
  7256. description : OPTIONAL text;
  7257. END_ENTITY;
  7258. ENTITY oriented_closed_shell
  7259. SUBTYPE OF (closed_shell);
  7260. closed_shell_element : closed_shell;
  7261. orientation : BOOLEAN;
  7262. DERIVE
  7263. SELF\connected_face_set.cfs_faces : SET [1:?] OF face := conditional_reverse(SELF.orientation,
  7264. SELF.closed_shell_element.cfs_faces);
  7265. WHERE
  7266. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL'
  7267. IN TYPEOF (SELF.closed_shell_element));
  7268. END_ENTITY;
  7269. ENTITY oriented_edge
  7270. SUBTYPE OF (edge);
  7271. edge_element : edge;
  7272. orientation : BOOLEAN;
  7273. DERIVE
  7274. SELF\edge.edge_end : vertex := boolean_choose (SELF.orientation,
  7275. SELF.edge_element.edge_end,
  7276. SELF.edge_element.edge_start);
  7277. SELF\edge.edge_start : vertex := boolean_choose (SELF.orientation,
  7278. SELF.edge_element.edge_start,
  7279. SELF.edge_element.edge_end);
  7280. WHERE
  7281. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_EDGE' IN TYPEOF (SELF.edge_element));
  7282. END_ENTITY;
  7283. ENTITY oriented_face
  7284. SUBTYPE OF (face);
  7285. face_element : face;
  7286. orientation : BOOLEAN;
  7287. DERIVE
  7288. SELF\face.bounds : SET [1:?] OF face_bound := conditional_reverse(SELF.orientation,SELF.face_element.bounds);
  7289. WHERE
  7290. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_FACE' IN TYPEOF (SELF.face_element));
  7291. END_ENTITY;
  7292. ENTITY oriented_open_shell
  7293. SUBTYPE OF (open_shell);
  7294. open_shell_element : open_shell;
  7295. orientation : BOOLEAN;
  7296. DERIVE
  7297. SELF\connected_face_set.cfs_faces : SET [1:?] OF face := conditional_reverse(SELF.orientation,
  7298. SELF.open_shell_element.cfs_faces);
  7299. WHERE
  7300. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_OPEN_SHELL'
  7301. IN TYPEOF (SELF.open_shell_element));
  7302. END_ENTITY;
  7303. ENTITY oriented_path
  7304. SUBTYPE OF (path);
  7305. path_element : path;
  7306. orientation : BOOLEAN;
  7307. DERIVE
  7308. SELF\path.edge_list : LIST [1:?] OF UNIQUE oriented_edge := conditional_reverse(SELF.orientation,
  7309. SELF.path_element.edge_list);
  7310. WHERE
  7311. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_PATH' IN TYPEOF (SELF.path_element));
  7312. END_ENTITY;
  7313. ENTITY oriented_surface
  7314. SUBTYPE OF (surface);
  7315. orientation : BOOLEAN;
  7316. END_ENTITY;
  7317. ENTITY outer_boundary_curve
  7318. SUBTYPE OF (boundary_curve);
  7319. END_ENTITY;
  7320. ENTITY over_riding_styled_item
  7321. SUBTYPE OF (styled_item);
  7322. over_ridden_style : styled_item;
  7323. END_ENTITY;
  7324. ENTITY package_product_concept_feature
  7325. SUBTYPE OF (product_concept_feature);
  7326. WHERE
  7327. WR1 : NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF ( SELF ) );
  7328. WR2 : SIZEOF ( QUERY
  7329. (
  7330. cfr <* USEDIN ( SELF , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.' +'RELATING_PRODUCT_CONCEPT_FEATURE' )
  7331. |
  7332. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF (cfr ) )
  7333. AND
  7334. ( SIZEOF ( QUERY
  7335. (
  7336. ipcf <* USEDIN ( cfr , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE.' + 'CONDITION' )
  7337. |
  7338. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( ipcf )
  7339. )
  7340. )= 1
  7341. )
  7342. )
  7343. )>0;
  7344. END_ENTITY;
  7345. ENTITY parabola
  7346. SUBTYPE OF (conic);
  7347. focal_dist : length_measure;
  7348. WHERE
  7349. WR1 : focal_dist <> 0.0;
  7350. END_ENTITY;
  7351. ENTITY parallel_offset
  7352. SUBTYPE OF (derived_shape_aspect);
  7353. offset : measure_with_unit;
  7354. WHERE
  7355. WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1;
  7356. END_ENTITY;
  7357. ENTITY parallelism_tolerance
  7358. SUBTYPE OF (geometric_tolerance_with_datum_reference);
  7359. WHERE
  7360. WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) < 3;
  7361. END_ENTITY;
  7362. ENTITY parametric_representation_context
  7363. SUBTYPE OF (representation_context);
  7364. END_ENTITY;
  7365. ENTITY part_laminate_table
  7366. SUPERTYPE OF (ONEOF (composite_assembly_table, ply_laminate_table))
  7367. SUBTYPE OF (laminate_table);
  7368. END_ENTITY;
  7369. ENTITY partial_document_with_structured_text_representation_assignment
  7370. SUBTYPE OF (applied_document_usage_constraint_assignment, characterized_object);
  7371. END_ENTITY;
  7372. ENTITY path
  7373. SUPERTYPE OF (ONEOF (edge_loop, oriented_path))
  7374. SUBTYPE OF (topological_representation_item);
  7375. edge_list : LIST [1:?] OF UNIQUE oriented_edge;
  7376. WHERE
  7377. WR1 : path_head_to_tail(SELF);
  7378. END_ENTITY;
  7379. ENTITY pcurve
  7380. SUBTYPE OF (curve);
  7381. basis_surface : surface;
  7382. reference_to_curve : definitional_representation;
  7383. WHERE
  7384. WR1 : SIZEOF(reference_to_curve\representation.items) = 1;
  7385. WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF
  7386. (reference_to_curve\representation.items[1]);
  7387. WR3 : reference_to_curve\representation.items[1]\
  7388. geometric_representation_item.dim =2;
  7389. END_ENTITY;
  7390. ENTITY percentage_laminate_definition
  7391. SUBTYPE OF (product_definition);
  7392. WHERE
  7393. WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF,
  7394. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  7395. 'PRODUCT_DEFINITION_RELATIONSHIP.' +
  7396. 'RELATING_PRODUCT_DEFINITION') |
  7397. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  7398. 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN
  7399. TYPEOF (pdr))) > 0;
  7400. END_ENTITY;
  7401. ENTITY percentage_laminate_table
  7402. SUBTYPE OF (zone_structural_makeup);
  7403. END_ENTITY;
  7404. ENTITY percentage_ply_definition
  7405. SUBTYPE OF (product_definition);
  7406. WHERE
  7407. WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  7408. 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') |
  7409. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PERCENTAGE_LAMINATE_DEFINITION'
  7410. IN TYPEOF (pdr.related_product_definition)) AND
  7411. (pdr.name = 'makeup and properties'))) = 0;
  7412. END_ENTITY;
  7413. ENTITY perpendicular_to
  7414. SUBTYPE OF (derived_shape_aspect);
  7415. WHERE
  7416. WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1;
  7417. END_ENTITY;
  7418. ENTITY perpendicularity_tolerance
  7419. SUBTYPE OF (geometric_tolerance_with_datum_reference);
  7420. WHERE
  7421. WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3;
  7422. END_ENTITY;
  7423. ENTITY person;
  7424. id : identifier;
  7425. last_name : OPTIONAL label;
  7426. first_name : OPTIONAL label;
  7427. middle_names : OPTIONAL LIST [1:?] OF label;
  7428. prefix_titles : OPTIONAL LIST [1:?] OF label;
  7429. suffix_titles : OPTIONAL LIST [1:?] OF label;
  7430. WHERE
  7431. WR1 : EXISTS(last_name) OR EXISTS(first_name);
  7432. END_ENTITY;
  7433. ENTITY person_and_organization;
  7434. the_person : person;
  7435. the_organization : organization;
  7436. DERIVE
  7437. description : text := get_description_value(SELF);
  7438. name : label := get_name_value(SELF);
  7439. WHERE
  7440. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
  7441. WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
  7442. END_ENTITY;
  7443. ENTITY person_and_organization_address
  7444. SUBTYPE OF (organizational_address, personal_address);
  7445. SELF\organizational_address.organizations : SET [1:1] OF organization;
  7446. SELF\personal_address.people : SET [1:1] OF person;
  7447. WHERE
  7448. WR1 : SIZEOF(QUERY(pao <* USEDIN (SELF\personal_address.people[1], 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PERSON_AND_ORGANIZATION.THE_PERSON') | pao.the_organization :=: SELF\organizational_address.organizations[1])) = 1;
  7449. END_ENTITY;
  7450. ENTITY person_and_organization_assignment
  7451. ABSTRACT SUPERTYPE;
  7452. assigned_person_and_organization : person_and_organization;
  7453. role : person_and_organization_role;
  7454. END_ENTITY;
  7455. ENTITY person_and_organization_role;
  7456. name : label;
  7457. DERIVE
  7458. description : text := get_description_value(SELF);
  7459. WHERE
  7460. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
  7461. END_ENTITY;
  7462. ENTITY personal_address
  7463. SUBTYPE OF (address);
  7464. people : SET [1:?] OF person;
  7465. description : OPTIONAL text;
  7466. END_ENTITY;
  7467. ENTITY physical_breakdown_context
  7468. SUBTYPE OF (breakdown_context);
  7469. END_ENTITY;
  7470. ENTITY physical_element_usage
  7471. SUBTYPE OF (breakdown_element_usage);
  7472. END_ENTITY;
  7473. ENTITY picture_representation
  7474. SUBTYPE OF (presentation_view);
  7475. SELF\representation.items : SET [2:?] OF picture_representation_item_select;
  7476. INVERSE
  7477. size: presentation_size FOR unit;
  7478. WHERE
  7479. WR1: SIZEOF(QUERY(item <* items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF(item))) = 1;
  7480. WR2: SIZEOF (QUERY (se <* QUERY (item <* SELF.items | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STYLED_ITEM' IN TYPEOF (item)))
  7481. | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PICTURE_REPRESENTATION_ITEM'
  7482. IN TYPEOF (se\styled_item.item)) )) = 0;
  7483. END_ENTITY;
  7484. ENTITY picture_representation_item
  7485. ABSTRACT SUPERTYPE OF (ONEOF (externally_defined_picture_representation_item, predefined_picture_representation_item))
  7486. SUBTYPE OF (bytes_representation_item);
  7487. END_ENTITY;
  7488. ENTITY placed_datum_target_feature
  7489. SUBTYPE OF (datum_target);
  7490. DERIVE
  7491. representation_associations : SET [0:?] OF property_definition_representation := get_shape_aspect_property_definition_representations(SELF);
  7492. WHERE
  7493. WR1 : SELF.description IN ['point','line','rectangle','circle', 'circular line'];
  7494. WR2 : SIZEOF (QUERY (pdr <* representation_associations | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF (pdr.used_representation) )) = 1;
  7495. WR3 : valid_datum_target_parameters(SELF);
  7496. END_ENTITY;
  7497. ENTITY placed_feature
  7498. SUBTYPE OF (shape_aspect);
  7499. END_ENTITY;
  7500. ENTITY placement
  7501. SUPERTYPE OF (ONEOF (axis1_placement, axis2_placement_2d, axis2_placement_3d))
  7502. SUBTYPE OF (geometric_representation_item);
  7503. location : cartesian_point;
  7504. END_ENTITY;
  7505. ENTITY planar_box
  7506. SUBTYPE OF (planar_extent);
  7507. placement : axis2_placement;
  7508. END_ENTITY;
  7509. ENTITY planar_extent
  7510. SUBTYPE OF (geometric_representation_item);
  7511. size_in_x : length_measure;
  7512. size_in_y : length_measure;
  7513. END_ENTITY;
  7514. ENTITY plane
  7515. SUBTYPE OF (elementary_surface);
  7516. END_ENTITY;
  7517. ENTITY plane_angle_measure_with_unit
  7518. SUBTYPE OF (measure_with_unit);
  7519. WHERE
  7520. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  7521. END_ENTITY;
  7522. ENTITY plane_angle_unit
  7523. SUBTYPE OF (named_unit);
  7524. WHERE
  7525. WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
  7526. END_ENTITY;
  7527. ENTITY plus_minus_tolerance;
  7528. range : tolerance_method_definition;
  7529. toleranced_dimension : dimensional_characteristic;
  7530. UNIQUE
  7531. UR1 : toleranced_dimension;
  7532. END_ENTITY;
  7533. ENTITY ply_laminate_definition
  7534. SUBTYPE OF (product_definition);
  7535. WHERE
  7536. WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF,
  7537. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  7538. 'PRODUCT_DEFINITION_RELATIONSHIP.' +
  7539. 'RELATING_PRODUCT_DEFINITION') |
  7540. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  7541. 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN
  7542. TYPEOF (pdr))) = 1;
  7543. END_ENTITY;
  7544. ENTITY ply_laminate_sequence_definition
  7545. SUBTYPE OF (product_definition);
  7546. WHERE
  7547. WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF,
  7548. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  7549. 'PRODUCT_DEFINITION_RELATIONSHIP.' +
  7550. 'RELATING_PRODUCT_DEFINITION') |
  7551. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  7552. 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN
  7553. TYPEOF (pdr))) > 0;
  7554. END_ENTITY;
  7555. ENTITY ply_laminate_table
  7556. SUBTYPE OF (part_laminate_table);
  7557. END_ENTITY;
  7558. ENTITY point
  7559. SUPERTYPE OF (ONEOF (cartesian_point, point_on_curve, point_on_surface, point_replica, degenerate_pcurve))
  7560. SUBTYPE OF (geometric_representation_item);
  7561. END_ENTITY;
  7562. ENTITY point_and_vector
  7563. SUBTYPE OF (compound_representation_item, geometric_representation_item);
  7564. SELF\compound_representation_item.item_element : point_and_vector_members;
  7565. END_ENTITY;
  7566. ENTITY point_on_curve
  7567. SUBTYPE OF (point);
  7568. basis_curve : curve;
  7569. point_parameter : parameter_value;
  7570. END_ENTITY;
  7571. ENTITY point_on_surface
  7572. SUBTYPE OF (point);
  7573. basis_surface : surface;
  7574. point_parameter_u : parameter_value;
  7575. point_parameter_v : parameter_value;
  7576. END_ENTITY;
  7577. ENTITY point_path
  7578. SUBTYPE OF (compound_representation_item, geometric_representation_item);
  7579. SELF\compound_representation_item.item_element : point_path_members;
  7580. END_ENTITY;
  7581. ENTITY point_replica
  7582. SUBTYPE OF (point);
  7583. parent_pt : point;
  7584. transformation : cartesian_transformation_operator;
  7585. WHERE
  7586. WR1 : transformation.dim = parent_pt.dim;
  7587. WR2 : acyclic_point_replica (SELF,parent_pt);
  7588. END_ENTITY;
  7589. ENTITY point_style
  7590. SUBTYPE OF (founded_item);
  7591. name : label;
  7592. marker : marker_select;
  7593. marker_size : size_select;
  7594. marker_colour : colour;
  7595. END_ENTITY;
  7596. ENTITY polar_complex_number_literal
  7597. SUBTYPE OF (generic_literal);
  7598. radius : REAL;
  7599. angle : REAL;
  7600. WHERE
  7601. WR1 : radius >= 0;
  7602. WR2 : { 0 <= angle < 2*PI };
  7603. END_ENTITY;
  7604. ENTITY poly_loop
  7605. SUBTYPE OF (loop, geometric_representation_item);
  7606. polygon : LIST [3:?] OF UNIQUE cartesian_point;
  7607. END_ENTITY;
  7608. ENTITY polyline
  7609. SUBTYPE OF (bounded_curve);
  7610. points : LIST [2:?] OF cartesian_point;
  7611. END_ENTITY;
  7612. ENTITY position_tolerance
  7613. SUBTYPE OF (geometric_tolerance);
  7614. WHERE
  7615. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF)) OR ( SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3);
  7616. END_ENTITY;
  7617. ENTITY positioned_sketch
  7618. SUBTYPE OF (geometric_representation_item);
  7619. sketch_basis : sketch_basis_select;
  7620. auxiliary_elements : SET [0:?] OF auxiliary_geometric_representation_item;
  7621. WHERE
  7622. WR1 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_BOUNDED_SURFACE' IN
  7623. TYPEOF(sketch_basis)) AND NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN
  7624. TYPEOF(sketch_basis\curve_bounded_surface.basis_surface)));
  7625. WR2 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF(sketch_basis)) AND
  7626. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF(sketch_basis\face_surface.face_geometry)));
  7627. WR3 : SIZEOF(QUERY(q <* auxiliary_elements | (SIZEOF(TYPEOF(q) *
  7628. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT','AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE']) = 0))) = 0;
  7629. WR4 : SIZEOF(QUERY(q <* auxiliary_elements |
  7630. q\geometric_representation_item.dim <> 3)) = 0;
  7631. END_ENTITY;
  7632. ENTITY power_measure_with_unit
  7633. SUBTYPE OF (measure_with_unit);
  7634. WHERE
  7635. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POWER_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  7636. END_ENTITY;
  7637. ENTITY power_unit
  7638. SUBTYPE OF (derived_unit);
  7639. WHERE
  7640. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.watt);
  7641. END_ENTITY;
  7642. ENTITY pre_defined_colour
  7643. SUBTYPE OF (pre_defined_item, colour);
  7644. END_ENTITY;
  7645. ENTITY pre_defined_curve_font
  7646. SUBTYPE OF (pre_defined_item);
  7647. END_ENTITY;
  7648. ENTITY pre_defined_dimension_symbol
  7649. SUBTYPE OF (pre_defined_symbol);
  7650. WHERE
  7651. WR1 : SELF.name IN [ 'arc length' , 'conical taper' , 'counterbore' , 'countersink' , 'depth' , 'diameter' , 'plus minus' , 'radius' , 'slope' , 'spherical diameter' , 'spherical radius' , 'square'];
  7652. END_ENTITY;
  7653. ENTITY pre_defined_geometrical_tolerance_symbol
  7654. SUBTYPE OF (pre_defined_symbol);
  7655. WHERE
  7656. WR1 : SELF.name IN ['angularity' , 'basic dimension' , 'blanked datum reference' , 'circular runout' , 'circularity' , 'concentricity' , 'cylindricity' , 'datum target identification' , 'diameter' , 'filled datum reference' , 'flatness' , 'least material condition' , 'maximum material condition' , 'parallelism' , 'perpendicularity' , 'position' , 'profile of a line' , 'profile of a surface' , 'projected tolerance zone' , 'regardless of feature size' , 'straightness' , 'symmetry' , 'total runout' ];
  7657. END_ENTITY;
  7658. ENTITY pre_defined_item;
  7659. name : label;
  7660. END_ENTITY;
  7661. ENTITY pre_defined_marker
  7662. SUBTYPE OF (pre_defined_item);
  7663. END_ENTITY;
  7664. ENTITY pre_defined_point_marker_symbol
  7665. SUBTYPE OF (pre_defined_marker, pre_defined_symbol);
  7666. WHERE
  7667. WR1 : SELF.name IN ['asterisk','circle','dot','plus','square','triangle','x'];
  7668. END_ENTITY;
  7669. ENTITY pre_defined_surface_condition_symbol
  7670. SUBTYPE OF (pre_defined_symbol);
  7671. WHERE
  7672. WR1 : SELF.name IN ['000' , '010' , '020' , '030' , '040' , '050' , '060' , '070' , '001' , '011' , '021' , '031' , '041' , '051' , '061' , '071' , '100' , '110' , '120' , '130' , '140' , '150' , '160' , '170' , '101' , '111' , '121' , '131' , '141' , '151' , '161' , '171' , '200' , '210' , '220' , '230' , '240' , '250' , '260' , '270' , '201' , '211' , '221' , '231' , '241' , '251' , '261' , '271'];
  7673. END_ENTITY;
  7674. ENTITY pre_defined_surface_side_style
  7675. SUBTYPE OF (pre_defined_item);
  7676. END_ENTITY;
  7677. ENTITY pre_defined_symbol
  7678. SUBTYPE OF (pre_defined_item);
  7679. END_ENTITY;
  7680. ENTITY pre_defined_terminator_symbol
  7681. SUBTYPE OF (pre_defined_symbol);
  7682. WHERE
  7683. WR1 : SELF.name IN ['blanked arrow', 'blanked box', 'blanked dot', 'blanked triangle', 'dimension origin', 'filled arrow', 'filled box', 'filled dot', 'integral symbol', 'open arrow', 'slash', 'unfilled arrow', 'unfilled triangle', 'filled triangle'];
  7684. END_ENTITY;
  7685. ENTITY pre_defined_text_font
  7686. SUBTYPE OF (pre_defined_item);
  7687. END_ENTITY;
  7688. ENTITY pre_defined_tile
  7689. SUBTYPE OF (pre_defined_item);
  7690. END_ENTITY;
  7691. ENTITY precision_qualifier;
  7692. precision_value : INTEGER;
  7693. END_ENTITY;
  7694. ENTITY predefined_picture_representation_item
  7695. SUBTYPE OF (picture_representation_item);
  7696. WHERE
  7697. WR1 : SELF\representation_item.name IN pre_defined_picture_representation_types;
  7698. END_ENTITY;
  7699. ENTITY presentation_area
  7700. SUBTYPE OF (presentation_representation);
  7701. WHERE
  7702. WR1 : ((SIZEOF (QUERY (ais <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  7703. 'AREA_IN_SET.AREA') |
  7704. SIZEOF (USEDIN (ais, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  7705. 'PRESENTATION_SIZE.UNIT')) =1)) > 0) OR
  7706. (SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  7707. 'PRESENTATION_SIZE.UNIT')) =1));
  7708. END_ENTITY;
  7709. ENTITY presentation_layer_assignment;
  7710. name : label;
  7711. description : text;
  7712. assigned_items : SET [1:?] OF layered_item;
  7713. END_ENTITY;
  7714. ENTITY presentation_representation
  7715. SUPERTYPE OF (ONEOF (presentation_area, presentation_view))
  7716. SUBTYPE OF (representation);
  7717. SELF\representation.context_of_items : geometric_representation_context;
  7718. WHERE
  7719. WR1 : SELF\representation.
  7720. context_of_items\geometric_representation_context.
  7721. coordinate_space_dimension = 2;
  7722. WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_AREA' IN TYPEOF (SELF))
  7723. OR
  7724. (SIZEOF (QUERY (prr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  7725. 'REPRESENTATION_RELATIONSHIP.REP_2') |
  7726. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_REPRESENTATION' IN
  7727. TYPEOF (prr\representation_relationship.rep_1))) > 0)
  7728. OR
  7729. (SIZEOF(QUERY( rm <* USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  7730. 'REPRESENTATION_MAP.'+
  7731. 'MAPPED_REPRESENTATION') |
  7732. SIZEOF(QUERY( mi <* USEDIN(rm, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  7733. 'MAPPED_ITEM.'+
  7734. 'MAPPING_SOURCE') |
  7735. SIZEOF(QUERY( rep <* using_representations (mi) |
  7736. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  7737. 'PRESENTATION_REPRESENTATION' IN
  7738. TYPEOF (rep))) > 0
  7739. )) > 0))
  7740. > 0);
  7741. END_ENTITY;
  7742. ENTITY presentation_set;
  7743. INVERSE
  7744. areas: SET [1:?] OF area_in_set FOR in_set;
  7745. END_ENTITY;
  7746. ENTITY presentation_size;
  7747. unit : presentation_size_assignment_select;
  7748. size : planar_box;
  7749. UNIQUE
  7750. UR1 : unit;
  7751. WHERE
  7752. WR1 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESENTATION_REPRESENTATION'
  7753. IN TYPEOF (SELF.unit)) AND
  7754. item_in_context (SELF.size,
  7755. SELF.unit\representation.context_of_items)
  7756. )
  7757. OR
  7758. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AREA_IN_SET'
  7759. IN TYPEOF (SELF.unit)) AND
  7760. (SIZEOF (QUERY ( ais <* SELF.unit\area_in_set.in_set.areas |
  7761. NOT item_in_context (SELF.size, ais.area\representation.
  7762. context_of_items) )) = 0));
  7763. END_ENTITY;
  7764. ENTITY presentation_style_assignment
  7765. SUBTYPE OF (founded_item);
  7766. styles : SET [1:?] OF presentation_style_select;
  7767. WHERE
  7768. WR1 : SIZEOF (QUERY (style1 <* SELF.styles |
  7769. NOT (SIZEOF (QUERY (style2 <* (SELF.styles - style1) |
  7770. NOT ((TYPEOF (style1) <> TYPEOF (style2)) OR
  7771. (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  7772. 'SURFACE_STYLE_USAGE',
  7773. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  7774. 'EXTERNALLY_DEFINED_STYLE'] *
  7775. TYPEOF (style1)) = 1)
  7776. ))) = 0
  7777. ))) = 0;
  7778. WR2 : SIZEOF (QUERY (style1 <* SELF.styles |
  7779. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN
  7780. TYPEOF(style1)
  7781. )) <= 2;
  7782. WR3 : SIZEOF (QUERY (style1 <* SELF.styles |
  7783. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (style1)) AND
  7784. (SIZEOF (QUERY (style2 <* (SELF.styles - style1) |
  7785. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF (style2)) AND
  7786. ((style1\surface_style_usage.side = both) OR
  7787. (style2\surface_style_usage.side = both) OR
  7788. (style1\surface_style_usage.side = style2\surface_style_usage.side)) )) > 0))) = 0;
  7789. END_ENTITY;
  7790. ENTITY presentation_style_by_context
  7791. SUBTYPE OF (presentation_style_assignment);
  7792. style_context : style_context_select;
  7793. END_ENTITY;
  7794. ENTITY presentation_view
  7795. SUBTYPE OF (presentation_representation);
  7796. END_ENTITY;
  7797. ENTITY presented_item
  7798. ABSTRACT SUPERTYPE;
  7799. END_ENTITY;
  7800. ENTITY presented_item_representation;
  7801. presentation : presentation_representation_select;
  7802. item : presented_item;
  7803. END_ENTITY;
  7804. ENTITY pressure_measure_with_unit
  7805. SUBTYPE OF (measure_with_unit);
  7806. WHERE
  7807. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESSURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  7808. END_ENTITY;
  7809. ENTITY pressure_unit
  7810. SUBTYPE OF (derived_unit);
  7811. WHERE
  7812. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.pascal);
  7813. END_ENTITY;
  7814. ENTITY procedural_representation
  7815. SUBTYPE OF (representation);
  7816. SELF\representation.items : SET [1:?] OF procedural_representation_sequence;
  7817. END_ENTITY;
  7818. ENTITY procedural_representation_sequence
  7819. SUBTYPE OF (representation_item);
  7820. elements : LIST [1:?] OF representation_item;
  7821. suppressed_items : SET [0:?] OF representation_item;
  7822. rationale : text;
  7823. WHERE
  7824. WR1 : SIZEOF(QUERY(q <* suppressed_items | NOT (q IN elements))) = 0;
  7825. END_ENTITY;
  7826. ENTITY procedural_shape_representation
  7827. SUBTYPE OF (procedural_representation, shape_representation);
  7828. SELF\representation.items : SET [1:?] OF procedural_shape_representation_sequence;
  7829. END_ENTITY;
  7830. ENTITY procedural_shape_representation_sequence
  7831. SUBTYPE OF (geometric_representation_item, procedural_representation_sequence);
  7832. WHERE
  7833. WR1 : SIZEOF(QUERY(q <* SELF\procedural_representation_sequence.elements
  7834. | NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION_ITEM'
  7835. IN TYPEOF(q)))) = 0;
  7836. END_ENTITY;
  7837. ENTITY product;
  7838. id : identifier;
  7839. name : label;
  7840. description : OPTIONAL text;
  7841. frame_of_reference : SET [1:?] OF product_context;
  7842. END_ENTITY;
  7843. ENTITY product_category;
  7844. name : label;
  7845. description : OPTIONAL text;
  7846. DERIVE
  7847. id : identifier := get_id_value(SELF);
  7848. WHERE
  7849. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
  7850. END_ENTITY;
  7851. ENTITY product_class
  7852. SUBTYPE OF (product_concept, characterized_object);
  7853. END_ENTITY;
  7854. ENTITY product_concept;
  7855. id : identifier;
  7856. name : label;
  7857. description : OPTIONAL text;
  7858. market_context : product_concept_context;
  7859. UNIQUE
  7860. UR1 : id;
  7861. END_ENTITY;
  7862. ENTITY product_concept_context
  7863. SUBTYPE OF (application_context_element);
  7864. market_segment_type : label;
  7865. END_ENTITY;
  7866. ENTITY product_concept_feature;
  7867. id : identifier;
  7868. name : label;
  7869. description : OPTIONAL text;
  7870. END_ENTITY;
  7871. ENTITY product_concept_feature_association;
  7872. name : label;
  7873. description : OPTIONAL text;
  7874. concept : product_concept;
  7875. feature : product_concept_feature;
  7876. END_ENTITY;
  7877. ENTITY product_concept_feature_category
  7878. SUBTYPE OF (group);
  7879. WHERE
  7880. WR1 : SIZEOF(QUERY
  7881. (
  7882. aga <* USEDIN( SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GROUP_ASSIGNMENT.ASSIGNED_GROUP' )
  7883. |
  7884. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'APPLIED_GROUP_ASSIGNMENT' IN TYPEOF(aga))
  7885. AND
  7886. (
  7887. ( aga.role.name <> 'specification category member' )
  7888. OR
  7889. ( SIZEOF(QUERY
  7890. (
  7891. i <* aga.items
  7892. |
  7893. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( i ) )
  7894. AND
  7895. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF (i))
  7896. )
  7897. ) <> SIZEOF (aga.items)
  7898. )
  7899. )
  7900. )
  7901. ) =0;
  7902. END_ENTITY;
  7903. ENTITY product_concept_feature_category_usage
  7904. SUBTYPE OF (group_assignment);
  7905. items : SET [1:?] OF category_usage_item;
  7906. SELF\group_assignment.assigned_group : product_concept_feature_category;
  7907. WHERE
  7908. WR1 : SELF.role.name IN [ 'mandatory category usage', 'optional category usage' ];
  7909. END_ENTITY;
  7910. ENTITY product_concept_relationship;
  7911. name : label;
  7912. description : OPTIONAL text;
  7913. relating_product_concept : product_concept;
  7914. related_product_concept : product_concept;
  7915. END_ENTITY;
  7916. ENTITY product_context
  7917. SUBTYPE OF (application_context_element);
  7918. discipline_type : label;
  7919. END_ENTITY;
  7920. ENTITY product_definition
  7921. SUPERTYPE OF (ONEOF (composite_assembly_definition, composite_assembly_sequence_definition, laminate_table, percentage_laminate_definition, percentage_ply_definition, ply_laminate_definition, ply_laminate_sequence_definition, thickness_laminate_definition));
  7922. id : identifier;
  7923. description : OPTIONAL text;
  7924. formation : product_definition_formation;
  7925. frame_of_reference : product_definition_context;
  7926. DERIVE
  7927. name : label := get_name_value(SELF);
  7928. WHERE
  7929. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
  7930. END_ENTITY;
  7931. ENTITY product_definition_context
  7932. SUBTYPE OF (application_context_element);
  7933. life_cycle_stage : label;
  7934. END_ENTITY;
  7935. ENTITY product_definition_context_association;
  7936. definition : product_definition;
  7937. frame_of_reference : product_definition_context;
  7938. role : product_definition_context_role;
  7939. END_ENTITY;
  7940. ENTITY product_definition_context_role;
  7941. name : label;
  7942. description : OPTIONAL text;
  7943. END_ENTITY;
  7944. ENTITY product_definition_effectivity
  7945. SUBTYPE OF (effectivity);
  7946. usage : product_definition_relationship;
  7947. WHERE
  7948. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY')) = 0;
  7949. END_ENTITY;
  7950. ENTITY product_definition_element_relationship
  7951. SUBTYPE OF (group);
  7952. END_ENTITY;
  7953. ENTITY product_definition_formation;
  7954. id : identifier;
  7955. description : OPTIONAL text;
  7956. of_product : product;
  7957. UNIQUE
  7958. UR1 : id, of_product;
  7959. END_ENTITY;
  7960. ENTITY product_definition_formation_relationship;
  7961. id : identifier;
  7962. name : label;
  7963. description : OPTIONAL text;
  7964. relating_product_definition_formation : product_definition_formation;
  7965. related_product_definition_formation : product_definition_formation;
  7966. END_ENTITY;
  7967. ENTITY product_definition_formation_with_specified_source
  7968. SUBTYPE OF (product_definition_formation);
  7969. make_or_buy : source;
  7970. END_ENTITY;
  7971. ENTITY product_definition_group_assignment
  7972. SUBTYPE OF (group_assignment);
  7973. items : SET [1:1] OF product_definition_or_product_definition_relationship;
  7974. SELF\group_assignment.assigned_group : product_definition_element_relationship;
  7975. END_ENTITY;
  7976. ENTITY product_definition_occurrence_relationship;
  7977. name : label;
  7978. description : OPTIONAL text;
  7979. occurrence : product_definition;
  7980. occurrence_usage : assembly_component_usage;
  7981. WHERE
  7982. WR1 : occurrence_usage.relating_product_definition :<>:
  7983. occurrence;
  7984. WR2 : occurrence_usage.related_product_definition :<>:
  7985. occurrence;
  7986. WR3 : occurrence.formation :=:
  7987. occurrence_usage.related_product_definition.formation;
  7988. END_ENTITY;
  7989. ENTITY product_definition_relationship;
  7990. id : identifier;
  7991. name : label;
  7992. description : OPTIONAL text;
  7993. relating_product_definition : product_definition;
  7994. related_product_definition : product_definition;
  7995. END_ENTITY;
  7996. ENTITY product_definition_shape
  7997. SUBTYPE OF (property_definition);
  7998. UNIQUE
  7999. UR1: SELF\property_definition.definition;
  8000. WHERE
  8001. WR1 : SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CHARACTERIZED_PRODUCT_DEFINITION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CHARACTERIZED_OBJECT'] * TYPEOF(SELF\property_definition.definition)) > 0;
  8002. END_ENTITY;
  8003. ENTITY product_definition_substitute;
  8004. description : OPTIONAL text;
  8005. context_relationship : product_definition_relationship;
  8006. substitute_definition : product_definition;
  8007. DERIVE
  8008. name : label := get_name_value(SELF);
  8009. WHERE
  8010. WR1 : context_relationship.related_product_definition :<>: substitute_definition;
  8011. WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
  8012. END_ENTITY;
  8013. ENTITY product_definition_usage
  8014. SUPERTYPE OF (ONEOF (make_from_usage_option, assembly_component_usage))
  8015. SUBTYPE OF (product_definition_relationship);
  8016. UNIQUE
  8017. UR1: SELF\product_definition_relationship.id,
  8018. SELF\product_definition_relationship.relating_product_definition,
  8019. SELF\product_definition_relationship.related_product_definition;
  8020. WHERE
  8021. WR1 : acyclic_product_definition_relationship
  8022. (SELF,
  8023. [SELF\product_definition_relationship.related_product_definition],
  8024. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_USAGE');
  8025. END_ENTITY;
  8026. ENTITY product_definition_with_associated_documents
  8027. SUBTYPE OF (product_definition);
  8028. documentation_ids : SET [1:?] OF document;
  8029. END_ENTITY;
  8030. ENTITY product_identification
  8031. SUBTYPE OF (configuration_item, characterized_object);
  8032. SELF\configuration_item.item_concept : product_class;
  8033. WHERE
  8034. WR1 : SIZEOF(QUERY
  8035. ( cd <* USEDIN ( SELF ,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONFIGURATION_DESIGN.CONFIGURATION' )
  8036. |
  8037. ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'PRODUCT_DEFINITION_FORMATION' IN TYPEOF ( cd. design ) )
  8038. AND
  8039. ( SIZEOF ( QUERY
  8040. (
  8041. prpc <* USEDIN ( cd. design\product_definition_formation.of_product , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')
  8042. |
  8043. prpc. name IN ['part' , 'raw material' , 'tool'] ) ) >0
  8044. )
  8045. )
  8046. ) <=1;
  8047. WR2 : NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'CONFIGURABLE_ITEM' IN TYPEOF( SELF ) )
  8048. XOR ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'PRODUCT_SPECIFICATION' IN TYPEOF ( SELF ) );
  8049. END_ENTITY;
  8050. ENTITY product_material_composition_relationship
  8051. SUBTYPE OF (product_definition_relationship);
  8052. class : label;
  8053. constituent_amount : SET [1:?] OF characterized_product_composition_value;
  8054. composition_basis : label;
  8055. determination_method : text;
  8056. END_ENTITY;
  8057. ENTITY product_related_product_category
  8058. SUBTYPE OF (product_category);
  8059. products : SET [1:?] OF product;
  8060. END_ENTITY;
  8061. ENTITY product_specification
  8062. SUBTYPE OF (product_identification, configurable_item);
  8063. END_ENTITY;
  8064. ENTITY projected_zone_definition
  8065. SUBTYPE OF (tolerance_zone_definition);
  8066. projection_end : shape_aspect;
  8067. projected_length : measure_with_unit;
  8068. WHERE
  8069. WR1 : ('NUMBER' IN TYPEOF
  8070. (projected_length\measure_with_unit.value_component)) AND
  8071. (projected_length\measure_with_unit.value_component > 0.0);
  8072. WR2 : (derive_dimensional_exponents
  8073. (projected_length\measure_with_unit.unit_component)=
  8074. dimensional_exponents(1,0,0,0,0,0,0));
  8075. END_ENTITY;
  8076. ENTITY projection_curve
  8077. SUBTYPE OF (annotation_curve_occurrence);
  8078. END_ENTITY;
  8079. ENTITY projection_directed_callout
  8080. SUBTYPE OF (draughting_callout);
  8081. WHERE
  8082. WR1 : SIZEOF(QUERY(p_1<*SELF\draughting_callout.contents |
  8083. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(p_1))))=1;
  8084. WR2 : SIZEOF(SELF\draughting_callout.contents) >=2;
  8085. END_ENTITY;
  8086. ENTITY promissory_usage_occurrence
  8087. SUBTYPE OF (assembly_component_usage);
  8088. END_ENTITY;
  8089. ENTITY property_definition;
  8090. name : label;
  8091. description : OPTIONAL text;
  8092. definition : characterized_definition;
  8093. DERIVE
  8094. id : identifier := get_id_value(SELF);
  8095. WHERE
  8096. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
  8097. END_ENTITY;
  8098. ENTITY property_definition_relationship;
  8099. name : label;
  8100. description : text;
  8101. relating_property_definition : property_definition;
  8102. related_property_definition : property_definition;
  8103. END_ENTITY;
  8104. ENTITY property_definition_representation;
  8105. definition : represented_definition;
  8106. used_representation : representation;
  8107. DERIVE
  8108. description : text := get_description_value(SELF);
  8109. name : label := get_name_value(SELF);
  8110. WHERE
  8111. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
  8112. WR2 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
  8113. END_ENTITY;
  8114. ENTITY qualified_representation_item
  8115. SUBTYPE OF (representation_item);
  8116. qualifiers : SET [1:?] OF value_qualifier;
  8117. WHERE
  8118. WR1 : SIZEOF(QUERY(temp <* qualifiers |
  8119. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRECISION_QUALIFIER'
  8120. IN TYPEOF(temp))) < 2;
  8121. END_ENTITY;
  8122. ENTITY qualitative_uncertainty
  8123. SUBTYPE OF (uncertainty_qualifier);
  8124. uncertainty_value : text;
  8125. END_ENTITY;
  8126. ENTITY quantified_assembly_component_usage
  8127. SUBTYPE OF (assembly_component_usage);
  8128. quantity : measure_with_unit;
  8129. WHERE
  8130. WR1 : (NOT ('NUMBER' IN TYPEOF(quantity.value_component)))
  8131. OR (quantity.value_component > 0);
  8132. END_ENTITY;
  8133. ENTITY quasi_uniform_curve
  8134. SUBTYPE OF (b_spline_curve);
  8135. END_ENTITY;
  8136. ENTITY quasi_uniform_surface
  8137. SUBTYPE OF (b_spline_surface);
  8138. END_ENTITY;
  8139. ENTITY radioactivity_measure_with_unit
  8140. SUBTYPE OF (measure_with_unit);
  8141. WHERE
  8142. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RADIOACTIVITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  8143. END_ENTITY;
  8144. ENTITY radioactivity_unit
  8145. SUBTYPE OF (derived_unit);
  8146. WHERE
  8147. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.becquerel);
  8148. END_ENTITY;
  8149. ENTITY radius_dimension
  8150. SUBTYPE OF (dimension_curve_directed_callout);
  8151. WHERE
  8152. WR1 : SIZEOF (QUERY (con <* SELF.contents |
  8153. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_CURVE' IN TYPEOF (con)))<=1;
  8154. END_ENTITY;
  8155. ENTITY range_characteristic
  8156. SUBTYPE OF (representation, descriptive_representation_item);
  8157. WHERE
  8158. WR1 : NOT(SELF\representation.name IN ['tolerance', 'minimum tolerance', 'maximum tolerance',
  8159. 'nominal tolerance', 'plus minus tolerance', 'symmetrical tolerance', 'statistical tolerance']);
  8160. END_ENTITY;
  8161. ENTITY ratio_measure_with_unit
  8162. SUBTYPE OF (measure_with_unit);
  8163. WHERE
  8164. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RATIO_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  8165. END_ENTITY;
  8166. ENTITY ratio_unit
  8167. SUBTYPE OF (named_unit);
  8168. WHERE
  8169. WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
  8170. END_ENTITY;
  8171. ENTITY rational_b_spline_curve
  8172. SUBTYPE OF (b_spline_curve);
  8173. weights_data : LIST [2:?] OF REAL;
  8174. DERIVE
  8175. weights : ARRAY [0:upper_index_on_control_points] OF REAL := list_to_array(weights_data,0,
  8176. upper_index_on_control_points);
  8177. WHERE
  8178. WR1 : SIZEOF(weights_data) = SIZEOF(SELF\b_spline_curve.
  8179. control_points_list);
  8180. WR2 : curve_weights_positive(SELF);
  8181. END_ENTITY;
  8182. ENTITY rational_b_spline_surface
  8183. SUBTYPE OF (b_spline_surface);
  8184. weights_data : LIST [2:?] OF LIST [2:?] OF REAL;
  8185. DERIVE
  8186. weights : ARRAY [0:u_upper] OF ARRAY [0:v_upper] OF REAL := make_array_of_array(weights_data,0,u_upper,0,v_upper);
  8187. WHERE
  8188. WR1 : (SIZEOF(weights_data) =
  8189. SIZEOF(SELF\b_spline_surface.control_points_list))
  8190. AND (SIZEOF(weights_data[1]) =
  8191. SIZEOF(SELF\b_spline_surface.control_points_list[1]));
  8192. WR2 : surface_weights_positive(SELF);
  8193. END_ENTITY;
  8194. ENTITY rational_representation_item
  8195. SUBTYPE OF (representation_item, slash_expression);
  8196. WHERE
  8197. WR1 : SIZEOF( QUERY( operand <* SELF\binary_generic_expression.operands |
  8198. NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INT_LITERAL' IN TYPEOF(operand)))) = 0;
  8199. END_ENTITY;
  8200. ENTITY real_literal
  8201. SUBTYPE OF (literal_number);
  8202. SELF\literal_number.the_value : REAL;
  8203. END_ENTITY;
  8204. ENTITY real_representation_item
  8205. SUBTYPE OF (representation_item, real_literal);
  8206. END_ENTITY;
  8207. ENTITY rectangular_composite_surface
  8208. SUBTYPE OF (bounded_surface);
  8209. segments : LIST [1:?] OF LIST [1:?] OF surface_patch;
  8210. DERIVE
  8211. n_u : INTEGER := SIZEOF(segments);
  8212. n_v : INTEGER := SIZEOF(segments[1]);
  8213. WHERE
  8214. WR1 : SIZEOF(QUERY (s <* segments | n_v <> SIZEOF (s))) = 0;
  8215. WR2 : constraints_rectangular_composite_surface(SELF);
  8216. END_ENTITY;
  8217. ENTITY rectangular_trimmed_surface
  8218. SUBTYPE OF (bounded_surface);
  8219. basis_surface : surface;
  8220. u1 : parameter_value;
  8221. u2 : parameter_value;
  8222. v1 : parameter_value;
  8223. v2 : parameter_value;
  8224. usense : BOOLEAN;
  8225. vsense : BOOLEAN;
  8226. WHERE
  8227. WR1 : u1 <> u2;
  8228. WR2 : v1 <> v2;
  8229. WR3 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(basis_surface))
  8230. AND (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF(basis_surface)))) OR
  8231. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF(basis_surface))
  8232. OR (usense = (u2 > u1));
  8233. WR4 : (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SPHERICAL_SURFACE' IN TYPEOF(basis_surface))
  8234. OR
  8235. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TOROIDAL_SURFACE' IN TYPEOF(basis_surface)))
  8236. OR (vsense = (v2 > v1));
  8237. END_ENTITY;
  8238. ENTITY referenced_modified_datum
  8239. SUBTYPE OF (datum_reference);
  8240. modifier : limit_condition;
  8241. END_ENTITY;
  8242. ENTITY relative_event_occurrence
  8243. SUBTYPE OF (event_occurrence);
  8244. base_event : event_occurrence;
  8245. offset : time_measure_with_unit;
  8246. END_ENTITY;
  8247. ENTITY rep_item_group
  8248. SUBTYPE OF (group, representation_item);
  8249. WHERE
  8250. WR1 : SIZEOF(USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRESENTATION_LAYER_ASSIGNMENT.' + 'ASSIGNED_ITEMS')) > 0;
  8251. WR2 : SIZEOF(QUERY(r <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION.' + 'ITEMS') | r.name = 'group representation')) > 0;
  8252. WR3 : SIZEOF(QUERY(ga <* USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GROUP_ASSIGNMENT.' + 'ASSIGNED_GROUP') | ga.role.name <> 'group membership')) = 0;
  8253. WR4 : SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'TOPOLOGICAL_REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'MAPPED_ITEM','AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'STYLED_ITEM'] * TYPEOF(SELF)) = 1;
  8254. END_ENTITY;
  8255. ENTITY reparametrised_composite_curve_segment
  8256. SUBTYPE OF (composite_curve_segment);
  8257. param_length : parameter_value;
  8258. WHERE
  8259. WR1 : param_length > 0.0;
  8260. END_ENTITY;
  8261. ENTITY representation;
  8262. name : label;
  8263. items : SET [1:?] OF representation_item;
  8264. context_of_items : representation_context;
  8265. DERIVE
  8266. description : text := get_description_value (SELF);
  8267. id : identifier := get_id_value (SELF);
  8268. WHERE
  8269. WR1 : SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  8270. 'ID_ATTRIBUTE.IDENTIFIED_ITEM'))
  8271. <= 1;
  8272. WR2 : SIZEOF (USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  8273. 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM'))
  8274. <= 1;
  8275. END_ENTITY;
  8276. ENTITY representation_context;
  8277. context_identifier : identifier;
  8278. context_type : text;
  8279. INVERSE
  8280. representations_in_context: SET [1:?] OF representation FOR context_of_items;
  8281. END_ENTITY;
  8282. ENTITY representation_item
  8283. SUPERTYPE OF (ONEOF (binary_representation_item, compound_representation_item, mapped_item, value_representation_item, mapped_item, styled_item, boolean_representation_item, date_representation_item, date_time_representation_item, integer_representation_item, logical_representation_item, rational_representation_item, real_representation_item));
  8284. name : label;
  8285. WHERE
  8286. WR1 : SIZEOF(using_representations(SELF)) > 0;
  8287. END_ENTITY;
  8288. ENTITY representation_item_relationship;
  8289. name : label;
  8290. description : OPTIONAL text;
  8291. relating_representation_item : representation_item;
  8292. related_representation_item : representation_item;
  8293. END_ENTITY;
  8294. ENTITY representation_map;
  8295. mapping_origin : representation_item;
  8296. mapped_representation : representation;
  8297. INVERSE
  8298. map_usage: SET [1:?] OF mapped_item FOR mapping_source;
  8299. WHERE
  8300. WR1 : item_in_context(SELF.mapping_origin,
  8301. SELF.mapped_representation.context_of_items);
  8302. END_ENTITY;
  8303. ENTITY representation_relationship;
  8304. name : label;
  8305. description : OPTIONAL text;
  8306. rep_1 : representation;
  8307. rep_2 : representation;
  8308. END_ENTITY;
  8309. ENTITY representation_relationship_with_transformation
  8310. SUBTYPE OF (representation_relationship);
  8311. transformation_operator : transformation;
  8312. WHERE
  8313. WR1 : SELF\representation_relationship.rep_1.context_of_items
  8314. :<>: SELF\representation_relationship.rep_2.context_of_items;
  8315. END_ENTITY;
  8316. ENTITY requirement_assigned_object
  8317. SUBTYPE OF (group_assignment);
  8318. items : SET [1:1] OF requirement_assigned_item;
  8319. SELF\group_assignment.assigned_group : requirement_assignment;
  8320. END_ENTITY;
  8321. ENTITY requirement_assignment
  8322. SUBTYPE OF (characterized_object, group);
  8323. END_ENTITY;
  8324. ENTITY requirement_source
  8325. SUBTYPE OF (group);
  8326. END_ENTITY;
  8327. ENTITY requirement_view_definition_relationship
  8328. SUBTYPE OF (product_definition_relationship);
  8329. END_ENTITY;
  8330. ENTITY resistance_measure_with_unit
  8331. SUBTYPE OF (measure_with_unit);
  8332. WHERE
  8333. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RESISTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  8334. END_ENTITY;
  8335. ENTITY resistance_unit
  8336. SUBTYPE OF (derived_unit);
  8337. WHERE
  8338. WR1 : derive_dimensional_exponents(SELF) = dimensions_for_si_unit (si_unit_name.ohm);
  8339. END_ENTITY;
  8340. ENTITY revolved_area_solid
  8341. SUBTYPE OF (swept_area_solid);
  8342. axis : axis1_placement;
  8343. angle : plane_angle_measure;
  8344. DERIVE
  8345. axis_line : line := representation_item('')||
  8346. geometric_representation_item()|| curve()||
  8347. line(axis.location, representation_item('')||
  8348. geometric_representation_item()||
  8349. vector(axis.z, 1.0));
  8350. END_ENTITY;
  8351. ENTITY revolved_face_solid
  8352. SUBTYPE OF (swept_face_solid);
  8353. axis : axis1_placement;
  8354. angle : plane_angle_measure;
  8355. DERIVE
  8356. axis_line : line := representation_item('')||
  8357. geometric_representation_item()|| curve()||
  8358. line(axis.location, representation_item('')||
  8359. geometric_representation_item()||
  8360. vector(axis.z, 1.0));
  8361. END_ENTITY;
  8362. ENTITY revolved_face_solid_with_trim_conditions
  8363. SUBTYPE OF (revolved_face_solid);
  8364. first_trim_condition : trim_condition_select;
  8365. second_trim_condition : trim_condition_select;
  8366. WHERE
  8367. WR1 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
  8368. IN TYPEOF(first_trim_condition))
  8369. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE'
  8370. IN TYPEOF(second_trim_condition)));
  8371. WR2 : NOT((('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_MEASURE'
  8372. IN TYPEOF(first_trim_condition)) AND
  8373. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_MEASURE'
  8374. IN TYPEOF(second_trim_condition))) AND
  8375. (first_trim_condition = second_trim_condition));
  8376. END_ENTITY;
  8377. ENTITY right_angular_wedge
  8378. SUBTYPE OF (geometric_representation_item);
  8379. position : axis2_placement_3d;
  8380. x : positive_length_measure;
  8381. y : positive_length_measure;
  8382. z : positive_length_measure;
  8383. ltx : length_measure;
  8384. WHERE
  8385. WR1 : ((0.0 <= ltx) AND (ltx < x));
  8386. END_ENTITY;
  8387. ENTITY right_circular_cone
  8388. SUBTYPE OF (geometric_representation_item);
  8389. position : axis1_placement;
  8390. height : positive_length_measure;
  8391. radius : length_measure;
  8392. semi_angle : plane_angle_measure;
  8393. WHERE
  8394. WR1 : radius >= 0.0;
  8395. END_ENTITY;
  8396. ENTITY right_circular_cylinder
  8397. SUBTYPE OF (geometric_representation_item);
  8398. position : axis1_placement;
  8399. height : positive_length_measure;
  8400. radius : positive_length_measure;
  8401. END_ENTITY;
  8402. ENTITY right_to_usage_association
  8403. SUBTYPE OF (action_method_relationship);
  8404. SELF\action_method_relationship.related_method : information_right;
  8405. SELF\action_method_relationship.relating_method : information_usage_right;
  8406. DERIVE
  8407. right_applied : information_right := SELF\action_method_relationship.related_method;
  8408. right_usage : information_usage_right := SELF\action_method_relationship.relating_method;
  8409. END_ENTITY;
  8410. ENTITY role_association;
  8411. role : object_role;
  8412. item_with_role : role_select;
  8413. END_ENTITY;
  8414. ENTITY roundness_tolerance
  8415. SUBTYPE OF (geometric_tolerance);
  8416. WHERE
  8417. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF));
  8418. END_ENTITY;
  8419. ENTITY row_representation_item
  8420. SUBTYPE OF (compound_representation_item);
  8421. SELF\compound_representation_item.item_element : list_representation_item;
  8422. END_ENTITY;
  8423. ENTITY row_value
  8424. SUBTYPE OF (compound_representation_item);
  8425. END_ENTITY;
  8426. ENTITY row_variable
  8427. SUBTYPE OF (abstract_variable);
  8428. END_ENTITY;
  8429. ENTITY rule_action
  8430. SUBTYPE OF (action);
  8431. END_ENTITY;
  8432. ENTITY rule_condition
  8433. SUBTYPE OF (atomic_formula);
  8434. END_ENTITY;
  8435. ENTITY rule_definition
  8436. SUBTYPE OF (rule_software_definition);
  8437. END_ENTITY;
  8438. ENTITY rule_set
  8439. SUBTYPE OF (rule_software_definition);
  8440. END_ENTITY;
  8441. ENTITY rule_set_group
  8442. SUBTYPE OF (rule_software_definition);
  8443. END_ENTITY;
  8444. ENTITY rule_software_definition
  8445. SUBTYPE OF (product_definition);
  8446. END_ENTITY;
  8447. ENTITY rule_superseded_assignment
  8448. SUBTYPE OF (action_assignment);
  8449. items : SET [1:?] OF rule_superseded_item;
  8450. END_ENTITY;
  8451. ENTITY rule_supersedence
  8452. SUBTYPE OF (rule_action);
  8453. END_ENTITY;
  8454. ENTITY ruled_surface_swept_area_solid
  8455. SUBTYPE OF (surface_curve_swept_area_solid);
  8456. WHERE
  8457. WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(SELF.reference_surface)) AND
  8458. (SELF.reference_surface\b_spline_surface.u_degree = 1);
  8459. WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(SELF.directrix)) OR
  8460. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(SELF.directrix\surface_curve.curve_3d))
  8461. AND
  8462. (SELF.directrix\surface_curve.curve_3d\b_spline_curve.degree =
  8463. SELF.reference_surface\b_spline_surface.v_degree));
  8464. END_ENTITY;
  8465. ENTITY runout_zone_definition
  8466. SUBTYPE OF (tolerance_zone_definition);
  8467. orientation : runout_zone_orientation;
  8468. END_ENTITY;
  8469. ENTITY runout_zone_orientation;
  8470. angle : measure_with_unit;
  8471. END_ENTITY;
  8472. ENTITY runout_zone_orientation_reference_direction
  8473. SUBTYPE OF (runout_zone_orientation);
  8474. orientation_defining_relationship : shape_aspect_relationship;
  8475. END_ENTITY;
  8476. ENTITY satisfied_requirement
  8477. SUBTYPE OF (group_assignment);
  8478. items : SET [1:1] OF product_definition;
  8479. SELF\group_assignment.assigned_group : satisfies_requirement;
  8480. END_ENTITY;
  8481. ENTITY satisfies_requirement
  8482. SUBTYPE OF (group);
  8483. END_ENTITY;
  8484. ENTITY satisfying_item
  8485. SUBTYPE OF (group_assignment);
  8486. items : SET [1:1] OF requirement_satisfaction_item;
  8487. SELF\group_assignment.assigned_group : satisfies_requirement;
  8488. END_ENTITY;
  8489. ENTITY scalar_variable
  8490. SUBTYPE OF (abstract_variable);
  8491. END_ENTITY;
  8492. ENTITY scattering_parameter
  8493. SUBTYPE OF (polar_complex_number_literal);
  8494. WHERE
  8495. WR1 : SIZEOF(TYPEOF(SELF) - (TYPEOF(SELF\polar_complex_number_literal ||
  8496. SELF\scattering_parameter))) = 0;
  8497. END_ENTITY;
  8498. ENTITY sculptured_solid
  8499. SUBTYPE OF (modified_solid);
  8500. sculpturing_element : generalized_surface_select;
  8501. positive_side : BOOLEAN;
  8502. END_ENTITY;
  8503. ENTITY seam_curve
  8504. SUBTYPE OF (surface_curve);
  8505. WHERE
  8506. WR1 : SIZEOF(SELF\surface_curve.associated_geometry) = 2;
  8507. WR2 : associated_surface(SELF\surface_curve.associated_geometry[1]) =
  8508. associated_surface(SELF\surface_curve.associated_geometry[2]);
  8509. WR3 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN
  8510. TYPEOF(SELF\surface_curve.associated_geometry[1]);
  8511. WR4 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN
  8512. TYPEOF(SELF\surface_curve.associated_geometry[2]);
  8513. END_ENTITY;
  8514. ENTITY security_classification;
  8515. name : label;
  8516. purpose : text;
  8517. security_level : security_classification_level;
  8518. END_ENTITY;
  8519. ENTITY security_classification_assignment
  8520. ABSTRACT SUPERTYPE;
  8521. assigned_security_classification : security_classification;
  8522. DERIVE
  8523. role : object_role := get_role(SELF);
  8524. WHERE
  8525. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
  8526. END_ENTITY;
  8527. ENTITY security_classification_level;
  8528. name : label;
  8529. END_ENTITY;
  8530. ENTITY serial_numbered_effectivity
  8531. SUBTYPE OF (effectivity);
  8532. effectivity_start_id : identifier;
  8533. effectivity_end_id : OPTIONAL identifier;
  8534. END_ENTITY;
  8535. ENTITY shape_aspect;
  8536. name : label;
  8537. description : OPTIONAL text;
  8538. of_shape : product_definition_shape;
  8539. product_definitional : LOGICAL;
  8540. DERIVE
  8541. id : identifier := get_id_value(SELF);
  8542. WHERE
  8543. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
  8544. END_ENTITY;
  8545. ENTITY shape_aspect_associativity
  8546. SUBTYPE OF (shape_aspect_relationship);
  8547. WHERE
  8548. WR1 : SELF.relating_shape_aspect.product_definitional;
  8549. WR2 : NOT (SELF.related_shape_aspect.product_definitional);
  8550. END_ENTITY;
  8551. ENTITY shape_aspect_deriving_relationship
  8552. SUBTYPE OF (shape_aspect_relationship);
  8553. WHERE
  8554. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DERIVED_SHAPE_ASPECT' IN
  8555. TYPEOF
  8556. (SELF\SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT);
  8557. END_ENTITY;
  8558. ENTITY shape_aspect_relationship;
  8559. name : label;
  8560. description : OPTIONAL text;
  8561. relating_shape_aspect : shape_aspect;
  8562. related_shape_aspect : shape_aspect;
  8563. DERIVE
  8564. id : identifier := get_id_value(SELF);
  8565. WHERE
  8566. WR1 : SIZEOF(USEDIN(SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
  8567. END_ENTITY;
  8568. ENTITY shape_definition_representation
  8569. SUBTYPE OF (property_definition_representation);
  8570. WHERE
  8571. WR1 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF.definition)) OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_DEFINITION' IN TYPEOF(SELF.definition.definition));
  8572. WR2 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(SELF.used_representation);
  8573. END_ENTITY;
  8574. ENTITY shape_dimension_representation
  8575. SUBTYPE OF (shape_representation);
  8576. WHERE
  8577. WR1 : SIZEOF (QUERY (temp <* SELF\representation.items |
  8578. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM'
  8579. IN TYPEOF (temp)))) = 0;
  8580. WR2 : SIZEOF (SELF\representation.items) <= 3;
  8581. WR3 : SIZEOF (QUERY (pos_mri <* QUERY (real_mri <*
  8582. SELF\representation.items | 'REAL' IN TYPEOF
  8583. (real_mri\measure_with_unit.value_component) ) |
  8584. NOT (pos_mri\measure_with_unit.value_component > 0.0 ))) = 0;
  8585. END_ENTITY;
  8586. ENTITY shape_feature_definition
  8587. SUBTYPE OF (characterized_object);
  8588. END_ENTITY;
  8589. ENTITY shape_representation
  8590. SUBTYPE OF (representation);
  8591. END_ENTITY;
  8592. ENTITY shape_representation_relationship
  8593. SUBTYPE OF (representation_relationship);
  8594. WHERE
  8595. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION' IN (TYPEOF(SELF\representation_relationship.rep_1) + TYPEOF(SELF\representation_relationship.rep_2));
  8596. END_ENTITY;
  8597. ENTITY shape_representation_with_parameters
  8598. SUBTYPE OF (shape_representation);
  8599. WHERE
  8600. WR1 : SIZEOF( QUERY( i <* SELF.items | SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLACEMENT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF(i)) = 1 )) = SIZEOF(SELF.items);
  8601. END_ENTITY;
  8602. ENTITY shell_based_surface_model
  8603. SUBTYPE OF (geometric_representation_item);
  8604. sbsm_boundary : SET [1:?] OF shell;
  8605. WHERE
  8606. WR1 : constraints_geometry_shell_based_surface_model(SELF);
  8607. END_ENTITY;
  8608. ENTITY shell_based_wireframe_model
  8609. SUBTYPE OF (geometric_representation_item);
  8610. sbwm_boundary : SET [1:?] OF shell;
  8611. WHERE
  8612. WR1 : constraints_geometry_shell_based_wireframe_model(SELF);
  8613. END_ENTITY;
  8614. ENTITY shell_based_wireframe_shape_representation
  8615. SUBTYPE OF (shape_representation);
  8616. WHERE
  8617. WR1 : SIZEOF (
  8618. QUERY ( it <* SELF.items| NOT ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF (it)) = 1) )) = 0;
  8619. WR2 : SIZEOF (
  8620. QUERY ( it <* SELF.items| ( SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' ] * TYPEOF (it)) = 1) )) >= 1;
  8621. WR3 : SIZEOF (
  8622. QUERY ( sbwm <*
  8623. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
  8624. QUERY ( ws <*
  8625. QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF (
  8626. QUERY ( eloop <*
  8627. QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF (
  8628. QUERY ( el <* eloop\path.edge_list| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_CURVE' IN TYPEOF (el.edge_element)) )) = 0) )) = 0) )) = 0) )) = 0;
  8629. WR4 : SIZEOF (
  8630. QUERY ( sbwm <*
  8631. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
  8632. QUERY ( ws <*
  8633. QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF (
  8634. QUERY ( eloop <*
  8635. QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF (
  8636. QUERY ( pline_el <*
  8637. QUERY ( el <* eloop\path.edge_list| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF (el.edge_element\edge_curve.edge_geometry)) )| NOT ( SIZEOF (pline_el.edge_element\edge_curve.edge_geometry\polyline.points) > 2) )) = 0) )) = 0) )) = 0) )) = 0;
  8638. WR5 : SIZEOF (
  8639. QUERY ( sbwm <*
  8640. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
  8641. QUERY ( ws <*
  8642. QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF (
  8643. QUERY ( eloop <*
  8644. QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF (
  8645. QUERY ( el <* eloop\path.edge_list| NOT valid_wireframe_edge_curve(el.edge_element\edge_curve.edge_geometry) )) = 0) )) = 0) )) = 0) )) = 0;
  8646. WR6 : SIZEOF (
  8647. QUERY ( sbwm <*
  8648. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
  8649. QUERY ( ws <*
  8650. QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF (
  8651. QUERY ( eloop <*
  8652. QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF (
  8653. QUERY ( el <* eloop\path.edge_list| NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (el.edge_element.edge_start)) AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (el.edge_element.edge_end))) )) = 0) )) = 0) )) = 0) )) = 0;
  8654. WR7 : SIZEOF (
  8655. QUERY ( sbwm <*
  8656. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
  8657. QUERY ( ws <*
  8658. QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF (
  8659. QUERY ( eloop <*
  8660. QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE_LOOP' IN TYPEOF (wsb)) )| NOT ( SIZEOF (
  8661. QUERY ( el <* eloop\path.edge_list| NOT (valid_wireframe_vertex_point(el.edge_element.edge_start\vertex_point.vertex_geometry) AND valid_wireframe_vertex_point(el.edge_element.edge_end\vertex_point.vertex_geometry)) )) = 0) )) = 0) )) = 0) )) = 0;
  8662. WR8 : SIZEOF (
  8663. QUERY ( sbwm <*
  8664. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
  8665. QUERY ( ws <*
  8666. QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF (
  8667. QUERY ( vloop <*
  8668. QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (wsb)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (vloop\vertex_loop.loop_vertex)) )) = 0) )) = 0) )) = 0;
  8669. WR9 : SIZEOF (
  8670. QUERY ( sbwm <*
  8671. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
  8672. QUERY ( ws <*
  8673. QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN TYPEOF (sb)) )| NOT ( SIZEOF (
  8674. QUERY ( vloop <*
  8675. QUERY ( wsb <* ws\wire_shell.wire_shell_extent| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_LOOP' IN TYPEOF (wsb)) )| NOT valid_wireframe_vertex_point(vloop\vertex_loop.loop_vertex\vertex_point.vertex_geometry) )) = 0) )) = 0) )) = 0;
  8676. WR10 : SIZEOF (
  8677. QUERY ( sbwm <*
  8678. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
  8679. QUERY ( vs <*
  8680. QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_SHELL' IN TYPEOF (sb)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_POINT' IN TYPEOF (vs\vertex_shell.vertex_shell_extent.loop_vertex)) )) = 0) )) = 0;
  8681. WR11 : SIZEOF (
  8682. QUERY ( sbwm <*
  8683. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF (it)) )| NOT ( SIZEOF (
  8684. QUERY ( vs <*
  8685. QUERY ( sb <* sbwm\shell_based_wireframe_model.sbwm_boundary| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_SHELL' IN TYPEOF (sb)) )| NOT valid_wireframe_vertex_point(vs\vertex_shell.vertex_shell_extent.loop_vertex\vertex_point.vertex_geometry) )) = 0) )) = 0;
  8686. WR12 : SIZEOF (
  8687. QUERY ( mi <*
  8688. QUERY ( it <* SELF.items| ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) )| NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF (mi\mapped_item.mapping_source.mapped_representation)) )) = 0;
  8689. WR13 : SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 3;
  8690. END_ENTITY;
  8691. ENTITY shelled_solid
  8692. SUPERTYPE OF (ONEOF (double_offset_shelled_solid, complex_shelled_solid))
  8693. SUBTYPE OF (modified_solid);
  8694. deleted_face_set : SET [1:?] OF face_surface;
  8695. thickness : length_measure;
  8696. WHERE
  8697. WR1 : thickness <> 0;
  8698. END_ENTITY;
  8699. ENTITY si_absorbed_dose_unit
  8700. SUBTYPE OF (absorbed_dose_unit, si_unit);
  8701. WHERE
  8702. WR1 : SELF\si_unit.name = si_unit_name.gray;
  8703. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8704. END_ENTITY;
  8705. ENTITY si_capacitance_unit
  8706. SUBTYPE OF (capacitance_unit, si_unit);
  8707. WHERE
  8708. WR1 : SELF\si_unit.name = si_unit_name.farad;
  8709. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8710. END_ENTITY;
  8711. ENTITY si_conductance_unit
  8712. SUBTYPE OF (conductance_unit, si_unit);
  8713. WHERE
  8714. WR1 : SELF\si_unit.name = si_unit_name.siemens;
  8715. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8716. END_ENTITY;
  8717. ENTITY si_dose_equivalent_unit
  8718. SUBTYPE OF (dose_equivalent_unit, si_unit);
  8719. WHERE
  8720. WR1 : SELF\si_unit.name = si_unit_name.sievert;
  8721. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8722. END_ENTITY;
  8723. ENTITY si_electric_charge_unit
  8724. SUBTYPE OF (electric_charge_unit, si_unit);
  8725. WHERE
  8726. WR1 : SELF\si_unit.name = si_unit_name.coulomb;
  8727. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8728. END_ENTITY;
  8729. ENTITY si_electric_potential_unit
  8730. SUBTYPE OF (electric_potential_unit, si_unit);
  8731. WHERE
  8732. WR1 : SELF\si_unit.name = si_unit_name.volt;
  8733. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8734. END_ENTITY;
  8735. ENTITY si_energy_unit
  8736. SUBTYPE OF (energy_unit, si_unit);
  8737. WHERE
  8738. WR1 : SELF\si_unit.name = si_unit_name.joule;
  8739. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8740. END_ENTITY;
  8741. ENTITY si_force_unit
  8742. SUBTYPE OF (force_unit, si_unit);
  8743. WHERE
  8744. WR1 : SELF\si_unit.name = si_unit_name.newton;
  8745. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8746. END_ENTITY;
  8747. ENTITY si_frequency_unit
  8748. SUBTYPE OF (frequency_unit, si_unit);
  8749. WHERE
  8750. WR1 : SELF\si_unit.name = si_unit_name.hertz;
  8751. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8752. END_ENTITY;
  8753. ENTITY si_illuminance_unit
  8754. SUBTYPE OF (illuminance_unit, si_unit);
  8755. WHERE
  8756. WR1 : SELF\si_unit.name = si_unit_name.lux;
  8757. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8758. END_ENTITY;
  8759. ENTITY si_inductance_unit
  8760. SUBTYPE OF (inductance_unit, si_unit);
  8761. WHERE
  8762. WR1 : SELF\si_unit.name = si_unit_name.henry;
  8763. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8764. END_ENTITY;
  8765. ENTITY si_magnetic_flux_density_unit
  8766. SUBTYPE OF (magnetic_flux_density_unit, si_unit);
  8767. WHERE
  8768. WR1 : SELF\si_unit.name = si_unit_name.tesla;
  8769. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8770. END_ENTITY;
  8771. ENTITY si_magnetic_flux_unit
  8772. SUBTYPE OF (magnetic_flux_unit, si_unit);
  8773. WHERE
  8774. WR1 : SELF\si_unit.name = si_unit_name.weber;
  8775. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8776. END_ENTITY;
  8777. ENTITY si_power_unit
  8778. SUBTYPE OF (power_unit, si_unit);
  8779. WHERE
  8780. WR1 : SELF\si_unit.name = si_unit_name.watt;
  8781. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8782. END_ENTITY;
  8783. ENTITY si_pressure_unit
  8784. SUBTYPE OF (pressure_unit, si_unit);
  8785. WHERE
  8786. WR1 : SELF\si_unit.name = si_unit_name.pascal;
  8787. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8788. END_ENTITY;
  8789. ENTITY si_radioactivity_unit
  8790. SUBTYPE OF (radioactivity_unit, si_unit);
  8791. WHERE
  8792. WR1 : SELF\si_unit.name = si_unit_name.becquerel;
  8793. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8794. END_ENTITY;
  8795. ENTITY si_resistance_unit
  8796. SUBTYPE OF (resistance_unit, si_unit);
  8797. WHERE
  8798. WR1 : SELF\si_unit.name = si_unit_name.ohm;
  8799. WR2 : NOT EXISTS(SELF\derived_unit.name);
  8800. END_ENTITY;
  8801. ENTITY si_unit
  8802. SUBTYPE OF (named_unit);
  8803. prefix : OPTIONAL si_prefix;
  8804. name : si_unit_name;
  8805. DERIVE
  8806. SELF\named_unit.dimensions : dimensional_exponents := dimensions_for_si_unit(name);
  8807. WHERE
  8808. WR1 : NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MASS_UNIT' IN TYPEOF(SELF)) AND
  8809. (SIZEOF(USEDIN(SELF,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DERIVED_UNIT_ELEMENT.UNIT')) > 0)) OR
  8810. (prefix = si_prefix.kilo);
  8811. END_ENTITY;
  8812. ENTITY simple_boolean_expression
  8813. ABSTRACT SUPERTYPE
  8814. SUBTYPE OF (boolean_expression, simple_generic_expression);
  8815. END_ENTITY;
  8816. ENTITY simple_clause
  8817. SUBTYPE OF (compound_representation_item);
  8818. END_ENTITY;
  8819. ENTITY simple_generic_expression
  8820. ABSTRACT SUPERTYPE OF (ONEOF (generic_literal, generic_variable))
  8821. SUBTYPE OF (generic_expression);
  8822. END_ENTITY;
  8823. ENTITY simple_numeric_expression
  8824. ABSTRACT SUPERTYPE
  8825. SUBTYPE OF (numeric_expression, simple_generic_expression);
  8826. END_ENTITY;
  8827. ENTITY slash_expression
  8828. SUBTYPE OF (binary_numeric_expression);
  8829. END_ENTITY;
  8830. ENTITY smeared_material_definition
  8831. SUBTYPE OF (zone_structural_makeup);
  8832. END_ENTITY;
  8833. ENTITY solid_angle_measure_with_unit
  8834. SUBTYPE OF (measure_with_unit);
  8835. WHERE
  8836. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_ANGLE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  8837. END_ENTITY;
  8838. ENTITY solid_angle_unit
  8839. SUBTYPE OF (named_unit);
  8840. WHERE
  8841. WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
  8842. END_ENTITY;
  8843. ENTITY solid_curve_font
  8844. SUBTYPE OF (pre_defined_curve_font);
  8845. END_ENTITY;
  8846. ENTITY solid_model
  8847. SUPERTYPE OF (ONEOF (csg_solid, manifold_solid_brep, swept_face_solid, swept_area_solid, swept_disk_solid, solid_replica))
  8848. SUBTYPE OF (geometric_representation_item);
  8849. END_ENTITY;
  8850. ENTITY solid_replica
  8851. SUBTYPE OF (solid_model);
  8852. parent_solid : solid_model;
  8853. transformation : cartesian_transformation_operator_3d;
  8854. WHERE
  8855. WR1 : acyclic_solid_replica(SELF, parent_solid);
  8856. WR2 : parent_solid\geometric_representation_item.dim = 3;
  8857. END_ENTITY;
  8858. ENTITY solid_with_angle_based_chamfer
  8859. SUBTYPE OF (solid_with_chamfered_edges);
  8860. offset_distance : positive_length_measure;
  8861. left_offset : BOOLEAN;
  8862. offset_angle : positive_plane_angle_measure;
  8863. END_ENTITY;
  8864. ENTITY solid_with_chamfered_edges
  8865. ABSTRACT SUPERTYPE OF (ONEOF (solid_with_single_offset_chamfer, solid_with_double_offset_chamfer, solid_with_angle_based_chamfer))
  8866. SUBTYPE OF (edge_blended_solid);
  8867. END_ENTITY;
  8868. ENTITY solid_with_circular_pattern
  8869. SUPERTYPE OF (solid_with_incomplete_circular_pattern)
  8870. SUBTYPE OF (solid_with_shape_element_pattern);
  8871. replicate_count : positive_integer;
  8872. angular_spacing : plane_angle_measure;
  8873. radial_alignment : BOOLEAN;
  8874. reference_point : point;
  8875. END_ENTITY;
  8876. ENTITY solid_with_circular_pocket
  8877. SUBTYPE OF (solid_with_pocket);
  8878. pocket_radius : positive_length_measure;
  8879. WHERE
  8880. WR1 : SELF\solid_with_pocket.floor_blend_radius <= pocket_radius;
  8881. END_ENTITY;
  8882. ENTITY solid_with_circular_protrusion
  8883. SUBTYPE OF (solid_with_protrusion);
  8884. protrusion_radius : positive_length_measure;
  8885. END_ENTITY;
  8886. ENTITY solid_with_conical_bottom_round_hole
  8887. SUBTYPE OF (solid_with_stepped_round_hole);
  8888. semi_apex_angle : positive_plane_angle_measure;
  8889. tip_radius : non_negative_length_measure;
  8890. WHERE
  8891. WR1 : tip_radius <
  8892. SELF\solid_with_stepped_round_hole.segment_radii[segments];
  8893. END_ENTITY;
  8894. ENTITY solid_with_constant_radius_edge_blend
  8895. SUBTYPE OF (edge_blended_solid);
  8896. radius : positive_length_measure;
  8897. END_ENTITY;
  8898. ENTITY solid_with_curved_slot
  8899. SUBTYPE OF (solid_with_slot);
  8900. slot_centreline : bounded_curve;
  8901. END_ENTITY;
  8902. ENTITY solid_with_depression
  8903. ABSTRACT SUPERTYPE OF ((solid_with_through_depression ANDOR ONEOF (solid_with_hole, solid_with_pocket, solid_with_slot, solid_with_groove)))
  8904. SUBTYPE OF (modified_solid_with_placed_configuration);
  8905. depth : positive_length_measure;
  8906. END_ENTITY;
  8907. ENTITY solid_with_double_offset_chamfer
  8908. SUBTYPE OF (solid_with_chamfered_edges);
  8909. left_offset_distance : positive_length_measure;
  8910. right_offset_distance : positive_length_measure;
  8911. END_ENTITY;
  8912. ENTITY solid_with_flat_bottom_round_hole
  8913. SUBTYPE OF (solid_with_stepped_round_hole);
  8914. fillet_radius : non_negative_length_measure;
  8915. WHERE
  8916. WR1 : fillet_radius <
  8917. SELF\solid_with_stepped_round_hole.segment_radii[segments];
  8918. END_ENTITY;
  8919. ENTITY solid_with_general_pocket
  8920. SUBTYPE OF (solid_with_pocket);
  8921. profile : positioned_sketch;
  8922. reference_point : point;
  8923. WHERE
  8924. WR1 : SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_BOUNDED_SURFACE',
  8925. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE'] * TYPEOF(profile.sketch_basis)) = 1;
  8926. WR2 : profile IN using_items(reference_point,[]);
  8927. END_ENTITY;
  8928. ENTITY solid_with_general_protrusion
  8929. SUBTYPE OF (solid_with_protrusion);
  8930. profile : positioned_sketch;
  8931. reference_point : point;
  8932. WHERE
  8933. WR1 : SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_BOUNDED_SURFACE',
  8934. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE'] * TYPEOF(profile.sketch_basis)) = 1;
  8935. WR2 : profile IN using_items(reference_point,[]);
  8936. END_ENTITY;
  8937. ENTITY solid_with_groove
  8938. SUBTYPE OF (solid_with_depression);
  8939. groove_radius : positive_length_measure;
  8940. groove_width : positive_length_measure;
  8941. draft_angle : plane_angle_measure;
  8942. floor_fillet_radius : non_negative_length_measure;
  8943. external_groove : BOOLEAN;
  8944. WHERE
  8945. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION'
  8946. IN TYPEOF(SELF));
  8947. END_ENTITY;
  8948. ENTITY solid_with_hole
  8949. ABSTRACT SUPERTYPE OF (solid_with_stepped_round_hole)
  8950. SUBTYPE OF (solid_with_depression);
  8951. END_ENTITY;
  8952. ENTITY solid_with_incomplete_circular_pattern
  8953. SUBTYPE OF (solid_with_circular_pattern);
  8954. omitted_instances : SET [1:?] OF positive_integer;
  8955. WHERE
  8956. WR1 : SIZEOF(omitted_instances) <
  8957. SELF\solid_with_circular_pattern.replicate_count;
  8958. WR2 : SIZEOF(QUERY(q <* omitted_instances | q >
  8959. SELF\solid_with_circular_pattern.replicate_count)) = 0;
  8960. END_ENTITY;
  8961. ENTITY solid_with_incomplete_rectangular_pattern
  8962. SUBTYPE OF (solid_with_rectangular_pattern);
  8963. omitted_instances : SET [1:?] OF LIST [2:2] OF positive_integer;
  8964. WHERE
  8965. WR1 : NOT([1,1] IN omitted_instances);
  8966. WR2 : SIZEOF(omitted_instances) <
  8967. ((SELF\solid_with_rectangular_pattern.row_count *
  8968. SELF\solid_with_rectangular_pattern.column_count) - 1);
  8969. WR3 : SIZEOF(QUERY(q <* omitted_instances |
  8970. ((q[1] > SELF\solid_with_rectangular_pattern.row_count) OR
  8971. (q[2] > SELF\solid_with_rectangular_pattern.column_count)))) = 0;
  8972. END_ENTITY;
  8973. ENTITY solid_with_pocket
  8974. ABSTRACT SUPERTYPE OF (ONEOF (solid_with_rectangular_pocket, solid_with_circular_pocket, solid_with_general_pocket))
  8975. SUBTYPE OF (solid_with_depression);
  8976. floor_blend_radius : non_negative_length_measure;
  8977. draft_angle : plane_angle_measure;
  8978. END_ENTITY;
  8979. ENTITY solid_with_protrusion
  8980. ABSTRACT SUPERTYPE OF (ONEOF (solid_with_circular_protrusion, solid_with_rectangular_protrusion, solid_with_general_protrusion))
  8981. SUBTYPE OF (modified_solid_with_placed_configuration);
  8982. protrusion_height : positive_length_measure;
  8983. protrusion_draft_angle : plane_angle_measure;
  8984. END_ENTITY;
  8985. ENTITY solid_with_rectangular_pattern
  8986. SUPERTYPE OF (solid_with_incomplete_rectangular_pattern)
  8987. SUBTYPE OF (solid_with_shape_element_pattern);
  8988. row_count : positive_integer;
  8989. column_count : positive_integer;
  8990. row_spacing : length_measure;
  8991. column_spacing : length_measure;
  8992. WHERE
  8993. WR1 : (row_count * column_count) > 1;
  8994. END_ENTITY;
  8995. ENTITY solid_with_rectangular_pocket
  8996. SUBTYPE OF (solid_with_pocket);
  8997. pocket_length : positive_length_measure;
  8998. pocket_width : positive_length_measure;
  8999. corner_radius : non_negative_length_measure;
  9000. WHERE
  9001. WR1 : (corner_radius < pocket_width/2)
  9002. AND (corner_radius < pocket_length/2);
  9003. END_ENTITY;
  9004. ENTITY solid_with_rectangular_protrusion
  9005. SUBTYPE OF (solid_with_protrusion);
  9006. protrusion_length : positive_length_measure;
  9007. protrusion_width : positive_length_measure;
  9008. protrusion_corner_radius : non_negative_length_measure;
  9009. WHERE
  9010. WR1 : (protrusion_corner_radius <= protrusion_width/2)
  9011. AND (protrusion_corner_radius <= protrusion_length/2);
  9012. END_ENTITY;
  9013. ENTITY solid_with_shape_element_pattern
  9014. ABSTRACT SUPERTYPE OF (ONEOF (solid_with_circular_pattern, solid_with_rectangular_pattern))
  9015. SUBTYPE OF (modified_solid_with_placed_configuration);
  9016. replicated_element : modified_solid_with_placed_configuration;
  9017. END_ENTITY;
  9018. ENTITY solid_with_single_offset_chamfer
  9019. SUBTYPE OF (solid_with_chamfered_edges);
  9020. offset_distance : positive_length_measure;
  9021. END_ENTITY;
  9022. ENTITY solid_with_slot
  9023. ABSTRACT SUPERTYPE OF ((ONEOF (solid_with_trapezoidal_section_slot, solid_with_tee_section_slot) AND ONEOF (solid_with_straight_slot, solid_with_curved_slot)))
  9024. SUBTYPE OF (solid_with_depression);
  9025. slot_width : positive_length_measure;
  9026. closed_ends : LIST [2:2] OF LOGICAL;
  9027. end_exit_faces : LIST [2:2] OF SET [0:?] OF face_surface;
  9028. WHERE
  9029. WR1 : NOT(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN
  9030. TYPEOF(SELF)) AND (closed_ends = [FALSE,FALSE]));
  9031. WR2 : NOT(((closed_ends[1] = TRUE) AND (SIZEOF(end_exit_faces[1]) <> 0))
  9032. OR ((closed_ends[2] = TRUE) AND (SIZEOF(end_exit_faces[2]) <> 0)));
  9033. END_ENTITY;
  9034. ENTITY solid_with_spherical_bottom_round_hole
  9035. SUBTYPE OF (solid_with_stepped_round_hole);
  9036. sphere_radius : positive_length_measure;
  9037. WHERE
  9038. WR1 : sphere_radius >=
  9039. SELF\solid_with_stepped_round_hole.segment_radii[segments];
  9040. END_ENTITY;
  9041. ENTITY solid_with_stepped_round_hole
  9042. SUPERTYPE OF ((solid_with_stepped_round_hole_and_conical_transitions ANDOR ONEOF (solid_with_flat_bottom_round_hole, solid_with_conical_bottom_round_hole, solid_with_spherical_bottom_round_hole)))
  9043. SUBTYPE OF (solid_with_hole);
  9044. segments : positive_integer;
  9045. segment_radii : LIST [1:segments] OF positive_length_measure;
  9046. segment_depths : LIST [1:segments] OF positive_length_measure;
  9047. DERIVE
  9048. SELF\solid_with_depression.depth : positive_length_measure := compute_total_depth(SELF);
  9049. WHERE
  9050. WR1 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION'
  9051. IN TYPEOF(SELF)) AND (SIZEOF(TYPEOF(SELF) *
  9052. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE',
  9053. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_SPHERICAL_BOTTOM_ROUND_HOLE',
  9054. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE'])
  9055. <> 0));
  9056. END_ENTITY;
  9057. ENTITY solid_with_stepped_round_hole_and_conical_transitions
  9058. SUBTYPE OF (solid_with_stepped_round_hole);
  9059. conical_transitions : SET [1:?] OF conical_stepped_hole_transition;
  9060. WHERE
  9061. WR1 : SIZEOF (conical_transitions) <=
  9062. (SELF\solid_with_stepped_round_hole.segments + 1);
  9063. WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION'
  9064. IN TYPEOF(SELF)) XOR (SIZEOF(conical_transitions) <=
  9065. SELF\solid_with_stepped_round_hole.segments);
  9066. WR3 : validate_countersink_radii(SELF);
  9067. END_ENTITY;
  9068. ENTITY solid_with_straight_slot
  9069. SUBTYPE OF (solid_with_slot);
  9070. slot_length : positive_length_measure;
  9071. END_ENTITY;
  9072. ENTITY solid_with_tee_section_slot
  9073. SUBTYPE OF (solid_with_slot);
  9074. tee_section_width : positive_length_measure;
  9075. collar_depth : positive_length_measure;
  9076. WHERE
  9077. WR1 : collar_depth < SELF\solid_with_depression.depth;
  9078. WR2 : tee_section_width > SELF\solid_with_slot.slot_width;
  9079. END_ENTITY;
  9080. ENTITY solid_with_through_depression
  9081. SUBTYPE OF (solid_with_depression);
  9082. exit_faces : SET [1:?] OF face_surface;
  9083. WHERE
  9084. WR1 : SIZEOF(TYPEOF(SELF) *
  9085. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_HOLE',
  9086. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_POCKET',
  9087. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_SLOT']) = 1;
  9088. END_ENTITY;
  9089. ENTITY solid_with_trapezoidal_section_slot
  9090. SUBTYPE OF (solid_with_slot);
  9091. draft_angle : plane_angle_measure;
  9092. floor_fillet_radius : non_negative_length_measure;
  9093. END_ENTITY;
  9094. ENTITY solid_with_variable_radius_edge_blend
  9095. SUBTYPE OF (edge_blended_solid, track_blended_solid);
  9096. point_list : LIST [2:?] OF point;
  9097. radius_list : LIST [2:?] OF positive_length_measure;
  9098. edge_function_list : LIST [1:?] OF blend_radius_variation_type;
  9099. WHERE
  9100. WR1 : SIZEOF(point_list) = SIZEOF(radius_list);
  9101. WR2 : SIZEOF(edge_function_list) = SIZEOF(radius_list) - 1;
  9102. WR3 : NOT((point_list[1] = point_list[HIINDEX(point_list)]) AND NOT
  9103. (radius_list[1] = radius_list[HIINDEX(radius_list)]));
  9104. END_ENTITY;
  9105. ENTITY source_for_requirement
  9106. SUBTYPE OF (group_assignment);
  9107. items : SET [1:1] OF requirement_source_item;
  9108. SELF\group_assignment.assigned_group : requirement_source;
  9109. END_ENTITY;
  9110. ENTITY sourced_requirement
  9111. SUBTYPE OF (group_assignment);
  9112. items : SET [1:1] OF product_definition;
  9113. SELF\group_assignment.assigned_group : requirement_source;
  9114. END_ENTITY;
  9115. ENTITY specification_definition
  9116. SUBTYPE OF (product_definition);
  9117. END_ENTITY;
  9118. ENTITY specified_higher_usage_occurrence
  9119. SUBTYPE OF (assembly_component_usage);
  9120. upper_usage : assembly_component_usage;
  9121. next_usage : next_assembly_usage_occurrence;
  9122. UNIQUE
  9123. UR1 : upper_usage, next_usage;
  9124. WHERE
  9125. WR1 : SELF :<>: upper_usage;
  9126. WR2 : SELF\product_definition_relationship.relating_product_definition
  9127. :=: upper_usage.relating_product_definition;
  9128. WR3 : SELF\product_definition_relationship.related_product_definition
  9129. :=: next_usage.related_product_definition;
  9130. WR4 : (upper_usage.related_product_definition :=:
  9131. next_usage.relating_product_definition) OR
  9132. (SIZEOF (QUERY (pdr <* USEDIN (upper_usage.related_product_definition,
  9133. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' +
  9134. 'RELATED_PRODUCT_DEFINITION') |
  9135. pdr.relating_product_definition :=:
  9136. next_usage.relating_product_definition)) = 1);
  9137. WR5 : SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE',
  9138. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SPECIFIED_HIGHER_USAGE_OCCURRENCE']
  9139. * TYPEOF(upper_usage)) = 1;
  9140. END_ENTITY;
  9141. ENTITY sphere
  9142. SUBTYPE OF (geometric_representation_item);
  9143. radius : positive_length_measure;
  9144. centre : point;
  9145. END_ENTITY;
  9146. ENTITY spherical_surface
  9147. SUBTYPE OF (elementary_surface);
  9148. radius : positive_length_measure;
  9149. END_ENTITY;
  9150. ENTITY standard_uncertainty
  9151. SUPERTYPE OF (expanded_uncertainty)
  9152. SUBTYPE OF (uncertainty_qualifier);
  9153. uncertainty_value : REAL;
  9154. END_ENTITY;
  9155. ENTITY start_request
  9156. SUBTYPE OF (action_request_assignment);
  9157. items : SET [1:?] OF start_request_item;
  9158. END_ENTITY;
  9159. ENTITY start_work
  9160. SUBTYPE OF (action_assignment);
  9161. items : SET [1:?] OF work_item;
  9162. END_ENTITY;
  9163. ENTITY straightness_tolerance
  9164. SUBTYPE OF (geometric_tolerance);
  9165. WHERE
  9166. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF));
  9167. END_ENTITY;
  9168. ENTITY structured_dimension_callout
  9169. SUBTYPE OF (draughting_callout);
  9170. WHERE
  9171. WR1 : SIZEOF (TYPEOF (SELF) *
  9172. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM_FEATURE_CALLOUT',
  9173. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DATUM_TARGET_CALLOUT',
  9174. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GEOMETRICAL_TOLERANCE_CALLOUT',
  9175. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LEADER_DIRECTED_CALLOUT',
  9176. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROJECTION_DIRECTED_CALLOUT',
  9177. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT']) = 0;
  9178. WR2 : SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents |
  9179. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  9180. IN TYPEOF (con))) |
  9181. NOT (ato.name IN
  9182. ['dimension value', 'tolerance value', 'unit text',
  9183. 'prefix text', 'suffix text']))) = 0;
  9184. WR3 : SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents |
  9185. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  9186. IN TYPEOF (con))) |
  9187. (ato.name = 'dimension value')
  9188. )) >= 1;
  9189. WR4 : SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  9190. 'DRAUGHTING_CALLOUT_RELATIONSHIP.' +
  9191. 'RELATING_DRAUGHTING_CALLOUT') |
  9192. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  9193. 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND
  9194. (dcr.name = 'prefix') )) <= 1;
  9195. WR5 : SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  9196. 'DRAUGHTING_CALLOUT_RELATIONSHIP.' +
  9197. 'RELATING_DRAUGHTING_CALLOUT') |
  9198. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  9199. 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND
  9200. (dcr.name = 'suffix') )) <= 1;
  9201. WR6 : NOT((SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents |
  9202. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  9203. IN TYPEOF(con)) ) |
  9204. (ato.name = 'prefix text')
  9205. )) > 0)) OR
  9206. (SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  9207. 'DRAUGHTING_CALLOUT_RELATIONSHIP.' +
  9208. 'RELATING_DRAUGHTING_CALLOUT') |
  9209. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  9210. 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND
  9211. (dcr.name = 'prefix') )) = 1);
  9212. WR7 : NOT(SIZEOF (QUERY (ato <* QUERY (con <* SELF.contents |
  9213. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'
  9214. IN TYPEOF(con))) |
  9215. (ato.name = 'suffix text')
  9216. )) > 0) OR
  9217. (SIZEOF (QUERY (dcr <* USEDIN (SELF, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  9218. 'DRAUGHTING_CALLOUT_RELATIONSHIP.' +
  9219. 'RELATING_DRAUGHTING_CALLOUT') |
  9220. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  9221. 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF (dcr)) AND
  9222. (dcr.name = 'suffix') )) = 1);
  9223. END_ENTITY;
  9224. ENTITY structured_text_composition
  9225. SUBTYPE OF (compound_representation_item);
  9226. END_ENTITY;
  9227. ENTITY structured_text_representation
  9228. SUBTYPE OF (representation);
  9229. SELF\representation.items : SET [1:?] OF string_representation_item_select;
  9230. END_ENTITY;
  9231. ENTITY styled_item
  9232. SUBTYPE OF (representation_item);
  9233. styles : SET [1:?] OF presentation_style_assignment;
  9234. item : representation_item;
  9235. WHERE
  9236. WR1 : (SIZEOF(SELF.styles) = 1)
  9237. XOR
  9238. (SIZEOF(QUERY(pres_style <* SELF.styles |
  9239. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  9240. 'PRESENTATION_STYLE_BY_CONTEXT' IN
  9241. TYPEOF(pres_style))
  9242. )) = 0);
  9243. END_ENTITY;
  9244. ENTITY subedge
  9245. SUBTYPE OF (edge);
  9246. parent_edge : edge;
  9247. END_ENTITY;
  9248. ENTITY subface
  9249. SUBTYPE OF (face);
  9250. parent_face : face;
  9251. WHERE
  9252. WR1 : NOT (mixed_loop_type_set(list_to_set(list_face_loops(SELF)) +
  9253. list_to_set(list_face_loops(parent_face))));
  9254. END_ENTITY;
  9255. ENTITY supplied_part_relationship
  9256. SUBTYPE OF (product_definition_relationship);
  9257. END_ENTITY;
  9258. ENTITY surface
  9259. SUPERTYPE OF (ONEOF (elementary_surface, swept_surface, bounded_surface, offset_surface, surface_replica))
  9260. SUBTYPE OF (geometric_representation_item);
  9261. END_ENTITY;
  9262. ENTITY surface_condition_callout
  9263. SUBTYPE OF (draughting_callout);
  9264. WHERE
  9265. WR1 : SIZEOF ( QUERY ( c <* SELF.contents | SIZEOF (
  9266. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'ANNOTATION_CURVE_OCCURRENCE' ,
  9267. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'ANNOTATION_SYMBOL_OCCURRENCE' ,
  9268. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'ANNOTATION_TEXT_OCCURRENCE']* TYPEOF
  9269. ( c ) ) <>1 ) ) =0;
  9270. END_ENTITY;
  9271. ENTITY surface_curve
  9272. SUPERTYPE OF ((ONEOF (intersection_curve, seam_curve) ANDOR bounded_surface_curve))
  9273. SUBTYPE OF (curve);
  9274. curve_3d : curve;
  9275. associated_geometry : LIST [1:2] OF pcurve_or_surface;
  9276. master_representation : preferred_surface_curve_representation;
  9277. DERIVE
  9278. basis_surface : SET [1:2] OF surface := get_basis_surface(SELF);
  9279. WHERE
  9280. WR1 : curve_3d.dim = 3;
  9281. WR2 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(associated_geometry[1])) OR
  9282. (master_representation <> pcurve_s1);
  9283. WR3 : ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(associated_geometry[2])) OR
  9284. (master_representation <> pcurve_s2);
  9285. WR4 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(curve_3d));
  9286. END_ENTITY;
  9287. ENTITY surface_curve_swept_area_solid
  9288. SUBTYPE OF (swept_area_solid);
  9289. directrix : curve;
  9290. start_param : REAL;
  9291. end_param : REAL;
  9292. reference_surface : surface;
  9293. WHERE
  9294. WR1 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF(directrix))) OR
  9295. (reference_surface IN (directrix\surface_curve.basis_surface));
  9296. END_ENTITY;
  9297. ENTITY surface_of_linear_extrusion
  9298. SUBTYPE OF (swept_surface);
  9299. extrusion_axis : vector;
  9300. END_ENTITY;
  9301. ENTITY surface_of_revolution
  9302. SUBTYPE OF (swept_surface);
  9303. axis_position : axis1_placement;
  9304. DERIVE
  9305. axis_line : line := representation_item('')||
  9306. geometric_representation_item()|| curve()||
  9307. line(axis_position.location, representation_item('')||
  9308. geometric_representation_item()||
  9309. vector(axis_position.z, 1.0));
  9310. END_ENTITY;
  9311. ENTITY surface_patch
  9312. SUBTYPE OF (founded_item);
  9313. parent_surface : bounded_surface;
  9314. u_transition : transition_code;
  9315. v_transition : transition_code;
  9316. u_sense : BOOLEAN;
  9317. v_sense : BOOLEAN;
  9318. INVERSE
  9319. using_surfaces: BAG [1:?] OF rectangular_composite_surface FOR segments;
  9320. WHERE
  9321. WR1 : (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_BOUNDED_SURFACE'
  9322. IN TYPEOF(parent_surface)));
  9323. END_ENTITY;
  9324. ENTITY surface_profile_tolerance
  9325. SUBTYPE OF (geometric_tolerance);
  9326. WHERE
  9327. WR1 : NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF)) OR ( SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3);
  9328. END_ENTITY;
  9329. ENTITY surface_rendering_properties;
  9330. rendered_colour : colour;
  9331. END_ENTITY;
  9332. ENTITY surface_replica
  9333. SUBTYPE OF (surface);
  9334. parent_surface : surface;
  9335. transformation : cartesian_transformation_operator_3d;
  9336. WHERE
  9337. WR1 : acyclic_surface_replica(SELF, parent_surface);
  9338. END_ENTITY;
  9339. ENTITY surface_side_style
  9340. SUBTYPE OF (founded_item);
  9341. name : label;
  9342. styles : SET [1:7] OF surface_style_element_select;
  9343. WHERE
  9344. WR1 : SIZEOF(QUERY( style1 <* SELF.styles |
  9345. SIZEOF(QUERY( style2 <* SELF.styles - style1 |
  9346. TYPEOF(style1) = TYPEOF(style2)
  9347. )) > 0
  9348. )) = 0;
  9349. END_ENTITY;
  9350. ENTITY surface_style_boundary
  9351. SUBTYPE OF (founded_item);
  9352. style_of_boundary : curve_or_render;
  9353. END_ENTITY;
  9354. ENTITY surface_style_control_grid
  9355. SUBTYPE OF (founded_item);
  9356. style_of_control_grid : curve_or_render;
  9357. END_ENTITY;
  9358. ENTITY surface_style_fill_area
  9359. SUBTYPE OF (founded_item);
  9360. fill_area : fill_area_style;
  9361. END_ENTITY;
  9362. ENTITY surface_style_parameter_line
  9363. SUBTYPE OF (founded_item);
  9364. style_of_parameter_lines : curve_or_render;
  9365. direction_counts : SET [1:2] OF direction_count_select;
  9366. WHERE
  9367. WR1 : (HIINDEX(SELF.direction_counts) = 1)
  9368. XOR
  9369. (TYPEOF(SELF.direction_counts[1]) <>
  9370. TYPEOF(SELF.direction_counts[2]));
  9371. END_ENTITY;
  9372. ENTITY surface_style_reflectance_ambient;
  9373. ambient_reflectance : REAL;
  9374. END_ENTITY;
  9375. ENTITY surface_style_reflectance_ambient_diffuse
  9376. SUBTYPE OF (surface_style_reflectance_ambient);
  9377. diffuse_reflectance : REAL;
  9378. END_ENTITY;
  9379. ENTITY surface_style_reflectance_ambient_diffuse_specular
  9380. SUBTYPE OF (surface_style_reflectance_ambient_diffuse);
  9381. specular_reflectance : REAL;
  9382. specular_exponent : REAL;
  9383. specular_colour : colour;
  9384. END_ENTITY;
  9385. ENTITY surface_style_rendering;
  9386. rendering_method : shading_surface_method;
  9387. surface_colour : colour;
  9388. END_ENTITY;
  9389. ENTITY surface_style_rendering_with_properties
  9390. SUBTYPE OF (surface_style_rendering);
  9391. properties : SET [1:2] OF rendering_properties_select;
  9392. WHERE
  9393. WR1 : (HIINDEX(SELF.properties) = 1)
  9394. XOR
  9395. (TYPEOF(SELF.properties[1]) <> TYPEOF(SELF.properties[2]));
  9396. END_ENTITY;
  9397. ENTITY surface_style_segmentation_curve
  9398. SUBTYPE OF (founded_item);
  9399. style_of_segmentation_curve : curve_or_render;
  9400. END_ENTITY;
  9401. ENTITY surface_style_silhouette
  9402. SUBTYPE OF (founded_item);
  9403. style_of_silhouette : curve_or_render;
  9404. END_ENTITY;
  9405. ENTITY surface_style_transparent;
  9406. transparency : REAL;
  9407. WHERE
  9408. WR1 : {0.0 <= transparency <= 1.0};
  9409. END_ENTITY;
  9410. ENTITY surface_style_usage
  9411. SUBTYPE OF (founded_item);
  9412. side : surface_side;
  9413. style : surface_side_style_select;
  9414. END_ENTITY;
  9415. ENTITY surface_texture_representation
  9416. SUBTYPE OF (representation);
  9417. WHERE
  9418. WR1 : SIZEOF ( QUERY ( i <* SELF.items | SIZEOF (
  9419. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' ,
  9420. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE' , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  9421. 'DESCRIPTIVE_REPRESENTATION_ITEM']* TYPEOF ( i ) ) <>1 ) )
  9422. =0;
  9423. WR2 : ( SIZEOF ( QUERY ( i <* SELF.items | 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  9424. 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) ) =1 )
  9425. AND ( SIZEOF ( QUERY ( i <* SELF.items | (
  9426. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DESCRIPTIVE_REPRESENTATION_ITEM' IN
  9427. TYPEOF ( i ) ) AND ( i.name = 'measuring method' ) ) ) =1 );
  9428. WR3 : SIZEOF ( QUERY ( i <* SELF.items | SIZEOF (
  9429. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' ,
  9430. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 ) )
  9431. >0;
  9432. WR4 : ( SIZEOF ( USEDIN ( SELF ,
  9433. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+
  9434. 'REP_1' ) ) <=1 ) AND ( SIZEOF ( USEDIN ( SELF ,
  9435. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+
  9436. 'REP_2' ) ) =0 ) AND ( SIZEOF ( QUERY ( rr <* USEDIN ( SELF
  9437. , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+
  9438. 'REP_1' ) | rr. rep_2.name = 'measuring direction' ) ) =
  9439. SIZEOF ( USEDIN ( SELF ,
  9440. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'REPRESENTATION_RELATIONSHIP.'+
  9441. 'REP_1' ) ) );
  9442. WR5 : ( SIZEOF ( USEDIN ( SELF ,
  9443. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
  9444. 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr
  9445. <* USEDIN ( SELF ,
  9446. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
  9447. 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN (
  9448. pdr. definition ,
  9449. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+
  9450. 'DERIVED_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  9451. 'GENERAL_PROPERTY' IN TYPEOF ( gpa. base_definition ) ) AND
  9452. ( gpa. base_definition.name ='surface_condition' ) ) ) =1 )
  9453. ) =1 );
  9454. END_ENTITY;
  9455. ENTITY surfaced_open_shell
  9456. SUBTYPE OF (open_shell);
  9457. WHERE
  9458. WR1 : SIZEOF(QUERY(q <* SELF\connected_face_set.cfs_faces |
  9459. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_SURFACE' IN TYPEOF(q)))) = 0;
  9460. END_ENTITY;
  9461. ENTITY swept_area_solid
  9462. SUPERTYPE OF (ONEOF (revolved_area_solid, extruded_area_solid, surface_curve_swept_area_solid))
  9463. SUBTYPE OF (solid_model);
  9464. swept_area : curve_bounded_surface;
  9465. WHERE
  9466. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF(swept_area.basis_surface);
  9467. END_ENTITY;
  9468. ENTITY swept_disk_solid
  9469. SUBTYPE OF (solid_model);
  9470. directrix : curve;
  9471. radius : positive_length_measure;
  9472. inner_radius : OPTIONAL positive_length_measure;
  9473. start_param : REAL;
  9474. end_param : REAL;
  9475. WHERE
  9476. WR1 : directrix.dim = 3;
  9477. WR2 : (NOT EXISTS(inner_radius)) OR (radius > inner_radius);
  9478. END_ENTITY;
  9479. ENTITY swept_face_solid
  9480. SUPERTYPE OF (ONEOF (extruded_face_solid, revolved_face_solid))
  9481. SUBTYPE OF (solid_model);
  9482. swept_face : face_surface;
  9483. WHERE
  9484. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE' IN TYPEOF(swept_face.face_geometry);
  9485. END_ENTITY;
  9486. ENTITY swept_surface
  9487. SUPERTYPE OF (ONEOF (surface_of_linear_extrusion, surface_of_revolution))
  9488. SUBTYPE OF (surface);
  9489. swept_curve : curve;
  9490. END_ENTITY;
  9491. ENTITY symbol
  9492. SUBTYPE OF (representation_item);
  9493. END_ENTITY;
  9494. ENTITY symbol_colour;
  9495. colour_of_symbol : colour;
  9496. END_ENTITY;
  9497. ENTITY symbol_representation
  9498. SUBTYPE OF (representation);
  9499. END_ENTITY;
  9500. ENTITY symbol_representation_map
  9501. SUBTYPE OF (representation_map);
  9502. SELF\representation_map.mapped_representation : symbol_representation;
  9503. SELF\representation_map.mapping_origin : axis2_placement;
  9504. END_ENTITY;
  9505. ENTITY symbol_style
  9506. SUBTYPE OF (founded_item);
  9507. name : label;
  9508. style_of_symbol : symbol_style_select;
  9509. END_ENTITY;
  9510. ENTITY symbol_target
  9511. SUBTYPE OF (geometric_representation_item);
  9512. placement : axis2_placement;
  9513. x_scale : positive_ratio_measure;
  9514. y_scale : positive_ratio_measure;
  9515. END_ENTITY;
  9516. ENTITY symmetric_shape_aspect
  9517. SUBTYPE OF (shape_aspect);
  9518. INVERSE
  9519. basis_relationships: SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect;
  9520. WHERE
  9521. WR1 : SIZEOF (QUERY (x<*SELF\symmetric_shape_aspect.basis_relationships |
  9522. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CENTRE_OF_SYMMETRY' IN TYPEOF
  9523. (x\shape_aspect_relationship.related_shape_aspect)))>=1;
  9524. END_ENTITY;
  9525. ENTITY symmetry_tolerance
  9526. SUBTYPE OF (geometric_tolerance_with_datum_reference);
  9527. WHERE
  9528. WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 3;
  9529. END_ENTITY;
  9530. ENTITY table_representation_item
  9531. SUBTYPE OF (compound_representation_item);
  9532. WHERE
  9533. WR1 : SIZEOF(QUERY(itet <* SELF\compound_representation_item.item_element |
  9534. NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ROW_REPRESENTATION_ITEM' IN TYPEOF(itet))
  9535. )) = 0;
  9536. END_ENTITY;
  9537. ENTITY tactile_appearance_representation
  9538. SUBTYPE OF (representation);
  9539. WHERE
  9540. WR1 : SIZEOF ( QUERY ( i <* SELF.items | SIZEOF (
  9541. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' ,
  9542. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) <>1 )) =0;
  9543. WR2 : SIZEOF ( QUERY ( i <* SELF.items | name ='depth' ) ) <=1;
  9544. WR3 : ( SIZEOF ( USEDIN ( SELF ,
  9545. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
  9546. 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr
  9547. <* USEDIN ( SELF ,
  9548. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
  9549. 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN (
  9550. pdr. definition ,
  9551. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+
  9552. 'DERIVED_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  9553. 'GENERAL_PROPERTY' IN TYPEOF ( gpa. base_definition ) ) AND
  9554. ( gpa. base_definition.name ='surface_condition' ) ) ) =1 )) =1 );
  9555. END_ENTITY;
  9556. ENTITY tagged_text_format
  9557. SUBTYPE OF (representation_context);
  9558. END_ENTITY;
  9559. ENTITY tagged_text_item
  9560. SUBTYPE OF (descriptive_representation_item);
  9561. END_ENTITY;
  9562. ENTITY tangent
  9563. SUBTYPE OF (derived_shape_aspect);
  9564. WHERE
  9565. WR1 : SIZEOF (SELF\derived_shape_aspect.deriving_relationships)= 1;
  9566. END_ENTITY;
  9567. ENTITY terminator_symbol
  9568. SUBTYPE OF (annotation_symbol_occurrence);
  9569. annotated_curve : annotation_curve_occurrence;
  9570. END_ENTITY;
  9571. ENTITY text_font;
  9572. id : identifier;
  9573. name : label;
  9574. description : text;
  9575. INVERSE
  9576. glyphs: SET [1:?] OF character_glyph_font_usage FOR font;
  9577. END_ENTITY;
  9578. ENTITY text_font_family;
  9579. id : identifier;
  9580. name : label;
  9581. description : text;
  9582. INVERSE
  9583. fonts: SET [1:?] OF text_font_in_family FOR family;
  9584. END_ENTITY;
  9585. ENTITY text_font_in_family;
  9586. font : text_font;
  9587. family : text_font_family;
  9588. END_ENTITY;
  9589. ENTITY text_literal
  9590. SUBTYPE OF (geometric_representation_item);
  9591. literal : presentable_text;
  9592. placement : axis2_placement;
  9593. alignment : text_alignment;
  9594. path : text_path;
  9595. font : font_select;
  9596. END_ENTITY;
  9597. ENTITY text_literal_with_associated_curves
  9598. SUBTYPE OF (text_literal);
  9599. associated_curves : SET [1:?] OF curve;
  9600. END_ENTITY;
  9601. ENTITY text_literal_with_blanking_box
  9602. SUBTYPE OF (text_literal);
  9603. blanking : planar_box;
  9604. END_ENTITY;
  9605. ENTITY text_literal_with_delineation
  9606. SUBTYPE OF (text_literal);
  9607. delineation : text_delineation;
  9608. END_ENTITY;
  9609. ENTITY text_literal_with_extent
  9610. SUBTYPE OF (text_literal);
  9611. extent : planar_extent;
  9612. END_ENTITY;
  9613. ENTITY text_string_representation
  9614. SUBTYPE OF (representation);
  9615. SELF\representation.items : SET [1:?] OF text_string_representation_item;
  9616. WHERE
  9617. WR1 : SIZEOF (
  9618. QUERY (item <* SELF\representation.items |
  9619. NOT (SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL',
  9620. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT',
  9621. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT_CHARACTER',
  9622. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEFINED_CHARACTER_GLYPH',
  9623. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'] *
  9624. TYPEOF (item)) = 0)
  9625. )) >= 1;
  9626. WR2 : SIZEOF (
  9627. QUERY (a2p <*
  9628. QUERY (item <* SELF\representation.items |
  9629. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF (item)) |
  9630. NOT ((SIZEOF (
  9631. QUERY (at <*
  9632. QUERY (item <* SELF\representation.items |
  9633. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  9634. 'ANNOTATION_TEXT' IN TYPEOF (item)) |
  9635. (at\mapped_item.mapping_target :=: a2p))) >= 1) OR
  9636. (SIZEOF (
  9637. QUERY (atc <*
  9638. QUERY (item <* SELF\representation.items |
  9639. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  9640. 'ANNOTATION_TEXT_CHARACTER' IN TYPEOF (item)) |
  9641. (atc\mapped_item.mapping_target :=: a2p))) >= 1)
  9642. ))) = 0;
  9643. END_ENTITY;
  9644. ENTITY text_style
  9645. SUBTYPE OF (founded_item);
  9646. name : label;
  9647. character_appearance : character_style_select;
  9648. END_ENTITY;
  9649. ENTITY text_style_for_defined_font;
  9650. text_colour : colour;
  9651. END_ENTITY;
  9652. ENTITY text_style_with_box_characteristics
  9653. SUBTYPE OF (text_style);
  9654. characteristics : SET [1:4] OF box_characteristic_select;
  9655. WHERE
  9656. WR1 : SIZEOF( QUERY( c1 <* SELF.characteristics |
  9657. SIZEOF( QUERY( c2 <* SELF.characteristics - c1 |
  9658. TYPEOF (c1) = TYPEOF (c2)
  9659. )) > 0
  9660. )) = 0;
  9661. END_ENTITY;
  9662. ENTITY text_style_with_mirror
  9663. SUBTYPE OF (text_style);
  9664. mirror_placement : axis2_placement;
  9665. END_ENTITY;
  9666. ENTITY text_style_with_spacing
  9667. SUBTYPE OF (text_style);
  9668. character_spacing : character_spacing_select;
  9669. END_ENTITY;
  9670. ENTITY thermal_resistance_measure_with_unit
  9671. SUBTYPE OF (measure_with_unit);
  9672. WHERE
  9673. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.THERMAL_RESISTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  9674. END_ENTITY;
  9675. ENTITY thermal_resistance_unit
  9676. SUBTYPE OF (derived_unit);
  9677. WHERE
  9678. WR1 : derive_dimensional_exponents(SELF) =
  9679. dimensional_exponents ( -1.0, -1.0, -3.0, 0.0, 1.0, 0.0, 0.0 );
  9680. END_ENTITY;
  9681. ENTITY thermodynamic_temperature_measure_with_unit
  9682. SUBTYPE OF (measure_with_unit);
  9683. WHERE
  9684. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  9685. END_ENTITY;
  9686. ENTITY thermodynamic_temperature_unit
  9687. SUBTYPE OF (named_unit);
  9688. WHERE
  9689. WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 0.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 1.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
  9690. END_ENTITY;
  9691. ENTITY thickened_face_solid
  9692. SUBTYPE OF (solid_model);
  9693. base_element : generalized_surface_select;
  9694. offset1 : length_measure;
  9695. offset2 : length_measure;
  9696. WHERE
  9697. WR1 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF(base_element)) AND
  9698. (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_SURFACE' IN TYPEOF(base_element))));
  9699. WR2 : offset1 <> offset2;
  9700. END_ENTITY;
  9701. ENTITY thickness_laminate_definition
  9702. SUBTYPE OF (product_definition);
  9703. WHERE
  9704. WR1 : SIZEOF (QUERY (pdr <* USEDIN (SELF,
  9705. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  9706. 'PRODUCT_DEFINITION_RELATIONSHIP.' +
  9707. 'RELATING_PRODUCT_DEFINITION') |
  9708. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  9709. 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN
  9710. TYPEOF (pdr))) = 1;
  9711. END_ENTITY;
  9712. ENTITY thickness_laminate_table
  9713. SUBTYPE OF (zone_structural_makeup);
  9714. END_ENTITY;
  9715. ENTITY time_interval;
  9716. id : identifier;
  9717. name : label;
  9718. description : OPTIONAL text;
  9719. END_ENTITY;
  9720. ENTITY time_interval_assignment
  9721. ABSTRACT SUPERTYPE;
  9722. assigned_time_interval : time_interval;
  9723. role : time_interval_role;
  9724. END_ENTITY;
  9725. ENTITY time_interval_based_effectivity
  9726. SUBTYPE OF (effectivity);
  9727. effectivity_period : time_interval;
  9728. END_ENTITY;
  9729. ENTITY time_interval_relationship;
  9730. name : label;
  9731. description : OPTIONAL text;
  9732. relating_time_interval : time_interval;
  9733. related_time_interval : time_interval;
  9734. END_ENTITY;
  9735. ENTITY time_interval_role;
  9736. name : label;
  9737. description : OPTIONAL text;
  9738. END_ENTITY;
  9739. ENTITY time_interval_with_bounds
  9740. SUBTYPE OF (time_interval);
  9741. primary_bound : OPTIONAL date_time_or_event_occurrence;
  9742. secondary_bound : OPTIONAL date_time_or_event_occurrence;
  9743. duration : OPTIONAL time_measure_with_unit;
  9744. WHERE
  9745. WR1 : NOT (EXISTS(secondary_bound) AND EXISTS(duration));
  9746. WR2 : EXISTS(primary_bound) OR EXISTS(secondary_bound);
  9747. END_ENTITY;
  9748. ENTITY time_measure_with_unit
  9749. SUBTYPE OF (measure_with_unit);
  9750. WHERE
  9751. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TIME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  9752. END_ENTITY;
  9753. ENTITY time_unit
  9754. SUBTYPE OF (named_unit);
  9755. WHERE
  9756. WR1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit.dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions.time_exponent = 1.0) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.0);
  9757. END_ENTITY;
  9758. ENTITY tolerance_value;
  9759. lower_bound : measure_with_unit;
  9760. upper_bound : measure_with_unit;
  9761. DERIVE
  9762. lbvc : REAL := lower_bound\measure_with_unit.value_component;
  9763. ubvc : REAL := upper_bound\measure_with_unit.value_component;
  9764. WHERE
  9765. WR1 : ubvc > lbvc;
  9766. WR2 : upper_bound\measure_with_unit.unit_component =
  9767. lower_bound\measure_with_unit.unit_component;
  9768. END_ENTITY;
  9769. ENTITY tolerance_zone
  9770. SUBTYPE OF (shape_aspect);
  9771. defining_tolerance : SET [1:?] OF geometric_tolerance;
  9772. form : tolerance_zone_form;
  9773. END_ENTITY;
  9774. ENTITY tolerance_zone_definition
  9775. SUPERTYPE OF (ONEOF (projected_zone_definition, runout_zone_definition));
  9776. zone : tolerance_zone;
  9777. boundaries : SET [1:?] OF shape_aspect;
  9778. END_ENTITY;
  9779. ENTITY tolerance_zone_form;
  9780. name : label;
  9781. END_ENTITY;
  9782. ENTITY topological_representation_item
  9783. SUPERTYPE OF (ONEOF (vertex, edge, face_bound, face, vertex_shell, wire_shell, connected_edge_set, connected_face_set, (loop ANDOR path)))
  9784. SUBTYPE OF (representation_item);
  9785. END_ENTITY;
  9786. ENTITY toroidal_surface
  9787. SUBTYPE OF (elementary_surface);
  9788. major_radius : positive_length_measure;
  9789. minor_radius : positive_length_measure;
  9790. END_ENTITY;
  9791. ENTITY torus
  9792. SUBTYPE OF (geometric_representation_item);
  9793. position : axis1_placement;
  9794. major_radius : positive_length_measure;
  9795. minor_radius : positive_length_measure;
  9796. WHERE
  9797. WR1 : major_radius > minor_radius;
  9798. END_ENTITY;
  9799. ENTITY total_runout_tolerance
  9800. SUBTYPE OF (geometric_tolerance_with_datum_reference);
  9801. WHERE
  9802. WR1 : SIZEOF (SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2;
  9803. END_ENTITY;
  9804. ENTITY track_blended_solid
  9805. ABSTRACT SUPERTYPE OF (track_blended_solid_with_end_conditions)
  9806. SUBTYPE OF (edge_blended_solid);
  9807. WHERE
  9808. WR1 : check_continuous_edges(SELF\edge_blended_solid.blended_edges);
  9809. END_ENTITY;
  9810. ENTITY track_blended_solid_with_end_conditions
  9811. SUBTYPE OF (track_blended_solid);
  9812. end_conditions : LIST [2:2] OF blend_end_condition_select;
  9813. WHERE
  9814. WR1 : SIZEOF(TYPEOF(SELF) *
  9815. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_CONSTANT_RADIUS_EDGE_BLEND',
  9816. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_VARIABLE_RADIUS_EDGE_BLEND',
  9817. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_WITH_CHAMFERED_EDGES']) = 1;
  9818. WR2 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX' IN TYPEOF(end_conditions[1]))
  9819. AND ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX' IN TYPEOF(end_conditions[2])));
  9820. WR3 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX' IN TYPEOF(end_conditions[1]))
  9821. AND (NOT ((end_conditions[1]
  9822. :=: SELF\edge_blended_solid.blended_edges[1].edge_start)
  9823. XOR (end_conditions[1]
  9824. :=: SELF\edge_blended_solid.blended_edges[1].edge_end))));
  9825. WR4 : NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX' IN TYPEOF(end_conditions[2]))
  9826. AND (NOT ((end_conditions[2]
  9827. :=: SELF\edge_blended_solid.blended_edges[HIINDEX(
  9828. SELF\edge_blended_solid.blended_edges)].edge_start)
  9829. XOR (end_conditions[2]
  9830. :=: SELF\edge_blended_solid.blended_edges[HIINDEX(
  9831. SELF\edge_blended_solid.blended_edges)].edge_end))));
  9832. END_ENTITY;
  9833. ENTITY transformation_with_derived_angle
  9834. SUPERTYPE OF (ONEOF (draped_defined_transformation, laid_defined_transformation))
  9835. SUBTYPE OF (item_defined_transformation);
  9836. SELF\item_defined_transformation.transform_item_1 : angle_direction_reference_with_a2p3d_select;
  9837. SELF\item_defined_transformation.transform_item_2 : axis2_placement_3d;
  9838. DERIVE
  9839. orientation_angle : plane_angle_measure := derive_angle (
  9840. SELF\item_defined_transformation.transform_item_1,
  9841. SELF\item_defined_transformation.transform_item_2);
  9842. WHERE
  9843. WR1 : (SELF\item_defined_transformation.transform_item_1\
  9844. axis2_placement_3d.p[3].direction_ratios[1] =
  9845. SELF\item_defined_transformation.transform_item_2\
  9846. axis2_placement_3d.p[3].direction_ratios[1])
  9847. AND
  9848. (SELF\item_defined_transformation.transform_item_1\
  9849. axis2_placement_3d.p[3].direction_ratios[2] =
  9850. SELF\item_defined_transformation.transform_item_2\
  9851. axis2_placement_3d.p[3].direction_ratios[2])
  9852. AND
  9853. (SELF\item_defined_transformation.transform_item_1\
  9854. axis2_placement_3d.p[3].direction_ratios[3] =
  9855. SELF\item_defined_transformation.transform_item_2\
  9856. axis2_placement_3d.p[3].direction_ratios[3]);
  9857. END_ENTITY;
  9858. ENTITY trimmed_curve
  9859. SUBTYPE OF (bounded_curve);
  9860. basis_curve : curve;
  9861. trim_1 : SET [1:2] OF trimming_select;
  9862. trim_2 : SET [1:2] OF trimming_select;
  9863. sense_agreement : BOOLEAN;
  9864. master_representation : trimming_preference;
  9865. WHERE
  9866. WR1 : (HIINDEX(trim_1) = 1) OR (TYPEOF(trim_1[1]) <> TYPEOF(trim_1[2]));
  9867. WR2 : (HIINDEX(trim_2) = 1) OR (TYPEOF(trim_2[1]) <> TYPEOF(trim_2[2]));
  9868. END_ENTITY;
  9869. ENTITY two_direction_repeat_factor
  9870. SUBTYPE OF (one_direction_repeat_factor);
  9871. second_repeat_factor : vector;
  9872. END_ENTITY;
  9873. ENTITY type_qualifier;
  9874. name : label;
  9875. END_ENTITY;
  9876. ENTITY unary_generic_expression
  9877. ABSTRACT SUPERTYPE
  9878. SUBTYPE OF (generic_expression);
  9879. operand : generic_expression;
  9880. END_ENTITY;
  9881. ENTITY unary_numeric_expression
  9882. ABSTRACT SUPERTYPE
  9883. SUBTYPE OF (numeric_expression, unary_generic_expression);
  9884. SELF\unary_generic_expression.operand : numeric_expression;
  9885. END_ENTITY;
  9886. ENTITY uncertainty_assigned_representation
  9887. SUBTYPE OF (representation);
  9888. uncertainty : SET [1:?] OF uncertainty_measure_with_unit;
  9889. END_ENTITY;
  9890. ENTITY uncertainty_measure_with_unit
  9891. SUBTYPE OF (measure_with_unit);
  9892. name : label;
  9893. description : OPTIONAL text;
  9894. WHERE
  9895. WR1 : valid_measure_value (SELF\measure_with_unit.value_component);
  9896. END_ENTITY;
  9897. ENTITY uncertainty_qualifier
  9898. SUPERTYPE OF (ONEOF (standard_uncertainty, qualitative_uncertainty));
  9899. measure_name : label;
  9900. description : text;
  9901. END_ENTITY;
  9902. ENTITY uniform_curve
  9903. SUBTYPE OF (b_spline_curve);
  9904. END_ENTITY;
  9905. ENTITY uniform_resource_identifier
  9906. SUBTYPE OF (descriptive_representation_item);
  9907. END_ENTITY;
  9908. ENTITY uniform_surface
  9909. SUBTYPE OF (b_spline_surface);
  9910. END_ENTITY;
  9911. ENTITY usage_association
  9912. SUBTYPE OF (action_method_relationship);
  9913. SELF\action_method_relationship.related_method : information_usage_right;
  9914. SELF\action_method_relationship.relating_method : information_usage_right;
  9915. DERIVE
  9916. related : information_usage_right := SELF\action_method_relationship.related_method;
  9917. relating : information_usage_right := SELF\action_method_relationship.relating_method;
  9918. END_ENTITY;
  9919. ENTITY user_defined_curve_font
  9920. SUBTYPE OF (curve_style_font, mapped_item);
  9921. END_ENTITY;
  9922. ENTITY user_defined_marker
  9923. SUBTYPE OF (mapped_item, pre_defined_marker);
  9924. END_ENTITY;
  9925. ENTITY user_defined_terminator_symbol
  9926. SUBTYPE OF (mapped_item, pre_defined_symbol);
  9927. END_ENTITY;
  9928. ENTITY user_selected_elements
  9929. SUBTYPE OF (representation_item);
  9930. picked_items : SET [1:?] OF representation_item;
  9931. END_ENTITY;
  9932. ENTITY user_selected_shape_elements
  9933. SUBTYPE OF (user_selected_elements);
  9934. WHERE
  9935. WR1 : SIZEOF(QUERY(q <*
  9936. SELF\user_selected_elements.picked_items | NOT
  9937. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION_ITEM'
  9938. IN TYPEOF(q)))) = 0;
  9939. END_ENTITY;
  9940. ENTITY value_range
  9941. SUBTYPE OF (compound_representation_item);
  9942. WHERE
  9943. WR1 : ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'SET_REPRESENTATION_ITEM' IN TYPEOF ( item_element ) ) AND value_range_wr1 ( item_element );
  9944. WR2 : value_range_wr2 ( item_element );
  9945. WR3 : value_range_wr3 ( item_element );
  9946. END_ENTITY;
  9947. ENTITY value_representation_item
  9948. SUBTYPE OF (representation_item);
  9949. value_component : measure_value;
  9950. WHERE
  9951. WR1 : SIZEOF (QUERY (rep <* using_representations (SELF) |
  9952. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT'
  9953. IN TYPEOF (rep.context_of_items)
  9954. ))) = 0;
  9955. END_ENTITY;
  9956. ENTITY variable_semantics
  9957. ABSTRACT SUPERTYPE;
  9958. END_ENTITY;
  9959. ENTITY variational_representation_item
  9960. ABSTRACT SUPERTYPE OF (auxiliary_geometric_representation_item)
  9961. SUBTYPE OF (representation_item);
  9962. WHERE
  9963. WR1 : SIZEOF(QUERY(q <* using_representations(SELF) |
  9964. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VARIATIONAL_REPRESENTATION'
  9965. IN TYPEOF(q)))) = 0;
  9966. WR2 : SIZEOF(QUERY(q <* using_representations(SELF) |
  9967. NOT (SELF IN q.items))) = 0;
  9968. END_ENTITY;
  9969. ENTITY vector
  9970. SUBTYPE OF (geometric_representation_item);
  9971. orientation : direction;
  9972. magnitude : length_measure;
  9973. WHERE
  9974. WR1 : magnitude >= 0.0;
  9975. END_ENTITY;
  9976. ENTITY vector_style
  9977. SUBTYPE OF (curve_style, pre_defined_terminator_symbol);
  9978. END_ENTITY;
  9979. ENTITY velocity_measure_with_unit
  9980. SUBTYPE OF (measure_with_unit);
  9981. WHERE
  9982. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VELOCITY_UNIT' IN TYPEOF (SELF\measure_with_unit.unit_component);
  9983. END_ENTITY;
  9984. ENTITY velocity_unit
  9985. SUBTYPE OF (derived_unit);
  9986. WHERE
  9987. WR1 : derive_dimensional_exponents(SELF) =
  9988. dimensional_exponents ( 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0 );
  9989. END_ENTITY;
  9990. ENTITY versioned_action_request;
  9991. id : identifier;
  9992. version : label;
  9993. purpose : text;
  9994. description : OPTIONAL text;
  9995. END_ENTITY;
  9996. ENTITY vertex
  9997. SUBTYPE OF (topological_representation_item);
  9998. END_ENTITY;
  9999. ENTITY vertex_loop
  10000. SUBTYPE OF (loop);
  10001. loop_vertex : vertex;
  10002. END_ENTITY;
  10003. ENTITY vertex_point
  10004. SUBTYPE OF (vertex, geometric_representation_item);
  10005. vertex_geometry : point;
  10006. END_ENTITY;
  10007. ENTITY vertex_shell
  10008. SUBTYPE OF (topological_representation_item);
  10009. vertex_shell_extent : vertex_loop;
  10010. END_ENTITY;
  10011. ENTITY view_volume
  10012. SUBTYPE OF (founded_item);
  10013. projection_type : central_or_parallel;
  10014. projection_point : cartesian_point;
  10015. view_plane_distance : length_measure;
  10016. front_plane_distance : length_measure;
  10017. front_plane_clipping : BOOLEAN;
  10018. back_plane_distance : length_measure;
  10019. back_plane_clipping : BOOLEAN;
  10020. view_volume_sides_clipping : BOOLEAN;
  10021. view_window : planar_box;
  10022. END_ENTITY;
  10023. ENTITY visual_appearance_representation
  10024. SUBTYPE OF (representation);
  10025. WHERE
  10026. WR1 : ( {3<= SIZEOF ( SELF.items ) <=9} ) AND ( SIZEOF ( QUERY (
  10027. i <* items | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  10028. 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND (
  10029. i.name IN [ 'colour id' , 'colour name' , 'lustre' , 'pattern' , 'transparency', 'orientation'] ) )
  10030. ) + SIZEOF ( QUERY ( i <* items | ( SIZEOF (
  10031. ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'MEASURE_REPRESENTATION_ITEM' ,
  10032. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'VALUE_RANGE']* TYPEOF ( i ) ) =1 )
  10033. AND ( i.name IN ['refraction index' , 'opacity'] ) )
  10034. ) + SIZEOF ( QUERY ( i <* items | (
  10035. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'DOCUMENT_FILE' IN TYPEOF ( i ) )
  10036. AND ( i.name IN [ 'texture map' ] ) ) )
  10037. = SIZEOF ( SELF.items ) );
  10038. WR2 : SIZEOF ( QUERY ( i <* SELF.items | i.name = 'colour id' )) =1;
  10039. WR3 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='lustre' ) )=1;
  10040. WR4 : SIZEOF ( QUERY ( i <* SELF.items | i.name = 'colour name') ) <=1;
  10041. WR5 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='pattern' ) )<=1;
  10042. WR6 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='transparency') ) <=1;
  10043. WR7 : SIZEOF ( QUERY ( i <* SELF.items | i.name = 'texture map') ) <=1;
  10044. WR8 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='refraction index' ) )<=1;
  10045. WR9 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='opacity') ) <=1;
  10046. WR10 : SIZEOF ( QUERY ( i <* SELF.items | i.name ='orientation') ) <=1;
  10047. WR11 : ( SIZEOF ( USEDIN ( SELF ,
  10048. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
  10049. 'USED_REPRESENTATION' ) ) =1 ) AND ( SIZEOF ( QUERY ( pdr
  10050. <* USEDIN ( SELF ,
  10051. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'PROPERTY_DEFINITION_REPRESENTATION.'+
  10052. 'USED_REPRESENTATION' ) | SIZEOF ( QUERY ( gpa <* USEDIN (
  10053. pdr. definition ,
  10054. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+'GENERAL_PROPERTY_ASSOCIATION.'+
  10055. 'DERIVED_DEFINITION' ) | ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+
  10056. 'GENERAL_PROPERTY' IN TYPEOF ( gpa. base_definition ) ) AND
  10057. ( gpa. base_definition.name ='surface_condition' ) ) ) =1 )) =1 );
  10058. END_ENTITY;
  10059. ENTITY volume_measure_with_unit
  10060. SUBTYPE OF (measure_with_unit);
  10061. WHERE
  10062. WR1 : 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VOLUME_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component);
  10063. END_ENTITY;
  10064. ENTITY volume_unit
  10065. SUBTYPE OF (derived_unit);
  10066. WHERE
  10067. WR1 : derive_dimensional_exponents(SELF) =
  10068. dimensional_exponents ( 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 );
  10069. END_ENTITY;
  10070. ENTITY week_of_year_and_day_date
  10071. SUBTYPE OF (date);
  10072. week_component : week_in_year_number;
  10073. day_component : OPTIONAL day_in_week_number;
  10074. END_ENTITY;
  10075. ENTITY wire_shell
  10076. SUBTYPE OF (topological_representation_item);
  10077. wire_shell_extent : SET [1:?] OF loop;
  10078. WHERE
  10079. WR1 : NOT mixed_loop_type_set(wire_shell_extent);
  10080. END_ENTITY;
  10081. ENTITY year_month
  10082. SUBTYPE OF (date);
  10083. month_component : month_in_year_number;
  10084. END_ENTITY;
  10085. ENTITY zone_structural_makeup
  10086. SUPERTYPE OF (ONEOF ((smeared_material_definition AND thickness_laminate_table), (smeared_material_definition AND percentage_laminate_table), thickness_laminate_table, percentage_laminate_table, smeared_material_definition))
  10087. SUBTYPE OF (laminate_table);
  10088. END_ENTITY;
  10089. RULE alternative_solution_requires_solution_definition FOR (product_definition_formation);
  10090. LOCAL
  10091. solution_versions: SET OF product_definition_formation := [];
  10092. END_LOCAL;
  10093. solution_versions := QUERY( pdf <* product_definition_formation |
  10094. SIZEOF( QUERY( prpc <* USEDIN(pdf.of_product, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') |
  10095. prpc.name = 'alternative solution')) = 1);
  10096. WHERE
  10097. WR1 : SIZEOF( QUERY( pdf <* solution_versions |
  10098. SIZEOF( QUERY( pd <* USEDIN(pdf, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_DEFINITION.FORMATION') |
  10099. pd.frame_of_reference.name = 'alternative definition')) <> 1))= 0;
  10100. END_RULE;
  10101. RULE application_protocol_definition_required FOR (application_context);
  10102. WHERE
  10103. WR1 : SIZEOF( QUERY( ac <* application_context |
  10104. (SIZEOF (QUERY (apd <* USEDIN(ac,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.APPLICATION_PROTOCOL_DEFINITION.APPLICATION') |
  10105. apd.application_interpreted_model_schema_name = 'ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies'
  10106. )) > 0)
  10107. )) > 0;
  10108. END_RULE;
  10109. RULE breakdown_element_requires_product_definition FOR (product_definition_formation);
  10110. WHERE
  10111. WR1 : SIZEOF ( QUERY ( pdf <* product_definition_formation |
  10112. ( SIZEOF ( QUERY ( prpc <* USEDIN ( pdf.of_product ,
  10113. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) |
  10114. prpc.name = 'functionality' ) ) = 1 ) AND
  10115. ( SIZEOF ( QUERY ( pd <* USEDIN ( pdf ,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION.FORMATION') |
  10116. pd.frame_of_reference.name = 'functional definition' ) ) <1 ) ) ) = 0;
  10117. WR2 : SIZEOF ( QUERY ( pdf <* product_definition_formation |
  10118. ( SIZEOF ( QUERY ( prpc <* USEDIN ( pdf.of_product ,
  10119. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) |
  10120. prpc.name = 'conceptual design' ) ) = 1 ) AND
  10121. ( SIZEOF (QUERY ( pd <* USEDIN ( pdf , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION.FORMATION' ) |
  10122. pd.frame_of_reference.name = 'conceptual definition' ) ) <1) ) ) = 0;
  10123. END_RULE;
  10124. RULE compatible_dimension FOR (cartesian_point, direction, representation_context, geometric_representation_context);
  10125. WHERE
  10126. WR1 : SIZEOF(QUERY(x <* cartesian_point| SIZEOF(QUERY
  10127. (y <* geometric_representation_context | item_in_context(x,y) AND
  10128. (HIINDEX(x.coordinates) <> y.coordinate_space_dimension))) > 0 )) =0;
  10129. WR2 : SIZEOF(QUERY(x <* direction | SIZEOF( QUERY
  10130. (y <* geometric_representation_context | item_in_context(x,y) AND
  10131. (HIINDEX(x.direction_ratios) <> y.coordinate_space_dimension)))
  10132. > 0 )) = 0;
  10133. END_RULE;
  10134. RULE component_class_for_assembly_select FOR (composite_assembly_sequence_definition, next_assembly_usage_occurrence, product_related_product_category);
  10135. LOCAL
  10136. i,j,k : INTEGER :=0;
  10137. dkuhr : LOGICAL :=TRUE;
  10138. nnauo : INTEGER :=0;
  10139. nprpc : INTEGER :=0;
  10140. rp : product;
  10141. END_LOCAL;
  10142. REPEAT i:= LOINDEX (composite_assembly_sequence_definition) TO
  10143. HIINDEX (composite_assembly_sequence_definition);
  10144. nnauo := 0;
  10145. REPEAT j:= LOINDEX (next_assembly_usage_occurrence) TO
  10146. HIINDEX (next_assembly_usage_occurrence);
  10147. IF (composite_assembly_sequence_definition[i] =
  10148. next_assembly_usage_occurrence[j].relating_product_definition) THEN
  10149. rp := next_assembly_usage_occurrence[j].related_product_definition.
  10150. formation.of_product;
  10151. nprpc := 0;
  10152. REPEAT k:= LOINDEX (product_related_product_category) TO
  10153. HIINDEX (product_related_product_category);
  10154. IF ((rp IN product_related_product_category[k].products) AND
  10155. (product_related_product_category[k].name IN ['ply',
  10156. 'ply laminate', 'filament laminate', 'processed core',
  10157. 'composite assembly'])) THEN
  10158. nprpc := nprpc + 1;
  10159. END_IF;
  10160. END_REPEAT;
  10161. IF (nprpc = 1) THEN
  10162. nnauo := nnauo + 1;
  10163. ELSE
  10164. dkuhr := FALSE;
  10165. ESCAPE;
  10166. END_IF;
  10167. END_IF;
  10168. END_REPEAT;
  10169. IF (dkuhr = FALSE) THEN
  10170. ESCAPE;
  10171. END_IF;
  10172. IF(nnauo = 0) THEN
  10173. dkuhr := FALSE;
  10174. ESCAPE;
  10175. END_IF;
  10176. END_REPEAT;
  10177. WHERE
  10178. WR1 : dkuhr;
  10179. END_RULE;
  10180. RULE consistent_uncertainty FOR (global_uncertainty_assigned_context, qualified_representation_item, uncertainty_assigned_representation);
  10181. WHERE
  10182. WR1 : SIZEOF ( QUERY ( guac <* global_uncertainty_assigned_context |
  10183. SIZEOF ( QUERY ( u1 <* guac.uncertainty |
  10184. SIZEOF ( QUERY ( u2 <* guac.uncertainty | u2.name = u1.name ) ) >1 ) ) >0 ) ) = 0;
  10185. WR2 : SIZEOF ( QUERY ( uar <* uncertainty_assigned_representation |
  10186. SIZEOF ( QUERY ( u1<* uar.uncertainty |
  10187. SIZEOF ( QUERY ( u2 <* uar.uncertainty | u2.name = u1.name ) ) >1 ) ) >0 ) ) = 0;
  10188. WR3 : SIZEOF ( QUERY ( qri <* qualified_representation_item |
  10189. SIZEOF ( QUERY ( u1 <* qri.qualifiers |
  10190. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.UNCERTAINTY_QUALIFIER' IN TYPEOF ( u1 ) ) AND
  10191. ( SIZEOF ( QUERY ( u2 <* qri.qualifiers |
  10192. ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.UNCERTAINTY_QUALIFIER' IN TYPEOF ( u2 ) ) AND
  10193. ( u2\uncertainty_qualifier.measure_name = u1\uncertainty_qualifier.measure_name ) )
  10194. ) >1 ) ) ) >0 ) ) = 0;
  10195. END_RULE;
  10196. RULE constraint_definition_requires_constraint_category FOR (product_definition);
  10197. LOCAL
  10198. constraint_definitions: SET OF product_definition := [];
  10199. END_LOCAL;
  10200. constraint_definitions := QUERY( pd <* product_definition |
  10201. (pd.frame_of_reference.name = 'design constraint definition'));
  10202. WHERE
  10203. WR1 : SIZEOF ( QUERY ( pd <* constraint_definitions |
  10204. ( SIZEOF ( QUERY ( prpc <* USEDIN ( pd.formation.of_product ,
  10205. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) |
  10206. prpc. name ='requirement' ) ) =0 ) ) ) =0;
  10207. END_RULE;
  10208. RULE design_constraint_requires_product_definition FOR (product_definition_formation);
  10209. WHERE
  10210. WR1 : SIZEOF ( QUERY ( pdf <* product_definition_formation | (
  10211. SIZEOF ( QUERY ( prpc <* USEDIN ( pdf.of_product ,
  10212. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) |
  10213. prpc.name = 'requirement' ) ) >0 ) AND
  10214. ( SIZEOF ( QUERY ( pd <* USEDIN ( pdf , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION.FORMATION') |
  10215. pd.frame_of_reference.name = 'design constraint definition' ) ) <1 ) ) ) = 0;
  10216. END_RULE;
  10217. RULE draughting_model_items_constraint FOR (draughting_model);
  10218. WHERE
  10219. WR1 : SIZEOF(QUERY(dm <* draughting_model |
  10220. NOT(SIZEOF(QUERY(it1 <* dm\representation.items |
  10221. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_OCCURRENCE' IN TYPEOF(it1))
  10222. AND
  10223. NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DRAUGHTING_ANNOTATION_OCCURRENCE' IN TYPEOF(it1)))
  10224. )) = 0)
  10225. )) = 0;
  10226. WR2 : SIZEOF(QUERY(dm <* draughting_model |
  10227. NOT(SIZEOF(QUERY(it1 <* dm\representation.items |
  10228. (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF(it1))
  10229. AND
  10230. NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DRAUGHTING_ELEMENTS' IN TYPEOF(it1)))
  10231. )) = 0)
  10232. )) = 0;
  10233. END_RULE;
  10234. RULE external_version_assignments_are_valid FOR (applied_external_identification_assignment);
  10235. WHERE
  10236. WR1 : SIZEOF(QUERY(aia <* applied_external_identification_assignment |
  10237. NOT external_version_assignment_is_valid(aia)))=0;
  10238. END_RULE;
  10239. RULE material_for_coating_layer FOR (shape_aspect);
  10240. LOCAL
  10241. coating_layers: SET OF shape_aspect := [];
  10242. END_LOCAL;
  10243. coating_layers:= QUERY( r <* shape_aspect |
  10244. (r.name = 'coating layer') );
  10245. WHERE
  10246. WR1 : SIZEOF( QUERY( r <* coating_layers |
  10247. SIZEOF(USEDIN(r , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MATERIAL_DESIGNATION.DEFINITIONS'))<>1
  10248. )) = 0;
  10249. END_RULE;
  10250. RULE plib_property_reference_requires_name_scope FOR (externally_defined_general_property);
  10251. LOCAL
  10252. known_sourced_properties : SET OF externally_defined_general_property;
  10253. END_LOCAL;
  10254. known_sourced_properties := QUERY( edc <* externally_defined_general_property |
  10255. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'KNOWN_SOURCE' IN TYPEOF(edc.source) );
  10256. WHERE
  10257. WR1 : SIZEOF ( QUERY ( edgp <* known_sourced_properties |
  10258. ( SIZEOF ( QUERY ( edir <* USEDIN ( edgp, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATING_ITEM' )|
  10259. ( edir.name = 'name scope' ) AND
  10260. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EXTERNALLY_DEFINED_CLASS' IN TYPEOF ( edir.related_item ) ) AND
  10261. ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'KNOWN_SOURCE' IN TYPEOF ( edir.related_item.source ) ) ) ) <>1 ) ) ) = 0;
  10262. END_RULE;
  10263. RULE plib_property_reference_requires_version FOR (externally_defined_general_property);
  10264. LOCAL
  10265. plib_properties : SET OF externally_defined_general_property := [];
  10266. END_LOCAL;
  10267. plib_properties := QUERY ( edgp <* externally_defined_general_property |
  10268. ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'KNOWN_SOURCE' IN TYPEOF ( edgp.source ) ) AND
  10269. ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'KNOWN_SOURCE' + '.NAME' = 'ISO 13584 library' ) );
  10270. WHERE
  10271. WR1 : SIZEOF( QUERY( edgp <* plib_properties |
  10272. (SIZEOF( QUERY( edir <* USEDIN(edgp, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS') |
  10273. (edir.role.name = 'version') )) <> 1) )) = 0;
  10274. END_RULE;
  10275. RULE ply_reference FOR (ply_laminate_sequence_definition, next_assembly_usage_occurrence, product_related_product_category);
  10276. LOCAL
  10277. i,j,k : INTEGER;
  10278. dkuhr : LOGICAL := TRUE;
  10279. nnauo : INTEGER;
  10280. nprpc : INTEGER := 0;
  10281. rp : product;
  10282. END_LOCAL;
  10283. REPEAT i:= LOINDEX (ply_laminate_sequence_definition) TO
  10284. HIINDEX (ply_laminate_sequence_definition);
  10285. nnauo := 0;
  10286. REPEAT j:= LOINDEX (next_assembly_usage_occurrence) TO
  10287. HIINDEX (next_assembly_usage_occurrence);
  10288. IF (ply_laminate_sequence_definition[i] =
  10289. next_assembly_usage_occurrence[j].relating_product_definition) THEN
  10290. rp := next_assembly_usage_occurrence[j].related_product_definition.
  10291. formation.of_product;
  10292. nprpc := 0;
  10293. REPEAT k:= LOINDEX (product_related_product_category) TO
  10294. HIINDEX (product_related_product_category);
  10295. IF ((product_related_product_category[k].name = 'ply') AND
  10296. (rp IN product_related_product_category[k].products)) THEN
  10297. nprpc := nprpc + 1;
  10298. END_IF;
  10299. END_REPEAT;
  10300. IF (nprpc = 1) THEN
  10301. nnauo := nnauo + 1;
  10302. ELSE
  10303. dkuhr := FALSE;
  10304. ESCAPE;
  10305. END_IF;
  10306. END_IF;
  10307. END_REPEAT;
  10308. IF (dkuhr = FALSE) THEN
  10309. ESCAPE;
  10310. END_IF;
  10311. IF(nnauo = 0) THEN
  10312. dkuhr := FALSE;
  10313. ESCAPE;
  10314. END_IF;
  10315. END_REPEAT;
  10316. WHERE
  10317. WR1 : dkuhr;
  10318. END_RULE;
  10319. RULE ply_stock_material_select FOR (product_related_product_category, make_from_usage_option);
  10320. LOCAL
  10321. i,j,k,kp : INTEGER;
  10322. dkuhr : LOGICAL;
  10323. nmfuo : INTEGER;
  10324. nprpc : INTEGER := 0;
  10325. rp : product;
  10326. END_LOCAL;
  10327. dkuhr := TRUE;
  10328. REPEAT kp:= LOINDEX (product_related_product_category) TO
  10329. HIINDEX (product_related_product_category);
  10330. IF (product_related_product_category[kp].name = 'ply') THEN
  10331. REPEAT i:= LOINDEX (product_related_product_category[kp].products) TO
  10332. HIINDEX (product_related_product_category[kp].products);
  10333. nmfuo := 0;
  10334. REPEAT j:= LOINDEX (make_from_usage_option) TO
  10335. HIINDEX (make_from_usage_option);
  10336. rp := make_from_usage_option[j].related_product_definition.
  10337. formation.of_product;
  10338. IF (product_related_product_category[kp].products[i] = rp) THEN
  10339. REPEAT k:= LOINDEX (product_related_product_category) TO
  10340. HIINDEX (product_related_product_category);
  10341. IF ((rp IN product_related_product_category[k].products) AND
  10342. (product_related_product_category[k].name IN
  10343. ['isotropic material', 'filament assembly',
  10344. 'discontinuous fiber assembly'])) THEN
  10345. nprpc := nprpc + 1;
  10346. END_IF;
  10347. END_REPEAT;
  10348. IF (nprpc = 1) THEN
  10349. nmfuo := nmfuo + 1;
  10350. ELSE
  10351. dkuhr := FALSE;
  10352. ESCAPE;
  10353. END_IF;
  10354. END_IF;
  10355. END_REPEAT;
  10356. IF (dkuhr = FALSE) THEN
  10357. ESCAPE;
  10358. END_IF;
  10359. IF(nmfuo <> 1) THEN
  10360. dkuhr := FALSE;
  10361. ESCAPE;
  10362. END_IF;
  10363. END_REPEAT;
  10364. END_IF;
  10365. END_REPEAT;
  10366. WHERE
  10367. WR1 : dkuhr;
  10368. END_RULE;
  10369. RULE product_concept_feature_requires_category FOR (product_concept_feature);
  10370. WHERE
  10371. WR1 : SIZEOF ( QUERY ( pcf <* product_concept_feature |
  10372. (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE',
  10373. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE'] * TYPEOF(pcf)) = 0) AND
  10374. (SIZEOF ( QUERY ( aga <* USEDIN ( pcf , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'APPLIED_GROUP_ASSIGNMENT.' + 'ITEMS' ) |
  10375. ( aga.role.name = 'specification category member' ) AND
  10376. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF ( aga.assigned_group )))) <>1 ) ) ) = 0;
  10377. END_RULE;
  10378. RULE product_definition_replacement_requires_effectivity_assignment FOR (product_definition_relationship);
  10379. WHERE
  10380. WR1 : SIZEOF( QUERY( pdr <* product_definition_relationship |
  10381. (pdr.name = 'definition replacement') AND
  10382. (SIZEOF( USEDIN(pdr,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS') ) = 0) ))
  10383. = 0;
  10384. END_RULE;
  10385. RULE restrict_alternative_definition FOR (product_definition);
  10386. LOCAL
  10387. solution_definitions: SET OF product_definition := [];
  10388. END_LOCAL;
  10389. solution_definitions := QUERY( pd <* product_definition |
  10390. (pd.frame_of_reference.name = 'alternative definition'));
  10391. WHERE
  10392. WR1 : SIZEOF ( QUERY ( pd <* solution_definitions |
  10393. ( SIZEOF ( QUERY ( pdr <* USEDIN ( pd ,
  10394. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) |
  10395. pdr.name = 'solution alternative definition' ) ) <>1 ) ) ) = 0;
  10396. WR2 : SIZEOF ( QUERY ( pd <* solution_definitions |
  10397. NOT ( pd.name IN ['technical' , 'supplier' , 'technical supplier' , ''] ) ) ) = 0;
  10398. WR3 : SIZEOF ( QUERY ( pd <* solution_definitions |
  10399. ( pd.name IN ['supplier' , 'technical supplier'] ) AND (
  10400. SIZEOF ( QUERY ( aoa <* USEDIN ( pd.formation ,
  10401. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS' ) |
  10402. aoa.role.name = 'supplier' )) <>1 ) )) = 0;
  10403. END_RULE;
  10404. RULE restrict_assembly_category FOR (product_definition);
  10405. LOCAL
  10406. assembly_definitions: SET OF product_definition := [];
  10407. END_LOCAL;
  10408. assembly_definitions := QUERY( pd <* product_definition |
  10409. SIZEOF( QUERY( pdca <* USEDIN( pd, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') |
  10410. pdca.frame_of_reference.name= 'assembly definition')) > 0 );
  10411. WHERE
  10412. WR1 : SIZEOF( QUERY( pd <* assembly_definitions |
  10413. NOT ('assembly' IN categories_of_product(pd.formation.of_product)) ))= 0;
  10414. END_RULE;
  10415. RULE restrict_centre_of_mass_representation FOR (representation);
  10416. WHERE
  10417. WR1 : SIZEOF ( QUERY ( r <* representation |
  10418. ( r.name ='centre of mass' ) AND
  10419. ( ( SIZEOF ( r.items ) <>1 ) OR
  10420. (SIZEOF ( QUERY ( i <* r.items |
  10421. ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'POINT' IN TYPEOF ( i ) ) AND
  10422. ( i.name = 'centre point' ) )) <>1 ) ) ) )
  10423. =0;
  10424. END_RULE;
  10425. RULE restrict_classification_assignments FOR (applied_classification_assignment);
  10426. WHERE
  10427. WR1 : SIZEOF(QUERY(aia <* applied_classification_assignment |
  10428. NOT class_assignment_is_valid(aia)))=0;
  10429. END_RULE;
  10430. RULE restrict_collection_category FOR (product_definition);
  10431. LOCAL
  10432. collection_definitions: SET OF product_definition := [];
  10433. END_LOCAL;
  10434. collection_definitions := QUERY( pd <* product_definition |
  10435. SIZEOF( QUERY( pdca <* USEDIN( pd, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') |
  10436. pdca.frame_of_reference.name= 'collection definition')) > 0 );
  10437. WHERE
  10438. WR1 : SIZEOF( QUERY( pd <* collection_definitions |
  10439. NOT ('collection' IN categories_of_product(pd.formation.of_product)) ))= 0;
  10440. END_RULE;
  10441. RULE restrict_concept_feature_operator FOR (concept_feature_operator);
  10442. WHERE
  10443. WR1 : SIZEOF ( QUERY ( cfo <* concept_feature_operator | NOT
  10444. ( cfo.name IN ['and' , 'or' , 'oneof' , 'not' , 'implication'] ) ) ) = 0;
  10445. WR2 : SIZEOF ( QUERY ( cfo <* concept_feature_operator | (cfo.name = 'implication' ) AND
  10446. ( SIZEOF ( QUERY (cfrwc <* USEDIN ( cfo , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.' +
  10447. 'CONDITIONAL_OPERATOR' ) |
  10448. SIZEOF ( QUERY ( ccf <* USEDIN( cfrwc , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE.CONDITION' ) |
  10449. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF ( ccf )))) >0 )) >0 ))) = 0;
  10450. WR3 : SIZEOF( QUERY (cfo <* concept_feature_operator | (cfo.name = 'not')
  10451. AND (SIZEOF(QUERY(cfrwc <* USEDIN(cfo, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.CONDITIONAL_OPERATOR') |
  10452. cfrwc.related_product_concept_feature :<>: cfrwc.relating_product_concept_feature)) >0 ))) = 0;
  10453. END_RULE;
  10454. RULE restrict_configuration_design_for_class_breakdown_association FOR (configuration_design);
  10455. WHERE
  10456. WR1 : SIZEOF ( QUERY ( cd <* configuration_design |
  10457. ( cd.name ='functionality' ) AND
  10458. ( NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF ( cd. design ) ) OR
  10459. ( cd.design\product_definition.frame_of_reference.name<> 'functional definition' ) )
  10460. ) ) =0;
  10461. WR2 : SIZEOF ( QUERY ( cd <* configuration_design |
  10462. ( cd.name='realization' ) AND
  10463. ( NOT ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF ( cd.design ) ) OR
  10464. ( cd.design\product_definition.frame_of_reference.name<> 'conceptual definition' ) )
  10465. ) ) =0;
  10466. WR3 : SIZEOF ( QUERY ( cd <* configuration_design |
  10467. ( cd.name IN ['functionality' , 'realization'] ) AND
  10468. ( NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_CLASS' IN TYPEOF ( cd.configuration.item_concept ) ) )
  10469. ) ) =0;
  10470. END_RULE;
  10471. RULE restrict_configuration_design_for_design_constraint FOR (configuration_design);
  10472. WHERE
  10473. WR1 : SIZEOF ( QUERY (cd <* configuration_design |
  10474. (cd.name = 'design constraint usage') AND
  10475. (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF ( cd.design ) ) OR
  10476. (cd.design\product_definition.frame_of_reference.name <> 'design constraint definition')))) = 0;
  10477. END_RULE;
  10478. RULE restrict_group_relationship_for_classification_hierarchy FOR (group_relationship);
  10479. WHERE
  10480. WR1 : SIZEOF( QUERY( gr <* group_relationship |
  10481. (gr\group_relationship.name = 'class hierarchy') AND
  10482. (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CLASS' IN TYPEOF(gr\group_relationship.related_group)) OR
  10483. NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CLASS' IN TYPEOF(gr\group_relationship.relating_group))) )) = 0;
  10484. END_RULE;
  10485. RULE restrict_group_relationship_for_specification_category FOR (group_relationship);
  10486. WHERE
  10487. WR1 : SIZEOF( QUERY( gr <* group_relationship |
  10488. (gr.name = 'specification category hierarchy') AND
  10489. (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.related_group))
  10490. OR NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.relating_group))) )) = 0;
  10491. END_RULE;
  10492. RULE restrict_language_assignment_per_attribute FOR (attribute_language_assignment);
  10493. WHERE
  10494. WR1 : SIZEOF ( QUERY ( ala1 <* attribute_language_assignment |
  10495. SIZEOF(QUERY( it <* ala1.items |
  10496. SIZEOF ( QUERY ( ala2 <* USEDIN ( it ,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS' ) |
  10497. ( ala1\attribute_classification_assignment.attribute_name = ala2\attribute_classification_assignment.attribute_name ) AND
  10498. ( ala1\attribute_classification_assignment.assigned_class :=: ala2\attribute_classification_assignment.assigned_class )
  10499. )) >1
  10500. )) >0
  10501. )) =0;
  10502. END_RULE;
  10503. RULE restrict_part_occurrence FOR (product_definition);
  10504. LOCAL
  10505. part_occurrences: SET OF product_definition := QUERY(pd <* product_definition |
  10506. ( pd.frame_of_reference.name = 'part occurrence' ));
  10507. END_LOCAL;
  10508. WHERE
  10509. WR1 : SIZEOF ( QUERY ( pd <* part_occurrences |
  10510. ( NOT( pd.name IN
  10511. ['single instance' , 'selected instance' ,'quantified instance' , 'specified instance' ] ) ) ) ) = 0;
  10512. WR2 : SIZEOF ( QUERY ( pd <* part_occurrences |
  10513. (SIZEOF ( QUERY ( pdr <* USEDIN ( pd ,
  10514. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) |
  10515. pdr.name = 'definition usage' ) ) <>1 ) AND
  10516. ( SIZEOF ( QUERY ( cd <* USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CONFIGURATION_DESIGN.DESIGN' ) |
  10517. ( cd.name = 'occurrence usage definition' ) AND
  10518. ( NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_IDENTIFICATION' IN TYPEOF( cd.configuration ) ) ) ) ) <>1 ) ) ) = 0;
  10519. WR3 : SIZEOF ( QUERY ( pd <* part_occurrences |
  10520. (SIZEOF ( QUERY ( cd <* USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.'+ 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) |
  10521. ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'PRODUCT_DEFINITION_USAGE' IN TYPEOF ( cd ) ) ) ) = 0 )AND
  10522. ( SIZEOF ( USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE' ) ) = 0 ) ) ) = 0;
  10523. WR4 : SIZEOF ( QUERY ( pd <* part_occurrences |
  10524. ( pd.name = 'selected instance' ) AND
  10525. NOT valid_selected_instance_representation(pd) ))=0;
  10526. WR5 : SIZEOF ( QUERY ( pd <* part_occurrences |
  10527. ( pd.name = 'quantified instance' ) AND
  10528. ( SIZEOF ( QUERY (ppd <* USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'PROPERTY_DEFINITION.DEFINITION' ) |
  10529. ( ppd.name ='occurrence quantity' ) AND
  10530. ( SIZEOF ( QUERY ( pdr <*USEDIN ( ppd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | (
  10531. pdr.used_representation.name = 'quantity' ) AND
  10532. (SIZEOF ( pdr.used_representation.items ) = 1 ) AND
  10533. (SIZEOF ( QUERY ( i <* pdr.used_representation.items |
  10534. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND
  10535. ( i.name = 'quantity measure' ) ) ) = 1)))= 1 )))= 0 )))= 0;
  10536. WR6 : SIZEOF ( QUERY ( pd <* part_occurrences |
  10537. ( pd.name = 'specified instance' ) AND
  10538. ( SIZEOF ( QUERY (
  10539. pdor <* USEDIN ( pd , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE' ) |
  10540. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'SPECIFIED_HIGHER_USAGE_OCCURRENCE' IN TYPEOF ( pdor.occurrence_usage ) ) ) = 0 ) ) ) = 0;
  10541. END_RULE;
  10542. RULE restrict_part_occurrence_category FOR (product_definition);
  10543. LOCAL
  10544. part_occurrences: SET OF product_definition := QUERY( pd <* product_definition |(
  10545. pd.frame_of_reference.name = 'part occurrence'));
  10546. END_LOCAL;
  10547. WHERE
  10548. WR1 : SIZEOF( QUERY( pd <* part_occurrences |
  10549. (SIZEOF( QUERY( prpc <* USEDIN(pd.formation.of_product, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') |
  10550. prpc.name IN ['part','raw material','tool'] )) = 0 ) )) = 0;
  10551. END_RULE;
  10552. RULE restrict_product_definitions_for_base_element FOR (product_definition_relationship);
  10553. WHERE
  10554. WR1 : SIZEOF ( QUERY ( pdr <* product_definition_relationship |
  10555. ( pdr. name = 'solution alternative definition' ) AND
  10556. ( NOT( pdr. relating_product_definition.frame_of_reference.name
  10557. IN [ 'alternative definition' , 'functional definition' , 'conceptual definition' ] ) OR
  10558. ( pdr.related_product_definition.frame_of_reference.name<>'alternative definition' ) ) ) ) =0;
  10559. END_RULE;
  10560. RULE restrict_product_definitions_for_collection FOR (product_definition_relationship);
  10561. WHERE
  10562. WR1 : SIZEOF ( QUERY ( pdr <* product_definition_relationship |
  10563. ( pdr. name = 'collection membership' ) AND
  10564. ( ( pdr.relating_product_definition.frame_of_reference.name<>'part definition' ) OR
  10565. ( pdr.related_product_definition.frame_of_reference.name<>'part occurrence' ) OR
  10566. ( SIZEOF ( QUERY ( pdca <* USEDIN (pdr.relating_product_definition ,
  10567. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') |
  10568. ( pdca.role.name = 'part definition type' ) AND
  10569. ( pdca.frame_of_reference.name = 'collection definition' ) )) =0 ) ) ) ) =0;
  10570. END_RULE;
  10571. RULE restrict_product_definitions_for_definition_usage FOR (product_definition_relationship);
  10572. WHERE
  10573. WR1 : SIZEOF ( QUERY ( pdr <* product_definition_relationship |
  10574. ( pdr.name = 'definition usage' ) AND
  10575. ( ( pdr.relating_product_definition.frame_of_reference.name<> 'part definition' ) OR
  10576. ( pdr.related_product_definition.frame_of_reference.name<>'part occurrence' )))) =0;
  10577. END_RULE;
  10578. RULE restrict_product_definitions_for_design_constraint_association FOR (product_definition_relationship);
  10579. WHERE
  10580. WR1 : SIZEOF ( QUERY ( pdr <* product_definition_relationship |
  10581. ( pdr. name = 'design constraint association' ) AND
  10582. ( (pdr. relating_product_definition.frame_of_reference.name<>'design constraint definition' ) OR
  10583. NOT ( pdr.related_product_definition.frame_of_reference.name IN
  10584. ['alternative definition' , 'functional definition' ,'conceptual definition' ] ) ) ) ) =0;
  10585. END_RULE;
  10586. RULE restrict_product_definitions_for_part_definition_relationship FOR (product_definition_relationship);
  10587. WHERE
  10588. WR1 : SIZEOF ( QUERY ( pdr <* product_definition_relationship |
  10589. ( pdr.name IN [ 'geometrical relationship' , 'definition replacement' ] ) AND
  10590. ( ( pdr.relating_product_definition.frame_of_reference.name <>'part definition' ) OR
  10591. ( pdr.related_product_definition.frame_of_reference.name <>'part definition' ) ) ) ) =0;
  10592. END_RULE;
  10593. RULE restrict_representation_for_surface_condition FOR (property_definition_representation);
  10594. WHERE
  10595. WR1 : SIZEOF(QUERY(pdr <* property_definition_representation |
  10596. NOT surface_condition_correlation(pdr.definition, pdr.used_representation) ))=0;
  10597. END_RULE;
  10598. RULE restrict_treatment_result FOR (representation);
  10599. LOCAL
  10600. treatment_results: SET OF representation := [];
  10601. END_LOCAL;
  10602. treatment_results:= QUERY( r <* representation |
  10603. (r.name = 'treatment result') );
  10604. WHERE
  10605. WR1 : (SIZEOF( QUERY( r <* treatment_results | (SIZEOF(r.items) > 2) )) = 0) AND
  10606. (SIZEOF( QUERY( r <* treatment_results |
  10607. (SIZEOF( QUERY( i <* r.items |
  10608. NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) > 0) )) = 0);
  10609. WR2 : SIZEOF( QUERY( r <* treatment_results |
  10610. (SIZEOF( QUERY( i <* r.items | i.name = 'result' )) = 0) )) = 0;
  10611. WR3 : SIZEOF( QUERY( r <* treatment_results |
  10612. (SIZEOF( QUERY( i <* r.items | i.name = 'purpose' )) > 1) )) = 0;
  10613. END_RULE;
  10614. RULE selected_instance_usage_requires_representation FOR (assembly_component_usage);
  10615. LOCAL
  10616. selected_instance_usages: SET OF assembly_component_usage := QUERY( acr <* assembly_component_usage|
  10617. (acr.name = 'selected instance usage'));
  10618. END_LOCAL;
  10619. WHERE
  10620. WR1 : SIZEOF ( QUERY ( acr <* selected_instance_usages |
  10621. NOT valid_selected_instance_representation(acr) ))=0;
  10622. END_RULE;
  10623. RULE solution_definition_requires_solution_category FOR (product_definition);
  10624. LOCAL
  10625. solution_definitions: SET OF product_definition := [];
  10626. END_LOCAL;
  10627. solution_definitions := QUERY( pd <* product_definition |
  10628. (pd.frame_of_reference.name = 'alternative definition'));
  10629. WHERE
  10630. WR1 : SIZEOF( QUERY( pd <* solution_definitions |
  10631. (SIZEOF( QUERY( prpc <* USEDIN(pd.formation.of_product, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF' + '.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') |
  10632. prpc.name = 'alternative solution')) = 0 ) )) = 0;
  10633. END_RULE;
  10634. RULE stock_material_reference FOR (percentage_ply_definition, make_from_usage_option, product_related_product_category);
  10635. LOCAL
  10636. i,j,k : INTEGER;
  10637. dkuhr : LOGICAL;
  10638. nmfuo : INTEGER;
  10639. nprpc : INTEGER;
  10640. rp : product;
  10641. END_LOCAL;
  10642. dkuhr := TRUE;
  10643. REPEAT i:= LOINDEX (percentage_ply_definition) TO
  10644. HIINDEX (percentage_ply_definition);
  10645. nmfuo := 0;
  10646. REPEAT j:= LOINDEX (make_from_usage_option) TO
  10647. HIINDEX (make_from_usage_option);
  10648. IF (percentage_ply_definition[i] =
  10649. make_from_usage_option[j].relating_product_definition) THEN
  10650. rp := make_from_usage_option[j].related_product_definition.
  10651. formation.of_product;
  10652. nprpc := 0;
  10653. REPEAT k:= LOINDEX (product_related_product_category) TO
  10654. HIINDEX (product_related_product_category);
  10655. IF ((rp IN product_related_product_category[k].products) AND
  10656. (product_related_product_category[k].name IN
  10657. ['anisotropic material', 'isotropic material', 'stock core',
  10658. 'filament assembly', 'discontinuous fiber assembly'])) THEN
  10659. nprpc := nprpc + 1;
  10660. END_IF;
  10661. END_REPEAT;
  10662. IF (nprpc = 1) THEN
  10663. nmfuo := nmfuo + 1;
  10664. ELSE
  10665. dkuhr := FALSE;
  10666. ESCAPE;
  10667. END_IF;
  10668. END_IF;
  10669. END_REPEAT;
  10670. IF (dkuhr = FALSE) THEN
  10671. ESCAPE;
  10672. END_IF;
  10673. IF(nmfuo = 0) THEN
  10674. dkuhr := FALSE;
  10675. ESCAPE;
  10676. END_IF;
  10677. END_REPEAT;
  10678. WHERE
  10679. WR1 : dkuhr;
  10680. END_RULE;
  10681. RULE styled_curve FOR (styled_item);
  10682. WHERE
  10683. WR1 : SIZEOF( QUERY( si <* styled_item | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE' IN TYPEOF (si.item)) AND (SIZEOF (QUERY (psa <* si.styles | (SIZEOF (QUERY (cs <* psa.styles | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_STYLE' IN TYPEOF (cs)) )) > 0) )) <> 1) )) = 0;
  10684. END_RULE;
  10685. RULE subtype_exclusiveness_geometric_tolerance FOR (geometric_tolerance);
  10686. WHERE
  10687. WR1 : SIZEOF(QUERY (gt <* geometric_tolerance | NOT (type_check_function(gt, ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANGULARITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COAXIALITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONCENTRICITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CYLINDRICITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FLATNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE_PROFILE_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PARALLELISM_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PERPENDICULARITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITION_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ROUNDNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRAIGHTNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_PROFILE_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMMETRY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TOTAL_RUNOUT_TOLERANCE'] , 3)))) = 0;
  10688. END_RULE;
  10689. RULE subtype_exclusiveness_representation_item FOR (representation_item);
  10690. WHERE
  10691. WR1 : SIZEOF(QUERY (cri <* representation_item |
  10692. NOT (type_check_function(cri,['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM',
  10693. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_REPRESENTATION_ITEM',
  10694. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOUND_REPRESENTATION_ITEM'] , 3)))) = 0;
  10695. END_RULE;
  10696. RULE subtype_mandatory_geometric_tolerance FOR (geometric_tolerance);
  10697. WHERE
  10698. WR1 : SIZEOF(QUERY (gt <* geometric_tolerance | NOT (type_check_function(gt, ['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANGULARITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COAXIALITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONCENTRICITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CYLINDRICITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FLATNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE_PROFILE_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PARALLELISM_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PERPENDICULARITY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITION_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ROUNDNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRAIGHTNESS_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_PROFILE_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SYMMETRY_TOLERANCE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TOTAL_RUNOUT_TOLERANCE'] , 0)))) = 0;
  10699. END_RULE;
  10700. RULE text_font_usage FOR (externally_defined_text_font, pre_defined_text_font);
  10701. WHERE
  10702. WR1 : SIZEOF (QUERY (pdtf <* pre_defined_text_font | SIZEOF (USEDIN (pdtf, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL.FONT')) = 0 )) = 0;
  10703. WR2 : SIZEOF (QUERY (edtf <* externally_defined_text_font | SIZEOF (USEDIN (edtf, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TEXT_LITERAL.FONT')) = 0 )) = 0;
  10704. END_RULE;
  10705. RULE thickness_laminate_table_component_select FOR (thickness_laminate_definition, next_assembly_usage_occurrence, product_related_product_category);
  10706. LOCAL
  10707. i,j,k : INTEGER;
  10708. dkuhr : LOGICAL;
  10709. nnauo : INTEGER;
  10710. nprpc : INTEGER;
  10711. rp : product;
  10712. END_LOCAL;
  10713. dkuhr := TRUE;
  10714. REPEAT i:= LOINDEX (thickness_laminate_definition) TO
  10715. HIINDEX (thickness_laminate_definition);
  10716. nnauo := 0;
  10717. REPEAT j:= LOINDEX (next_assembly_usage_occurrence) TO
  10718. HIINDEX (next_assembly_usage_occurrence);
  10719. IF (thickness_laminate_definition[i] =
  10720. next_assembly_usage_occurrence[j].relating_product_definition) THEN
  10721. rp := next_assembly_usage_occurrence[j].related_product_definition.
  10722. formation.of_product;
  10723. nprpc := 0;
  10724. REPEAT k:= LOINDEX (product_related_product_category) TO
  10725. HIINDEX (product_related_product_category);
  10726. IF ((rp IN product_related_product_category[k].products) AND
  10727. (product_related_product_category[k].name IN
  10728. ['ply', 'filament laminate', 'processed core'])) THEN
  10729. nprpc := nprpc + 1;
  10730. END_IF;
  10731. END_REPEAT;
  10732. IF (nprpc = 1) THEN
  10733. nnauo := nnauo + 1;
  10734. ELSE
  10735. dkuhr := FALSE;
  10736. ESCAPE;
  10737. END_IF;
  10738. END_IF;
  10739. END_REPEAT;
  10740. IF (dkuhr = FALSE) THEN
  10741. ESCAPE;
  10742. END_IF;
  10743. IF (nnauo <> 1) THEN
  10744. dkuhr := FALSE;
  10745. ESCAPE;
  10746. END_IF;
  10747. END_REPEAT;
  10748. WHERE
  10749. WR1 : dkuhr;
  10750. END_RULE;
  10751. RULE validate_dependently_instantiable_entity_data_types FOR (action_method_role, annotation_text, attribute_value_role, auxiliary_geometric_representation_item, binary_numeric_expression, boolean_expression, bounded_curve, bounded_surface, cartesian_transformation_operator, comparison_expression, concept_feature_relationship, concept_feature_relationship_with_condition, connected_edge_set, document_usage_constraint, edge_blended_solid, effectivity_context_role, event_occurrence_role, explicit_procedural_representation_item_relationship, expression, founded_item, generic_expression, generic_variable, indirectly_selected_elements, interval_expression, literal_number, local_time, loop, modified_solid_with_placed_configuration, multiple_arity_boolean_expression, multiple_arity_generic_expression, multiple_arity_numeric_expression, numeric_expression, one_direction_repeat_factor, oriented_open_shell, oriented_path, positioned_sketch, procedural_representation, procedural_representation_sequence, product_definition_context_role, product_definition_effectivity, runout_zone_orientation, simple_boolean_expression, simple_generic_expression, simple_numeric_expression, solid_with_depression, solid_with_hole, solid_with_pocket, solid_with_protrusion, solid_with_shape_element_pattern, solid_with_slot, swept_area_solid, symbol_target, tolerance_zone_form, two_direction_repeat_factor, unary_generic_expression, unary_numeric_expression, user_selected_elements, variational_representation_item, view_volume);
  10752. LOCAL
  10753. number_of_input_instances : INTEGER;
  10754. previous_in_chain : LIST OF GENERIC := [];
  10755. set_of_input_types : SET OF STRING := [];
  10756. all_instances : SET OF GENERIC := [];
  10757. END_LOCAL;
  10758. all_instances := all_instances + action_method_role + annotation_text + attribute_value_role + auxiliary_geometric_representation_item + binary_numeric_expression + boolean_expression + bounded_curve + bounded_surface + cartesian_transformation_operator + comparison_expression + concept_feature_relationship + concept_feature_relationship_with_condition + connected_edge_set + document_usage_constraint + edge_blended_solid + effectivity_context_role + event_occurrence_role + explicit_procedural_representation_item_relationship + expression + founded_item + generic_expression + generic_variable + indirectly_selected_elements + interval_expression + literal_number + local_time + loop + modified_solid_with_placed_configuration + multiple_arity_boolean_expression + multiple_arity_generic_expression + multiple_arity_numeric_expression + numeric_expression + one_direction_repeat_factor + oriented_open_shell + oriented_path + positioned_sketch + procedural_representation + procedural_representation_sequence + product_definition_context_role + product_definition_effectivity + runout_zone_orientation + simple_boolean_expression + simple_generic_expression + simple_numeric_expression + solid_with_depression + solid_with_hole + solid_with_pocket + solid_with_protrusion + solid_with_shape_element_pattern + solid_with_slot + swept_area_solid + symbol_target + tolerance_zone_form + two_direction_repeat_factor + unary_generic_expression + unary_numeric_expression + user_selected_elements + variational_representation_item + view_volume;--<make a union of all implicit populations of the FOR-clause>
  10759. number_of_input_instances := SIZEOF(all_instances);
  10760. (* Collect all type strings of all FOR instances into one set. *)
  10761. REPEAT i:=1 TO number_of_input_instances;
  10762. set_of_input_types := set_of_input_types + TYPEOF(all_instances[i]);
  10763. END_REPEAT;
  10764. WHERE
  10765. WR1 : dependently_instantiated(all_instances, set_of_input_types,
  10766. previous_in_chain);
  10767. END_RULE;
  10768. FUNCTION acyclic
  10769. (arg1: generic_expression; arg2: SET [0:?] OF generic_expression) : BOOLEAN;
  10770. LOCAL
  10771. result: BOOLEAN := TRUE;
  10772. END_LOCAL;
  10773. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIMPLE_GENERIC_EXPRESSION'
  10774. IN TYPEOF (arg1))
  10775. THEN
  10776. RETURN (TRUE);
  10777. END_IF;
  10778. IF arg1 IN arg2
  10779. THEN
  10780. RETURN (FALSE);
  10781. END_IF;
  10782. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.UNARY_GENERIC_EXPRESSION'
  10783. IN TYPEOF (arg1)
  10784. THEN
  10785. RETURN
  10786. (acyclic(arg1\unary_generic_expression.operand,arg2+[arg1]));
  10787. END_IF;
  10788. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BINARY_GENERIC_EXPRESSION'
  10789. IN TYPEOF (arg1)
  10790. THEN
  10791. RETURN
  10792. (acyclic(arg1\binary_generic_expression.operands[1],arg2+[arg1])
  10793. AND
  10794. acyclic(arg1\binary_generic_expression.operands[2],arg2+[arg1]));
  10795. END_IF;
  10796. IF
  10797. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION'
  10798. IN TYPEOF (arg1)
  10799. THEN
  10800. result := TRUE;
  10801. REPEAT i := 1 TO
  10802. SIZEOF (arg1\multiple_arity_generic_expression.operands);
  10803. result := result AND
  10804. acyclic(arg1\multiple_arity_generic_expression.operands[i], arg2+[arg1]);
  10805. END_REPEAT;
  10806. RETURN (result);
  10807. END_IF;
  10808. RETURN (result);
  10809. END_FUNCTION;
  10810. FUNCTION acyclic_composite_text
  10811. (start_composite: composite_text; child_text: SET [1:?] OF text_or_character) : LOGICAL;
  10812. LOCAL
  10813. i : INTEGER;
  10814. local_composite_text : SET [0:?] OF composite_text;
  10815. local_annotation_text : SET [0:?] OF annotation_text;
  10816. local_children : SET [0:?] OF text_or_character;
  10817. END_LOCAL;
  10818. local_composite_text := QUERY (child <* child_text |
  10819. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'
  10820. IN TYPEOF (child)));
  10821. IF (SIZEOF (local_composite_text) > 0)
  10822. THEN
  10823. REPEAT i := 1 TO HIINDEX (local_composite_text);
  10824. IF (start_composite :=: local_composite_text[i])
  10825. THEN
  10826. RETURN (FALSE);
  10827. END_IF;
  10828. END_REPEAT;
  10829. END_IF;
  10830. local_children := child_text;
  10831. IF (SIZEOF (local_composite_text)) > 0 THEN
  10832. REPEAT i := 1 TO HIINDEX (local_composite_text);
  10833. local_children := local_children +
  10834. local_composite_text[i].collected_text;
  10835. END_REPEAT;
  10836. END_IF;
  10837. local_annotation_text := QUERY (child <* child_text |
  10838. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT'
  10839. IN TYPEOF (child)));
  10840. IF (SIZEOF (local_annotation_text) > 0) THEN
  10841. REPEAT i := 1 TO HIINDEX (local_annotation_text);
  10842. local_children := local_children +
  10843. QUERY (item <* local_annotation_text[i]\mapped_item.
  10844. mapping_source.mapped_representation.items |
  10845. SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ANNOTATION_TEXT',
  10846. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_TEXT'] *
  10847. TYPEOF(item)) > 0);
  10848. END_REPEAT;
  10849. END_IF;
  10850. IF (local_children :<>: child_text) THEN
  10851. RETURN (acyclic_composite_text (start_composite, local_children));
  10852. ELSE
  10853. RETURN (TRUE);
  10854. END_IF;
  10855. END_FUNCTION;
  10856. FUNCTION acyclic_curve_replica
  10857. (rep: curve_replica; parent: curve) : BOOLEAN;
  10858. IF NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA') IN TYPEOF(parent)) THEN
  10859. RETURN (TRUE);
  10860. END_IF;
  10861. (* Return TRUE if the parent is not of type curve_replica *)
  10862. IF (parent :=: rep) THEN
  10863. RETURN (FALSE);
  10864. (* Return FALSE if the parent is the same curve_replica, otherwise,
  10865. call function again with the parents own parent_curve. *)
  10866. ELSE
  10867. RETURN(acyclic_curve_replica(rep,
  10868. parent\curve_replica.parent_curve));
  10869. END_IF;
  10870. END_FUNCTION;
  10871. FUNCTION acyclic_mapped_item_usage
  10872. (rep: representation) : BOOLEAN;
  10873. LOCAL
  10874. items : SET OF representation_item;
  10875. END_LOCAL;
  10876. items := QUERY (item <* rep.items |
  10877. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM' IN TYPEOF (item));
  10878. IF SIZEOF (items) = 0
  10879. THEN
  10880. RETURN (FALSE);
  10881. ELSE
  10882. REPEAT i := 1 TO HIINDEX (items);
  10883. IF items[i]\mapped_item.mapping_source.mapped_representation :=: rep
  10884. THEN
  10885. RETURN (TRUE);
  10886. ELSE
  10887. RETURN (acyclic_mapped_item_usage(items[i]\
  10888. mapped_item.mapping_source.mapped_representation));
  10889. END_IF;
  10890. END_REPEAT;
  10891. RETURN (FALSE);
  10892. END_IF;
  10893. END_FUNCTION;
  10894. FUNCTION acyclic_mapped_representation
  10895. (mi: mapped_item) : BOOLEAN;
  10896. LOCAL
  10897. rms : SET OF representation_map;
  10898. mis : SET OF mapped_item;
  10899. rs1, rs2 : SET OF representation;
  10900. END_LOCAL;
  10901. rs1 := using_representations(mi);
  10902. rs2 := [];
  10903. -- loop as long as there are elements in rs1
  10904. REPEAT WHILE SIZEOF(rs1) > 0;
  10905. REPEAT i := 1 TO HIINDEX(rs1);
  10906. -- Determine the set of representation_map that reference the parent_set
  10907. rms := bag_to_set(USEDIN(rs1[i], 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION'));
  10908. IF SIZEOF(rms) > 0 THEN
  10909. REPEAT j := 1 TO HIINDEX(rms);
  10910. mis := bag_to_set(USEDIN(rms[i], 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE'));
  10911. IF SIZEOF(mis) > 0 THEN
  10912. REPEAT j := 1 TO HIINDEX(mis);
  10913. -- check mis members for instance equal with mi. If so then there is a cycle
  10914. IF mis[i] :=: mi THEN
  10915. RETURN (FALSE);
  10916. END_IF;
  10917. rs2 := rs2 + using_representations(mis[i]);
  10918. END_REPEAT;
  10919. END_IF;
  10920. END_REPEAT;
  10921. END_IF;
  10922. END_REPEAT;
  10923. rs1 := rs2;
  10924. rs2 := [];
  10925. END_REPEAT;
  10926. RETURN (TRUE);
  10927. END_FUNCTION;
  10928. FUNCTION acyclic_point_replica
  10929. (rep: point_replica; parent: point) : BOOLEAN;
  10930. IF NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_REPLICA') IN TYPEOF(parent)) THEN
  10931. RETURN (TRUE);
  10932. END_IF;
  10933. (* Return TRUE if the parent is not of type point_replica *)
  10934. IF (parent :=: rep) THEN
  10935. RETURN (FALSE);
  10936. (* Return FALSE if the parent is the same point_replica, otherwise,
  10937. call function again with the parents own parent_pt. *)
  10938. ELSE RETURN(acyclic_point_replica(rep, parent\point_replica.parent_pt));
  10939. END_IF;
  10940. END_FUNCTION;
  10941. FUNCTION acyclic_product_definition_relationship
  10942. (relation: product_definition_relationship; relatives: SET [1:?] OF product_definition; specific_relation: STRING) : BOOLEAN;
  10943. LOCAL
  10944. x : SET OF product_definition_relationship;
  10945. END_LOCAL;
  10946. IF relation.relating_product_definition IN relatives THEN
  10947. RETURN (FALSE);
  10948. END_IF;
  10949. x := QUERY(pd <* bag_to_set(USEDIN(relation.relating_product_definition, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION')) | specific_relation IN TYPEOF(pd));
  10950. REPEAT i := 1 TO HIINDEX(x);
  10951. IF NOT acyclic_product_definition_relationship(x[i], relatives + relation.relating_product_definition, specific_relation) THEN
  10952. RETURN (FALSE);
  10953. END_IF;
  10954. END_REPEAT;
  10955. RETURN (TRUE);
  10956. END_FUNCTION;
  10957. FUNCTION acyclic_representation_relationship
  10958. (relation: representation_relationship; relatives: SET [1:?] OF representation; specific_relation: STRING) : BOOLEAN;
  10959. LOCAL
  10960. x : SET OF representation_relationship;
  10961. END_LOCAL;
  10962. IF relation.rep_1 IN relatives THEN
  10963. RETURN (FALSE);
  10964. END_IF;
  10965. x := QUERY(r <* bag_to_set(USEDIN(relation.rep_1, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2')) | specific_relation IN TYPEOF(r));
  10966. REPEAT i := 1 TO HIINDEX(x);
  10967. IF NOT acyclic_representation_relationship(x[i], relatives + relation.rep_1, specific_relation) THEN
  10968. RETURN (FALSE);
  10969. END_IF;
  10970. END_REPEAT;
  10971. RETURN (TRUE);
  10972. END_FUNCTION;
  10973. FUNCTION acyclic_solid_replica
  10974. (rep: solid_replica; parent: solid_model) : BOOLEAN;
  10975. IF NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_REPLICA') IN TYPEOF(parent)) THEN
  10976. RETURN (TRUE);
  10977. END_IF;
  10978. (* Return TRUE if the parent is not of type solid_replica. *)
  10979. IF (parent :=: rep) THEN
  10980. RETURN (FALSE);
  10981. (* Return FALSE if the parent is the same solid_replica, otherwise,
  10982. call function again with the parents own parent_solid. *)
  10983. ELSE RETURN(acyclic_solid_replica(rep,
  10984. parent\solid_replica.parent_solid));
  10985. END_IF;
  10986. END_FUNCTION;
  10987. FUNCTION acyclic_surface_replica
  10988. (rep: surface_replica; parent: surface) : BOOLEAN;
  10989. IF NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_REPLICA') IN TYPEOF(parent)) THEN
  10990. RETURN (TRUE);
  10991. END_IF;
  10992. (* Return TRUE if the parent is not of type surface_replica *)
  10993. IF (parent :=: rep) THEN
  10994. RETURN (FALSE);
  10995. (* Return FALSE if the parent is the same surface_replica, otherwise,
  10996. call function again with the parents own parent_surface. *)
  10997. ELSE RETURN(acyclic_surface_replica(rep,
  10998. parent\surface_replica.parent_surface));
  10999. END_IF;
  11000. END_FUNCTION;
  11001. FUNCTION advanced_face_properties
  11002. (testface: face) : BOOLEAN;
  11003. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ADVANCED_FACE' IN TYPEOF(testface) THEN
  11004. RETURN (TRUE);
  11005. END_IF;
  11006. (* if testface is a subface recursively test the parent_face,
  11007. return FALSE for all other types of face *)
  11008. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBFACE' IN TYPEOF(testface)) THEN
  11009. RETURN(advanced_face_properties(testface\subface.parent_face));
  11010. ELSE RETURN (FALSE);
  11011. END_IF;
  11012. END_FUNCTION;
  11013. FUNCTION aspect_ratio
  11014. (p: planar_box) : positive_ratio_measure;
  11015. IF (p.size_in_x > 0.) AND (p.size_in_y > 0.) THEN
  11016. RETURN (p.size_in_x / p.size_in_y);
  11017. ELSE
  11018. RETURN (?);
  11019. END_IF;
  11020. END_FUNCTION;
  11021. FUNCTION associated_surface
  11022. (arg: pcurve_or_surface) : surface;
  11023. LOCAL
  11024. surf : surface;
  11025. END_LOCAL;
  11026. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(arg) THEN
  11027. surf := arg\pcurve.basis_surface;
  11028. ELSE
  11029. surf := arg;
  11030. END_IF;
  11031. RETURN(surf);
  11032. END_FUNCTION;
  11033. FUNCTION bag_to_set
  11034. (the_bag: BAG [0:?] OF GENERIC: intype) : SET [0:?] OF GENERIC: intype;
  11035. LOCAL
  11036. the_set : SET OF GENERIC:intype := [];
  11037. END_LOCAL;
  11038. IF SIZEOF(the_bag) > 0 THEN
  11039. REPEAT i := 1 TO HIINDEX(the_bag);
  11040. the_set := the_set + the_bag[i];
  11041. END_REPEAT;
  11042. END_IF;
  11043. RETURN (the_set);
  11044. END_FUNCTION;
  11045. FUNCTION base_axis
  11046. (dim: INTEGER; axis1: direction; axis2: direction; axis3: direction) : LIST [2:3] OF direction;
  11047. LOCAL
  11048. u : LIST [2:3] OF direction;
  11049. factor : REAL;
  11050. d1, d2 : direction;
  11051. END_LOCAL;
  11052. IF (dim = 3) THEN
  11053. d1 := NVL(normalise(axis3), dummy_gri || direction([0.0,0.0,1.0]));
  11054. d2 := first_proj_axis(d1,axis1);
  11055. u := [d2, second_proj_axis(d1,d2,axis2), d1];
  11056. ELSE
  11057. IF EXISTS(axis1) THEN
  11058. d1 := normalise(axis1);
  11059. u := [d1, orthogonal_complement(d1)];
  11060. IF EXISTS(axis2) THEN
  11061. factor := dot_product(axis2,u[2]);
  11062. IF (factor < 0.0) THEN
  11063. u[2].direction_ratios[1] := -u[2].direction_ratios[1];
  11064. u[2].direction_ratios[2] := -u[2].direction_ratios[2];
  11065. END_IF;
  11066. END_IF;
  11067. ELSE
  11068. IF EXISTS(axis2) THEN
  11069. d1 := normalise(axis2);
  11070. u := [orthogonal_complement(d1), d1];
  11071. u[1].direction_ratios[1] := -u[1].direction_ratios[1];
  11072. u[1].direction_ratios[2] := -u[1].direction_ratios[2];
  11073. ELSE
  11074. u := [dummy_gri || direction([1.0, 0.0]), dummy_gri ||
  11075. direction([0.0, 1.0])];
  11076. END_IF;
  11077. END_IF;
  11078. END_IF;
  11079. RETURN(u);
  11080. END_FUNCTION;
  11081. FUNCTION boolean_choose
  11082. (b: BOOLEAN; choice1: GENERIC: item; choice2: GENERIC: item) : GENERIC: item;
  11083. IF b THEN
  11084. RETURN (choice1);
  11085. ELSE
  11086. RETURN (choice2);
  11087. END_IF;
  11088. END_FUNCTION;
  11089. FUNCTION build_2axes
  11090. (ref_direction: direction) : LIST [2:2] OF direction;
  11091. LOCAL
  11092. d : direction := NVL(normalise(ref_direction),
  11093. dummy_gri || direction([1.0,0.0]));
  11094. END_LOCAL;
  11095. RETURN([d, orthogonal_complement(d)]);
  11096. END_FUNCTION;
  11097. FUNCTION build_axes
  11098. (axis: direction; ref_direction: direction) : LIST [3:3] OF direction;
  11099. LOCAL
  11100. d1, d2 : direction;
  11101. END_LOCAL;
  11102. d1 := NVL(normalise(axis), dummy_gri || direction([0.0,0.0,1.0]));
  11103. d2 := first_proj_axis(d1, ref_direction);
  11104. RETURN([d2, normalise(cross_product(d1,d2))\vector.orientation, d1]);
  11105. END_FUNCTION;
  11106. FUNCTION categories_of_product
  11107. (obj: product) : SET [0:?] OF STRING;
  11108. LOCAL
  11109. category_assignments: BAG OF product_category;
  11110. categories: SET OF STRING:=[];
  11111. END_LOCAL;
  11112. category_assignments := USEDIN(obj, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS');
  11113. REPEAT i := LOINDEX(category_assignments) TO HIINDEX(category_assignments) BY 1;
  11114. categories := categories + category_assignments[i].name;
  11115. END_REPEAT;
  11116. RETURN(categories);
  11117. END_FUNCTION;
  11118. FUNCTION cc_design_person_and_organization_correlation
  11119. (e: cc_design_person_and_organization_assignment) : BOOLEAN;
  11120. LOCAL
  11121. po_role : STRING;
  11122. END_LOCAL;
  11123. po_role := e\person_and_organization_assignment.role.name;
  11124. CASE po_role OF
  11125. 'request_recipient' : IF SIZEOF (e.items) <>
  11126. SIZEOF (QUERY (x <* e.items |
  11127. SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  11128. 'CHANGE_REQUEST',
  11129. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  11130. 'START_REQUEST'] *
  11131. TYPEOF (x)) = 1))
  11132. THEN RETURN(FALSE);
  11133. END_IF;
  11134. 'initiator' : IF SIZEOF (e.items) <>
  11135. SIZEOF (QUERY (x <* e.items |
  11136. SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  11137. 'CHANGE_REQUEST',
  11138. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  11139. 'START_REQUEST',
  11140. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  11141. 'START_WORK',
  11142. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  11143. 'CHANGE'] *
  11144. TYPEOF (x)) = 1))
  11145. THEN RETURN(FALSE);
  11146. END_IF;
  11147. 'creator' : IF SIZEOF (e.items) <>
  11148. SIZEOF (QUERY (x <* e.items |
  11149. SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  11150. 'PRODUCT_DEFINITION_FORMATION',
  11151. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  11152. 'PRODUCT_DEFINITION'] *
  11153. TYPEOF (x)) = 1))
  11154. THEN RETURN (FALSE);
  11155. END_IF;
  11156. 'part_supplier' : IF SIZEOF (e.items) <>
  11157. SIZEOF (QUERY (x <* e.items |
  11158. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  11159. 'PRODUCT_DEFINITION_FORMATION'
  11160. IN TYPEOF (x)))
  11161. THEN RETURN(FALSE);
  11162. END_IF;
  11163. 'design_supplier' : IF SIZEOF (e.items) <>
  11164. SIZEOF (QUERY (x <* e.items |
  11165. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  11166. 'PRODUCT_DEFINITION_FORMATION'
  11167. IN TYPEOF (x)))
  11168. THEN RETURN(FALSE);
  11169. END_IF;
  11170. 'design_owner' : IF SIZEOF (e.items) <>
  11171. SIZEOF (QUERY (x <* e.items |
  11172. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT'
  11173. IN TYPEOF (x)))
  11174. THEN RETURN(FALSE);
  11175. END_IF;
  11176. 'configuration_manager' : IF SIZEOF (e.items) <>
  11177. SIZEOF (QUERY (x <* e.items |
  11178. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  11179. 'CONFIGURATION_ITEM'
  11180. IN TYPEOF (x)))
  11181. THEN RETURN(FALSE);
  11182. END_IF;
  11183. 'contractor' : IF SIZEOF (e.items) <>
  11184. SIZEOF (QUERY (x <* e.items |
  11185. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONTRACT'
  11186. IN TYPEOF (x)))
  11187. THEN RETURN(FALSE);
  11188. END_IF;
  11189. 'classification_officer' : IF SIZEOF (e.items) <>
  11190. SIZEOF (QUERY (x <* e.items |
  11191. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +
  11192. 'SECURITY_CLASSIFICATION'
  11193. IN TYPEOF (x))) THEN
  11194. RETURN(FALSE);
  11195. END_IF;
  11196. OTHERWISE : RETURN(TRUE);
  11197. END_CASE;
  11198. RETURN (TRUE);
  11199. END_FUNCTION;
  11200. FUNCTION check_continuous_edges
  11201. (edges: LIST [0:?] OF UNIQUE edge_curve) : BOOLEAN;
  11202. LOCAL
  11203. i : INTEGER;
  11204. next_vertex : vertex;
  11205. END_LOCAL;
  11206. -- first check whether there is only one edge in the list: in this
  11207. -- case there is no connectivity to be checked.
  11208. IF (SIZEOF(edges) = 1)
  11209. THEN RETURN(TRUE);
  11210. END_IF;
  11211. -- otherwise, establish the matching vertices of edges 1 and 2 in
  11212. -- the list, and determine the vertex of edge 2 to which edge 3,
  11213. -- must be connected, if there are more than two edges in the list.
  11214. IF ((edges[2].edge_start :=: edges[1].edge_end)
  11215. XOR (edges[2].edge_start :=: edges[1].edge_start))
  11216. THEN next_vertex := edges[2].edge_end;
  11217. ELSE
  11218. IF ((edges[2].edge_end :=: edges[1].edge_end)
  11219. XOR (edges[2].edge_end :=: edges[1].edge_start))
  11220. THEN next_vertex := edges[2].edge_start;
  11221. ELSE RETURN(FALSE); -- no match between any vertices of edges 1 and 2
  11222. END_IF;
  11223. END_IF;
  11224. -- exit if there are only two edges and they are connected
  11225. IF (SIZEOF(edges) = 2)
  11226. THEN RETURN(TRUE);
  11227. END_IF;
  11228. -- otherwise, check that any remaining edges are connected in list order.
  11229. REPEAT i := 3 TO HIINDEX(edges);
  11230. IF (edges[i].edge_start :=: next_vertex)
  11231. THEN next_vertex := edges[i].edge_end;
  11232. ELSE
  11233. IF (edges[i].edge_end :=: next_vertex)
  11234. THEN next_vertex := edges[i].edge_start;
  11235. ELSE RETURN(FALSE); -- no match is found.
  11236. END_IF;
  11237. END_IF;
  11238. END_REPEAT;
  11239. RETURN(TRUE);
  11240. END_FUNCTION;
  11241. FUNCTION check_text_alignment
  11242. (ct: composite_text) : BOOLEAN;
  11243. LOCAL
  11244. a : SET OF text_alignment := [];
  11245. END_LOCAL;
  11246. -- create a set of all the alignments
  11247. REPEAT i := 1 TO HIINDEX (ct.collected_text);
  11248. a := a + [ct.collected_text[i]\text_literal.alignment];
  11249. END_REPEAT;
  11250. -- if there is more than one element in the set
  11251. -- then not all alignments were the same
  11252. RETURN (SIZEOF(a) = 1);
  11253. END_FUNCTION;
  11254. FUNCTION check_text_font
  11255. (ct: composite_text) : BOOLEAN;
  11256. LOCAL
  11257. f : SET OF font_select := [];
  11258. END_LOCAL;
  11259. -- build a set of all the fonts
  11260. REPEAT i := 1 TO HIINDEX (ct.collected_text);
  11261. f := f + [ct.collected_text[i]\text_literal.font];
  11262. END_REPEAT;
  11263. -- if there is more than one element in the set
  11264. -- then not all fonts were the same
  11265. RETURN (SIZEOF(f) <= 1);
  11266. END_FUNCTION;
  11267. FUNCTION class_assignment_is_valid
  11268. (aia: applied_classification_assignment) : BOOLEAN;
  11269. LOCAL
  11270. item: classification_item;
  11271. role: classification_role;
  11272. END_LOCAL;
  11273. role:= aia\classification_assignment.role;
  11274. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'CLASS_SYSTEM' IN TYPEOF(aia\classification_assignment.assigned_class)) THEN
  11275. IF(role\classification_role.name <> 'class system membership') THEN
  11276. RETURN(FALSE);
  11277. END_IF;
  11278. REPEAT i:=LOINDEX(aia\applied_classification_assignment.items) TO HIINDEX(aia\applied_classification_assignment.items);
  11279. item:= aia\applied_classification_assignment.items[i];
  11280. IF (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CLASS_SYSTEM_ITEM'] * TYPEOF(item))=0) THEN
  11281. -- item invalid if item does not belong to the types that may have a class_system
  11282. RETURN(FALSE);
  11283. END_IF;
  11284. END_REPEAT;
  11285. END_IF;
  11286. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' +'CHARACTERIZED_CLASS' IN TYPEOF(aia\classification_assignment.assigned_class)) THEN
  11287. IF NOT(role\classification_role.name IN ['definitional','non-definitional','']) THEN
  11288. RETURN(FALSE);
  11289. END_IF;
  11290. REPEAT i:=LOINDEX(aia\applied_classification_assignment.items) TO HIINDEX(aia\applied_classification_assignment.items);
  11291. item:= aia\applied_classification_assignment.items[i];
  11292. IF (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'CLASSIFIED_ITEM'] * TYPEOF(item))=0) THEN
  11293. -- item invalid if item does not belong to the types that may have a characterized_class
  11294. RETURN(FALSE);
  11295. END_IF;
  11296. END_REPEAT;
  11297. END_IF;
  11298. IF
  11299. (role\classification_role.name = 'definitional')
  11300. THEN
  11301. IF NOT
  11302. (SIZEOF(QUERY(it <* aia\applied_classification_assignment.items | NOT
  11303. (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION_FORMATION', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRODUCT_DEFINITION'] * TYPEOF(it)) = 1)
  11304. )) = 0 )
  11305. THEN
  11306. RETURN(FALSE);
  11307. END_IF;
  11308. END_IF;
  11309. RETURN(TRUE);
  11310. END_FUNCTION;
  11311. FUNCTION closed_shell_reversed
  11312. (a_shell: closed_shell) : oriented_closed_shell;
  11313. LOCAL
  11314. the_reverse : oriented_closed_shell;
  11315. END_LOCAL;
  11316. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF (a_shell) ) THEN
  11317. the_reverse := dummy_tri ||
  11318. connected_face_set (
  11319. a_shell\connected_face_set.cfs_faces) ||
  11320. closed_shell () || oriented_closed_shell(
  11321. a_shell\oriented_closed_shell.closed_shell_element,
  11322. NOT(a_shell\oriented_closed_shell.orientation));
  11323. ELSE
  11324. the_reverse := dummy_tri ||
  11325. connected_face_set (
  11326. a_shell\connected_face_set.cfs_faces) ||
  11327. closed_shell () || oriented_closed_shell (a_shell, FALSE);
  11328. END_IF;
  11329. RETURN (the_reverse);
  11330. END_FUNCTION;
  11331. FUNCTION compute_total_depth
  11332. (swsrh: solid_with_stepped_round_hole) : positive_length_measure;
  11333. LOCAL
  11334. i : positive_integer;
  11335. n : positive_integer := swsrh.segments;
  11336. td : positive_length_measure := swsrh.segment_depths[1];
  11337. END_LOCAL;
  11338. IF n = 1
  11339. THEN RETURN(td);
  11340. ELSE
  11341. REPEAT i := 2 TO n;
  11342. td := td + swsrh.segment_depths[i];
  11343. END_REPEAT;
  11344. END_IF;
  11345. RETURN(td);
  11346. END_FUNCTION;
  11347. FUNCTION conditional_reverse
  11348. (p: BOOLEAN; an_item: reversible_topology) : reversible_topology;
  11349. IF p THEN
  11350. RETURN (an_item);
  11351. ELSE
  11352. RETURN (topology_reversed (an_item));
  11353. END_IF;
  11354. END_FUNCTION;
  11355. FUNCTION constraints_composite_curve_on_surface
  11356. (c: composite_curve_on_surface) : BOOLEAN;
  11357. LOCAL
  11358. n_segments : INTEGER := SIZEOF(c.segments);
  11359. END_LOCAL;
  11360. REPEAT k := 1 TO n_segments;
  11361. IF (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN
  11362. TYPEOF(c\composite_curve.segments[k].parent_curve))) AND
  11363. (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN
  11364. TYPEOF(c\composite_curve.segments[k].parent_curve))) AND
  11365. (NOT('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE_ON_SURFACE' IN
  11366. TYPEOF(c\composite_curve.segments[k].parent_curve))) THEN
  11367. RETURN (FALSE);
  11368. END_IF;
  11369. END_REPEAT;
  11370. RETURN(TRUE);
  11371. END_FUNCTION;
  11372. FUNCTION constraints_geometry_shell_based_surface_model
  11373. (m: shell_based_surface_model) : BOOLEAN;
  11374. LOCAL
  11375. result : BOOLEAN := TRUE;
  11376. END_LOCAL;
  11377. REPEAT j := 1 TO SIZEOF(m.sbsm_boundary);
  11378. IF (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OPEN_SHELL' IN
  11379. TYPEOF(m.sbsm_boundary[j])) AND
  11380. (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CLOSED_SHELL' IN
  11381. TYPEOF(m.sbsm_boundary[j]))))
  11382. THEN
  11383. result := FALSE;
  11384. RETURN(result);
  11385. (* A surface model is composed of OPEN_ and CLOSED_SHELLs. *)
  11386. END_IF;
  11387. END_REPEAT;
  11388. RETURN(result);
  11389. END_FUNCTION;
  11390. FUNCTION constraints_geometry_shell_based_wireframe_model
  11391. (m: shell_based_wireframe_model) : BOOLEAN;
  11392. LOCAL
  11393. result : BOOLEAN := TRUE;
  11394. END_LOCAL;
  11395. REPEAT j := 1 TO SIZEOF(m.sbwm_boundary);
  11396. IF (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.WIRE_SHELL' IN
  11397. TYPEOF(m.sbwm_boundary[j])) AND
  11398. (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VERTEX_SHELL' IN
  11399. TYPEOF(m.sbwm_boundary[j]))))
  11400. THEN
  11401. result := FALSE;
  11402. RETURN(result);
  11403. (* A wireframe model is composed of WIRE_ and VERTEX_SHELLs *)
  11404. END_IF;
  11405. END_REPEAT;
  11406. RETURN(result);
  11407. END_FUNCTION;
  11408. FUNCTION constraints_param_b_spline
  11409. (degree: INTEGER; up_knots: INTEGER; up_cp: INTEGER; knot_mult: LIST [0:?] OF INTEGER; knots: LIST [0:?] OF parameter_value) : BOOLEAN;
  11410. LOCAL
  11411. result : BOOLEAN := TRUE;
  11412. k, sum : INTEGER;
  11413. END_LOCAL;
  11414. (* Find sum of knot multiplicities. *)
  11415. sum := knot_mult[1];
  11416. REPEAT i := 2 TO up_knots;
  11417. sum := sum + knot_mult[i];
  11418. END_REPEAT;
  11419. (* Check limits holding for all B-spline parametrisations *)
  11420. IF (degree < 1) OR (up_knots < 2) OR (up_cp < degree) OR
  11421. (sum <> (degree + up_cp + 2)) THEN
  11422. result := FALSE;
  11423. RETURN(result);
  11424. END_IF;
  11425. k := knot_mult[1];
  11426. IF (k < 1) OR (k > degree + 1) THEN
  11427. result := FALSE;
  11428. RETURN(result);
  11429. END_IF;
  11430. REPEAT i := 2 TO up_knots;
  11431. IF (knot_mult[i] < 1) OR (knots[i] <= knots[i-1]) THEN
  11432. result := FALSE;
  11433. RETURN(result);
  11434. END_IF;
  11435. k := knot_mult[i];
  11436. IF (i < up_knots) AND (k > degree) THEN
  11437. result := FALSE;
  11438. RETURN(result);
  11439. END_IF;
  11440. IF (i = up_knots) AND (k > degree + 1) THEN
  11441. result := FALSE;
  11442. RETURN(result);
  11443. END_IF;
  11444. END_REPEAT;
  11445. RETURN(result);
  11446. END_FUNCTION;
  11447. FUNCTION constraints_rectangular_composite_surface
  11448. (s: rectangular_composite_surface) : BOOLEAN;
  11449. REPEAT i := 1 TO s.n_u;
  11450. REPEAT j := 1 TO s.n_v;
  11451. IF NOT (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF
  11452. (s.segments[i][j].parent_surface)) OR
  11453. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RECTANGULAR_TRIMMED_SURFACE' IN TYPEOF
  11454. (s.segments[i][j].parent_surface))) THEN
  11455. RETURN(FALSE);
  11456. END_IF;
  11457. END_REPEAT;
  11458. END_REPEAT;
  11459. (* Check the transition codes, omitting the last row or column *)
  11460. REPEAT i := 1 TO s.n_u-1;
  11461. REPEAT j := 1 TO s.n_v;
  11462. IF s.segments[i][j].u_transition = discontinuous THEN
  11463. RETURN(FALSE);
  11464. END_IF;
  11465. END_REPEAT;
  11466. END_REPEAT;
  11467. REPEAT i := 1 TO s.n_u;
  11468. REPEAT j := 1 TO s.n_v-1;
  11469. IF s.segments[i][j].v_transition = discontinuous THEN
  11470. RETURN(FALSE);
  11471. END_IF;
  11472. END_REPEAT;
  11473. END_REPEAT;
  11474. RETURN(TRUE);
  11475. END_FUNCTION;
  11476. FUNCTION control_characters_free
  11477. (s: STRING) : BOOLEAN;
  11478. LOCAL
  11479. ch : STRING;
  11480. END_LOCAL;
  11481. REPEAT i:=1 TO LENGTH(s);
  11482. ch := s[i];
  11483. IF (ch = '\x9') OR (ch = '\xA') OR (ch = '\xD') THEN
  11484. RETURN(FALSE);
  11485. END_IF;
  11486. END_REPEAT;
  11487. RETURN (TRUE);
  11488. END_FUNCTION;
  11489. FUNCTION cross_product
  11490. (arg1: direction; arg2: direction) : vector;
  11491. LOCAL
  11492. mag : REAL;
  11493. res : direction;
  11494. v1,v2 : LIST[3:3] OF REAL;
  11495. result : vector;
  11496. END_LOCAL;
  11497. IF ( NOT EXISTS (arg1) OR (arg1.dim = 2)) OR
  11498. ( NOT EXISTS (arg2) OR (arg2.dim = 2)) THEN
  11499. RETURN(?);
  11500. ELSE
  11501. BEGIN
  11502. v1 := normalise(arg1).direction_ratios;
  11503. v2 := normalise(arg2).direction_ratios;
  11504. res := dummy_gri || direction([(v1[2]*v2[3] - v1[3]*v2[2]),
  11505. (v1[3]*v2[1] - v1[1]*v2[3]), (v1[1]*v2[2] - v1[2]*v2[1])]);
  11506. mag := 0.0;
  11507. REPEAT i := 1 TO 3;
  11508. mag := mag + res.direction_ratios[i]*res.direction_ratios[i];
  11509. END_REPEAT;
  11510. IF (mag > 0.0) THEN
  11511. result := dummy_gri || vector(res, SQRT(mag));
  11512. ELSE
  11513. result := dummy_gri || vector(arg1, 0.0);
  11514. END_IF;
  11515. RETURN(result);
  11516. END;
  11517. END_IF;
  11518. END_FUNCTION;
  11519. FUNCTION curve_weights_positive
  11520. (b: rational_b_spline_curve) : BOOLEAN;
  11521. LOCAL
  11522. result : BOOLEAN := TRUE;
  11523. END_LOCAL;
  11524. REPEAT i := 0 TO b.upper_index_on_control_points;
  11525. IF b.weights[i] <= 0.0 THEN
  11526. result := FALSE;
  11527. RETURN(result);
  11528. END_IF;
  11529. END_REPEAT;
  11530. RETURN(result);
  11531. END_FUNCTION;
  11532. FUNCTION default_tolerance_table_cell_wr2
  11533. (agg: compound_item_definition) : BOOLEAN;
  11534. BEGIN
  11535. IF SIZEOF(agg) <= 5 THEN
  11536. RETURN(TRUE);
  11537. ELSE
  11538. RETURN(FALSE);
  11539. END_IF;
  11540. END;
  11541. END_FUNCTION;
  11542. FUNCTION default_tolerance_table_cell_wr3
  11543. (agg: compound_item_definition) : BOOLEAN;
  11544. BEGIN
  11545. IF (SIZEOF(QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i))
  11546. AND (i\representation_item.name = 'significant number of digits')) )) = 1) OR
  11547. ((SIZEOF(QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND
  11548. (i\representation_item.name = 'lower limit')) )) = 1) AND
  11549. (SIZEOF( QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND
  11550. (i\representation_item.name = 'upper limit')) )) = 1)) THEN
  11551. RETURN(TRUE);
  11552. ELSE
  11553. RETURN(FALSE);
  11554. END_IF;
  11555. END;
  11556. END_FUNCTION;
  11557. FUNCTION default_tolerance_table_cell_wr4
  11558. (agg: compound_item_definition) : BOOLEAN;
  11559. BEGIN
  11560. IF (SIZEOF(QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND
  11561. (i\representation_item.name = 'plus minus tolerance value')) )) = 1) OR
  11562. ((SIZEOF(QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (
  11563. i\representation_item.name = 'lower tolerance value')) )) = 1) AND
  11564. (SIZEOF( QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (
  11565. i\representation_item.name = 'upper tolerance value')) )) = 1)) THEN
  11566. RETURN(TRUE);
  11567. ELSE
  11568. RETURN(FALSE);
  11569. END_IF;
  11570. END;
  11571. END_FUNCTION;
  11572. FUNCTION default_tolerance_table_cell_wr5
  11573. (agg: compound_item_definition) : BOOLEAN;
  11574. BEGIN
  11575. IF (SIZEOF(QUERY ( i <* agg | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) <= 1) AND
  11576. (SIZEOF(QUERY ( i <* agg | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) )) =
  11577. SIZEOF(QUERY ( i <* agg | (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND
  11578. (i\representation_item.name = 'cell description'))) ))
  11579. THEN
  11580. RETURN(TRUE);
  11581. ELSE
  11582. RETURN(FALSE);
  11583. END_IF;
  11584. END;
  11585. END_FUNCTION;
  11586. FUNCTION dependently_instantiated
  11587. (set_of_input_instances: SET [0:?] OF GENERIC: igen; set_of_input_types: SET [0:?] OF STRING; previous_in_chain: LIST [0:?] OF GENERIC: cgen) : BOOLEAN;
  11588. LOCAL
  11589. number_of_input_instances : INTEGER;
  11590. number_of_referring_instances : INTEGER;
  11591. bag_of_referring_instances : BAG OF GENERIC:igen := [];
  11592. dependently_instantiated_flag : BOOLEAN;
  11593. previous_in_chain_plus : LIST OF GENERIC:cgen := [];
  11594. result : BOOLEAN := true;
  11595. set_of_types : SET OF STRING := [];
  11596. END_LOCAL;
  11597. IF EXISTS(set_of_input_instances) THEN
  11598. number_of_input_instances := SIZEOF(set_of_input_instances);
  11599. (* Add the declared type of bag_of_referring_instances to the set of
  11600. types of the REFERENCEd instances for the subset comparison later.
  11601. *)
  11602. set_of_input_types := set_of_input_types + 'GENERIC';
  11603. REPEAT i:=1 TO number_of_input_instances;
  11604. (* Determine all references to the current input instance. *)
  11605. bag_of_referring_instances := USEDIN (set_of_input_instances[i] , '');
  11606. IF EXISTS(bag_of_referring_instances) THEN
  11607. number_of_referring_instances := SIZEOF(bag_of_referring_instances);
  11608. dependently_instantiated_flag := false;
  11609. REPEAT j:=1 TO number_of_referring_instances;
  11610. (* Determine the type strings of the current referencing instance.
  11611. *)
  11612. set_of_types := TYPEOF(bag_of_referring_instances[j]);
  11613. (* If the referencing instance is of one of the types of the
  11614. only dependently instantiable select items, the current input
  11615. instance may still be invalidly instantiated.
  11616. Otherwise it is OK, and the next input instance is tested.
  11617. *)
  11618. IF set_of_types <= set_of_input_types THEN -- subset operator
  11619. (* The referring instance is of one of the restricted types.
  11620. However, it may itself be referred to by a valid instance;
  11621. then also the current instance would be valid.
  11622. Thus, call this function recursively with the referring
  11623. instance as input.
  11624. To avoid an infinite loop in case a set of instances
  11625. reference each other in a closed loop, test first whether
  11626. the current referencing instance is in the list of
  11627. previously processed chain members.
  11628. *)
  11629. IF NOT (bag_of_referring_instances[j] IN previous_in_chain) THEN
  11630. previous_in_chain_plus := previous_in_chain +
  11631. set_of_input_instances[i];
  11632. IF dependently_instantiated([bag_of_referring_instances[j]],
  11633. set_of_input_types,
  11634. previous_in_chain_plus) THEN
  11635. dependently_instantiated_flag := true;
  11636. ESCAPE; -- dependently instantiated; next input instance
  11637. ELSE
  11638. (* Not dependently instantiated: go to next referring
  11639. instance. *)
  11640. SKIP;
  11641. END_IF;
  11642. END_IF;
  11643. ELSE
  11644. dependently_instantiated_flag := true;
  11645. ESCAPE; -- dependently instantiated; take next input instance
  11646. END_IF;
  11647. END_REPEAT;
  11648. IF NOT dependently_instantiated_flag THEN
  11649. RETURN(false);
  11650. END_IF;
  11651. ELSE
  11652. RETURN(false); -- not referenced at all => invalidly instantiated
  11653. END_IF;
  11654. END_REPEAT;
  11655. ELSE
  11656. RETURN(false); -- no input
  11657. END_IF;
  11658. RETURN(true);
  11659. END_FUNCTION;
  11660. FUNCTION derive_angle
  11661. (placement_1: axis2_placement_3d; placement_2: axis2_placement_3d) : plane_angle_measure;
  11662. LOCAL
  11663. v1 : direction;
  11664. v2 : direction;
  11665. mag_v1 : REAL;
  11666. mag_v2 : REAL;
  11667. theta : plane_angle_measure;
  11668. END_LOCAL;
  11669. v1 := placement_1.p[1];
  11670. v2 := placement_2.p[1];
  11671. mag_v1 := SQRT (v1.direction_ratios[1]*v1.direction_ratios[1] +
  11672. v1.direction_ratios[2]*v1.direction_ratios[2]);
  11673. mag_v2 := SQRT (v2.direction_ratios[1]*v2.direction_ratios[1] +
  11674. v2.direction_ratios[2]*v2.direction_ratios[2]);
  11675. IF ((mag_v1 = 0.0) OR (mag_v2 = 0.0)) THEN
  11676. theta := 0.0;
  11677. RETURN (theta);
  11678. END_IF;
  11679. theta := ACOS ((v1.direction_ratios[1]*v2.direction_ratios[1] +
  11680. v1.direction_ratios[2]*v2.direction_ratios[2]) /
  11681. (mag_v1*mag_v2));
  11682. RETURN (theta);
  11683. END_FUNCTION;
  11684. FUNCTION derive_dimensional_exponents
  11685. (x: unit) : dimensional_exponents;
  11686. LOCAL
  11687. result : dimensional_exponents := dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  11688. END_LOCAL;
  11689. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DERIVED_UNIT' IN TYPEOF(x) THEN
  11690. REPEAT i := LOINDEX(x\derived_unit.elements) TO HIINDEX(x\derived_unit.elements);
  11691. result.length_exponent := result.length_exponent +
  11692. (x\derived_unit.elements[i]\derived_unit_element.exponent *
  11693. x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.length_exponent);
  11694. result.mass_exponent := result.mass_exponent +
  11695. (x\derived_unit.elements[i]\derived_unit_element.exponent *
  11696. x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.mass_exponent);
  11697. result.time_exponent := result.time_exponent +
  11698. (x\derived_unit.elements[i]\derived_unit_element.exponent *
  11699. x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.time_exponent);
  11700. result.electric_current_exponent := result.electric_current_exponent +
  11701. (x\derived_unit.elements[i]\derived_unit_element.exponent *
  11702. x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.electric_current_exponent);
  11703. result.thermodynamic_temperature_exponent := result.thermodynamic_temperature_exponent +
  11704. (x\derived_unit.elements[i]\derived_unit_element.exponent *
  11705. x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.thermodynamic_temperature_exponent);
  11706. result.amount_of_substance_exponent := result.amount_of_substance_exponent +
  11707. (x\derived_unit.elements[i]\derived_unit_element.exponent *
  11708. x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.amount_of_substance_exponent);
  11709. result.luminous_intensity_exponent := result.luminous_intensity_exponent +
  11710. (x\derived_unit.elements[i]\derived_unit_element.exponent *
  11711. x\derived_unit.elements[i]\derived_unit_element.unit\named_unit.dimensions.luminous_intensity_exponent);
  11712. END_REPEAT;
  11713. ELSE
  11714. result := x\named_unit.dimensions;
  11715. END_IF;
  11716. RETURN (result);
  11717. END_FUNCTION;
  11718. FUNCTION dimension_of
  11719. (item: geometric_representation_item) : dimension_count;
  11720. LOCAL
  11721. x : SET OF representation;
  11722. y : representation_context;
  11723. dim : dimension_count;
  11724. END_LOCAL;
  11725. -- For cartesian_point, direction, or vector dimension is determined by
  11726. -- counting components.
  11727. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF(item) THEN
  11728. dim := SIZEOF(item\cartesian_point.coordinates);
  11729. RETURN(dim);
  11730. END_IF;
  11731. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIRECTION' IN TYPEOF(item) THEN
  11732. dim := SIZEOF(item\direction.direction_ratios);
  11733. RETURN(dim);
  11734. END_IF;
  11735. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF(item) THEN
  11736. dim := SIZEOF(item\vector.orientation\direction.direction_ratios);
  11737. RETURN(dim);
  11738. END_IF;
  11739. -- For all other types of geometric_representation_item dim is obtained
  11740. -- via context.
  11741. -- Find the set of representation in which the item is used.
  11742. x := using_representations(item);
  11743. -- Determines the dimension_count of the
  11744. -- geometric_representation_context. Note that the
  11745. -- RULE compatible_dimension ensures that the context_of_items
  11746. -- is of type geometric_representation_context and has
  11747. -- the same dimension_count for all values of x.
  11748. -- The SET x is non-empty since this is required by WR1 of
  11749. -- representation_item.
  11750. y := x[1].context_of_items;
  11751. dim := y\geometric_representation_context.coordinate_space_dimension;
  11752. RETURN (dim);
  11753. END_FUNCTION;
  11754. FUNCTION dimensions_for_si_unit
  11755. (n: si_unit_name) : dimensional_exponents;
  11756. CASE n OF
  11757. metre:
  11758. RETURN (dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
  11759. gram:
  11760. RETURN (dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0));
  11761. second:
  11762. RETURN (dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0));
  11763. ampere:
  11764. RETURN (dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0));
  11765. kelvin:
  11766. RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0));
  11767. mole:
  11768. RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0));
  11769. candela:
  11770. RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0));
  11771. radian:
  11772. RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
  11773. steradian:
  11774. RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
  11775. hertz:
  11776. RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0));
  11777. newton:
  11778. RETURN (dimensional_exponents(1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0));
  11779. pascal:
  11780. RETURN (dimensional_exponents(-1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0));
  11781. joule:
  11782. RETURN (dimensional_exponents(2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0));
  11783. watt:
  11784. RETURN (dimensional_exponents(2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0));
  11785. coulomb:
  11786. RETURN (dimensional_exponents(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0));
  11787. volt:
  11788. RETURN (dimensional_exponents(2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0));
  11789. farad:
  11790. RETURN (dimensional_exponents(-2.0, -1.0, 4.0, 1.0, 0.0, 0.0, 0.0));
  11791. ohm:
  11792. RETURN (dimensional_exponents(2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0));
  11793. siemens:
  11794. RETURN (dimensional_exponents(-2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0));
  11795. weber:
  11796. RETURN (dimensional_exponents(2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0));
  11797. tesla:
  11798. RETURN (dimensional_exponents(0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0));
  11799. henry:
  11800. RETURN (dimensional_exponents(2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0));
  11801. degree_Celsius:
  11802. RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0));
  11803. lumen:
  11804. RETURN (dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0));
  11805. lux:
  11806. RETURN (dimensional_exponents(-2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0));
  11807. becquerel:
  11808. RETURN (dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0));
  11809. gray:
  11810. RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0));
  11811. sievert:
  11812. RETURN (dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0));
  11813. OTHERWISE:
  11814. RETURN (?);
  11815. END_CASE;
  11816. END_FUNCTION;
  11817. FUNCTION dot_product
  11818. (arg1: direction; arg2: direction) : REAL;
  11819. LOCAL
  11820. scalar : REAL;
  11821. vec1, vec2: direction;
  11822. ndim : INTEGER;
  11823. END_LOCAL;
  11824. IF NOT EXISTS (arg1) OR NOT EXISTS (arg2) THEN
  11825. scalar := ?;
  11826. (* When function is called with invalid data an indeterminate result
  11827. is returned *)
  11828. ELSE
  11829. IF (arg1.dim <> arg2.dim) THEN
  11830. scalar := ?;
  11831. (* When function is called with invalid data an indeterminate result
  11832. is returned *)
  11833. ELSE
  11834. BEGIN
  11835. vec1 := normalise(arg1);
  11836. vec2 := normalise(arg2);
  11837. ndim := arg1.dim;
  11838. scalar := 0.0;
  11839. REPEAT i := 1 TO ndim;
  11840. scalar := scalar +
  11841. vec1.direction_ratios[i]*vec2.direction_ratios[i];
  11842. END_REPEAT;
  11843. END;
  11844. END_IF;
  11845. END_IF;
  11846. RETURN (scalar);
  11847. END_FUNCTION;
  11848. FUNCTION edge_reversed
  11849. (an_edge: edge) : oriented_edge;
  11850. LOCAL
  11851. the_reverse : oriented_edge;
  11852. END_LOCAL;
  11853. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_EDGE' IN TYPEOF (an_edge) ) THEN
  11854. the_reverse := dummy_tri ||
  11855. edge(an_edge.edge_end, an_edge.edge_start) ||
  11856. oriented_edge(an_edge\oriented_edge.edge_element,
  11857. NOT (an_edge\oriented_edge.orientation)) ;
  11858. ELSE
  11859. the_reverse := dummy_tri ||
  11860. edge(an_edge.edge_end, an_edge.edge_start) ||
  11861. oriented_edge(an_edge, FALSE);
  11862. END_IF;
  11863. RETURN (the_reverse);
  11864. END_FUNCTION;
  11865. FUNCTION external_version_assignment_is_valid
  11866. (aia: applied_external_identification_assignment) : BOOLEAN;
  11867. LOCAL
  11868. item: identification_item;
  11869. role: identification_role;
  11870. END_LOCAL;
  11871. role:= aia.role;
  11872. IF role.name='version' THEN
  11873. REPEAT i:=LOINDEX(aia.items) TO HIINDEX(aia.items);
  11874. item:= aia.items[i];
  11875. IF (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'EXTERNALLY_VERSIONED_ITEM']*TYPEOF(item))=0) THEN
  11876. -- item invalid if item does not belong to versionable types
  11877. RETURN(FALSE);
  11878. END_IF;
  11879. END_REPEAT;
  11880. RETURN(TRUE);
  11881. ELSE -- case where aia does not convey a version id
  11882. RETURN(TRUE);
  11883. END_IF;
  11884. END_FUNCTION;
  11885. FUNCTION face_bound_reversed
  11886. (a_face_bound: face_bound) : face_bound;
  11887. LOCAL
  11888. the_reverse : face_bound ;
  11889. END_LOCAL;
  11890. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF (a_face_bound) ) THEN
  11891. the_reverse := dummy_tri ||
  11892. face_bound(a_face_bound\face_bound.bound,
  11893. NOT (a_face_bound\face_bound.orientation))
  11894. || face_outer_bound() ;
  11895. ELSE
  11896. the_reverse := dummy_tri ||
  11897. face_bound(a_face_bound.bound, NOT(a_face_bound.orientation));
  11898. END_IF;
  11899. RETURN (the_reverse);
  11900. END_FUNCTION;
  11901. FUNCTION face_reversed
  11902. (a_face: face) : oriented_face;
  11903. LOCAL
  11904. the_reverse : oriented_face ;
  11905. END_LOCAL;
  11906. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_FACE' IN TYPEOF (a_face) ) THEN
  11907. the_reverse := dummy_tri ||
  11908. face(set_of_topology_reversed(a_face.bounds)) ||
  11909. oriented_face(a_face\oriented_face.face_element,
  11910. NOT (a_face\oriented_face.orientation)) ;
  11911. ELSE
  11912. the_reverse := dummy_tri ||
  11913. face(set_of_topology_reversed(a_face.bounds)) ||
  11914. oriented_face(a_face, FALSE) ;
  11915. END_IF;
  11916. RETURN (the_reverse);
  11917. END_FUNCTION;
  11918. FUNCTION first_proj_axis
  11919. (z_axis: direction; arg: direction) : direction;
  11920. LOCAL
  11921. x_axis : direction;
  11922. v : direction;
  11923. z : direction;
  11924. x_vec : vector;
  11925. END_LOCAL;
  11926. IF (NOT EXISTS(z_axis)) THEN
  11927. RETURN (?) ;
  11928. ELSE
  11929. z := normalise(z_axis);
  11930. IF NOT EXISTS(arg) THEN
  11931. IF ((z.direction_ratios <> [1.0,0.0,0.0]) AND
  11932. (z.direction_ratios <> [-1.0,0.0,0.0])) THEN
  11933. v := dummy_gri || direction([1.0,0.0,0.0]);
  11934. ELSE
  11935. v := dummy_gri || direction([0.0,1.0,0.0]);
  11936. END_IF;
  11937. ELSE
  11938. IF (arg.dim <> 3) THEN
  11939. RETURN (?) ;
  11940. END_IF;
  11941. IF ((cross_product(arg,z).magnitude) = 0.0) THEN
  11942. RETURN (?);
  11943. ELSE
  11944. v := normalise(arg);
  11945. END_IF;
  11946. END_IF;
  11947. x_vec := scalar_times_vector(dot_product(v, z), z);
  11948. x_axis := vector_difference(v, x_vec).orientation;
  11949. x_axis := normalise(x_axis);
  11950. END_IF;
  11951. RETURN(x_axis);
  11952. END_FUNCTION;
  11953. FUNCTION gbsf_check_curve
  11954. (cv: representation_item) : BOOLEAN;
  11955. IF SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN
  11956. RETURN (FALSE);
  11957. END_IF;
  11958. IF SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TRIMMED_CURVE'] * TYPEOF(cv)) = 1 THEN
  11959. RETURN (TRUE);
  11960. ELSE
  11961. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\b_spline_curve.self_intersect = FALSE) OR (cv\b_spline_curve.self_intersect = UNKNOWN)) THEN
  11962. RETURN (TRUE);
  11963. ELSE
  11964. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE' IN TYPEOF(cv)) AND (cv\composite_curve.self_intersect = FALSE) OR (cv\composite_curve.self_intersect = UNKNOWN)) THEN
  11965. RETURN (SIZEOF(QUERY(seg <* cv\composite_curve.segments | NOT (gbsf_check_curve(seg.parent_curve)))) = 0);
  11966. ELSE
  11967. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) THEN
  11968. RETURN (gbsf_check_curve(cv\curve_replica.parent_curve));
  11969. ELSE
  11970. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\offset_curve_3d.self_intersect = FALSE) OR (cv\offset_curve_3d.self_intersect = UNKNOWN)) AND (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF(cv\offset_curve_3d.basis_curve)))) THEN
  11971. RETURN (gbsf_check_curve(cv\offset_curve_3d.basis_curve));
  11972. ELSE
  11973. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(cv) THEN
  11974. RETURN ((gbsf_check_curve(cv\pcurve.reference_to_curve\representation.items[1])) AND (gbsf_check_surface(cv\pcurve.basis_surface)));
  11975. ELSE
  11976. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF(cv) THEN
  11977. IF (SIZEOF(cv\polyline.points) >= 3) THEN
  11978. RETURN (TRUE);
  11979. END_IF;
  11980. ELSE
  11981. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) THEN
  11982. IF gbsf_check_curve(cv\surface_curve.curve_3d) THEN
  11983. REPEAT i := 1 TO SIZEOF(cv\surface_curve.associated_geometry);
  11984. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN
  11985. IF NOT gbsf_check_surface(cv\surface_curve.associated_geometry[i]) THEN
  11986. RETURN (FALSE);
  11987. END_IF;
  11988. ELSE
  11989. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(cv\surface_curve.associated_geometry[i]) THEN
  11990. IF NOT gbsf_check_curve(cv\surface_curve.associated_geometry[i]) THEN
  11991. RETURN (FALSE);
  11992. END_IF;
  11993. END_IF;
  11994. END_IF;
  11995. END_REPEAT;
  11996. RETURN (TRUE);
  11997. END_IF;
  11998. END_IF;
  11999. END_IF;
  12000. END_IF;
  12001. END_IF;
  12002. END_IF;
  12003. END_IF;
  12004. END_IF;
  12005. END_IF;
  12006. RETURN (FALSE);
  12007. END_FUNCTION;
  12008. FUNCTION gbsf_check_point
  12009. (pnt: point) : BOOLEAN;
  12010. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF(pnt) THEN
  12011. RETURN (TRUE);
  12012. ELSE
  12013. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE' IN TYPEOF(pnt) THEN
  12014. RETURN (gbsf_check_curve(pnt\point_on_curve.basis_curve));
  12015. ELSE
  12016. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_SURFACE' IN TYPEOF(pnt) THEN
  12017. RETURN (gbsf_check_surface(pnt\point_on_surface.basis_surface));
  12018. ELSE
  12019. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DEGENERATE_PCURVE' IN TYPEOF(pnt) THEN
  12020. RETURN ((gbsf_check_curve(pnt\degenerate_pcurve.reference_to_curve\representation.items[1])) AND (gbsf_check_surface(pnt\degenerate_pcurve.basis_surface)));
  12021. END_IF;
  12022. END_IF;
  12023. END_IF;
  12024. END_IF;
  12025. RETURN (FALSE);
  12026. END_FUNCTION;
  12027. FUNCTION gbsf_check_surface
  12028. (sf: surface) : BOOLEAN;
  12029. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(sf)) AND (sf\b_spline_surface.self_intersect = FALSE) OR (sf\b_spline_surface.self_intersect = UNKNOWN)) THEN
  12030. RETURN (TRUE);
  12031. ELSE
  12032. IF SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SPHERICAL_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TOROIDAL_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_BOUNDED_SURFACE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RECTANGULAR_TRIMMED_SURFACE'] * TYPEOF(sf)) = 1 THEN
  12033. RETURN (TRUE);
  12034. ELSE
  12035. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_SURFACE' IN TYPEOF(sf)) AND (sf\offset_surface.self_intersect = FALSE) OR (sf\offset_surface.self_intersect = UNKNOWN)) THEN
  12036. RETURN (gbsf_check_surface(sf\offset_surface.basis_surface));
  12037. ELSE
  12038. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RECTANGULAR_COMPOSITE_SURFACE' IN TYPEOF(sf) THEN
  12039. REPEAT i := 1 TO SIZEOF(sf\rectangular_composite_surface.segments);
  12040. REPEAT j := 1 TO SIZEOF(sf\rectangular_composite_surface.segments[i]);
  12041. IF NOT (gbsf_check_surface(sf\rectangular_composite_surface.segments[i][j].parent_surface)) THEN
  12042. RETURN (FALSE);
  12043. END_IF;
  12044. END_REPEAT;
  12045. END_REPEAT;
  12046. RETURN (TRUE);
  12047. ELSE
  12048. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_REPLICA' IN TYPEOF(sf) THEN
  12049. RETURN (gbsf_check_surface(sf\surface_replica.parent_surface));
  12050. ELSE
  12051. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF(sf) THEN
  12052. RETURN (gbsf_check_curve(sf\swept_surface.swept_curve));
  12053. END_IF;
  12054. END_IF;
  12055. END_IF;
  12056. END_IF;
  12057. END_IF;
  12058. END_IF;
  12059. RETURN (FALSE);
  12060. END_FUNCTION;
  12061. FUNCTION get_basis_surface
  12062. (c: curve_on_surface) : SET [0:2] OF surface;
  12063. LOCAL
  12064. surfs : SET[0:2] OF surface;
  12065. n : INTEGER;
  12066. END_LOCAL;
  12067. surfs := [];
  12068. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF (c) THEN
  12069. surfs := [c\pcurve.basis_surface];
  12070. ELSE
  12071. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF (c) THEN
  12072. n := SIZEOF(c\surface_curve.associated_geometry);
  12073. REPEAT i := 1 TO n;
  12074. surfs := surfs +
  12075. associated_surface(c\surface_curve.associated_geometry[i]);
  12076. END_REPEAT;
  12077. END_IF;
  12078. END_IF;
  12079. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF (c) THEN
  12080. (* For a composite_curve_on_surface the basis_surface is the intersection
  12081. of the basis_surfaces of all the segments. *)
  12082. n := SIZEOF(c\composite_curve.segments);
  12083. surfs := get_basis_surface(
  12084. c\composite_curve.segments[1].parent_curve);
  12085. IF n > 1 THEN
  12086. REPEAT i := 2 TO n;
  12087. surfs := surfs * get_basis_surface(
  12088. c\composite_curve.segments[i].parent_curve);
  12089. END_REPEAT;
  12090. END_IF;
  12091. END_IF;
  12092. RETURN(surfs);
  12093. END_FUNCTION;
  12094. FUNCTION get_description_value
  12095. (obj: description_attribute_select) : text;
  12096. LOCAL
  12097. description_bag : BAG OF description_attribute := (USEDIN(obj, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.' + 'DESCRIBED_ITEM'));
  12098. END_LOCAL;
  12099. IF SIZEOF(description_bag) = 1 THEN
  12100. RETURN (description_bag[1].attribute_value);
  12101. ELSE
  12102. RETURN (?);
  12103. END_IF;
  12104. END_FUNCTION;
  12105. FUNCTION get_id_value
  12106. (obj: id_attribute_select) : identifier;
  12107. LOCAL
  12108. id_bag : BAG OF id_attribute := (USEDIN(obj, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ID_ATTRIBUTE.' + 'IDENTIFIED_ITEM'));
  12109. END_LOCAL;
  12110. IF SIZEOF(id_bag) = 1 THEN
  12111. RETURN (id_bag[1].attribute_value);
  12112. ELSE
  12113. RETURN (?);
  12114. END_IF;
  12115. END_FUNCTION;
  12116. FUNCTION get_name_value
  12117. (obj: name_attribute_select) : label;
  12118. LOCAL
  12119. name_bag : BAG OF name_attribute := (USEDIN(obj, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'NAME_ATTRIBUTE.' + 'NAMED_ITEM'));
  12120. END_LOCAL;
  12121. IF SIZEOF(name_bag) = 1 THEN
  12122. RETURN (name_bag[1].attribute_value);
  12123. ELSE
  12124. RETURN (?);
  12125. END_IF;
  12126. END_FUNCTION;
  12127. FUNCTION get_role
  12128. (obj: role_select) : object_role;
  12129. LOCAL
  12130. role_bag : BAG OF role_association := (USEDIN(obj, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'ROLE_ASSOCIATION.' + 'ITEM_WITH_ROLE'));
  12131. END_LOCAL;
  12132. IF SIZEOF(role_bag) = 1 THEN
  12133. RETURN (role_bag[1].role);
  12134. ELSE
  12135. RETURN (?);
  12136. END_IF;
  12137. END_FUNCTION;
  12138. FUNCTION get_shape_aspect_property_definition_representations
  12139. (s_a_instance: shape_aspect) : SET [0:?] OF property_definition_representation;
  12140. LOCAL
  12141. pd_set : SET OF property_definition := [];
  12142. pdr_set : SET OF property_definition_representation := [] ;
  12143. END_LOCAL;
  12144. pd_set := bag_to_set(USEDIN(s_a_instance, 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROPERTY_DEFINITION.DEFINITION'));
  12145. IF (SIZEOF(pd_set) < 1) THEN
  12146. RETURN (pdr_set);
  12147. END_IF;
  12148. REPEAT i := 1 TO HIINDEX(pd_set);
  12149. pdr_set := pdr_set + (QUERY(pdr <* USEDIN(pd_set[i], 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION') |
  12150. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)));
  12151. END_REPEAT;
  12152. RETURN (pdr_set);
  12153. END_FUNCTION;
  12154. FUNCTION is_acyclic
  12155. (arg: generic_expression) : BOOLEAN;
  12156. RETURN (acyclic (arg, []));
  12157. END_FUNCTION;
  12158. FUNCTION is_int_expr
  12159. (arg: numeric_expression) : LOGICAL;
  12160. LOCAL
  12161. i: INTEGER := 0;
  12162. END_LOCAL;
  12163. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INT_LITERAL' IN TYPEOF(arg)
  12164. THEN
  12165. RETURN (TRUE);
  12166. END_IF;
  12167. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REAL_LITERAL' IN TYPEOF(arg)
  12168. THEN
  12169. RETURN (FALSE);
  12170. END_IF;
  12171. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF(arg)
  12172. THEN
  12173. RETURN (TRUE);
  12174. END_IF;
  12175. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF(arg)
  12176. THEN
  12177. RETURN (FALSE);
  12178. END_IF;
  12179. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ABS_FUNCTION' IN TYPEOF(arg)
  12180. THEN
  12181. RETURN (is_int_expr(arg\unary_numeric_expression.operand));
  12182. END_IF;
  12183. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINUS_FUNCTION' IN TYPEOF(arg)
  12184. THEN
  12185. RETURN (is_int_expr(arg\unary_numeric_expression.operand));
  12186. END_IF;
  12187. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIN_FUNCTION' IN TYPEOF(arg))
  12188. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COS_FUNCTION' IN TYPEOF(arg))
  12189. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TAN_FUNCTION' IN TYPEOF(arg))
  12190. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ASIN_FUNCTION' IN TYPEOF(arg))
  12191. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ACOS_FUNCTION' IN TYPEOF(arg))
  12192. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ATAN_FUNCTION' IN TYPEOF(arg))
  12193. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXP_FUNCTION' IN TYPEOF(arg))
  12194. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG_FUNCTION' IN TYPEOF(arg))
  12195. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG2_FUNCTION' IN TYPEOF(arg))
  12196. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG10_FUNCTION' IN TYPEOF(arg))
  12197. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SQUARE_ROOT_FUNCTION'
  12198. IN TYPEOF(arg))
  12199. THEN
  12200. RETURN (FALSE);
  12201. END_IF;
  12202. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLUS_EXPRESSION' IN TYPEOF(arg))
  12203. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MULT_EXPRESSION'
  12204. IN TYPEOF(arg))
  12205. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAXIMUM_FUNCTION'
  12206. IN TYPEOF(arg))
  12207. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINIMUM_FUNCTION'
  12208. IN TYPEOF(arg))
  12209. THEN
  12210. REPEAT i :=1 TO SIZEOF (
  12211. arg\multiple_arity_numeric_expression.operands);
  12212. IF NOT
  12213. is_int_expr(arg\multiple_arity_numeric_expression.operands[i])
  12214. THEN
  12215. RETURN (FALSE);
  12216. END_IF;
  12217. END_REPEAT;
  12218. RETURN (TRUE);
  12219. END_IF;
  12220. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINUS_EXPRESSION' IN TYPEOF(arg))
  12221. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POWER_EXPRESSION'
  12222. IN TYPEOF(arg))
  12223. THEN
  12224. RETURN (is_int_expr(arg\binary_numeric_expression.operands[1])
  12225. AND is_int_expr(arg\binary_numeric_expression.operands[2]));
  12226. END_IF;
  12227. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIV_EXPRESSION' IN TYPEOF(arg))
  12228. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MOD_EXPRESSION' IN TYPEOF(arg))
  12229. THEN
  12230. RETURN(TRUE);
  12231. END_IF;
  12232. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SLASH_EXPRESSION' IN TYPEOF(arg)
  12233. THEN
  12234. RETURN (FALSE);
  12235. END_IF;
  12236. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_FUNCTION' IN TYPEOF(arg)
  12237. THEN
  12238. RETURN (TRUE);
  12239. END_IF;
  12240. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_FUNCTION' IN TYPEOF(arg)
  12241. THEN
  12242. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INT_VALUE_FUNCTION'
  12243. IN TYPEOF(arg)
  12244. THEN
  12245. RETURN (TRUE);
  12246. ELSE
  12247. RETURN (FALSE);
  12248. END_IF;
  12249. END_IF;
  12250. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INTEGER_DEFINED_FUNCTION'
  12251. IN TYPEOF(arg)
  12252. THEN
  12253. RETURN(TRUE) ;
  12254. END_IF;
  12255. IF'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REAL_DEFINED_FUNCTION' IN TYPEOF(arg)
  12256. THEN
  12257. RETURN(FALSE) ;
  12258. END_IF ;
  12259. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOOLEAN_DEFINED_FUNCTION'
  12260. IN TYPEOF(arg)
  12261. THEN
  12262. RETURN(FALSE) ;
  12263. END_IF ;
  12264. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_DEFINED_FUNCTION'
  12265. IN TYPEOF(arg)
  12266. THEN
  12267. RETURN (FALSE) ;
  12268. END_IF ;
  12269. RETURN (FALSE);
  12270. END_FUNCTION;
  12271. FUNCTION is_SQL_mappable
  12272. (arg: expression) : LOGICAL;
  12273. LOCAL
  12274. i: INTEGER;
  12275. END_LOCAL;
  12276. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIMPLE_NUMERIC_EXPRESSION'
  12277. IN TYPEOF (arg)
  12278. THEN
  12279. RETURN (TRUE);
  12280. END_IF;
  12281. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SQL_MAPPABLE_DEFINED_FUNCTION'
  12282. IN TYPEOF (arg)
  12283. THEN
  12284. RETURN (TRUE);
  12285. END_IF;
  12286. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINUS_FUNCTION' IN TYPEOF(arg)
  12287. THEN
  12288. RETURN (is_SQL_mappable(arg\unary_numeric_expression.operand));
  12289. END_IF;
  12290. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ABS_FUNCTION' IN TYPEOF(arg))
  12291. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIN_FUNCTION' IN TYPEOF(arg))
  12292. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COS_FUNCTION' IN TYPEOF(arg))
  12293. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TAN_FUNCTION' IN TYPEOF(arg))
  12294. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ASIN_FUNCTION' IN TYPEOF(arg))
  12295. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ACOS_FUNCTION' IN TYPEOF(arg))
  12296. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ATAN_FUNCTION' IN TYPEOF(arg))
  12297. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EXP_FUNCTION' IN TYPEOF(arg))
  12298. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG_FUNCTION' IN TYPEOF(arg))
  12299. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG2_FUNCTION' IN TYPEOF(arg))
  12300. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LOG10_FUNCTION' IN TYPEOF(arg))
  12301. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SQUARE_ROOT_FUNCTION'
  12302. IN TYPEOF(arg))
  12303. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_FUNCTION' IN TYPEOF(arg))
  12304. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_FUNCTION'
  12305. IN TYPEOF(arg))
  12306. THEN
  12307. RETURN (FALSE);
  12308. END_IF;
  12309. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLUS_EXPRESSION' IN TYPEOF(arg))
  12310. OR('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MULT_EXPRESSION' IN TYPEOF(arg))
  12311. OR('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAXIMUM_FUNCTION'
  12312. IN TYPEOF(arg))
  12313. OR('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINIMUM_FUNCTION'
  12314. IN TYPEOF(arg))
  12315. THEN
  12316. REPEAT i :=1 TO SIZEOF (
  12317. arg\multiple_arity_numeric_expression.operands);
  12318. IF NOT is_SQL_mappable(
  12319. arg\multiple_arity_numeric_expression.operands[i])
  12320. THEN
  12321. RETURN (FALSE);
  12322. END_IF;
  12323. END_REPEAT;
  12324. RETURN (TRUE);
  12325. END_IF;
  12326. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MINUS_EXPRESSION' IN TYPEOF(arg))
  12327. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SLASH_EXPRESSION' IN
  12328. TYPEOF(arg))
  12329. THEN
  12330. RETURN (is_SQL_mappable(
  12331. arg\binary_numeric_expression.operands[1])
  12332. AND is_SQL_mappable(arg\binary_numeric_expression.operands[2]));
  12333. END_IF;
  12334. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DIV_EXPRESSION' IN TYPEOF(arg))
  12335. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MOD_EXPRESSION' IN TYPEOF(arg))
  12336. OR('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POWER_EXPRESSION'
  12337. IN TYPEOF(arg))
  12338. THEN
  12339. RETURN (FALSE);
  12340. END_IF;
  12341. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIMPLE_BOOLEAN_EXPRESSION'
  12342. IN TYPEOF (arg)
  12343. THEN
  12344. RETURN (TRUE);
  12345. END_IF;
  12346. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NOT_EXPRESSION' IN TYPEOF (arg)
  12347. THEN
  12348. RETURN (is_SQL_mappable (arg\UNARY_GENERIC_EXPRESSION.OPERAND));
  12349. END_IF;
  12350. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ODD_FUNCTION'IN TYPEOF (arg))
  12351. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.XOR_EXPRESSION'
  12352. IN TYPEOF (arg))
  12353. THEN
  12354. RETURN (FALSE);
  12355. END_IF;
  12356. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AND_EXPRESSION' IN TYPEOF (arg))
  12357. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OR_EXPRESSION' IN TYPEOF (arg))
  12358. THEN
  12359. REPEAT i:=1 TO SIZEOF (
  12360. arg\MULTIPLE_ARITY_BOOLEAN_EXPRESSION.OPERANDS);
  12361. IF NOT is_SQL_mappable (
  12362. arg\MULTIPLE_ARITY_BOOLEAN_EXPRESSION.OPERANDS[i])
  12363. THEN
  12364. RETURN (FALSE);
  12365. END_IF;
  12366. END_REPEAT;
  12367. RETURN (TRUE);
  12368. END_IF;
  12369. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EQUALS_EXPRESSION' IN TYPEOF (arg)
  12370. THEN
  12371. RETURN(is_SQL_mappable (
  12372. arg\BINARY_GENERIC_EXPRESSION.OPERANDS [1])
  12373. AND is_SQL_mappable(
  12374. arg\BINARY_GENERIC_EXPRESSION.OPERANDS [2]));
  12375. END_IF;
  12376. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_EQUAL' IN TYPEOF (arg))
  12377. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_GREATER'
  12378. IN TYPEOF (arg))
  12379. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_GREATER_EQUAL'
  12380. IN TYPEOF (arg))
  12381. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_LESS'
  12382. IN TYPEOF (arg))
  12383. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_LESS_EQUAL'
  12384. IN TYPEOF (arg))
  12385. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPARISON_NOT_EQUAL'
  12386. IN TYPEOF (arg))
  12387. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LIKE_EXPRESSION'
  12388. IN TYPEOF (arg))
  12389. THEN
  12390. RETURN (is_SQL_mappable (arg\COMPARISON_EXPRESSION.OPERANDS[1])
  12391. AND is_SQL_mappable (arg\COMPARISON_EXPRESSION.OPERANDS[2]));
  12392. END_IF;
  12393. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INTERVAL_EXPRESSION' IN TYPEOF(arg)
  12394. THEN
  12395. RETURN (is_SQL_mappable(arg\interval_expression.interval_low)
  12396. AND is_SQL_mappable(arg\interval_expression.interval_high)
  12397. AND is_SQL_mappable(arg\interval_expression.interval_item));
  12398. END_IF;
  12399. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.NUMERIC_DEFINED_FUNCTION'
  12400. IN TYPEOF(arg))
  12401. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOOLEAN_DEFINED_FUNCTION'
  12402. IN TYPEOF(arg))
  12403. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.STRING_DEFINED_FUNCTION'
  12404. IN TYPEOF(arg))
  12405. THEN
  12406. RETURN (FALSE) ;
  12407. END_IF;
  12408. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SIMPLE_STRING_EXPRESSION'
  12409. IN TYPEOF(ARG)
  12410. THEN
  12411. RETURN (TRUE);
  12412. END_IF;
  12413. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INDEX_EXPRESSION' IN TYPEOF(arg))
  12414. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SUBSTRING_EXPRESSION'
  12415. IN TYPEOF(arg))
  12416. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONCAT_EXPRESSION'
  12417. IN TYPEOF(arg))
  12418. OR ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FORMAT_FUNCTION'
  12419. IN TYPEOF(arg))
  12420. THEN
  12421. RETURN (FALSE);
  12422. END_IF;
  12423. RETURN (FALSE);
  12424. END_FUNCTION;
  12425. FUNCTION item_in_context
  12426. (item: representation_item; cntxt: representation_context) : BOOLEAN;
  12427. LOCAL
  12428. y : BAG OF representation_item;
  12429. END_LOCAL;
  12430. -- If there is one or more representation using both the item
  12431. -- and cntxt return true.
  12432. IF SIZEOF(USEDIN(item,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION.ITEMS')
  12433. * cntxt.representations_in_context) > 0 THEN
  12434. RETURN (TRUE);
  12435. -- Determine the bag of representation_items that reference
  12436. -- item
  12437. ELSE y := QUERY(z <* USEDIN (item , '') |
  12438. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(z));
  12439. -- Ensure that the bag is not empty
  12440. IF SIZEOF(y) > 0 THEN
  12441. -- For each element in the bag
  12442. REPEAT i := 1 TO HIINDEX(y);
  12443. -- Check to see it is an item in the input cntxt.
  12444. IF item_in_context(y[i], cntxt) THEN
  12445. RETURN (TRUE);
  12446. END_IF;
  12447. END_REPEAT;
  12448. END_IF;
  12449. END_IF;
  12450. -- Return false when all possible branches have been checked
  12451. -- with no success.
  12452. RETURN (FALSE);
  12453. END_FUNCTION;
  12454. FUNCTION leap_year
  12455. (year: year_number) : BOOLEAN;
  12456. IF ((((year MOD 4) = 0) AND ((year MOD 100) <> 0)) OR ((year MOD 400) = 0)) THEN
  12457. RETURN (TRUE);
  12458. ELSE
  12459. RETURN (FALSE);
  12460. END_IF;
  12461. END_FUNCTION;
  12462. FUNCTION list_face_loops
  12463. (f: face) : LIST [0:?] OF loop;
  12464. LOCAL
  12465. loops : LIST[0:?] OF loop := [];
  12466. END_LOCAL;
  12467. REPEAT i := 1 TO SIZEOF(f.bounds);
  12468. loops := loops +(f.bounds[i].bound);
  12469. END_REPEAT;
  12470. RETURN(loops);
  12471. END_FUNCTION;
  12472. FUNCTION list_of_topology_reversed
  12473. (a_list: list_of_reversible_topology_item) : list_of_reversible_topology_item;
  12474. LOCAL
  12475. the_reverse : list_of_reversible_topology_item;
  12476. END_LOCAL;
  12477. the_reverse := [];
  12478. REPEAT i := 1 TO SIZEOF (a_list);
  12479. the_reverse := topology_reversed (a_list [i]) + the_reverse;
  12480. END_REPEAT;
  12481. RETURN (the_reverse);
  12482. END_FUNCTION;
  12483. FUNCTION list_to_array
  12484. (lis: LIST [0:?] OF GENERIC: T; low: INTEGER; u: INTEGER) : ARRAY [low:u] OF GENERIC: T;
  12485. LOCAL
  12486. n : INTEGER;
  12487. res : ARRAY [low:u] OF GENERIC : T;
  12488. END_LOCAL;
  12489. n := SIZEOF(lis);
  12490. IF (n <> (u-low +1)) THEN
  12491. RETURN(?);
  12492. ELSE
  12493. res := [lis[1] : n];
  12494. REPEAT i := 2 TO n;
  12495. res[low+i-1] := lis[i];
  12496. END_REPEAT;
  12497. RETURN(res);
  12498. END_IF;
  12499. END_FUNCTION;
  12500. FUNCTION list_to_set
  12501. (l: LIST [0:?] OF GENERIC: T) : SET [0:?] OF GENERIC: T;
  12502. LOCAL
  12503. s : SET OF GENERIC:T := [];
  12504. END_LOCAL;
  12505. REPEAT i := 1 TO SIZEOF(l);
  12506. s := s + l[i];
  12507. END_REPEAT;
  12508. RETURN(s);
  12509. END_FUNCTION;
  12510. FUNCTION make_array_of_array
  12511. (lis: LIST [1:?] OF LIST [1:?] OF GENERIC: T; low1: INTEGER; u1: INTEGER; low2: INTEGER; u2: INTEGER) : ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC: T;
  12512. LOCAL
  12513. res : ARRAY[low1:u1] OF ARRAY [low2:u2] OF GENERIC : T;
  12514. END_LOCAL;
  12515. (* Check input dimensions for consistency *)
  12516. IF (u1-low1+1) <> SIZEOF(lis) THEN
  12517. RETURN (?);
  12518. END_IF;
  12519. IF (u2 - low2 + 1 ) <> SIZEOF(lis[1]) THEN
  12520. RETURN (?) ;
  12521. END_IF;
  12522. (* Initialise res with values from lis[1] *)
  12523. res := [list_to_array(lis[1], low2, u2) : (u1-low1 + 1)];
  12524. REPEAT i := 2 TO HIINDEX(lis);
  12525. IF (u2-low2+1) <> SIZEOF(lis[i]) THEN
  12526. RETURN (?);
  12527. END_IF;
  12528. res[low1+i-1] := list_to_array(lis[i], low2, u2);
  12529. END_REPEAT;
  12530. RETURN (res);
  12531. END_FUNCTION;
  12532. FUNCTION mixed_loop_type_set
  12533. (l: SET [0:?] OF loop) : LOGICAL;
  12534. LOCAL
  12535. poly_loop_type: LOGICAL;
  12536. END_LOCAL;
  12537. IF(SIZEOF(l) <= 1) THEN
  12538. RETURN(FALSE);
  12539. END_IF;
  12540. poly_loop_type := ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLY_LOOP' IN TYPEOF(l[1]));
  12541. REPEAT i := 2 TO SIZEOF(l);
  12542. IF(('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLY_LOOP' IN TYPEOF(l[i])) <> poly_loop_type)
  12543. THEN
  12544. RETURN(TRUE);
  12545. END_IF;
  12546. END_REPEAT;
  12547. RETURN(FALSE);
  12548. END_FUNCTION;
  12549. FUNCTION msb_shells
  12550. (brep: manifold_solid_brep) : SET [1:?] OF closed_shell;
  12551. LOCAL
  12552. return_set: SET[1:?] OF closed_shell := [brep.outer];
  12553. END_LOCAL;
  12554. IF SIZEOF(QUERY(msbtype <* TYPEOF(brep) |
  12555. msbtype LIKE '*BREP_WITH_VOIDS')) >= 1
  12556. THEN
  12557. return_set := return_set + brep\brep_with_voids.voids;
  12558. END_IF;
  12559. RETURN(return_set);
  12560. END_FUNCTION;
  12561. FUNCTION msf_curve_check
  12562. (cv: representation_item) : BOOLEAN;
  12563. IF SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE',
  12564. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC',
  12565. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE',
  12566. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN
  12567. RETURN(FALSE);
  12568. END_IF;
  12569. (* b_spline_curves shall not self-intersect
  12570. *)
  12571. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (cv)) AND
  12572. (cv\b_spline_curve.self_intersect = FALSE)OR
  12573. (cv\b_spline_curve.self_intersect = UNKNOWN)) THEN
  12574. RETURN(TRUE);
  12575. ELSE
  12576. (* conics and lines are valid curve types
  12577. *)
  12578. IF SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE']
  12579. * TYPEOF (cv)) = 1 THEN
  12580. RETURN(TRUE);
  12581. ELSE
  12582. (* a curve_replica shall reference a valid curve
  12583. *)
  12584. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) THEN
  12585. RETURN (msf_curve_check(cv\curve_replica.parent_curve));
  12586. ELSE
  12587. (* an offset_curve_3d shall not self-intersect and
  12588. shall reference a valid curve; a polyline is not a
  12589. valid basis_curve
  12590. *)
  12591. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF (cv))
  12592. AND
  12593. ((cv\offset_curve_3d.self_intersect = FALSE) OR
  12594. (cv\offset_curve_3d.self_intersect = UNKNOWN))
  12595. AND
  12596. (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF
  12597. (cv\offset_curve_3d.basis_curve)))) THEN
  12598. RETURN (msf_curve_check(cv\offset_curve_3d.basis_curve));
  12599. ELSE
  12600. (* a pcurve shall reference a valid curve and a valid
  12601. basis_surface
  12602. *)
  12603. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(cv) THEN
  12604. RETURN ((msf_curve_check
  12605. (cv\pcurve.reference_to_curve\representation.items[1])) AND
  12606. (msf_surface_check(cv\pcurve.basis_surface)));
  12607. ELSE
  12608. (* a surface_curve references a curve_3d and one or
  12609. two pcurves or one or two surfaces or one of
  12610. each; all of these references shall be valid
  12611. *)
  12612. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) THEN
  12613. (* if the curve reference is correct, check also the rest
  12614. *)
  12615. IF msf_curve_check(cv\surface_curve.curve_3d) THEN
  12616. REPEAT i := 1 TO SIZEOF
  12617. (cv\surface_curve.associated_geometry);
  12618. (* do for one or two associated_geometrys:
  12619. *)
  12620. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN
  12621. TYPEOF (cv\surface_curve.associated_geometry[i]) THEN
  12622. IF NOT msf_surface_check
  12623. (cv\surface_curve.associated_geometry[i]) THEN
  12624. RETURN(FALSE);
  12625. END_IF;
  12626. ELSE
  12627. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF
  12628. (cv\surface_curve.associated_geometry[i]) THEN
  12629. IF NOT msf_curve_check
  12630. (cv\surface_curve.associated_geometry[i]) THEN
  12631. RETURN(FALSE);
  12632. END_IF;
  12633. END_IF;
  12634. END_IF;
  12635. END_REPEAT;
  12636. RETURN(TRUE);
  12637. END_IF;
  12638. ELSE
  12639. (* a polyline shall have at least 3 points
  12640. *)
  12641. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF(cv) THEN
  12642. IF (SIZEOF (cv\polyline.points) >= 3) THEN RETURN (TRUE);
  12643. END_IF;
  12644. END_IF;
  12645. END_IF;
  12646. END_IF;
  12647. END_IF;
  12648. END_IF;
  12649. END_IF;
  12650. END_IF;
  12651. (* FALSE is returned if the input parameter cv is not a valid curve.
  12652. *)
  12653. RETURN (FALSE);
  12654. END_FUNCTION;
  12655. FUNCTION msf_surface_check
  12656. (surf: surface) : BOOLEAN;
  12657. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN
  12658. RETURN(TRUE);
  12659. ELSE
  12660. (* a swept_surface shall have a valid sweeping curve
  12661. *)
  12662. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_SURFACE' IN TYPEOF (surf) THEN
  12663. RETURN (msf_curve_check(surf\swept_surface.swept_curve));
  12664. ELSE
  12665. (* an offset_surface shall not self-intersect and shall
  12666. reference a valid surface
  12667. *)
  12668. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_SURFACE' IN TYPEOF (surf)) AND
  12669. (surf\offset_surface.self_intersect = FALSE) OR
  12670. (surf\offset_surface.self_intersect = UNKNOWN)) THEN
  12671. RETURN (msf_surface_check(surf\offset_surface.basis_surface));
  12672. ELSE
  12673. (* a surface_replica shall have a valid parent surface
  12674. *)
  12675. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_REPLICA' IN TYPEOF(surf) THEN
  12676. RETURN(msf_surface_check(surf\surface_replica.parent_surface));
  12677. ELSE
  12678. (* a b_spline_surface shall not self-intersect
  12679. *)
  12680. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(surf)) AND
  12681. (surf\b_spline_surface.self_intersect = FALSE) OR
  12682. (surf\b_spline_surface.self_intersect = UNKNOWN)) THEN
  12683. RETURN(TRUE);
  12684. END_IF;
  12685. END_IF;
  12686. END_IF;
  12687. END_IF;
  12688. END_IF;
  12689. RETURN(FALSE);
  12690. END_FUNCTION;
  12691. FUNCTION nmsf_curve_check
  12692. (cv: representation_item) : BOOLEAN;
  12693. IF SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.BOUNDED_CURVE',
  12694. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC',
  12695. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA',
  12696. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE',
  12697. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1
  12698. THEN RETURN(FALSE);
  12699. ELSE
  12700. (* b_spline_curves shall not self-intersect
  12701. *)
  12702. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE' IN TYPEOF (cv)) AND
  12703. (cv\b_spline_curve.self_intersect = FALSE) OR
  12704. (cv\b_spline_curve.self_intersect = UNKNOWN))
  12705. THEN RETURN(TRUE);
  12706. ELSE
  12707. (* conics and lines are valid curve types
  12708. *)
  12709. IF SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC',
  12710. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE'] * TYPEOF (cv)) = 1 THEN
  12711. RETURN(TRUE);
  12712. ELSE
  12713. (* a curve_replica shall reference a valid curve
  12714. *)
  12715. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) THEN
  12716. RETURN (nmsf_curve_check(cv\curve_replica.parent_curve));
  12717. ELSE
  12718. (* an offset_curve_3d shall not self-intersect and
  12719. shall reference a valid curve; a polyline is not a
  12720. valid basis_curve
  12721. *)
  12722. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF (cv))
  12723. AND
  12724. ((cv\offset_curve_3d.self_intersect = FALSE) OR
  12725. (cv\offset_curve_3d.self_intersect = UNKNOWN))
  12726. AND
  12727. (NOT ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF
  12728. (cv\offset_curve_3d.basis_curve)))) THEN
  12729. RETURN (nmsf_curve_check(cv\offset_curve_3d.basis_curve));
  12730. ELSE
  12731. (* a pcurve shall reference a valid curve and a valid
  12732. basis_surface
  12733. *)
  12734. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF(cv) THEN
  12735. RETURN ((nmsf_curve_check
  12736. (cv\pcurve.reference_to_curve\representation.items[1]))
  12737. AND
  12738. (nmsf_surface_check(cv\pcurve.basis_surface)));
  12739. ELSE
  12740. (* a surface_curve references a curve_3d and one or
  12741. two pcurves or one or two surfaces or one of
  12742. each; all of these references shall be valid
  12743. *)
  12744. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) THEN
  12745. (* if the curve reference is correct, check also the rest
  12746. *)
  12747. IF nmsf_curve_check(cv\surface_curve.curve_3d) THEN
  12748. REPEAT i := 1 TO SIZEOF
  12749. (cv\surface_curve.associated_geometry);
  12750. (* do for one or two associated_geometrys:
  12751. *)
  12752. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE' IN
  12753. TYPEOF (cv\surface_curve.associated_geometry[i]) THEN
  12754. IF NOT nmsf_surface_check
  12755. (cv\surface_curve.associated_geometry[i]) THEN
  12756. RETURN(FALSE);
  12757. END_IF;
  12758. ELSE
  12759. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PCURVE' IN TYPEOF
  12760. (cv\surface_curve.associated_geometry[i]) THEN
  12761. IF NOT nmsf_curve_check
  12762. (cv\surface_curve.associated_geometry[i]) THEN
  12763. RETURN(FALSE);
  12764. END_IF;
  12765. END_IF;
  12766. END_IF;
  12767. END_REPEAT;
  12768. RETURN(TRUE);
  12769. END_IF;
  12770. ELSE
  12771. (* a polyline shall have at least 3 points
  12772. *)
  12773. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' IN TYPEOF(cv) THEN
  12774. IF (SIZEOF (cv\polyline.points) >= 3) THEN RETURN (TRUE);
  12775. END_IF;
  12776. END_IF;
  12777. END_IF;
  12778. END_IF;
  12779. END_IF;
  12780. END_IF;
  12781. END_IF;
  12782. END_IF;
  12783. END_IF;
  12784. (* FALSE is returned if the input parameter cv is not a valid curve.
  12785. *)
  12786. RETURN (FALSE);
  12787. END_FUNCTION;
  12788. FUNCTION nmsf_surface_check
  12789. (surf: surface) : BOOLEAN;
  12790. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN
  12791. RETURN(TRUE);
  12792. ELSE
  12793. (* a swept_surface shall have a valid sweeping curve
  12794. *)
  12795. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SWEPT_SURFACE' IN TYPEOF (surf) THEN
  12796. RETURN (nmsf_curve_check(surf\swept_surface.swept_curve));
  12797. ELSE
  12798. (* an offset_surface shall not self-intersect and shall
  12799. reference a valid surface
  12800. *)
  12801. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_SURFACE' IN TYPEOF (surf)) AND
  12802. (surf\offset_surface.self_intersect = FALSE) OR
  12803. (surf\offset_surface.self_intersect = UNKNOWN)) THEN
  12804. RETURN (nmsf_surface_check(surf\offset_surface.basis_surface));
  12805. ELSE
  12806. (* a surface_replica shall have a valid parent surface
  12807. *)
  12808. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SURFACE_REPLICA' IN TYPEOF(surf) THEN
  12809. RETURN(nmsf_surface_check(surf\surface_replica.parent_surface));
  12810. ELSE
  12811. (* a b_spline_surface shall not self-intersect
  12812. *)
  12813. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(surf))
  12814. AND
  12815. (surf\b_spline_surface.self_intersect = FALSE) OR
  12816. (surf\b_spline_surface.self_intersect = UNKNOWN)) THEN
  12817. RETURN(TRUE);
  12818. END_IF;
  12819. END_IF;
  12820. END_IF;
  12821. END_IF;
  12822. END_IF;
  12823. RETURN(FALSE);
  12824. END_FUNCTION;
  12825. FUNCTION normalise
  12826. (arg: vector_or_direction) : vector_or_direction;
  12827. LOCAL
  12828. ndim : INTEGER;
  12829. v : direction;
  12830. result : vector_or_direction;
  12831. vec : vector;
  12832. mag : REAL;
  12833. END_LOCAL;
  12834. IF NOT EXISTS (arg) THEN
  12835. result := ?;
  12836. (* When function is called with invalid data a NULL result is returned *)
  12837. ELSE
  12838. ndim := arg.dim;
  12839. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF(arg) THEN
  12840. BEGIN
  12841. v := dummy_gri || direction(arg\vector.orientation.direction_ratios);
  12842. IF arg.magnitude = 0.0 THEN
  12843. RETURN(?);
  12844. ELSE
  12845. vec := dummy_gri || vector (v, 1.0);
  12846. END_IF;
  12847. END;
  12848. ELSE
  12849. v := dummy_gri || direction (arg.direction_ratios);
  12850. END_IF;
  12851. mag := 0.0;
  12852. REPEAT i := 1 TO ndim;
  12853. mag := mag + v.direction_ratios[i]*v.direction_ratios[i];
  12854. END_REPEAT;
  12855. IF mag > 0.0 THEN
  12856. mag := SQRT(mag);
  12857. REPEAT i := 1 TO ndim;
  12858. v.direction_ratios[i] := v.direction_ratios[i]/mag;
  12859. END_REPEAT;
  12860. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF(arg) THEN
  12861. vec.orientation := v;
  12862. result := vec;
  12863. ELSE
  12864. result := v;
  12865. END_IF;
  12866. ELSE
  12867. RETURN(?);
  12868. END_IF;
  12869. END_IF;
  12870. RETURN (result);
  12871. END_FUNCTION;
  12872. FUNCTION open_shell_reversed
  12873. (a_shell: open_shell) : oriented_open_shell;
  12874. LOCAL
  12875. the_reverse : oriented_open_shell;
  12876. END_LOCAL;
  12877. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_OPEN_SHELL' IN TYPEOF (a_shell) ) THEN
  12878. the_reverse := dummy_tri ||
  12879. connected_face_set (
  12880. a_shell\connected_face_set.cfs_faces) ||
  12881. open_shell () || oriented_open_shell(
  12882. a_shell\oriented_open_shell.open_shell_element,
  12883. (NOT (a_shell\oriented_open_shell.orientation)));
  12884. ELSE
  12885. the_reverse := dummy_tri ||
  12886. connected_face_set (
  12887. a_shell\connected_face_set.cfs_faces) ||
  12888. open_shell () || oriented_open_shell (a_shell, FALSE);
  12889. END_IF;
  12890. RETURN (the_reverse);
  12891. END_FUNCTION;
  12892. FUNCTION orthogonal_complement
  12893. (vec: direction) : direction;
  12894. LOCAL
  12895. result : direction ;
  12896. END_LOCAL;
  12897. IF (vec.dim <> 2) OR NOT EXISTS (vec) THEN
  12898. RETURN(?);
  12899. ELSE
  12900. result := dummy_gri || direction([-vec.direction_ratios[2],
  12901. vec.direction_ratios[1]]);
  12902. RETURN(result);
  12903. END_IF;
  12904. END_FUNCTION;
  12905. FUNCTION path_head_to_tail
  12906. (a_path: path) : LOGICAL;
  12907. LOCAL
  12908. n : INTEGER;
  12909. p : LOGICAL := TRUE;
  12910. END_LOCAL;
  12911. n := SIZEOF (a_path.edge_list);
  12912. REPEAT i := 2 TO n;
  12913. p := p AND (a_path.edge_list[i-1].edge_end :=:
  12914. a_path.edge_list[i].edge_start);
  12915. END_REPEAT;
  12916. RETURN (p);
  12917. END_FUNCTION;
  12918. FUNCTION path_reversed
  12919. (a_path: path) : oriented_path;
  12920. LOCAL
  12921. the_reverse : oriented_path ;
  12922. END_LOCAL;
  12923. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ORIENTED_PATH' IN TYPEOF (a_path) ) THEN
  12924. the_reverse := dummy_tri ||
  12925. path(list_of_topology_reversed (a_path.edge_list)) ||
  12926. oriented_path(a_path\oriented_path.path_element,
  12927. NOT(a_path\oriented_path.orientation)) ;
  12928. ELSE
  12929. the_reverse := dummy_tri ||
  12930. path(list_of_topology_reversed (a_path.edge_list)) ||
  12931. oriented_path(a_path, FALSE);
  12932. END_IF;
  12933. RETURN (the_reverse);
  12934. END_FUNCTION;
  12935. FUNCTION scalar_times_vector
  12936. (scalar: REAL; vec: vector_or_direction) : vector;
  12937. LOCAL
  12938. v : direction;
  12939. mag : REAL;
  12940. result : vector;
  12941. END_LOCAL;
  12942. IF NOT EXISTS (scalar) OR NOT EXISTS (vec) THEN
  12943. RETURN (?) ;
  12944. ELSE
  12945. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF (vec) THEN
  12946. v := dummy_gri || direction(vec\vector.orientation.direction_ratios);
  12947. mag := scalar * vec.magnitude;
  12948. ELSE
  12949. v := dummy_gri || direction(vec.direction_ratios);
  12950. mag := scalar;
  12951. END_IF;
  12952. IF (mag < 0.0 ) THEN
  12953. REPEAT i := 1 TO SIZEOF(v.direction_ratios);
  12954. v.direction_ratios[i] := -v.direction_ratios[i];
  12955. END_REPEAT;
  12956. mag := -mag;
  12957. END_IF;
  12958. result := dummy_gri || vector(normalise(v), mag);
  12959. END_IF;
  12960. RETURN (result);
  12961. END_FUNCTION;
  12962. FUNCTION second_proj_axis
  12963. (z_axis: direction; x_axis: direction; arg: direction) : direction;
  12964. LOCAL
  12965. y_axis : vector;
  12966. v : direction;
  12967. temp : vector;
  12968. END_LOCAL;
  12969. IF NOT EXISTS(arg) THEN
  12970. v := dummy_gri || direction([0.0,1.0,0.0]);
  12971. ELSE
  12972. v := arg;
  12973. END_IF;
  12974. temp := scalar_times_vector(dot_product(v, z_axis), z_axis);
  12975. y_axis := vector_difference(v, temp);
  12976. temp := scalar_times_vector(dot_product(v, x_axis), x_axis);
  12977. y_axis := vector_difference(y_axis, temp);
  12978. y_axis := normalise(y_axis);
  12979. RETURN(y_axis.orientation);
  12980. END_FUNCTION;
  12981. FUNCTION set_of_topology_reversed
  12982. (a_set: set_of_reversible_topology_item) : set_of_reversible_topology_item;
  12983. LOCAL
  12984. the_reverse : set_of_reversible_topology_item;
  12985. END_LOCAL;
  12986. the_reverse := [];
  12987. REPEAT i := 1 TO SIZEOF (a_set);
  12988. the_reverse := the_reverse + topology_reversed (a_set [i]);
  12989. END_REPEAT;
  12990. RETURN (the_reverse);
  12991. END_FUNCTION;
  12992. FUNCTION shell_reversed
  12993. (a_shell: shell) : shell;
  12994. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OPEN_SHELL' IN TYPEOF (a_shell) ) THEN
  12995. RETURN (open_shell_reversed (a_shell));
  12996. ELSE
  12997. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CLOSED_SHELL' IN TYPEOF (a_shell) ) THEN
  12998. RETURN (closed_shell_reversed (a_shell));
  12999. ELSE
  13000. RETURN (?);
  13001. END_IF;
  13002. END_IF;
  13003. END_FUNCTION;
  13004. FUNCTION surface_condition_correlation
  13005. (pd: property_definition; rep: representation) : LOGICAL;
  13006. CASE pd.name OF
  13007. 'visual appearance', 'tactile appearance', 'contact ratio', 'hardness', 'treatment result', 'surface texture' :
  13008. RETURN(pd.name = rep.name);
  13009. OTHERWISE : RETURN(UNKNOWN);
  13010. END_CASE;
  13011. END_FUNCTION;
  13012. FUNCTION surface_weights_positive
  13013. (b: rational_b_spline_surface) : BOOLEAN;
  13014. LOCAL
  13015. result : BOOLEAN := TRUE;
  13016. END_LOCAL;
  13017. REPEAT i := 0 TO b.u_upper;
  13018. REPEAT j := 0 TO b.v_upper;
  13019. IF (b.weights[i][j] <= 0.0) THEN
  13020. result := FALSE;
  13021. RETURN(result);
  13022. END_IF;
  13023. END_REPEAT;
  13024. END_REPEAT;
  13025. RETURN(result);
  13026. END_FUNCTION;
  13027. FUNCTION topology_reversed
  13028. (an_item: reversible_topology) : reversible_topology;
  13029. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.EDGE' IN TYPEOF (an_item)) THEN
  13030. RETURN (edge_reversed (an_item));
  13031. END_IF;
  13032. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PATH' IN TYPEOF (an_item)) THEN
  13033. RETURN (path_reversed (an_item));
  13034. END_IF;
  13035. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE_BOUND' IN TYPEOF (an_item)) THEN
  13036. RETURN (face_bound_reversed (an_item));
  13037. END_IF;
  13038. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FACE' IN TYPEOF (an_item)) THEN
  13039. RETURN (face_reversed (an_item));
  13040. END_IF;
  13041. IF ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHELL' IN TYPEOF (an_item)) THEN
  13042. RETURN (shell_reversed (an_item));
  13043. END_IF;
  13044. IF ('SET' IN TYPEOF (an_item)) THEN
  13045. RETURN (set_of_topology_reversed (an_item));
  13046. END_IF;
  13047. IF ('LIST' IN TYPEOF (an_item)) THEN
  13048. RETURN (list_of_topology_reversed (an_item));
  13049. END_IF;
  13050. RETURN (?);
  13051. END_FUNCTION;
  13052. FUNCTION type_check_function
  13053. (the_type: GENERIC; sub_names: SET [0:?] OF STRING; criterion: INTEGER) : LOGICAL;
  13054. IF ((NOT EXISTS(the_type)) OR (NOT ({0 <= criterion <= 3})) OR (SIZEOF(sub_names) = 0)) THEN
  13055. RETURN (UNKNOWN);
  13056. ELSE
  13057. CASE criterion OF
  13058. 0:
  13059. RETURN (SIZEOF(sub_names * TYPEOF(the_type)) > 0);
  13060. 1:
  13061. RETURN (SIZEOF(sub_names * TYPEOF(the_type)) = 0);
  13062. 2:
  13063. RETURN (SIZEOF(sub_names * TYPEOF(the_type)) = 1);
  13064. 3:
  13065. RETURN (SIZEOF(sub_names * TYPEOF(the_type)) <= 1);
  13066. END_CASE;
  13067. END_IF;
  13068. END_FUNCTION;
  13069. FUNCTION using_items
  13070. (item: founded_item_select; checked_items: SET [0:?] OF founded_item_select) : SET [0:?] OF founded_item_select;
  13071. LOCAL
  13072. new_check_items : SET OF founded_item_select;
  13073. result_items : SET OF founded_item_select;
  13074. next_items : SET OF founded_item_select;
  13075. END_LOCAL;
  13076. result_items := [];
  13077. new_check_items := checked_items + item;
  13078. -- Find the set of representation_items or founded_items
  13079. -- in which item is used directly.
  13080. next_items := QUERY(z <* bag_to_set( USEDIN(item , '')) |
  13081. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(z)) OR
  13082. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FOUNDED_ITEM' IN TYPEOF(z)));
  13083. -- If the set of next_items is not empty;
  13084. IF SIZEOF(next_items) > 0 THEN
  13085. -- For each element in the set, find the using_items recursively
  13086. REPEAT i := 1 TO HIINDEX(next_items);
  13087. -- Check for loop in data model, i.e. one of the next_items
  13088. -- occurred earlier in the set of check_items;
  13089. IF NOT(next_items[i] IN new_check_items) THEN
  13090. result_items := result_items + next_items[i] +
  13091. using_items(next_items[i],new_check_items);
  13092. END_IF;
  13093. END_REPEAT;
  13094. END_IF;
  13095. -- return the set of representation_items or founded_items
  13096. -- in which the input item is used directly and indirectly.
  13097. RETURN (result_items);
  13098. END_FUNCTION;
  13099. FUNCTION using_representations
  13100. (item: founded_item_select) : SET [0:?] OF representation;
  13101. LOCAL
  13102. results : SET OF representation;
  13103. result_bag : BAG OF representation;
  13104. intermediate_items : SET OF founded_item_select;
  13105. END_LOCAL;
  13106. -- Find the representations in which the item is used and add to the
  13107. -- results set.
  13108. results := [];
  13109. result_bag := USEDIN(item,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION.ITEMS');
  13110. IF SIZEOF(result_bag) > 0 THEN
  13111. REPEAT i := 1 TO HIINDEX(result_bag);
  13112. results := results + result_bag[i];
  13113. END_REPEAT;
  13114. END_IF;
  13115. -- Find all representation_items or founded_items
  13116. -- by which item is referenced directly or indirectly.
  13117. intermediate_items := using_items(item,[]);
  13118. -- If the set of intermediate items is not empty;
  13119. IF SIZEOF(intermediate_items) > 0 THEN
  13120. -- For each element in the set, add the
  13121. -- representations of that element.
  13122. REPEAT i := 1 TO HIINDEX(intermediate_items);
  13123. result_bag := USEDIN(intermediate_items[i],
  13124. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.REPRESENTATION.ITEMS');
  13125. IF SIZEOF(result_bag) > 0 THEN
  13126. REPEAT j := 1 TO HIINDEX(result_bag);
  13127. results := results + result_bag[j];
  13128. END_REPEAT;
  13129. END_IF;
  13130. END_REPEAT;
  13131. END_IF;
  13132. -- Return the set of representation in which the input item is
  13133. -- used directly and indirectly (through intervening
  13134. -- representation_items or founded items).
  13135. RETURN (results);
  13136. END_FUNCTION;
  13137. FUNCTION valid_basis_curve_in_2d_wireframe
  13138. (crv: curve) : BOOLEAN;
  13139. IF SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE',
  13140. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE',
  13141. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE',
  13142. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE'] *
  13143. TYPEOF (crv)) = 1
  13144. THEN RETURN (TRUE);
  13145. ELSE
  13146. -- if the curve is a trimmed_curve
  13147. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TRIMMED_CURVE')
  13148. IN TYPEOF (crv)) THEN
  13149. -- if a line, parabola, or hyperbola is being trimmed, then valid
  13150. IF SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE',
  13151. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PARABOLA',
  13152. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.HYPERBOLA'] *
  13153. TYPEOF(crv\trimmed_curve.basis_curve)) = 1
  13154. THEN RETURN (TRUE);
  13155. -- otherwise, recursively check basis_curve
  13156. ELSE RETURN (valid_basis_curve_in_2d_wireframe
  13157. (crv\trimmed_curve.basis_curve));
  13158. END_IF;
  13159. ELSE
  13160. -- recursively check the offset_curve basis curve
  13161. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_2D')
  13162. IN TYPEOF (crv))
  13163. THEN RETURN (valid_basis_curve_in_2d_wireframe
  13164. (crv\offset_curve_2d.basis_curve));
  13165. ELSE
  13166. -- recursively check the curve_replica parent curve
  13167. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA')
  13168. IN TYPEOF (crv))
  13169. THEN RETURN (valid_basis_curve_in_2d_wireframe
  13170. (crv\curve_replica.parent_curve));
  13171. ELSE
  13172. -- recursively check the composite_curve segments
  13173. IF (('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE')
  13174. IN TYPEOF (crv)) THEN
  13175. RETURN (SIZEOF (QUERY (ccs <* crv\composite_curve.segments |
  13176. NOT (valid_basis_curve_in_2d_wireframe
  13177. (ccs.parent_curve)))) = 0);
  13178. END_IF;
  13179. END_IF;
  13180. END_IF;
  13181. END_IF;
  13182. END_IF;
  13183. RETURN (FALSE);
  13184. END_FUNCTION;
  13185. FUNCTION valid_calendar_date
  13186. (date: calendar_date) : LOGICAL;
  13187. CASE date.month_component OF
  13188. 1 : RETURN({ 1 <= date.day_component <= 31 });
  13189. 2 : BEGIN
  13190. IF (leap_year(date.year_component)) THEN
  13191. RETURN({ 1 <= date.day_component <= 29 });
  13192. ELSE
  13193. RETURN({ 1 <= date.day_component <= 28 });
  13194. END_IF;
  13195. END;
  13196. 3 : RETURN({ 1 <= date.day_component <= 31 });
  13197. 4 : RETURN({ 1 <= date.day_component <= 30 });
  13198. 5 : RETURN({ 1 <= date.day_component <= 31 });
  13199. 6 : RETURN({ 1 <= date.day_component <= 30 });
  13200. 7 : RETURN({ 1 <= date.day_component <= 31 });
  13201. 8 : RETURN({ 1 <= date.day_component <= 31 });
  13202. 9 : RETURN({ 1 <= date.day_component <= 30 });
  13203. 10 : RETURN({ 1 <= date.day_component <= 31 });
  13204. 11 : RETURN({ 1 <= date.day_component <= 30 });
  13205. 12 : RETURN({ 1 <= date.day_component <= 31 });
  13206. END_CASE;
  13207. RETURN (FALSE);
  13208. END_FUNCTION;
  13209. FUNCTION valid_datum_target_parameters
  13210. (pdf: placed_datum_target_feature) : BOOLEAN;
  13211. LOCAL
  13212. rep_set : SET OF representation := [] ;
  13213. parameter_representations: SET OF representation;
  13214. END_LOCAL;
  13215. REPEAT i := 1 TO HIINDEX(pdf.representation_associations);
  13216. rep_set := rep_set + pdf.representation_associations[i].used_representation;
  13217. END_REPEAT;
  13218. parameter_representations := QUERY(rep <* rep_set |
  13219. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN
  13220. TYPEOF(rep)));
  13221. IF (SIZEOF( QUERY( srwp <* parameter_representations |
  13222. (SIZEOF( QUERY( i <* srwp.items |
  13223. (i.name='orientation') AND
  13224. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLACEMENT' IN TYPEOF(i)))) = 1))) <> 1) THEN
  13225. RETURN(FALSE);
  13226. END_IF;
  13227. CASE pdf\shape_aspect.description OF
  13228. 'point': RETURN(SIZEOF(QUERY( srwp <* parameter_representations |
  13229. (SIZEOF(srwp.items) = 1))) = 1);
  13230. 'circle': RETURN((SIZEOF( QUERY( srwp <* parameter_representations |
  13231. (SIZEOF(srwp.items) = 2))) = 1) AND
  13232. (SIZEOF( QUERY( srwp <* parameter_representations |
  13233. (SIZEOF( QUERY( i <* srwp.items |
  13234. (i.name='target diameter') AND
  13235. (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM',
  13236. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i)
  13237. ) = 2) )) = 1))) = 1));
  13238. 'line': RETURN(SIZEOF( QUERY( srwp <* parameter_representations |
  13239. (SIZEOF( QUERY( i <* srwp.items |
  13240. (i.name='target length') AND
  13241. (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM',
  13242. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i)
  13243. ) = 2) )) = 1))) = 1);
  13244. 'rectangle': RETURN((SIZEOF( QUERY( srwp <* parameter_representations |
  13245. (SIZEOF(srwp.items)= 3))) = 1) AND
  13246. (SIZEOF( QUERY( srwp <* parameter_representations |
  13247. (SIZEOF( QUERY( i <* srwp.items |
  13248. (i.name='target length') AND
  13249. (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM',
  13250. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i)
  13251. ) = 2))) = 1))) = 1) AND
  13252. (SIZEOF( QUERY( srwp <* parameter_representations |
  13253. (SIZEOF( QUERY( i <* srwp.items |
  13254. (i.name='target width') AND
  13255. (SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM',
  13256. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE_WITH_UNIT']*TYPEOF(i)
  13257. ) = 2))) = 1) )) = 1));
  13258. OTHERWISE : RETURN(FALSE);
  13259. END_CASE;
  13260. END_FUNCTION;
  13261. FUNCTION valid_geometrically_bounded_wf_curve
  13262. (crv: curve) : BOOLEAN;
  13263. IF SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELLIPSE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CIRCLE' ] * TYPEOF (crv)) = 1 THEN
  13264. RETURN (TRUE);
  13265. ELSE
  13266. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TRIMMED_CURVE' IN TYPEOF (crv) THEN
  13267. IF SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PARABOLA', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.HYPERBOLA' ] * TYPEOF (crv\trimmed_curve.basis_curve)) = 1 THEN
  13268. RETURN (TRUE);
  13269. ELSE
  13270. RETURN (valid_geometrically_bounded_wf_curve(crv\trimmed_curve.basis_curve));
  13271. END_IF ;
  13272. ELSE
  13273. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF (crv) THEN
  13274. RETURN (valid_geometrically_bounded_wf_curve(crv\offset_curve_3d.basis_curve));
  13275. ELSE
  13276. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA' IN TYPEOF (crv) THEN
  13277. RETURN (valid_geometrically_bounded_wf_curve(crv\curve_replica.parent_curve));
  13278. ELSE
  13279. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.COMPOSITE_CURVE' IN TYPEOF (crv) THEN
  13280. RETURN ( SIZEOF (
  13281. QUERY ( ccs <* crv\composite_curve.segments| NOT valid_geometrically_bounded_wf_curve(ccs.parent_curve) )) = 0);
  13282. END_IF ;
  13283. END_IF ;
  13284. END_IF ;
  13285. END_IF ;
  13286. END_IF ;
  13287. RETURN (FALSE);
  13288. END_FUNCTION;
  13289. FUNCTION valid_geometrically_bounded_wf_point
  13290. (pnt: point) : BOOLEAN;
  13291. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (pnt) THEN
  13292. RETURN (TRUE);
  13293. ELSE
  13294. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_ON_CURVE' IN TYPEOF (pnt) THEN
  13295. RETURN (valid_geometrically_bounded_wf_curve(pnt\point_on_curve.basis_curve));
  13296. ELSE
  13297. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_REPLICA' IN TYPEOF (pnt) THEN
  13298. RETURN (valid_geometrically_bounded_wf_point(pnt\point_replica.parent_pt));
  13299. END_IF ;
  13300. END_IF ;
  13301. END_IF ;
  13302. RETURN (FALSE);
  13303. END_FUNCTION;
  13304. FUNCTION valid_measure_value
  13305. (m: measure_value) : BOOLEAN;
  13306. IF ('REAL' IN TYPEOF (m)) THEN
  13307. RETURN (m > 0.0);
  13308. ELSE
  13309. IF ('INTEGER' IN TYPEOF (m)) THEN
  13310. RETURN (m > 0);
  13311. ELSE
  13312. RETURN (TRUE);
  13313. END_IF;
  13314. END_IF;
  13315. END_FUNCTION;
  13316. FUNCTION valid_selected_instance_representation
  13317. (pd: product_definition_or_assembly_relationship) : LOGICAL;
  13318. LOCAL
  13319. properties: SET OF property_definition := bag_to_set(QUERY( prd<* USEDIN ( pd ,'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) |
  13320. (prd.name = 'occurrence selection' )));
  13321. property_definition_representations: SET OF property_definition_representation := bag_to_set(QUERY ( pdr <* USEDIN ( properties[1] , 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') |
  13322. ( pdr.used_representation.name = 'selection criteria' )));
  13323. selected_representation: representation;
  13324. END_LOCAL;
  13325. IF (SIZEOF( properties)<>1) THEN
  13326. RETURN(FALSE);
  13327. END_IF;
  13328. IF (SIZEOF(property_definition_representations)<>1) THEN
  13329. RETURN(FALSE);
  13330. END_IF;
  13331. selected_representation := property_definition_representations[1]\property_definition_representation.used_representation;
  13332. IF (SIZEOF(selected_representation\representation.items) <1) OR (SIZEOF(selected_representation\representation.items) >2) THEN
  13333. RETURN(FALSE);
  13334. END_IF;
  13335. IF (SIZEOF ( QUERY ( i <* selected_representation\representation.items |
  13336. ( SIZEOF (['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' ,
  13337. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_RANGE']* TYPEOF ( i ) ) = 1) AND
  13338. ( i.name = 'selection quantity' ))) <> 1 ) THEN
  13339. RETURN(FALSE);
  13340. END_IF;
  13341. IF (SIZEOF ( QUERY ( i <* selected_representation\representation.items |
  13342. ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF ( i ) ) AND
  13343. ( i.name = 'selection control' )))> 1) THEN
  13344. RETURN(FALSE);
  13345. END_IF; --the selection control is not specified then the quantity shall be a qualified_representation_item or a value_range
  13346. IF (SIZEOF ( QUERY ( i <* selected_representation\representation.items |
  13347. ( 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND
  13348. ( i.name = 'selection control' ) ))= 0) AND
  13349. (SIZEOF ( QUERY ( i <* selected_representation\representation.items |
  13350. ( i.name = 'selection quantity' ) AND
  13351. ( SIZEOF(['AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.QUALIFIED_REPRESENTATION_ITEM' ,
  13352. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_RANGE']* TYPEOF ( i ) ) =0 ))) > 0 ) THEN
  13353. RETURN(FALSE);
  13354. END_IF;
  13355. RETURN(TRUE);
  13356. END_FUNCTION;
  13357. FUNCTION valid_time
  13358. (time: local_time) : BOOLEAN;
  13359. IF EXISTS(time.second_component) THEN
  13360. RETURN (EXISTS(time.minute_component));
  13361. ELSE
  13362. RETURN (TRUE);
  13363. END_IF;
  13364. END_FUNCTION;
  13365. FUNCTION valid_units
  13366. (m: measure_with_unit) : BOOLEAN;
  13367. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN
  13368. IF derive_dimensional_exponents(m.unit_component) <>
  13369. dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
  13370. RETURN (FALSE);
  13371. END_IF;
  13372. END_IF;
  13373. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MASS_MEASURE' IN TYPEOF(m.value_component) THEN
  13374. IF derive_dimensional_exponents(m.unit_component) <>
  13375. dimensional_exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
  13376. RETURN (FALSE);
  13377. END_IF;
  13378. END_IF;
  13379. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.TIME_MEASURE' IN TYPEOF(m.value_component) THEN
  13380. IF derive_dimensional_exponents(m.unit_component) <>
  13381. dimensional_exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) THEN
  13382. RETURN (FALSE);
  13383. END_IF;
  13384. END_IF;
  13385. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_CURRENT_MEASURE' IN TYPEOF(m.value_component) THEN
  13386. IF derive_dimensional_exponents(m.unit_component) <>
  13387. dimensional_exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) THEN
  13388. RETURN (FALSE);
  13389. END_IF;
  13390. END_IF;
  13391. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.THERMODYNAMIC_TEMPERATURE_MEASURE' IN TYPEOF(m.value_component) THEN
  13392. IF derive_dimensional_exponents(m.unit_component) <>
  13393. dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) THEN
  13394. RETURN (FALSE);
  13395. END_IF;
  13396. END_IF;
  13397. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CELSIUS_TEMPERATURE_MEASURE' IN TYPEOF(m.value_component) THEN
  13398. IF derive_dimensional_exponents(m.unit_component) <>
  13399. dimensional_exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) THEN
  13400. RETURN (FALSE);
  13401. END_IF;
  13402. END_IF;
  13403. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AMOUNT_OF_SUBSTANCE_MEASURE' IN TYPEOF(m.value_component) THEN
  13404. IF derive_dimensional_exponents(m.unit_component) <>
  13405. dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) THEN
  13406. RETURN (FALSE);
  13407. END_IF;
  13408. END_IF;
  13409. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LUMINOUS_INTENSITY_MEASURE' IN TYPEOF(m.value_component) THEN
  13410. IF derive_dimensional_exponents(m.unit_component) <>
  13411. dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) THEN
  13412. RETURN (FALSE);
  13413. END_IF;
  13414. END_IF;
  13415. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN
  13416. IF derive_dimensional_exponents(m.unit_component) <>
  13417. dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
  13418. RETURN (FALSE);
  13419. END_IF;
  13420. END_IF;
  13421. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.SOLID_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN
  13422. IF derive_dimensional_exponents(m.unit_component) <>
  13423. dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
  13424. RETURN (FALSE);
  13425. END_IF;
  13426. END_IF;
  13427. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.AREA_MEASURE' IN TYPEOF(m.value_component) THEN
  13428. IF derive_dimensional_exponents(m.unit_component) <>
  13429. dimensional_exponents(2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
  13430. RETURN (FALSE);
  13431. END_IF;
  13432. END_IF;
  13433. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VOLUME_MEASURE' IN TYPEOF(m.value_component) THEN
  13434. IF derive_dimensional_exponents(m.unit_component) <>
  13435. dimensional_exponents(3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
  13436. RETURN (FALSE);
  13437. END_IF;
  13438. END_IF;
  13439. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RATIO_MEASURE' IN TYPEOF(m.value_component) THEN
  13440. IF derive_dimensional_exponents(m.unit_component) <>
  13441. dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
  13442. RETURN (FALSE);
  13443. END_IF;
  13444. END_IF;
  13445. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN
  13446. IF derive_dimensional_exponents(m.unit_component) <>
  13447. dimensional_exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
  13448. RETURN (FALSE);
  13449. END_IF;
  13450. END_IF;
  13451. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POSITIVE_PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN
  13452. IF derive_dimensional_exponents(m.unit_component) <>
  13453. dimensional_exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN
  13454. RETURN (FALSE);
  13455. END_IF;
  13456. END_IF;
  13457. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ACCELERATION_MEASURE' IN TYPEOF(m.value_component) THEN
  13458. IF derive_dimensional_exponents(m.unit_component) <>
  13459. dimensional_exponents( 1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN
  13460. RETURN (FALSE);
  13461. END_IF;
  13462. END_IF;
  13463. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CAPACITANCE_MEASURE' IN TYPEOF(m.value_component) THEN
  13464. IF derive_dimensional_exponents(m.unit_component) <>
  13465. dimensional_exponents( -2.0, -1.0, 4.0, 1.0, 0.0, 0.0, 0.0 ) THEN
  13466. RETURN (FALSE);
  13467. END_IF;
  13468. END_IF;
  13469. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_CHARGE_MEASURE' IN TYPEOF(m.value_component) THEN
  13470. IF derive_dimensional_exponents(m.unit_component) <>
  13471. dimensional_exponents( 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0 ) THEN
  13472. RETURN (FALSE);
  13473. END_IF;
  13474. END_IF;
  13475. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONDUCTANCE_MEASURE' IN TYPEOF(m.value_component) THEN
  13476. IF derive_dimensional_exponents(m.unit_component) <>
  13477. dimensional_exponents( -2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0 ) THEN
  13478. RETURN (FALSE);
  13479. END_IF;
  13480. END_IF;
  13481. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ELECTRIC_POTENTIAL_MEASURE' IN TYPEOF(m.value_component) THEN
  13482. IF derive_dimensional_exponents(m.unit_component) <>
  13483. dimensional_exponents( 2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0 ) THEN
  13484. RETURN (FALSE);
  13485. END_IF;
  13486. END_IF;
  13487. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ENERGY_MEASURE' IN TYPEOF(m.value_component) THEN
  13488. IF derive_dimensional_exponents(m.unit_component) <>
  13489. dimensional_exponents( 2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN
  13490. RETURN (FALSE);
  13491. END_IF;
  13492. END_IF;
  13493. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FORCE_MEASURE' IN TYPEOF(m.value_component) THEN
  13494. IF derive_dimensional_exponents(m.unit_component) <>
  13495. dimensional_exponents( 1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN
  13496. RETURN (FALSE);
  13497. END_IF;
  13498. END_IF;
  13499. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.FREQUENCY_MEASURE' IN TYPEOF(m.value_component) THEN
  13500. IF derive_dimensional_exponents(m.unit_component) <>
  13501. dimensional_exponents( 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0 ) THEN
  13502. RETURN (FALSE);
  13503. END_IF;
  13504. END_IF;
  13505. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ILLUMINANCE_MEASURE' IN TYPEOF(m.value_component) THEN
  13506. IF derive_dimensional_exponents(m.unit_component) <>
  13507. dimensional_exponents( -2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 ) THEN
  13508. RETURN (FALSE);
  13509. END_IF;
  13510. END_IF;
  13511. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.INDUCTANCE_MEASURE' IN TYPEOF(m.value_component) THEN
  13512. IF derive_dimensional_exponents(m.unit_component) <>
  13513. dimensional_exponents( 2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0 ) THEN
  13514. RETURN (FALSE);
  13515. END_IF;
  13516. END_IF;
  13517. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LUMINOUS_FLUX_MEASURE' IN TYPEOF(m.value_component) THEN
  13518. IF derive_dimensional_exponents(m.unit_component) <>
  13519. dimensional_exponents( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 ) THEN
  13520. RETURN (FALSE);
  13521. END_IF;
  13522. END_IF;
  13523. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAGNETIC_FLUX_MEASURE' IN TYPEOF(m.value_component) THEN
  13524. IF derive_dimensional_exponents(m.unit_component) <>
  13525. dimensional_exponents( 2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0 ) THEN
  13526. RETURN (FALSE);
  13527. END_IF;
  13528. END_IF;
  13529. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MAGNETIC_FLUX_DENSITY_MEASURE' IN TYPEOF(m.value_component) THEN
  13530. IF derive_dimensional_exponents(m.unit_component) <>
  13531. dimensional_exponents( 0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0 ) THEN
  13532. RETURN (FALSE);
  13533. END_IF;
  13534. END_IF;
  13535. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POWER_MEASURE' IN TYPEOF(m.value_component) THEN
  13536. IF derive_dimensional_exponents(m.unit_component) <>
  13537. dimensional_exponents( 2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0 ) THEN
  13538. RETURN (FALSE);
  13539. END_IF;
  13540. END_IF;
  13541. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.PRESSURE_MEASURE' IN TYPEOF(m.value_component) THEN
  13542. IF derive_dimensional_exponents(m.unit_component) <>
  13543. dimensional_exponents( -1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0 ) THEN
  13544. RETURN (FALSE);
  13545. END_IF;
  13546. END_IF;
  13547. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RESISTANCE_MEASURE' IN TYPEOF(m.value_component) THEN
  13548. IF derive_dimensional_exponents(m.unit_component) <>
  13549. dimensional_exponents( 2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0 ) THEN
  13550. RETURN (FALSE);
  13551. END_IF;
  13552. END_IF;
  13553. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VELOCITY_MEASURE' IN TYPEOF(m.value_component) THEN
  13554. IF derive_dimensional_exponents(m.unit_component) <>
  13555. dimensional_exponents( 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0 ) THEN
  13556. RETURN (FALSE);
  13557. END_IF;
  13558. END_IF;
  13559. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.RADIOACTIVITY_MEASURE' IN TYPEOF(m.value_component) THEN
  13560. IF derive_dimensional_exponents(m.unit_component) <>
  13561. dimensional_exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) THEN
  13562. RETURN (FALSE);
  13563. END_IF;
  13564. END_IF;
  13565. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.ABSORBED_DOSE_MEASURE' IN TYPEOF(m.value_component) THEN
  13566. IF derive_dimensional_exponents(m.unit_component) <>
  13567. dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN
  13568. RETURN (FALSE);
  13569. END_IF;
  13570. END_IF;
  13571. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.DOSE_EQUIVALENT_MEASURE' IN TYPEOF(m.value_component) THEN
  13572. IF derive_dimensional_exponents(m.unit_component) <>
  13573. dimensional_exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN
  13574. RETURN (FALSE);
  13575. END_IF;
  13576. END_IF;
  13577. RETURN (TRUE);
  13578. END_FUNCTION;
  13579. FUNCTION valid_wireframe_edge_curve
  13580. (crv: curve) : BOOLEAN;
  13581. IF SIZEOF ([ 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.LINE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CONIC', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.B_SPLINE_CURVE', 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POLYLINE' ] * TYPEOF (crv)) = 1 THEN
  13582. RETURN (TRUE);
  13583. ELSE
  13584. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CURVE_REPLICA' IN TYPEOF (crv) THEN
  13585. RETURN (valid_wireframe_edge_curve(crv\curve_replica.parent_curve));
  13586. ELSE
  13587. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF (crv) THEN
  13588. RETURN (valid_wireframe_edge_curve(crv\offset_curve_3d.basis_curve));
  13589. END_IF ;
  13590. END_IF ;
  13591. END_IF ;
  13592. RETURN (FALSE);
  13593. END_FUNCTION;
  13594. FUNCTION valid_wireframe_vertex_point
  13595. (pnt: point) : BOOLEAN;
  13596. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.CARTESIAN_POINT' IN TYPEOF (pnt) THEN
  13597. RETURN (TRUE);
  13598. ELSE
  13599. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.POINT_REPLICA' IN TYPEOF (pnt) THEN
  13600. RETURN (valid_wireframe_vertex_point(pnt\point_replica.parent_pt));
  13601. END_IF ;
  13602. END_IF ;
  13603. RETURN (FALSE);
  13604. END_FUNCTION;
  13605. FUNCTION validate_countersink_radii
  13606. (cskhole: solid_with_stepped_round_hole_and_conical_transitions) : BOOLEAN;
  13607. LOCAL
  13608. i,j : INTEGER;
  13609. n : INTEGER := 1 +
  13610. cskhole\solid_with_stepped_round_hole.segments;
  13611. smaller, larger : positive_length_measure;
  13612. END_LOCAL;
  13613. REPEAT i := 1 TO SIZEOF(cskhole.conical_transitions);
  13614. -- First check whether transition i applies to the entry of the hole or
  13615. -- the exit of a through hole - those cases only need to be checked for
  13616. -- the sign of the cone apex angle.
  13617. IF (((cskhole.conical_transitions[i].transition_number = 1)
  13618. AND (cskhole.conical_transitions[i].cone_apex_angle < 0))
  13619. XOR ((cskhole.conical_transitions[i].transition_number = n)
  13620. AND (cskhole.conical_transitions[i].cone_apex_angle > 0)))
  13621. THEN RETURN(FALSE);
  13622. ELSE
  13623. IF ((cskhole.conical_transitions[i].transition_number <> 1)
  13624. AND (cskhole.conical_transitions[i].transition_number <> n))
  13625. THEN
  13626. -- For all remaining transitions, check that the cone base radius
  13627. -- lies in the range of validity.
  13628. BEGIN
  13629. j := cskhole.conical_transitions[i].transition_number;
  13630. IF cskhole\solid_with_stepped_round_hole.segment_radii[j]
  13631. > cskhole\solid_with_stepped_round_hole.segment_radii[j-1]
  13632. THEN
  13633. BEGIN
  13634. IF (cskhole.conical_transitions[i].cone_apex_angle > 0)
  13635. THEN RETURN(FALSE);
  13636. END_IF;
  13637. larger
  13638. := cskhole\solid_with_stepped_round_hole.segment_radii[j];
  13639. smaller
  13640. := cskhole\solid_with_stepped_round_hole.segment_radii[j-1];
  13641. END;
  13642. ELSE
  13643. BEGIN
  13644. IF (cskhole.conical_transitions[i].cone_apex_angle < 0)
  13645. THEN RETURN(FALSE);
  13646. END_IF;
  13647. larger
  13648. := cskhole\solid_with_stepped_round_hole.segment_radii[j-1];
  13649. smaller
  13650. := cskhole\solid_with_stepped_round_hole.segment_radii[j];
  13651. END;
  13652. END_IF;
  13653. IF ((cskhole.conical_transitions[i].cone_base_radius > larger)
  13654. OR (cskhole.conical_transitions[i].cone_base_radius < smaller))
  13655. THEN RETURN(FALSE);
  13656. END_IF;
  13657. END;
  13658. END_IF;
  13659. END_IF;
  13660. END_REPEAT;
  13661. RETURN(TRUE);
  13662. END_FUNCTION;
  13663. FUNCTION value_range_aggregate_rep_item
  13664. (agg: AGGREGATE OF representation_item) : BOOLEAN;
  13665. BEGIN
  13666. IF (SIZEOF(QUERY(i1 <* agg | ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)) )) = 6) THEN
  13667. RETURN (TRUE);
  13668. ELSE
  13669. RETURN (FALSE);
  13670. END_IF;
  13671. END;
  13672. END_FUNCTION;
  13673. FUNCTION value_range_wr1
  13674. (agg: compound_item_definition) : BOOLEAN;
  13675. BEGIN
  13676. IF (SIZEOF(agg) = 2) AND ((SIZEOF(QUERY (i1 <* agg | (
  13677. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF
  13678. (i1)))) = 2) OR
  13679. (SIZEOF(QUERY (i2 <* agg | (
  13680. 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF
  13681. (i2)))) = 2))
  13682. THEN
  13683. RETURN(TRUE);
  13684. ELSE
  13685. RETURN(FALSE);
  13686. END_IF;
  13687. END;
  13688. END_FUNCTION;
  13689. FUNCTION value_range_wr2
  13690. (agg: compound_item_definition) : BOOLEAN;
  13691. BEGIN
  13692. IF ((SIZEOF(QUERY (i <* agg | (i\representation_item.name = 'upper limit'))) = 1)
  13693. AND (SIZEOF(QUERY (i <* agg | (i\representation_item.name = 'lower limit'))) = 1))
  13694. THEN
  13695. RETURN(TRUE);
  13696. ELSE
  13697. RETURN(FALSE);
  13698. END_IF;
  13699. END;
  13700. END_FUNCTION;
  13701. FUNCTION value_range_wr3
  13702. (agg: compound_item_definition) : BOOLEAN;
  13703. BEGIN
  13704. IF (SIZEOF(QUERY(i1 <* agg |
  13705. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (i1)) AND
  13706. (SIZEOF (QUERY (i2 <* agg |
  13707. ('AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (i2)) AND
  13708. (i1 :<>: i2) AND (i1\measure_with_unit.unit_component :=: i2\measure_with_unit.unit_component))) = 1))) = 2)
  13709. THEN
  13710. RETURN (TRUE);
  13711. ELSE
  13712. RETURN (FALSE);
  13713. END_IF;
  13714. END;
  13715. END_FUNCTION;
  13716. FUNCTION vector_difference
  13717. (arg1: vector_or_direction; arg2: vector_or_direction) : vector;
  13718. LOCAL
  13719. result : vector;
  13720. res, vec1, vec2 : direction;
  13721. mag, mag1, mag2 : REAL;
  13722. ndim : INTEGER;
  13723. END_LOCAL;
  13724. IF ((NOT EXISTS (arg1)) OR (NOT EXISTS (arg2))) OR (arg1.dim <> arg2.dim)
  13725. THEN
  13726. RETURN (?) ;
  13727. ELSE
  13728. BEGIN
  13729. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF(arg1) THEN
  13730. mag1 := arg1.magnitude;
  13731. vec1 := arg1\vector.orientation;
  13732. ELSE
  13733. mag1 := 1.0;
  13734. vec1 := arg1;
  13735. END_IF;
  13736. IF 'AP203_CONFIGURATION_CONTROLLED_3D_DESIGN_OF_MECHANICAL_PARTS_AND_ASSEMBLIES_MIM_LF.VECTOR' IN TYPEOF(arg2) THEN
  13737. mag2 := arg2.magnitude;
  13738. vec2 := arg2\vector.orientation;
  13739. ELSE
  13740. mag2 := 1.0;
  13741. vec2 := arg2;
  13742. END_IF;
  13743. vec1 := normalise (vec1);
  13744. vec2 := normalise (vec2);
  13745. ndim := SIZEOF(vec1.direction_ratios);
  13746. mag := 0.0;
  13747. res := dummy_gri || direction(vec1.direction_ratios);
  13748. REPEAT i := 1 TO ndim;
  13749. res.direction_ratios[i] := mag1*vec1.direction_ratios[i] -
  13750. mag2*vec2.direction_ratios[i];
  13751. mag := mag + (res.direction_ratios[i]*res.direction_ratios[i]);
  13752. END_REPEAT;
  13753. IF (mag > 0.0 ) THEN
  13754. result := dummy_gri || vector( res, SQRT(mag));
  13755. ELSE
  13756. result := dummy_gri || vector( vec1, 0.0);
  13757. END_IF;
  13758. END;
  13759. END_IF;
  13760. RETURN (result);
  13761. END_FUNCTION;
  13762. END_SCHEMA;