schema_ifc2x3.exp 261 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571
  1. (*
  2. Copyright by:
  3. International Alliance for Interoperability, 1996-2005
  4. All rights reserved. No part of this documentation may be
  5. reproduced, stored in a retrieval system, or transmitted
  6. in any form or by any means, without the prior written
  7. permission of the owner.
  8. Contents:
  9. full IFC object model EXPRESS definitions for the IFC2x Edition 3 final version
  10. - express longform distribution
  11. - compiled for EXPRESS version 1 technical corrigendum 2
  12. Issue date:
  13. December 15, 2005
  14. Development Team:
  15. Modeling Support Group of the
  16. International Alliance for Interoperability
  17. compiled by Thomas Liebich [email protected]
  18. *)
  19. SCHEMA IFC2X3;
  20. TYPE IfcAbsorbedDoseMeasure = REAL;
  21. END_TYPE;
  22. TYPE IfcAccelerationMeasure = REAL;
  23. END_TYPE;
  24. TYPE IfcAmountOfSubstanceMeasure = REAL;
  25. END_TYPE;
  26. TYPE IfcAngularVelocityMeasure = REAL;
  27. END_TYPE;
  28. TYPE IfcAreaMeasure = REAL;
  29. END_TYPE;
  30. TYPE IfcBoolean = BOOLEAN;
  31. END_TYPE;
  32. TYPE IfcBoxAlignment = IfcLabel;
  33. WHERE
  34. WR1 : SELF IN ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right'];
  35. END_TYPE;
  36. TYPE IfcComplexNumber = ARRAY [1:2] OF REAL;
  37. END_TYPE;
  38. TYPE IfcCompoundPlaneAngleMeasure = LIST [3:3] OF INTEGER;
  39. WHERE
  40. WR1 : { -360 <= SELF[1] < 360 };
  41. WR2 : { -60 <= SELF[2] < 60 };
  42. WR3 : { -60 <= SELF[3] < 60 };
  43. WR4 : ((SELF[1] >= 0) AND (SELF[2] >= 0) AND (SELF[3] >= 0)) OR ((SELF[1] <= 0) AND (SELF[2] <= 0) AND (SELF[3] <= 0));
  44. END_TYPE;
  45. TYPE IfcContextDependentMeasure = REAL;
  46. END_TYPE;
  47. TYPE IfcCountMeasure = NUMBER;
  48. END_TYPE;
  49. TYPE IfcCurvatureMeasure = REAL;
  50. END_TYPE;
  51. TYPE IfcDayInMonthNumber = INTEGER;
  52. END_TYPE;
  53. TYPE IfcDaylightSavingHour = INTEGER;
  54. WHERE
  55. WR1 : { 0 <= SELF <= 2 };
  56. END_TYPE;
  57. TYPE IfcDescriptiveMeasure = STRING;
  58. END_TYPE;
  59. TYPE IfcDimensionCount = INTEGER;
  60. WHERE
  61. WR1 : { 0 < SELF <= 3 };
  62. END_TYPE;
  63. TYPE IfcDoseEquivalentMeasure = REAL;
  64. END_TYPE;
  65. TYPE IfcDynamicViscosityMeasure = REAL;
  66. END_TYPE;
  67. TYPE IfcElectricCapacitanceMeasure = REAL;
  68. END_TYPE;
  69. TYPE IfcElectricChargeMeasure = REAL;
  70. END_TYPE;
  71. TYPE IfcElectricConductanceMeasure = REAL;
  72. END_TYPE;
  73. TYPE IfcElectricCurrentMeasure = REAL;
  74. END_TYPE;
  75. TYPE IfcElectricResistanceMeasure = REAL;
  76. END_TYPE;
  77. TYPE IfcElectricVoltageMeasure = REAL;
  78. END_TYPE;
  79. TYPE IfcEnergyMeasure = REAL;
  80. END_TYPE;
  81. TYPE IfcFontStyle = STRING;
  82. WHERE
  83. WR1 : SELF IN ['normal','italic','oblique'];
  84. END_TYPE;
  85. TYPE IfcFontVariant = STRING;
  86. WHERE
  87. WR1 : SELF IN ['normal','small-caps'];
  88. END_TYPE;
  89. TYPE IfcFontWeight = STRING;
  90. WHERE
  91. WR1 : SELF IN ['normal','small-caps','100','200','300','400','500','600','700','800','900'];
  92. END_TYPE;
  93. TYPE IfcForceMeasure = REAL;
  94. END_TYPE;
  95. TYPE IfcFrequencyMeasure = REAL;
  96. END_TYPE;
  97. TYPE IfcGloballyUniqueId = STRING(22) FIXED;
  98. END_TYPE;
  99. TYPE IfcHeatFluxDensityMeasure = REAL;
  100. END_TYPE;
  101. TYPE IfcHeatingValueMeasure = REAL;
  102. WHERE
  103. WR1 : SELF > 0.;
  104. END_TYPE;
  105. TYPE IfcHourInDay = INTEGER;
  106. WHERE
  107. WR1 : { 0 <= SELF < 24 };
  108. END_TYPE;
  109. TYPE IfcIdentifier = STRING;
  110. END_TYPE;
  111. TYPE IfcIlluminanceMeasure = REAL;
  112. END_TYPE;
  113. TYPE IfcInductanceMeasure = REAL;
  114. END_TYPE;
  115. TYPE IfcInteger = INTEGER;
  116. END_TYPE;
  117. TYPE IfcIntegerCountRateMeasure = INTEGER;
  118. END_TYPE;
  119. TYPE IfcIonConcentrationMeasure = REAL;
  120. END_TYPE;
  121. TYPE IfcIsothermalMoistureCapacityMeasure = REAL;
  122. END_TYPE;
  123. TYPE IfcKinematicViscosityMeasure = REAL;
  124. END_TYPE;
  125. TYPE IfcLabel = STRING;
  126. END_TYPE;
  127. TYPE IfcLengthMeasure = REAL;
  128. END_TYPE;
  129. TYPE IfcLinearForceMeasure = REAL;
  130. END_TYPE;
  131. TYPE IfcLinearMomentMeasure = REAL;
  132. END_TYPE;
  133. TYPE IfcLinearStiffnessMeasure = REAL;
  134. END_TYPE;
  135. TYPE IfcLinearVelocityMeasure = REAL;
  136. END_TYPE;
  137. TYPE IfcLogical = LOGICAL;
  138. END_TYPE;
  139. TYPE IfcLuminousFluxMeasure = REAL;
  140. END_TYPE;
  141. TYPE IfcLuminousIntensityDistributionMeasure = REAL;
  142. END_TYPE;
  143. TYPE IfcLuminousIntensityMeasure = REAL;
  144. END_TYPE;
  145. TYPE IfcMagneticFluxDensityMeasure = REAL;
  146. END_TYPE;
  147. TYPE IfcMagneticFluxMeasure = REAL;
  148. END_TYPE;
  149. TYPE IfcMassDensityMeasure = REAL;
  150. END_TYPE;
  151. TYPE IfcMassFlowRateMeasure = REAL;
  152. END_TYPE;
  153. TYPE IfcMassMeasure = REAL;
  154. END_TYPE;
  155. TYPE IfcMassPerLengthMeasure = REAL;
  156. END_TYPE;
  157. TYPE IfcMinuteInHour = INTEGER;
  158. WHERE
  159. WR1 : {0 <= SELF <= 59 };
  160. END_TYPE;
  161. TYPE IfcModulusOfElasticityMeasure = REAL;
  162. END_TYPE;
  163. TYPE IfcModulusOfLinearSubgradeReactionMeasure = REAL;
  164. END_TYPE;
  165. TYPE IfcModulusOfRotationalSubgradeReactionMeasure = REAL;
  166. END_TYPE;
  167. TYPE IfcModulusOfSubgradeReactionMeasure = REAL;
  168. END_TYPE;
  169. TYPE IfcMoistureDiffusivityMeasure = REAL;
  170. END_TYPE;
  171. TYPE IfcMolecularWeightMeasure = REAL;
  172. END_TYPE;
  173. TYPE IfcMomentOfInertiaMeasure = REAL;
  174. END_TYPE;
  175. TYPE IfcMonetaryMeasure = REAL;
  176. END_TYPE;
  177. TYPE IfcMonthInYearNumber = INTEGER;
  178. WHERE
  179. WR1 : { 1<= SELF <= 12 };
  180. END_TYPE;
  181. TYPE IfcNormalisedRatioMeasure = IfcRatioMeasure;
  182. WHERE
  183. WR1 : {0.0 <= SELF <= 1.0};
  184. END_TYPE;
  185. TYPE IfcNumericMeasure = NUMBER;
  186. END_TYPE;
  187. TYPE IfcPHMeasure = REAL;
  188. WHERE
  189. WR21 : {0.0 <= SELF <= 14.0};
  190. END_TYPE;
  191. TYPE IfcParameterValue = REAL;
  192. END_TYPE;
  193. TYPE IfcPlanarForceMeasure = REAL;
  194. END_TYPE;
  195. TYPE IfcPlaneAngleMeasure = REAL;
  196. END_TYPE;
  197. TYPE IfcPositiveLengthMeasure = IfcLengthMeasure;
  198. WHERE
  199. WR1 : SELF > 0.;
  200. END_TYPE;
  201. TYPE IfcPositivePlaneAngleMeasure = IfcPlaneAngleMeasure;
  202. WHERE
  203. WR1 : SELF > 0.;
  204. END_TYPE;
  205. TYPE IfcPositiveRatioMeasure = IfcRatioMeasure;
  206. WHERE
  207. WR1 : SELF > 0.;
  208. END_TYPE;
  209. TYPE IfcPowerMeasure = REAL;
  210. END_TYPE;
  211. TYPE IfcPresentableText = STRING;
  212. END_TYPE;
  213. TYPE IfcPressureMeasure = REAL;
  214. END_TYPE;
  215. TYPE IfcRadioActivityMeasure = REAL;
  216. END_TYPE;
  217. TYPE IfcRatioMeasure = REAL;
  218. END_TYPE;
  219. TYPE IfcReal = REAL;
  220. END_TYPE;
  221. TYPE IfcRotationalFrequencyMeasure = REAL;
  222. END_TYPE;
  223. TYPE IfcRotationalMassMeasure = REAL;
  224. END_TYPE;
  225. TYPE IfcRotationalStiffnessMeasure = REAL;
  226. END_TYPE;
  227. TYPE IfcSecondInMinute = REAL;
  228. WHERE
  229. WR1 : { 0. <= SELF < 60. };
  230. END_TYPE;
  231. TYPE IfcSectionModulusMeasure = REAL;
  232. END_TYPE;
  233. TYPE IfcSectionalAreaIntegralMeasure = REAL;
  234. END_TYPE;
  235. TYPE IfcShearModulusMeasure = REAL;
  236. END_TYPE;
  237. TYPE IfcSolidAngleMeasure = REAL;
  238. END_TYPE;
  239. TYPE IfcSoundPowerMeasure = REAL;
  240. END_TYPE;
  241. TYPE IfcSoundPressureMeasure = REAL;
  242. END_TYPE;
  243. TYPE IfcSpecificHeatCapacityMeasure = REAL;
  244. END_TYPE;
  245. TYPE IfcSpecularExponent = REAL;
  246. END_TYPE;
  247. TYPE IfcSpecularRoughness = REAL;
  248. WHERE
  249. WR1 : {0.0 <= SELF <= 1.0};
  250. END_TYPE;
  251. TYPE IfcTemperatureGradientMeasure = REAL;
  252. END_TYPE;
  253. TYPE IfcText = STRING;
  254. END_TYPE;
  255. TYPE IfcTextAlignment = STRING;
  256. WHERE
  257. WR1 : SELF IN ['left', 'right', 'center', 'justify'];
  258. END_TYPE;
  259. TYPE IfcTextDecoration = STRING;
  260. WHERE
  261. WR1 : SELF IN ['none', 'underline', 'overline', 'line-through', 'blink'];
  262. END_TYPE;
  263. TYPE IfcTextFontName = STRING;
  264. END_TYPE;
  265. TYPE IfcTextTransformation = STRING;
  266. WHERE
  267. WR1 : SELF IN ['capitalize', 'uppercase', 'lowercase', 'none'];
  268. END_TYPE;
  269. TYPE IfcThermalAdmittanceMeasure = REAL;
  270. END_TYPE;
  271. TYPE IfcThermalConductivityMeasure = REAL;
  272. END_TYPE;
  273. TYPE IfcThermalExpansionCoefficientMeasure = REAL;
  274. END_TYPE;
  275. TYPE IfcThermalResistanceMeasure = REAL;
  276. END_TYPE;
  277. TYPE IfcThermalTransmittanceMeasure = REAL;
  278. END_TYPE;
  279. TYPE IfcThermodynamicTemperatureMeasure = REAL;
  280. END_TYPE;
  281. TYPE IfcTimeMeasure = REAL;
  282. END_TYPE;
  283. TYPE IfcTimeStamp = INTEGER;
  284. END_TYPE;
  285. TYPE IfcTorqueMeasure = REAL;
  286. END_TYPE;
  287. TYPE IfcVaporPermeabilityMeasure = REAL;
  288. END_TYPE;
  289. TYPE IfcVolumeMeasure = REAL;
  290. END_TYPE;
  291. TYPE IfcVolumetricFlowRateMeasure = REAL;
  292. END_TYPE;
  293. TYPE IfcWarpingConstantMeasure = REAL;
  294. END_TYPE;
  295. TYPE IfcWarpingMomentMeasure = REAL;
  296. END_TYPE;
  297. TYPE IfcYearNumber = INTEGER;
  298. END_TYPE;
  299. TYPE IfcActionSourceTypeEnum = ENUMERATION OF
  300. (DEAD_LOAD_G
  301. ,COMPLETION_G1
  302. ,LIVE_LOAD_Q
  303. ,SNOW_S
  304. ,WIND_W
  305. ,PRESTRESSING_P
  306. ,SETTLEMENT_U
  307. ,TEMPERATURE_T
  308. ,EARTHQUAKE_E
  309. ,FIRE
  310. ,IMPULSE
  311. ,IMPACT
  312. ,TRANSPORT
  313. ,ERECTION
  314. ,PROPPING
  315. ,SYSTEM_IMPERFECTION
  316. ,SHRINKAGE
  317. ,CREEP
  318. ,LACK_OF_FIT
  319. ,BUOYANCY
  320. ,ICE
  321. ,CURRENT
  322. ,WAVE
  323. ,RAIN
  324. ,BRAKES
  325. ,USERDEFINED
  326. ,NOTDEFINED);
  327. END_TYPE;
  328. TYPE IfcActionTypeEnum = ENUMERATION OF
  329. (PERMANENT_G
  330. ,VARIABLE_Q
  331. ,EXTRAORDINARY_A
  332. ,USERDEFINED
  333. ,NOTDEFINED);
  334. END_TYPE;
  335. TYPE IfcActuatorTypeEnum = ENUMERATION OF
  336. (ELECTRICACTUATOR
  337. ,HANDOPERATEDACTUATOR
  338. ,HYDRAULICACTUATOR
  339. ,PNEUMATICACTUATOR
  340. ,THERMOSTATICACTUATOR
  341. ,USERDEFINED
  342. ,NOTDEFINED);
  343. END_TYPE;
  344. TYPE IfcAddressTypeEnum = ENUMERATION OF
  345. (OFFICE
  346. ,SITE
  347. ,HOME
  348. ,DISTRIBUTIONPOINT
  349. ,USERDEFINED);
  350. END_TYPE;
  351. TYPE IfcAheadOrBehind = ENUMERATION OF
  352. (AHEAD
  353. ,BEHIND);
  354. END_TYPE;
  355. TYPE IfcAirTerminalBoxTypeEnum = ENUMERATION OF
  356. (CONSTANTFLOW
  357. ,VARIABLEFLOWPRESSUREDEPENDANT
  358. ,VARIABLEFLOWPRESSUREINDEPENDANT
  359. ,USERDEFINED
  360. ,NOTDEFINED);
  361. END_TYPE;
  362. TYPE IfcAirTerminalTypeEnum = ENUMERATION OF
  363. (GRILLE
  364. ,REGISTER
  365. ,DIFFUSER
  366. ,EYEBALL
  367. ,IRIS
  368. ,LINEARGRILLE
  369. ,LINEARDIFFUSER
  370. ,USERDEFINED
  371. ,NOTDEFINED);
  372. END_TYPE;
  373. TYPE IfcAirToAirHeatRecoveryTypeEnum = ENUMERATION OF
  374. (FIXEDPLATECOUNTERFLOWEXCHANGER
  375. ,FIXEDPLATECROSSFLOWEXCHANGER
  376. ,FIXEDPLATEPARALLELFLOWEXCHANGER
  377. ,ROTARYWHEEL
  378. ,RUNAROUNDCOILLOOP
  379. ,HEATPIPE
  380. ,TWINTOWERENTHALPYRECOVERYLOOPS
  381. ,THERMOSIPHONSEALEDTUBEHEATEXCHANGERS
  382. ,THERMOSIPHONCOILTYPEHEATEXCHANGERS
  383. ,USERDEFINED
  384. ,NOTDEFINED);
  385. END_TYPE;
  386. TYPE IfcAlarmTypeEnum = ENUMERATION OF
  387. (BELL
  388. ,BREAKGLASSBUTTON
  389. ,LIGHT
  390. ,MANUALPULLBOX
  391. ,SIREN
  392. ,WHISTLE
  393. ,USERDEFINED
  394. ,NOTDEFINED);
  395. END_TYPE;
  396. TYPE IfcAnalysisModelTypeEnum = ENUMERATION OF
  397. (IN_PLANE_LOADING_2D
  398. ,OUT_PLANE_LOADING_2D
  399. ,LOADING_3D
  400. ,USERDEFINED
  401. ,NOTDEFINED);
  402. END_TYPE;
  403. TYPE IfcAnalysisTheoryTypeEnum = ENUMERATION OF
  404. (FIRST_ORDER_THEORY
  405. ,SECOND_ORDER_THEORY
  406. ,THIRD_ORDER_THEORY
  407. ,FULL_NONLINEAR_THEORY
  408. ,USERDEFINED
  409. ,NOTDEFINED);
  410. END_TYPE;
  411. TYPE IfcArithmeticOperatorEnum = ENUMERATION OF
  412. (ADD
  413. ,DIVIDE
  414. ,MULTIPLY
  415. ,SUBTRACT);
  416. END_TYPE;
  417. TYPE IfcAssemblyPlaceEnum = ENUMERATION OF
  418. (SITE
  419. ,FACTORY
  420. ,NOTDEFINED);
  421. END_TYPE;
  422. TYPE IfcBSplineCurveForm = ENUMERATION OF
  423. (POLYLINE_FORM
  424. ,CIRCULAR_ARC
  425. ,ELLIPTIC_ARC
  426. ,PARABOLIC_ARC
  427. ,HYPERBOLIC_ARC
  428. ,UNSPECIFIED);
  429. END_TYPE;
  430. TYPE IfcBeamTypeEnum = ENUMERATION OF
  431. (BEAM
  432. ,JOIST
  433. ,LINTEL
  434. ,T_BEAM
  435. ,USERDEFINED
  436. ,NOTDEFINED);
  437. END_TYPE;
  438. TYPE IfcBenchmarkEnum = ENUMERATION OF
  439. (GREATERTHAN
  440. ,GREATERTHANOREQUALTO
  441. ,LESSTHAN
  442. ,LESSTHANOREQUALTO
  443. ,EQUALTO
  444. ,NOTEQUALTO);
  445. END_TYPE;
  446. TYPE IfcBoilerTypeEnum = ENUMERATION OF
  447. (WATER
  448. ,STEAM
  449. ,USERDEFINED
  450. ,NOTDEFINED);
  451. END_TYPE;
  452. TYPE IfcBooleanOperator = ENUMERATION OF
  453. (UNION
  454. ,INTERSECTION
  455. ,DIFFERENCE);
  456. END_TYPE;
  457. TYPE IfcBuildingElementProxyTypeEnum = ENUMERATION OF
  458. (USERDEFINED
  459. ,NOTDEFINED);
  460. END_TYPE;
  461. TYPE IfcCableCarrierFittingTypeEnum = ENUMERATION OF
  462. (BEND
  463. ,CROSS
  464. ,REDUCER
  465. ,TEE
  466. ,USERDEFINED
  467. ,NOTDEFINED);
  468. END_TYPE;
  469. TYPE IfcCableCarrierSegmentTypeEnum = ENUMERATION OF
  470. (CABLELADDERSEGMENT
  471. ,CABLETRAYSEGMENT
  472. ,CABLETRUNKINGSEGMENT
  473. ,CONDUITSEGMENT
  474. ,USERDEFINED
  475. ,NOTDEFINED);
  476. END_TYPE;
  477. TYPE IfcCableSegmentTypeEnum = ENUMERATION OF
  478. (CABLESEGMENT
  479. ,CONDUCTORSEGMENT
  480. ,USERDEFINED
  481. ,NOTDEFINED);
  482. END_TYPE;
  483. TYPE IfcChangeActionEnum = ENUMERATION OF
  484. (NOCHANGE
  485. ,MODIFIED
  486. ,ADDED
  487. ,DELETED
  488. ,MODIFIEDADDED
  489. ,MODIFIEDDELETED);
  490. END_TYPE;
  491. TYPE IfcChillerTypeEnum = ENUMERATION OF
  492. (AIRCOOLED
  493. ,WATERCOOLED
  494. ,HEATRECOVERY
  495. ,USERDEFINED
  496. ,NOTDEFINED);
  497. END_TYPE;
  498. TYPE IfcCoilTypeEnum = ENUMERATION OF
  499. (DXCOOLINGCOIL
  500. ,WATERCOOLINGCOIL
  501. ,STEAMHEATINGCOIL
  502. ,WATERHEATINGCOIL
  503. ,ELECTRICHEATINGCOIL
  504. ,GASHEATINGCOIL
  505. ,USERDEFINED
  506. ,NOTDEFINED);
  507. END_TYPE;
  508. TYPE IfcColumnTypeEnum = ENUMERATION OF
  509. (COLUMN
  510. ,USERDEFINED
  511. ,NOTDEFINED);
  512. END_TYPE;
  513. TYPE IfcCompressorTypeEnum = ENUMERATION OF
  514. (DYNAMIC
  515. ,RECIPROCATING
  516. ,ROTARY
  517. ,SCROLL
  518. ,TROCHOIDAL
  519. ,SINGLESTAGE
  520. ,BOOSTER
  521. ,OPENTYPE
  522. ,HERMETIC
  523. ,SEMIHERMETIC
  524. ,WELDEDSHELLHERMETIC
  525. ,ROLLINGPISTON
  526. ,ROTARYVANE
  527. ,SINGLESCREW
  528. ,TWINSCREW
  529. ,USERDEFINED
  530. ,NOTDEFINED);
  531. END_TYPE;
  532. TYPE IfcCondenserTypeEnum = ENUMERATION OF
  533. (WATERCOOLEDSHELLTUBE
  534. ,WATERCOOLEDSHELLCOIL
  535. ,WATERCOOLEDTUBEINTUBE
  536. ,WATERCOOLEDBRAZEDPLATE
  537. ,AIRCOOLED
  538. ,EVAPORATIVECOOLED
  539. ,USERDEFINED
  540. ,NOTDEFINED);
  541. END_TYPE;
  542. TYPE IfcConnectionTypeEnum = ENUMERATION OF
  543. (ATPATH
  544. ,ATSTART
  545. ,ATEND
  546. ,NOTDEFINED);
  547. END_TYPE;
  548. TYPE IfcConstraintEnum = ENUMERATION OF
  549. (HARD
  550. ,SOFT
  551. ,ADVISORY
  552. ,USERDEFINED
  553. ,NOTDEFINED);
  554. END_TYPE;
  555. TYPE IfcControllerTypeEnum = ENUMERATION OF
  556. (FLOATING
  557. ,PROPORTIONAL
  558. ,PROPORTIONALINTEGRAL
  559. ,PROPORTIONALINTEGRALDERIVATIVE
  560. ,TIMEDTWOPOSITION
  561. ,TWOPOSITION
  562. ,USERDEFINED
  563. ,NOTDEFINED);
  564. END_TYPE;
  565. TYPE IfcCooledBeamTypeEnum = ENUMERATION OF
  566. (ACTIVE
  567. ,PASSIVE
  568. ,USERDEFINED
  569. ,NOTDEFINED);
  570. END_TYPE;
  571. TYPE IfcCoolingTowerTypeEnum = ENUMERATION OF
  572. (NATURALDRAFT
  573. ,MECHANICALINDUCEDDRAFT
  574. ,MECHANICALFORCEDDRAFT
  575. ,USERDEFINED
  576. ,NOTDEFINED);
  577. END_TYPE;
  578. TYPE IfcCostScheduleTypeEnum = ENUMERATION OF
  579. (BUDGET
  580. ,COSTPLAN
  581. ,ESTIMATE
  582. ,TENDER
  583. ,PRICEDBILLOFQUANTITIES
  584. ,UNPRICEDBILLOFQUANTITIES
  585. ,SCHEDULEOFRATES
  586. ,USERDEFINED
  587. ,NOTDEFINED);
  588. END_TYPE;
  589. TYPE IfcCoveringTypeEnum = ENUMERATION OF
  590. (CEILING
  591. ,FLOORING
  592. ,CLADDING
  593. ,ROOFING
  594. ,INSULATION
  595. ,MEMBRANE
  596. ,SLEEVING
  597. ,WRAPPING
  598. ,USERDEFINED
  599. ,NOTDEFINED);
  600. END_TYPE;
  601. TYPE IfcCurrencyEnum = ENUMERATION OF
  602. (AED
  603. ,AES
  604. ,ATS
  605. ,AUD
  606. ,BBD
  607. ,BEG
  608. ,BGL
  609. ,BHD
  610. ,BMD
  611. ,BND
  612. ,BRL
  613. ,BSD
  614. ,BWP
  615. ,BZD
  616. ,CAD
  617. ,CBD
  618. ,CHF
  619. ,CLP
  620. ,CNY
  621. ,CYS
  622. ,CZK
  623. ,DDP
  624. ,DEM
  625. ,DKK
  626. ,EGL
  627. ,EST
  628. ,EUR
  629. ,FAK
  630. ,FIM
  631. ,FJD
  632. ,FKP
  633. ,FRF
  634. ,GBP
  635. ,GIP
  636. ,GMD
  637. ,GRX
  638. ,HKD
  639. ,HUF
  640. ,ICK
  641. ,IDR
  642. ,ILS
  643. ,INR
  644. ,IRP
  645. ,ITL
  646. ,JMD
  647. ,JOD
  648. ,JPY
  649. ,KES
  650. ,KRW
  651. ,KWD
  652. ,KYD
  653. ,LKR
  654. ,LUF
  655. ,MTL
  656. ,MUR
  657. ,MXN
  658. ,MYR
  659. ,NLG
  660. ,NZD
  661. ,OMR
  662. ,PGK
  663. ,PHP
  664. ,PKR
  665. ,PLN
  666. ,PTN
  667. ,QAR
  668. ,RUR
  669. ,SAR
  670. ,SCR
  671. ,SEK
  672. ,SGD
  673. ,SKP
  674. ,THB
  675. ,TRL
  676. ,TTD
  677. ,TWD
  678. ,USD
  679. ,VEB
  680. ,VND
  681. ,XEU
  682. ,ZAR
  683. ,ZWD
  684. ,NOK);
  685. END_TYPE;
  686. TYPE IfcCurtainWallTypeEnum = ENUMERATION OF
  687. (USERDEFINED
  688. ,NOTDEFINED);
  689. END_TYPE;
  690. TYPE IfcDamperTypeEnum = ENUMERATION OF
  691. (CONTROLDAMPER
  692. ,FIREDAMPER
  693. ,SMOKEDAMPER
  694. ,FIRESMOKEDAMPER
  695. ,BACKDRAFTDAMPER
  696. ,RELIEFDAMPER
  697. ,BLASTDAMPER
  698. ,GRAVITYDAMPER
  699. ,GRAVITYRELIEFDAMPER
  700. ,BALANCINGDAMPER
  701. ,FUMEHOODEXHAUST
  702. ,USERDEFINED
  703. ,NOTDEFINED);
  704. END_TYPE;
  705. TYPE IfcDataOriginEnum = ENUMERATION OF
  706. (MEASURED
  707. ,PREDICTED
  708. ,SIMULATED
  709. ,USERDEFINED
  710. ,NOTDEFINED);
  711. END_TYPE;
  712. TYPE IfcDerivedUnitEnum = ENUMERATION OF
  713. (ANGULARVELOCITYUNIT
  714. ,COMPOUNDPLANEANGLEUNIT
  715. ,DYNAMICVISCOSITYUNIT
  716. ,HEATFLUXDENSITYUNIT
  717. ,INTEGERCOUNTRATEUNIT
  718. ,ISOTHERMALMOISTURECAPACITYUNIT
  719. ,KINEMATICVISCOSITYUNIT
  720. ,LINEARVELOCITYUNIT
  721. ,MASSDENSITYUNIT
  722. ,MASSFLOWRATEUNIT
  723. ,MOISTUREDIFFUSIVITYUNIT
  724. ,MOLECULARWEIGHTUNIT
  725. ,SPECIFICHEATCAPACITYUNIT
  726. ,THERMALADMITTANCEUNIT
  727. ,THERMALCONDUCTANCEUNIT
  728. ,THERMALRESISTANCEUNIT
  729. ,THERMALTRANSMITTANCEUNIT
  730. ,VAPORPERMEABILITYUNIT
  731. ,VOLUMETRICFLOWRATEUNIT
  732. ,ROTATIONALFREQUENCYUNIT
  733. ,TORQUEUNIT
  734. ,MOMENTOFINERTIAUNIT
  735. ,LINEARMOMENTUNIT
  736. ,LINEARFORCEUNIT
  737. ,PLANARFORCEUNIT
  738. ,MODULUSOFELASTICITYUNIT
  739. ,SHEARMODULUSUNIT
  740. ,LINEARSTIFFNESSUNIT
  741. ,ROTATIONALSTIFFNESSUNIT
  742. ,MODULUSOFSUBGRADEREACTIONUNIT
  743. ,ACCELERATIONUNIT
  744. ,CURVATUREUNIT
  745. ,HEATINGVALUEUNIT
  746. ,IONCONCENTRATIONUNIT
  747. ,LUMINOUSINTENSITYDISTRIBUTIONUNIT
  748. ,MASSPERLENGTHUNIT
  749. ,MODULUSOFLINEARSUBGRADEREACTIONUNIT
  750. ,MODULUSOFROTATIONALSUBGRADEREACTIONUNIT
  751. ,PHUNIT
  752. ,ROTATIONALMASSUNIT
  753. ,SECTIONAREAINTEGRALUNIT
  754. ,SECTIONMODULUSUNIT
  755. ,SOUNDPOWERUNIT
  756. ,SOUNDPRESSUREUNIT
  757. ,TEMPERATUREGRADIENTUNIT
  758. ,THERMALEXPANSIONCOEFFICIENTUNIT
  759. ,WARPINGCONSTANTUNIT
  760. ,WARPINGMOMENTUNIT
  761. ,USERDEFINED);
  762. END_TYPE;
  763. TYPE IfcDimensionExtentUsage = ENUMERATION OF
  764. (ORIGIN
  765. ,TARGET);
  766. END_TYPE;
  767. TYPE IfcDirectionSenseEnum = ENUMERATION OF
  768. (POSITIVE
  769. ,NEGATIVE);
  770. END_TYPE;
  771. TYPE IfcDistributionChamberElementTypeEnum = ENUMERATION OF
  772. (FORMEDDUCT
  773. ,INSPECTIONCHAMBER
  774. ,INSPECTIONPIT
  775. ,MANHOLE
  776. ,METERCHAMBER
  777. ,SUMP
  778. ,TRENCH
  779. ,VALVECHAMBER
  780. ,USERDEFINED
  781. ,NOTDEFINED);
  782. END_TYPE;
  783. TYPE IfcDocumentConfidentialityEnum = ENUMERATION OF
  784. (PUBLIC
  785. ,RESTRICTED
  786. ,CONFIDENTIAL
  787. ,PERSONAL
  788. ,USERDEFINED
  789. ,NOTDEFINED);
  790. END_TYPE;
  791. TYPE IfcDocumentStatusEnum = ENUMERATION OF
  792. (DRAFT
  793. ,FINALDRAFT
  794. ,FINAL
  795. ,REVISION
  796. ,NOTDEFINED);
  797. END_TYPE;
  798. TYPE IfcDoorPanelOperationEnum = ENUMERATION OF
  799. (SWINGING
  800. ,DOUBLE_ACTING
  801. ,SLIDING
  802. ,FOLDING
  803. ,REVOLVING
  804. ,ROLLINGUP
  805. ,USERDEFINED
  806. ,NOTDEFINED);
  807. END_TYPE;
  808. TYPE IfcDoorPanelPositionEnum = ENUMERATION OF
  809. (LEFT
  810. ,MIDDLE
  811. ,RIGHT
  812. ,NOTDEFINED);
  813. END_TYPE;
  814. TYPE IfcDoorStyleConstructionEnum = ENUMERATION OF
  815. (ALUMINIUM
  816. ,HIGH_GRADE_STEEL
  817. ,STEEL
  818. ,WOOD
  819. ,ALUMINIUM_WOOD
  820. ,ALUMINIUM_PLASTIC
  821. ,PLASTIC
  822. ,USERDEFINED
  823. ,NOTDEFINED);
  824. END_TYPE;
  825. TYPE IfcDoorStyleOperationEnum = ENUMERATION OF
  826. (SINGLE_SWING_LEFT
  827. ,SINGLE_SWING_RIGHT
  828. ,DOUBLE_DOOR_SINGLE_SWING
  829. ,DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT
  830. ,DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT
  831. ,DOUBLE_SWING_LEFT
  832. ,DOUBLE_SWING_RIGHT
  833. ,DOUBLE_DOOR_DOUBLE_SWING
  834. ,SLIDING_TO_LEFT
  835. ,SLIDING_TO_RIGHT
  836. ,DOUBLE_DOOR_SLIDING
  837. ,FOLDING_TO_LEFT
  838. ,FOLDING_TO_RIGHT
  839. ,DOUBLE_DOOR_FOLDING
  840. ,REVOLVING
  841. ,ROLLINGUP
  842. ,USERDEFINED
  843. ,NOTDEFINED);
  844. END_TYPE;
  845. TYPE IfcDuctFittingTypeEnum = ENUMERATION OF
  846. (BEND
  847. ,CONNECTOR
  848. ,ENTRY
  849. ,EXIT
  850. ,JUNCTION
  851. ,OBSTRUCTION
  852. ,TRANSITION
  853. ,USERDEFINED
  854. ,NOTDEFINED);
  855. END_TYPE;
  856. TYPE IfcDuctSegmentTypeEnum = ENUMERATION OF
  857. (RIGIDSEGMENT
  858. ,FLEXIBLESEGMENT
  859. ,USERDEFINED
  860. ,NOTDEFINED);
  861. END_TYPE;
  862. TYPE IfcDuctSilencerTypeEnum = ENUMERATION OF
  863. (FLATOVAL
  864. ,RECTANGULAR
  865. ,ROUND
  866. ,USERDEFINED
  867. ,NOTDEFINED);
  868. END_TYPE;
  869. TYPE IfcElectricApplianceTypeEnum = ENUMERATION OF
  870. (COMPUTER
  871. ,DIRECTWATERHEATER
  872. ,DISHWASHER
  873. ,ELECTRICCOOKER
  874. ,ELECTRICHEATER
  875. ,FACSIMILE
  876. ,FREESTANDINGFAN
  877. ,FREEZER
  878. ,FRIDGE_FREEZER
  879. ,HANDDRYER
  880. ,INDIRECTWATERHEATER
  881. ,MICROWAVE
  882. ,PHOTOCOPIER
  883. ,PRINTER
  884. ,REFRIGERATOR
  885. ,RADIANTHEATER
  886. ,SCANNER
  887. ,TELEPHONE
  888. ,TUMBLEDRYER
  889. ,TV
  890. ,VENDINGMACHINE
  891. ,WASHINGMACHINE
  892. ,WATERHEATER
  893. ,WATERCOOLER
  894. ,USERDEFINED
  895. ,NOTDEFINED);
  896. END_TYPE;
  897. TYPE IfcElectricCurrentEnum = ENUMERATION OF
  898. (ALTERNATING
  899. ,DIRECT
  900. ,NOTDEFINED);
  901. END_TYPE;
  902. TYPE IfcElectricDistributionPointFunctionEnum = ENUMERATION OF
  903. (ALARMPANEL
  904. ,CONSUMERUNIT
  905. ,CONTROLPANEL
  906. ,DISTRIBUTIONBOARD
  907. ,GASDETECTORPANEL
  908. ,INDICATORPANEL
  909. ,MIMICPANEL
  910. ,MOTORCONTROLCENTRE
  911. ,SWITCHBOARD
  912. ,USERDEFINED
  913. ,NOTDEFINED);
  914. END_TYPE;
  915. TYPE IfcElectricFlowStorageDeviceTypeEnum = ENUMERATION OF
  916. (BATTERY
  917. ,CAPACITORBANK
  918. ,HARMONICFILTER
  919. ,INDUCTORBANK
  920. ,UPS
  921. ,USERDEFINED
  922. ,NOTDEFINED);
  923. END_TYPE;
  924. TYPE IfcElectricGeneratorTypeEnum = ENUMERATION OF
  925. (USERDEFINED
  926. ,NOTDEFINED);
  927. END_TYPE;
  928. TYPE IfcElectricHeaterTypeEnum = ENUMERATION OF
  929. (ELECTRICPOINTHEATER
  930. ,ELECTRICCABLEHEATER
  931. ,ELECTRICMATHEATER
  932. ,USERDEFINED
  933. ,NOTDEFINED);
  934. END_TYPE;
  935. TYPE IfcElectricMotorTypeEnum = ENUMERATION OF
  936. (DC
  937. ,INDUCTION
  938. ,POLYPHASE
  939. ,RELUCTANCESYNCHRONOUS
  940. ,SYNCHRONOUS
  941. ,USERDEFINED
  942. ,NOTDEFINED);
  943. END_TYPE;
  944. TYPE IfcElectricTimeControlTypeEnum = ENUMERATION OF
  945. (TIMECLOCK
  946. ,TIMEDELAY
  947. ,RELAY
  948. ,USERDEFINED
  949. ,NOTDEFINED);
  950. END_TYPE;
  951. TYPE IfcElementAssemblyTypeEnum = ENUMERATION OF
  952. (ACCESSORY_ASSEMBLY
  953. ,ARCH
  954. ,BEAM_GRID
  955. ,BRACED_FRAME
  956. ,GIRDER
  957. ,REINFORCEMENT_UNIT
  958. ,RIGID_FRAME
  959. ,SLAB_FIELD
  960. ,TRUSS
  961. ,USERDEFINED
  962. ,NOTDEFINED);
  963. END_TYPE;
  964. TYPE IfcElementCompositionEnum = ENUMERATION OF
  965. (COMPLEX
  966. ,ELEMENT
  967. ,PARTIAL);
  968. END_TYPE;
  969. TYPE IfcEnergySequenceEnum = ENUMERATION OF
  970. (PRIMARY
  971. ,SECONDARY
  972. ,TERTIARY
  973. ,AUXILIARY
  974. ,USERDEFINED
  975. ,NOTDEFINED);
  976. END_TYPE;
  977. TYPE IfcEnvironmentalImpactCategoryEnum = ENUMERATION OF
  978. (COMBINEDVALUE
  979. ,DISPOSAL
  980. ,EXTRACTION
  981. ,INSTALLATION
  982. ,MANUFACTURE
  983. ,TRANSPORTATION
  984. ,USERDEFINED
  985. ,NOTDEFINED);
  986. END_TYPE;
  987. TYPE IfcEvaporativeCoolerTypeEnum = ENUMERATION OF
  988. (DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER
  989. ,DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER
  990. ,DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER
  991. ,DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER
  992. ,DIRECTEVAPORATIVEAIRWASHER
  993. ,INDIRECTEVAPORATIVEPACKAGEAIRCOOLER
  994. ,INDIRECTEVAPORATIVEWETCOIL
  995. ,INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER
  996. ,INDIRECTDIRECTCOMBINATION
  997. ,USERDEFINED
  998. ,NOTDEFINED);
  999. END_TYPE;
  1000. TYPE IfcEvaporatorTypeEnum = ENUMERATION OF
  1001. (DIRECTEXPANSIONSHELLANDTUBE
  1002. ,DIRECTEXPANSIONTUBEINTUBE
  1003. ,DIRECTEXPANSIONBRAZEDPLATE
  1004. ,FLOODEDSHELLANDTUBE
  1005. ,SHELLANDCOIL
  1006. ,USERDEFINED
  1007. ,NOTDEFINED);
  1008. END_TYPE;
  1009. TYPE IfcFanTypeEnum = ENUMERATION OF
  1010. (CENTRIFUGALFORWARDCURVED
  1011. ,CENTRIFUGALRADIAL
  1012. ,CENTRIFUGALBACKWARDINCLINEDCURVED
  1013. ,CENTRIFUGALAIRFOIL
  1014. ,TUBEAXIAL
  1015. ,VANEAXIAL
  1016. ,PROPELLORAXIAL
  1017. ,USERDEFINED
  1018. ,NOTDEFINED);
  1019. END_TYPE;
  1020. TYPE IfcFilterTypeEnum = ENUMERATION OF
  1021. (AIRPARTICLEFILTER
  1022. ,ODORFILTER
  1023. ,OILFILTER
  1024. ,STRAINER
  1025. ,WATERFILTER
  1026. ,USERDEFINED
  1027. ,NOTDEFINED);
  1028. END_TYPE;
  1029. TYPE IfcFireSuppressionTerminalTypeEnum = ENUMERATION OF
  1030. (BREECHINGINLET
  1031. ,FIREHYDRANT
  1032. ,HOSEREEL
  1033. ,SPRINKLER
  1034. ,SPRINKLERDEFLECTOR
  1035. ,USERDEFINED
  1036. ,NOTDEFINED);
  1037. END_TYPE;
  1038. TYPE IfcFlowDirectionEnum = ENUMERATION OF
  1039. (SOURCE
  1040. ,SINK
  1041. ,SOURCEANDSINK
  1042. ,NOTDEFINED);
  1043. END_TYPE;
  1044. TYPE IfcFlowInstrumentTypeEnum = ENUMERATION OF
  1045. (PRESSUREGAUGE
  1046. ,THERMOMETER
  1047. ,AMMETER
  1048. ,FREQUENCYMETER
  1049. ,POWERFACTORMETER
  1050. ,PHASEANGLEMETER
  1051. ,VOLTMETER_PEAK
  1052. ,VOLTMETER_RMS
  1053. ,USERDEFINED
  1054. ,NOTDEFINED);
  1055. END_TYPE;
  1056. TYPE IfcFlowMeterTypeEnum = ENUMERATION OF
  1057. (ELECTRICMETER
  1058. ,ENERGYMETER
  1059. ,FLOWMETER
  1060. ,GASMETER
  1061. ,OILMETER
  1062. ,WATERMETER
  1063. ,USERDEFINED
  1064. ,NOTDEFINED);
  1065. END_TYPE;
  1066. TYPE IfcFootingTypeEnum = ENUMERATION OF
  1067. (FOOTING_BEAM
  1068. ,PAD_FOOTING
  1069. ,PILE_CAP
  1070. ,STRIP_FOOTING
  1071. ,USERDEFINED
  1072. ,NOTDEFINED);
  1073. END_TYPE;
  1074. TYPE IfcGasTerminalTypeEnum = ENUMERATION OF
  1075. (GASAPPLIANCE
  1076. ,GASBOOSTER
  1077. ,GASBURNER
  1078. ,USERDEFINED
  1079. ,NOTDEFINED);
  1080. END_TYPE;
  1081. TYPE IfcGeometricProjectionEnum = ENUMERATION OF
  1082. (GRAPH_VIEW
  1083. ,SKETCH_VIEW
  1084. ,MODEL_VIEW
  1085. ,PLAN_VIEW
  1086. ,REFLECTED_PLAN_VIEW
  1087. ,SECTION_VIEW
  1088. ,ELEVATION_VIEW
  1089. ,USERDEFINED
  1090. ,NOTDEFINED);
  1091. END_TYPE;
  1092. TYPE IfcGlobalOrLocalEnum = ENUMERATION OF
  1093. (GLOBAL_COORDS
  1094. ,LOCAL_COORDS);
  1095. END_TYPE;
  1096. TYPE IfcHeatExchangerTypeEnum = ENUMERATION OF
  1097. (PLATE
  1098. ,SHELLANDTUBE
  1099. ,USERDEFINED
  1100. ,NOTDEFINED);
  1101. END_TYPE;
  1102. TYPE IfcHumidifierTypeEnum = ENUMERATION OF
  1103. (STEAMINJECTION
  1104. ,ADIABATICAIRWASHER
  1105. ,ADIABATICPAN
  1106. ,ADIABATICWETTEDELEMENT
  1107. ,ADIABATICATOMIZING
  1108. ,ADIABATICULTRASONIC
  1109. ,ADIABATICRIGIDMEDIA
  1110. ,ADIABATICCOMPRESSEDAIRNOZZLE
  1111. ,ASSISTEDELECTRIC
  1112. ,ASSISTEDNATURALGAS
  1113. ,ASSISTEDPROPANE
  1114. ,ASSISTEDBUTANE
  1115. ,ASSISTEDSTEAM
  1116. ,USERDEFINED
  1117. ,NOTDEFINED);
  1118. END_TYPE;
  1119. TYPE IfcInternalOrExternalEnum = ENUMERATION OF
  1120. (INTERNAL
  1121. ,EXTERNAL
  1122. ,NOTDEFINED);
  1123. END_TYPE;
  1124. TYPE IfcInventoryTypeEnum = ENUMERATION OF
  1125. (ASSETINVENTORY
  1126. ,SPACEINVENTORY
  1127. ,FURNITUREINVENTORY
  1128. ,USERDEFINED
  1129. ,NOTDEFINED);
  1130. END_TYPE;
  1131. TYPE IfcJunctionBoxTypeEnum = ENUMERATION OF
  1132. (USERDEFINED
  1133. ,NOTDEFINED);
  1134. END_TYPE;
  1135. TYPE IfcLampTypeEnum = ENUMERATION OF
  1136. (COMPACTFLUORESCENT
  1137. ,FLUORESCENT
  1138. ,HIGHPRESSUREMERCURY
  1139. ,HIGHPRESSURESODIUM
  1140. ,METALHALIDE
  1141. ,TUNGSTENFILAMENT
  1142. ,USERDEFINED
  1143. ,NOTDEFINED);
  1144. END_TYPE;
  1145. TYPE IfcLayerSetDirectionEnum = ENUMERATION OF
  1146. (AXIS1
  1147. ,AXIS2
  1148. ,AXIS3);
  1149. END_TYPE;
  1150. TYPE IfcLightDistributionCurveEnum = ENUMERATION OF
  1151. (TYPE_A
  1152. ,TYPE_B
  1153. ,TYPE_C
  1154. ,NOTDEFINED);
  1155. END_TYPE;
  1156. TYPE IfcLightEmissionSourceEnum = ENUMERATION OF
  1157. (COMPACTFLUORESCENT
  1158. ,FLUORESCENT
  1159. ,HIGHPRESSUREMERCURY
  1160. ,HIGHPRESSURESODIUM
  1161. ,LIGHTEMITTINGDIODE
  1162. ,LOWPRESSURESODIUM
  1163. ,LOWVOLTAGEHALOGEN
  1164. ,MAINVOLTAGEHALOGEN
  1165. ,METALHALIDE
  1166. ,TUNGSTENFILAMENT
  1167. ,NOTDEFINED);
  1168. END_TYPE;
  1169. TYPE IfcLightFixtureTypeEnum = ENUMERATION OF
  1170. (POINTSOURCE
  1171. ,DIRECTIONSOURCE
  1172. ,USERDEFINED
  1173. ,NOTDEFINED);
  1174. END_TYPE;
  1175. TYPE IfcLoadGroupTypeEnum = ENUMERATION OF
  1176. (LOAD_GROUP
  1177. ,LOAD_CASE
  1178. ,LOAD_COMBINATION_GROUP
  1179. ,LOAD_COMBINATION
  1180. ,USERDEFINED
  1181. ,NOTDEFINED);
  1182. END_TYPE;
  1183. TYPE IfcLogicalOperatorEnum = ENUMERATION OF
  1184. (LOGICALAND
  1185. ,LOGICALOR);
  1186. END_TYPE;
  1187. TYPE IfcMemberTypeEnum = ENUMERATION OF
  1188. (BRACE
  1189. ,CHORD
  1190. ,COLLAR
  1191. ,MEMBER
  1192. ,MULLION
  1193. ,PLATE
  1194. ,POST
  1195. ,PURLIN
  1196. ,RAFTER
  1197. ,STRINGER
  1198. ,STRUT
  1199. ,STUD
  1200. ,USERDEFINED
  1201. ,NOTDEFINED);
  1202. END_TYPE;
  1203. TYPE IfcMotorConnectionTypeEnum = ENUMERATION OF
  1204. (BELTDRIVE
  1205. ,COUPLING
  1206. ,DIRECTDRIVE
  1207. ,USERDEFINED
  1208. ,NOTDEFINED);
  1209. END_TYPE;
  1210. TYPE IfcNullStyle = ENUMERATION OF
  1211. (NULL);
  1212. END_TYPE;
  1213. TYPE IfcObjectTypeEnum = ENUMERATION OF
  1214. (PRODUCT
  1215. ,PROCESS
  1216. ,CONTROL
  1217. ,RESOURCE
  1218. ,ACTOR
  1219. ,GROUP
  1220. ,PROJECT
  1221. ,NOTDEFINED);
  1222. END_TYPE;
  1223. TYPE IfcObjectiveEnum = ENUMERATION OF
  1224. (CODECOMPLIANCE
  1225. ,DESIGNINTENT
  1226. ,HEALTHANDSAFETY
  1227. ,REQUIREMENT
  1228. ,SPECIFICATION
  1229. ,TRIGGERCONDITION
  1230. ,USERDEFINED
  1231. ,NOTDEFINED);
  1232. END_TYPE;
  1233. TYPE IfcOccupantTypeEnum = ENUMERATION OF
  1234. (ASSIGNEE
  1235. ,ASSIGNOR
  1236. ,LESSEE
  1237. ,LESSOR
  1238. ,LETTINGAGENT
  1239. ,OWNER
  1240. ,TENANT
  1241. ,USERDEFINED
  1242. ,NOTDEFINED);
  1243. END_TYPE;
  1244. TYPE IfcOutletTypeEnum = ENUMERATION OF
  1245. (AUDIOVISUALOUTLET
  1246. ,COMMUNICATIONSOUTLET
  1247. ,POWEROUTLET
  1248. ,USERDEFINED
  1249. ,NOTDEFINED);
  1250. END_TYPE;
  1251. TYPE IfcPermeableCoveringOperationEnum = ENUMERATION OF
  1252. (GRILL
  1253. ,LOUVER
  1254. ,SCREEN
  1255. ,USERDEFINED
  1256. ,NOTDEFINED);
  1257. END_TYPE;
  1258. TYPE IfcPhysicalOrVirtualEnum = ENUMERATION OF
  1259. (PHYSICAL
  1260. ,VIRTUAL
  1261. ,NOTDEFINED);
  1262. END_TYPE;
  1263. TYPE IfcPileConstructionEnum = ENUMERATION OF
  1264. (CAST_IN_PLACE
  1265. ,COMPOSITE
  1266. ,PRECAST_CONCRETE
  1267. ,PREFAB_STEEL
  1268. ,USERDEFINED
  1269. ,NOTDEFINED);
  1270. END_TYPE;
  1271. TYPE IfcPileTypeEnum = ENUMERATION OF
  1272. (COHESION
  1273. ,FRICTION
  1274. ,SUPPORT
  1275. ,USERDEFINED
  1276. ,NOTDEFINED);
  1277. END_TYPE;
  1278. TYPE IfcPipeFittingTypeEnum = ENUMERATION OF
  1279. (BEND
  1280. ,CONNECTOR
  1281. ,ENTRY
  1282. ,EXIT
  1283. ,JUNCTION
  1284. ,OBSTRUCTION
  1285. ,TRANSITION
  1286. ,USERDEFINED
  1287. ,NOTDEFINED);
  1288. END_TYPE;
  1289. TYPE IfcPipeSegmentTypeEnum = ENUMERATION OF
  1290. (FLEXIBLESEGMENT
  1291. ,RIGIDSEGMENT
  1292. ,GUTTER
  1293. ,SPOOL
  1294. ,USERDEFINED
  1295. ,NOTDEFINED);
  1296. END_TYPE;
  1297. TYPE IfcPlateTypeEnum = ENUMERATION OF
  1298. (CURTAIN_PANEL
  1299. ,SHEET
  1300. ,USERDEFINED
  1301. ,NOTDEFINED);
  1302. END_TYPE;
  1303. TYPE IfcProcedureTypeEnum = ENUMERATION OF
  1304. (ADVICE_CAUTION
  1305. ,ADVICE_NOTE
  1306. ,ADVICE_WARNING
  1307. ,CALIBRATION
  1308. ,DIAGNOSTIC
  1309. ,SHUTDOWN
  1310. ,STARTUP
  1311. ,USERDEFINED
  1312. ,NOTDEFINED);
  1313. END_TYPE;
  1314. TYPE IfcProfileTypeEnum = ENUMERATION OF
  1315. (CURVE
  1316. ,AREA);
  1317. END_TYPE;
  1318. TYPE IfcProjectOrderRecordTypeEnum = ENUMERATION OF
  1319. (CHANGE
  1320. ,MAINTENANCE
  1321. ,MOVE
  1322. ,PURCHASE
  1323. ,WORK
  1324. ,USERDEFINED
  1325. ,NOTDEFINED);
  1326. END_TYPE;
  1327. TYPE IfcProjectOrderTypeEnum = ENUMERATION OF
  1328. (CHANGEORDER
  1329. ,MAINTENANCEWORKORDER
  1330. ,MOVEORDER
  1331. ,PURCHASEORDER
  1332. ,WORKORDER
  1333. ,USERDEFINED
  1334. ,NOTDEFINED);
  1335. END_TYPE;
  1336. TYPE IfcProjectedOrTrueLengthEnum = ENUMERATION OF
  1337. (PROJECTED_LENGTH
  1338. ,TRUE_LENGTH);
  1339. END_TYPE;
  1340. TYPE IfcPropertySourceEnum = ENUMERATION OF
  1341. (DESIGN
  1342. ,DESIGNMAXIMUM
  1343. ,DESIGNMINIMUM
  1344. ,SIMULATED
  1345. ,ASBUILT
  1346. ,COMMISSIONING
  1347. ,MEASURED
  1348. ,USERDEFINED
  1349. ,NOTKNOWN);
  1350. END_TYPE;
  1351. TYPE IfcProtectiveDeviceTypeEnum = ENUMERATION OF
  1352. (FUSEDISCONNECTOR
  1353. ,CIRCUITBREAKER
  1354. ,EARTHFAILUREDEVICE
  1355. ,RESIDUALCURRENTCIRCUITBREAKER
  1356. ,RESIDUALCURRENTSWITCH
  1357. ,VARISTOR
  1358. ,USERDEFINED
  1359. ,NOTDEFINED);
  1360. END_TYPE;
  1361. TYPE IfcPumpTypeEnum = ENUMERATION OF
  1362. (CIRCULATOR
  1363. ,ENDSUCTION
  1364. ,SPLITCASE
  1365. ,VERTICALINLINE
  1366. ,VERTICALTURBINE
  1367. ,USERDEFINED
  1368. ,NOTDEFINED);
  1369. END_TYPE;
  1370. TYPE IfcRailingTypeEnum = ENUMERATION OF
  1371. (HANDRAIL
  1372. ,GUARDRAIL
  1373. ,BALUSTRADE
  1374. ,USERDEFINED
  1375. ,NOTDEFINED);
  1376. END_TYPE;
  1377. TYPE IfcRampFlightTypeEnum = ENUMERATION OF
  1378. (STRAIGHT
  1379. ,SPIRAL
  1380. ,USERDEFINED
  1381. ,NOTDEFINED);
  1382. END_TYPE;
  1383. TYPE IfcRampTypeEnum = ENUMERATION OF
  1384. (STRAIGHT_RUN_RAMP
  1385. ,TWO_STRAIGHT_RUN_RAMP
  1386. ,QUARTER_TURN_RAMP
  1387. ,TWO_QUARTER_TURN_RAMP
  1388. ,HALF_TURN_RAMP
  1389. ,SPIRAL_RAMP
  1390. ,USERDEFINED
  1391. ,NOTDEFINED);
  1392. END_TYPE;
  1393. TYPE IfcReflectanceMethodEnum = ENUMERATION OF
  1394. (BLINN
  1395. ,FLAT
  1396. ,GLASS
  1397. ,MATT
  1398. ,METAL
  1399. ,MIRROR
  1400. ,PHONG
  1401. ,PLASTIC
  1402. ,STRAUSS
  1403. ,NOTDEFINED);
  1404. END_TYPE;
  1405. TYPE IfcReinforcingBarRoleEnum = ENUMERATION OF
  1406. (MAIN
  1407. ,SHEAR
  1408. ,LIGATURE
  1409. ,STUD
  1410. ,PUNCHING
  1411. ,EDGE
  1412. ,RING
  1413. ,USERDEFINED
  1414. ,NOTDEFINED);
  1415. END_TYPE;
  1416. TYPE IfcReinforcingBarSurfaceEnum = ENUMERATION OF
  1417. (PLAIN
  1418. ,TEXTURED);
  1419. END_TYPE;
  1420. TYPE IfcResourceConsumptionEnum = ENUMERATION OF
  1421. (CONSUMED
  1422. ,PARTIALLYCONSUMED
  1423. ,NOTCONSUMED
  1424. ,OCCUPIED
  1425. ,PARTIALLYOCCUPIED
  1426. ,NOTOCCUPIED
  1427. ,USERDEFINED
  1428. ,NOTDEFINED);
  1429. END_TYPE;
  1430. TYPE IfcRibPlateDirectionEnum = ENUMERATION OF
  1431. (DIRECTION_X
  1432. ,DIRECTION_Y);
  1433. END_TYPE;
  1434. TYPE IfcRoleEnum = ENUMERATION OF
  1435. (SUPPLIER
  1436. ,MANUFACTURER
  1437. ,CONTRACTOR
  1438. ,SUBCONTRACTOR
  1439. ,ARCHITECT
  1440. ,STRUCTURALENGINEER
  1441. ,COSTENGINEER
  1442. ,CLIENT
  1443. ,BUILDINGOWNER
  1444. ,BUILDINGOPERATOR
  1445. ,MECHANICALENGINEER
  1446. ,ELECTRICALENGINEER
  1447. ,PROJECTMANAGER
  1448. ,FACILITIESMANAGER
  1449. ,CIVILENGINEER
  1450. ,COMISSIONINGENGINEER
  1451. ,ENGINEER
  1452. ,OWNER
  1453. ,CONSULTANT
  1454. ,CONSTRUCTIONMANAGER
  1455. ,FIELDCONSTRUCTIONMANAGER
  1456. ,RESELLER
  1457. ,USERDEFINED);
  1458. END_TYPE;
  1459. TYPE IfcRoofTypeEnum = ENUMERATION OF
  1460. (FLAT_ROOF
  1461. ,SHED_ROOF
  1462. ,GABLE_ROOF
  1463. ,HIP_ROOF
  1464. ,HIPPED_GABLE_ROOF
  1465. ,GAMBREL_ROOF
  1466. ,MANSARD_ROOF
  1467. ,BARREL_ROOF
  1468. ,RAINBOW_ROOF
  1469. ,BUTTERFLY_ROOF
  1470. ,PAVILION_ROOF
  1471. ,DOME_ROOF
  1472. ,FREEFORM
  1473. ,NOTDEFINED);
  1474. END_TYPE;
  1475. TYPE IfcSIPrefix = ENUMERATION OF
  1476. (EXA
  1477. ,PETA
  1478. ,TERA
  1479. ,GIGA
  1480. ,MEGA
  1481. ,KILO
  1482. ,HECTO
  1483. ,DECA
  1484. ,DECI
  1485. ,CENTI
  1486. ,MILLI
  1487. ,MICRO
  1488. ,NANO
  1489. ,PICO
  1490. ,FEMTO
  1491. ,ATTO);
  1492. END_TYPE;
  1493. TYPE IfcSIUnitName = ENUMERATION OF
  1494. (AMPERE
  1495. ,BECQUEREL
  1496. ,CANDELA
  1497. ,COULOMB
  1498. ,CUBIC_METRE
  1499. ,DEGREE_CELSIUS
  1500. ,FARAD
  1501. ,GRAM
  1502. ,GRAY
  1503. ,HENRY
  1504. ,HERTZ
  1505. ,JOULE
  1506. ,KELVIN
  1507. ,LUMEN
  1508. ,LUX
  1509. ,METRE
  1510. ,MOLE
  1511. ,NEWTON
  1512. ,OHM
  1513. ,PASCAL
  1514. ,RADIAN
  1515. ,SECOND
  1516. ,SIEMENS
  1517. ,SIEVERT
  1518. ,SQUARE_METRE
  1519. ,STERADIAN
  1520. ,TESLA
  1521. ,VOLT
  1522. ,WATT
  1523. ,WEBER);
  1524. END_TYPE;
  1525. TYPE IfcSanitaryTerminalTypeEnum = ENUMERATION OF
  1526. (BATH
  1527. ,BIDET
  1528. ,CISTERN
  1529. ,SHOWER
  1530. ,SINK
  1531. ,SANITARYFOUNTAIN
  1532. ,TOILETPAN
  1533. ,URINAL
  1534. ,WASHHANDBASIN
  1535. ,WCSEAT
  1536. ,USERDEFINED
  1537. ,NOTDEFINED);
  1538. END_TYPE;
  1539. TYPE IfcSectionTypeEnum = ENUMERATION OF
  1540. (UNIFORM
  1541. ,TAPERED);
  1542. END_TYPE;
  1543. TYPE IfcSensorTypeEnum = ENUMERATION OF
  1544. (CO2SENSOR
  1545. ,FIRESENSOR
  1546. ,FLOWSENSOR
  1547. ,GASSENSOR
  1548. ,HEATSENSOR
  1549. ,HUMIDITYSENSOR
  1550. ,LIGHTSENSOR
  1551. ,MOISTURESENSOR
  1552. ,MOVEMENTSENSOR
  1553. ,PRESSURESENSOR
  1554. ,SMOKESENSOR
  1555. ,SOUNDSENSOR
  1556. ,TEMPERATURESENSOR
  1557. ,USERDEFINED
  1558. ,NOTDEFINED);
  1559. END_TYPE;
  1560. TYPE IfcSequenceEnum = ENUMERATION OF
  1561. (START_START
  1562. ,START_FINISH
  1563. ,FINISH_START
  1564. ,FINISH_FINISH
  1565. ,NOTDEFINED);
  1566. END_TYPE;
  1567. TYPE IfcServiceLifeFactorTypeEnum = ENUMERATION OF
  1568. (A_QUALITYOFCOMPONENTS
  1569. ,B_DESIGNLEVEL
  1570. ,C_WORKEXECUTIONLEVEL
  1571. ,D_INDOORENVIRONMENT
  1572. ,E_OUTDOORENVIRONMENT
  1573. ,F_INUSECONDITIONS
  1574. ,G_MAINTENANCELEVEL
  1575. ,USERDEFINED
  1576. ,NOTDEFINED);
  1577. END_TYPE;
  1578. TYPE IfcServiceLifeTypeEnum = ENUMERATION OF
  1579. (ACTUALSERVICELIFE
  1580. ,EXPECTEDSERVICELIFE
  1581. ,OPTIMISTICREFERENCESERVICELIFE
  1582. ,PESSIMISTICREFERENCESERVICELIFE
  1583. ,REFERENCESERVICELIFE);
  1584. END_TYPE;
  1585. TYPE IfcSlabTypeEnum = ENUMERATION OF
  1586. (FLOOR
  1587. ,ROOF
  1588. ,LANDING
  1589. ,BASESLAB
  1590. ,USERDEFINED
  1591. ,NOTDEFINED);
  1592. END_TYPE;
  1593. TYPE IfcSoundScaleEnum = ENUMERATION OF
  1594. (DBA
  1595. ,DBB
  1596. ,DBC
  1597. ,NC
  1598. ,NR
  1599. ,USERDEFINED
  1600. ,NOTDEFINED);
  1601. END_TYPE;
  1602. TYPE IfcSpaceHeaterTypeEnum = ENUMERATION OF
  1603. (SECTIONALRADIATOR
  1604. ,PANELRADIATOR
  1605. ,TUBULARRADIATOR
  1606. ,CONVECTOR
  1607. ,BASEBOARDHEATER
  1608. ,FINNEDTUBEUNIT
  1609. ,UNITHEATER
  1610. ,USERDEFINED
  1611. ,NOTDEFINED);
  1612. END_TYPE;
  1613. TYPE IfcSpaceTypeEnum = ENUMERATION OF
  1614. (USERDEFINED
  1615. ,NOTDEFINED);
  1616. END_TYPE;
  1617. TYPE IfcStackTerminalTypeEnum = ENUMERATION OF
  1618. (BIRDCAGE
  1619. ,COWL
  1620. ,RAINWATERHOPPER
  1621. ,USERDEFINED
  1622. ,NOTDEFINED);
  1623. END_TYPE;
  1624. TYPE IfcStairFlightTypeEnum = ENUMERATION OF
  1625. (STRAIGHT
  1626. ,WINDER
  1627. ,SPIRAL
  1628. ,CURVED
  1629. ,FREEFORM
  1630. ,USERDEFINED
  1631. ,NOTDEFINED);
  1632. END_TYPE;
  1633. TYPE IfcStairTypeEnum = ENUMERATION OF
  1634. (STRAIGHT_RUN_STAIR
  1635. ,TWO_STRAIGHT_RUN_STAIR
  1636. ,QUARTER_WINDING_STAIR
  1637. ,QUARTER_TURN_STAIR
  1638. ,HALF_WINDING_STAIR
  1639. ,HALF_TURN_STAIR
  1640. ,TWO_QUARTER_WINDING_STAIR
  1641. ,TWO_QUARTER_TURN_STAIR
  1642. ,THREE_QUARTER_WINDING_STAIR
  1643. ,THREE_QUARTER_TURN_STAIR
  1644. ,SPIRAL_STAIR
  1645. ,DOUBLE_RETURN_STAIR
  1646. ,CURVED_RUN_STAIR
  1647. ,TWO_CURVED_RUN_STAIR
  1648. ,USERDEFINED
  1649. ,NOTDEFINED);
  1650. END_TYPE;
  1651. TYPE IfcStateEnum = ENUMERATION OF
  1652. (READWRITE
  1653. ,READONLY
  1654. ,LOCKED
  1655. ,READWRITELOCKED
  1656. ,READONLYLOCKED);
  1657. END_TYPE;
  1658. TYPE IfcStructuralCurveTypeEnum = ENUMERATION OF
  1659. (RIGID_JOINED_MEMBER
  1660. ,PIN_JOINED_MEMBER
  1661. ,CABLE
  1662. ,TENSION_MEMBER
  1663. ,COMPRESSION_MEMBER
  1664. ,USERDEFINED
  1665. ,NOTDEFINED);
  1666. END_TYPE;
  1667. TYPE IfcStructuralSurfaceTypeEnum = ENUMERATION OF
  1668. (BENDING_ELEMENT
  1669. ,MEMBRANE_ELEMENT
  1670. ,SHELL
  1671. ,USERDEFINED
  1672. ,NOTDEFINED);
  1673. END_TYPE;
  1674. TYPE IfcSurfaceSide = ENUMERATION OF
  1675. (POSITIVE
  1676. ,NEGATIVE
  1677. ,BOTH);
  1678. END_TYPE;
  1679. TYPE IfcSurfaceTextureEnum = ENUMERATION OF
  1680. (BUMP
  1681. ,OPACITY
  1682. ,REFLECTION
  1683. ,SELFILLUMINATION
  1684. ,SHININESS
  1685. ,SPECULAR
  1686. ,TEXTURE
  1687. ,TRANSPARENCYMAP
  1688. ,NOTDEFINED);
  1689. END_TYPE;
  1690. TYPE IfcSwitchingDeviceTypeEnum = ENUMERATION OF
  1691. (CONTACTOR
  1692. ,EMERGENCYSTOP
  1693. ,STARTER
  1694. ,SWITCHDISCONNECTOR
  1695. ,TOGGLESWITCH
  1696. ,USERDEFINED
  1697. ,NOTDEFINED);
  1698. END_TYPE;
  1699. TYPE IfcTankTypeEnum = ENUMERATION OF
  1700. (PREFORMED
  1701. ,SECTIONAL
  1702. ,EXPANSION
  1703. ,PRESSUREVESSEL
  1704. ,USERDEFINED
  1705. ,NOTDEFINED);
  1706. END_TYPE;
  1707. TYPE IfcTendonTypeEnum = ENUMERATION OF
  1708. (STRAND
  1709. ,WIRE
  1710. ,BAR
  1711. ,COATED
  1712. ,USERDEFINED
  1713. ,NOTDEFINED);
  1714. END_TYPE;
  1715. TYPE IfcTextPath = ENUMERATION OF
  1716. (LEFT
  1717. ,RIGHT
  1718. ,UP
  1719. ,DOWN);
  1720. END_TYPE;
  1721. TYPE IfcThermalLoadSourceEnum = ENUMERATION OF
  1722. (PEOPLE
  1723. ,LIGHTING
  1724. ,EQUIPMENT
  1725. ,VENTILATIONINDOORAIR
  1726. ,VENTILATIONOUTSIDEAIR
  1727. ,RECIRCULATEDAIR
  1728. ,EXHAUSTAIR
  1729. ,AIREXCHANGERATE
  1730. ,DRYBULBTEMPERATURE
  1731. ,RELATIVEHUMIDITY
  1732. ,INFILTRATION
  1733. ,USERDEFINED
  1734. ,NOTDEFINED);
  1735. END_TYPE;
  1736. TYPE IfcThermalLoadTypeEnum = ENUMERATION OF
  1737. (SENSIBLE
  1738. ,LATENT
  1739. ,RADIANT
  1740. ,NOTDEFINED);
  1741. END_TYPE;
  1742. TYPE IfcTimeSeriesDataTypeEnum = ENUMERATION OF
  1743. (CONTINUOUS
  1744. ,DISCRETE
  1745. ,DISCRETEBINARY
  1746. ,PIECEWISEBINARY
  1747. ,PIECEWISECONSTANT
  1748. ,PIECEWISECONTINUOUS
  1749. ,NOTDEFINED);
  1750. END_TYPE;
  1751. TYPE IfcTimeSeriesScheduleTypeEnum = ENUMERATION OF
  1752. (ANNUAL
  1753. ,MONTHLY
  1754. ,WEEKLY
  1755. ,DAILY
  1756. ,USERDEFINED
  1757. ,NOTDEFINED);
  1758. END_TYPE;
  1759. TYPE IfcTransformerTypeEnum = ENUMERATION OF
  1760. (CURRENT
  1761. ,FREQUENCY
  1762. ,VOLTAGE
  1763. ,USERDEFINED
  1764. ,NOTDEFINED);
  1765. END_TYPE;
  1766. TYPE IfcTransitionCode = ENUMERATION OF
  1767. (DISCONTINUOUS
  1768. ,CONTINUOUS
  1769. ,CONTSAMEGRADIENT
  1770. ,CONTSAMEGRADIENTSAMECURVATURE);
  1771. END_TYPE;
  1772. TYPE IfcTransportElementTypeEnum = ENUMERATION OF
  1773. (ELEVATOR
  1774. ,ESCALATOR
  1775. ,MOVINGWALKWAY
  1776. ,USERDEFINED
  1777. ,NOTDEFINED);
  1778. END_TYPE;
  1779. TYPE IfcTrimmingPreference = ENUMERATION OF
  1780. (CARTESIAN
  1781. ,PARAMETER
  1782. ,UNSPECIFIED);
  1783. END_TYPE;
  1784. TYPE IfcTubeBundleTypeEnum = ENUMERATION OF
  1785. (FINNED
  1786. ,USERDEFINED
  1787. ,NOTDEFINED);
  1788. END_TYPE;
  1789. TYPE IfcUnitEnum = ENUMERATION OF
  1790. (ABSORBEDDOSEUNIT
  1791. ,AMOUNTOFSUBSTANCEUNIT
  1792. ,AREAUNIT
  1793. ,DOSEEQUIVALENTUNIT
  1794. ,ELECTRICCAPACITANCEUNIT
  1795. ,ELECTRICCHARGEUNIT
  1796. ,ELECTRICCONDUCTANCEUNIT
  1797. ,ELECTRICCURRENTUNIT
  1798. ,ELECTRICRESISTANCEUNIT
  1799. ,ELECTRICVOLTAGEUNIT
  1800. ,ENERGYUNIT
  1801. ,FORCEUNIT
  1802. ,FREQUENCYUNIT
  1803. ,ILLUMINANCEUNIT
  1804. ,INDUCTANCEUNIT
  1805. ,LENGTHUNIT
  1806. ,LUMINOUSFLUXUNIT
  1807. ,LUMINOUSINTENSITYUNIT
  1808. ,MAGNETICFLUXDENSITYUNIT
  1809. ,MAGNETICFLUXUNIT
  1810. ,MASSUNIT
  1811. ,PLANEANGLEUNIT
  1812. ,POWERUNIT
  1813. ,PRESSUREUNIT
  1814. ,RADIOACTIVITYUNIT
  1815. ,SOLIDANGLEUNIT
  1816. ,THERMODYNAMICTEMPERATUREUNIT
  1817. ,TIMEUNIT
  1818. ,VOLUMEUNIT
  1819. ,USERDEFINED);
  1820. END_TYPE;
  1821. TYPE IfcUnitaryEquipmentTypeEnum = ENUMERATION OF
  1822. (AIRHANDLER
  1823. ,AIRCONDITIONINGUNIT
  1824. ,SPLITSYSTEM
  1825. ,ROOFTOPUNIT
  1826. ,USERDEFINED
  1827. ,NOTDEFINED);
  1828. END_TYPE;
  1829. TYPE IfcValveTypeEnum = ENUMERATION OF
  1830. (AIRRELEASE
  1831. ,ANTIVACUUM
  1832. ,CHANGEOVER
  1833. ,CHECK
  1834. ,COMMISSIONING
  1835. ,DIVERTING
  1836. ,DRAWOFFCOCK
  1837. ,DOUBLECHECK
  1838. ,DOUBLEREGULATING
  1839. ,FAUCET
  1840. ,FLUSHING
  1841. ,GASCOCK
  1842. ,GASTAP
  1843. ,ISOLATING
  1844. ,MIXING
  1845. ,PRESSUREREDUCING
  1846. ,PRESSURERELIEF
  1847. ,REGULATING
  1848. ,SAFETYCUTOFF
  1849. ,STEAMTRAP
  1850. ,STOPCOCK
  1851. ,USERDEFINED
  1852. ,NOTDEFINED);
  1853. END_TYPE;
  1854. TYPE IfcVibrationIsolatorTypeEnum = ENUMERATION OF
  1855. (COMPRESSION
  1856. ,SPRING
  1857. ,USERDEFINED
  1858. ,NOTDEFINED);
  1859. END_TYPE;
  1860. TYPE IfcWallTypeEnum = ENUMERATION OF
  1861. (STANDARD
  1862. ,POLYGONAL
  1863. ,SHEAR
  1864. ,ELEMENTEDWALL
  1865. ,PLUMBINGWALL
  1866. ,USERDEFINED
  1867. ,NOTDEFINED);
  1868. END_TYPE;
  1869. TYPE IfcWasteTerminalTypeEnum = ENUMERATION OF
  1870. (FLOORTRAP
  1871. ,FLOORWASTE
  1872. ,GULLYSUMP
  1873. ,GULLYTRAP
  1874. ,GREASEINTERCEPTOR
  1875. ,OILINTERCEPTOR
  1876. ,PETROLINTERCEPTOR
  1877. ,ROOFDRAIN
  1878. ,WASTEDISPOSALUNIT
  1879. ,WASTETRAP
  1880. ,USERDEFINED
  1881. ,NOTDEFINED);
  1882. END_TYPE;
  1883. TYPE IfcWindowPanelOperationEnum = ENUMERATION OF
  1884. (SIDEHUNGRIGHTHAND
  1885. ,SIDEHUNGLEFTHAND
  1886. ,TILTANDTURNRIGHTHAND
  1887. ,TILTANDTURNLEFTHAND
  1888. ,TOPHUNG
  1889. ,BOTTOMHUNG
  1890. ,PIVOTHORIZONTAL
  1891. ,PIVOTVERTICAL
  1892. ,SLIDINGHORIZONTAL
  1893. ,SLIDINGVERTICAL
  1894. ,REMOVABLECASEMENT
  1895. ,FIXEDCASEMENT
  1896. ,OTHEROPERATION
  1897. ,NOTDEFINED);
  1898. END_TYPE;
  1899. TYPE IfcWindowPanelPositionEnum = ENUMERATION OF
  1900. (LEFT
  1901. ,MIDDLE
  1902. ,RIGHT
  1903. ,BOTTOM
  1904. ,TOP
  1905. ,NOTDEFINED);
  1906. END_TYPE;
  1907. TYPE IfcWindowStyleConstructionEnum = ENUMERATION OF
  1908. (ALUMINIUM
  1909. ,HIGH_GRADE_STEEL
  1910. ,STEEL
  1911. ,WOOD
  1912. ,ALUMINIUM_WOOD
  1913. ,PLASTIC
  1914. ,OTHER_CONSTRUCTION
  1915. ,NOTDEFINED);
  1916. END_TYPE;
  1917. TYPE IfcWindowStyleOperationEnum = ENUMERATION OF
  1918. (SINGLE_PANEL
  1919. ,DOUBLE_PANEL_VERTICAL
  1920. ,DOUBLE_PANEL_HORIZONTAL
  1921. ,TRIPLE_PANEL_VERTICAL
  1922. ,TRIPLE_PANEL_BOTTOM
  1923. ,TRIPLE_PANEL_TOP
  1924. ,TRIPLE_PANEL_LEFT
  1925. ,TRIPLE_PANEL_RIGHT
  1926. ,TRIPLE_PANEL_HORIZONTAL
  1927. ,USERDEFINED
  1928. ,NOTDEFINED);
  1929. END_TYPE;
  1930. TYPE IfcWorkControlTypeEnum = ENUMERATION OF
  1931. (ACTUAL
  1932. ,BASELINE
  1933. ,PLANNED
  1934. ,USERDEFINED
  1935. ,NOTDEFINED);
  1936. END_TYPE;
  1937. TYPE IfcActorSelect = SELECT
  1938. (IfcOrganization
  1939. ,IfcPerson
  1940. ,IfcPersonAndOrganization);
  1941. END_TYPE;
  1942. TYPE IfcAppliedValueSelect = SELECT
  1943. (IfcRatioMeasure
  1944. ,IfcMeasureWithUnit
  1945. ,IfcMonetaryMeasure);
  1946. END_TYPE;
  1947. TYPE IfcAxis2Placement = SELECT
  1948. (IfcAxis2Placement2D
  1949. ,IfcAxis2Placement3D);
  1950. END_TYPE;
  1951. TYPE IfcBooleanOperand = SELECT
  1952. (IfcSolidModel
  1953. ,IfcHalfSpaceSolid
  1954. ,IfcBooleanResult
  1955. ,IfcCsgPrimitive3D);
  1956. END_TYPE;
  1957. TYPE IfcCharacterStyleSelect = SELECT
  1958. (IfcTextStyleForDefinedFont);
  1959. END_TYPE;
  1960. TYPE IfcClassificationNotationSelect = SELECT
  1961. (IfcClassificationNotation
  1962. ,IfcClassificationReference);
  1963. END_TYPE;
  1964. TYPE IfcColour = SELECT
  1965. (IfcColourSpecification
  1966. ,IfcPreDefinedColour);
  1967. END_TYPE;
  1968. TYPE IfcColourOrFactor = SELECT
  1969. (IfcColourRgb
  1970. ,IfcNormalisedRatioMeasure);
  1971. END_TYPE;
  1972. TYPE IfcConditionCriterionSelect = SELECT
  1973. (IfcLabel
  1974. ,IfcMeasureWithUnit);
  1975. END_TYPE;
  1976. TYPE IfcCsgSelect = SELECT
  1977. (IfcBooleanResult
  1978. ,IfcCsgPrimitive3D);
  1979. END_TYPE;
  1980. TYPE IfcCurveFontOrScaledCurveFontSelect = SELECT
  1981. (IfcCurveStyleFontSelect
  1982. ,IfcCurveStyleFontAndScaling);
  1983. END_TYPE;
  1984. TYPE IfcCurveOrEdgeCurve = SELECT
  1985. (IfcBoundedCurve
  1986. ,IfcEdgeCurve);
  1987. END_TYPE;
  1988. TYPE IfcCurveStyleFontSelect = SELECT
  1989. (IfcPreDefinedCurveFont
  1990. ,IfcCurveStyleFont);
  1991. END_TYPE;
  1992. TYPE IfcDateTimeSelect = SELECT
  1993. (IfcCalendarDate
  1994. ,IfcLocalTime
  1995. ,IfcDateAndTime);
  1996. END_TYPE;
  1997. TYPE IfcDefinedSymbolSelect = SELECT
  1998. (IfcPreDefinedSymbol
  1999. ,IfcExternallyDefinedSymbol);
  2000. END_TYPE;
  2001. TYPE IfcDerivedMeasureValue = SELECT
  2002. (IfcVolumetricFlowRateMeasure
  2003. ,IfcTimeStamp
  2004. ,IfcThermalTransmittanceMeasure
  2005. ,IfcThermalResistanceMeasure
  2006. ,IfcThermalAdmittanceMeasure
  2007. ,IfcPressureMeasure
  2008. ,IfcPowerMeasure
  2009. ,IfcMassFlowRateMeasure
  2010. ,IfcMassDensityMeasure
  2011. ,IfcLinearVelocityMeasure
  2012. ,IfcKinematicViscosityMeasure
  2013. ,IfcIntegerCountRateMeasure
  2014. ,IfcHeatFluxDensityMeasure
  2015. ,IfcFrequencyMeasure
  2016. ,IfcEnergyMeasure
  2017. ,IfcElectricVoltageMeasure
  2018. ,IfcDynamicViscosityMeasure
  2019. ,IfcCompoundPlaneAngleMeasure
  2020. ,IfcAngularVelocityMeasure
  2021. ,IfcThermalConductivityMeasure
  2022. ,IfcMolecularWeightMeasure
  2023. ,IfcVaporPermeabilityMeasure
  2024. ,IfcMoistureDiffusivityMeasure
  2025. ,IfcIsothermalMoistureCapacityMeasure
  2026. ,IfcSpecificHeatCapacityMeasure
  2027. ,IfcMonetaryMeasure
  2028. ,IfcMagneticFluxDensityMeasure
  2029. ,IfcMagneticFluxMeasure
  2030. ,IfcLuminousFluxMeasure
  2031. ,IfcForceMeasure
  2032. ,IfcInductanceMeasure
  2033. ,IfcIlluminanceMeasure
  2034. ,IfcElectricResistanceMeasure
  2035. ,IfcElectricConductanceMeasure
  2036. ,IfcElectricChargeMeasure
  2037. ,IfcDoseEquivalentMeasure
  2038. ,IfcElectricCapacitanceMeasure
  2039. ,IfcAbsorbedDoseMeasure
  2040. ,IfcRadioActivityMeasure
  2041. ,IfcRotationalFrequencyMeasure
  2042. ,IfcTorqueMeasure
  2043. ,IfcAccelerationMeasure
  2044. ,IfcLinearForceMeasure
  2045. ,IfcLinearStiffnessMeasure
  2046. ,IfcModulusOfSubgradeReactionMeasure
  2047. ,IfcModulusOfElasticityMeasure
  2048. ,IfcMomentOfInertiaMeasure
  2049. ,IfcPlanarForceMeasure
  2050. ,IfcRotationalStiffnessMeasure
  2051. ,IfcShearModulusMeasure
  2052. ,IfcLinearMomentMeasure
  2053. ,IfcLuminousIntensityDistributionMeasure
  2054. ,IfcCurvatureMeasure
  2055. ,IfcMassPerLengthMeasure
  2056. ,IfcModulusOfLinearSubgradeReactionMeasure
  2057. ,IfcModulusOfRotationalSubgradeReactionMeasure
  2058. ,IfcRotationalMassMeasure
  2059. ,IfcSectionalAreaIntegralMeasure
  2060. ,IfcSectionModulusMeasure
  2061. ,IfcTemperatureGradientMeasure
  2062. ,IfcThermalExpansionCoefficientMeasure
  2063. ,IfcWarpingConstantMeasure
  2064. ,IfcWarpingMomentMeasure
  2065. ,IfcSoundPowerMeasure
  2066. ,IfcSoundPressureMeasure
  2067. ,IfcHeatingValueMeasure
  2068. ,IfcPHMeasure
  2069. ,IfcIonConcentrationMeasure);
  2070. END_TYPE;
  2071. TYPE IfcDocumentSelect = SELECT
  2072. (IfcDocumentReference
  2073. ,IfcDocumentInformation);
  2074. END_TYPE;
  2075. TYPE IfcDraughtingCalloutElement = SELECT
  2076. (IfcAnnotationCurveOccurrence
  2077. ,IfcAnnotationTextOccurrence
  2078. ,IfcAnnotationSymbolOccurrence);
  2079. END_TYPE;
  2080. TYPE IfcFillAreaStyleTileShapeSelect = SELECT
  2081. (IfcFillAreaStyleTileSymbolWithStyle);
  2082. END_TYPE;
  2083. TYPE IfcFillStyleSelect = SELECT
  2084. (IfcFillAreaStyleHatching
  2085. ,IfcFillAreaStyleTiles
  2086. ,IfcColour
  2087. ,IfcExternallyDefinedHatchStyle);
  2088. END_TYPE;
  2089. TYPE IfcGeometricSetSelect = SELECT
  2090. (IfcPoint
  2091. ,IfcCurve
  2092. ,IfcSurface);
  2093. END_TYPE;
  2094. TYPE IfcHatchLineDistanceSelect = SELECT
  2095. (IfcOneDirectionRepeatFactor
  2096. ,IfcPositiveLengthMeasure);
  2097. END_TYPE;
  2098. TYPE IfcLayeredItem = SELECT
  2099. (IfcRepresentationItem
  2100. ,IfcRepresentation);
  2101. END_TYPE;
  2102. TYPE IfcLibrarySelect = SELECT
  2103. (IfcLibraryReference
  2104. ,IfcLibraryInformation);
  2105. END_TYPE;
  2106. TYPE IfcLightDistributionDataSourceSelect = SELECT
  2107. (IfcExternalReference
  2108. ,IfcLightIntensityDistribution);
  2109. END_TYPE;
  2110. TYPE IfcMaterialSelect = SELECT
  2111. (IfcMaterial
  2112. ,IfcMaterialList
  2113. ,IfcMaterialLayerSetUsage
  2114. ,IfcMaterialLayerSet
  2115. ,IfcMaterialLayer);
  2116. END_TYPE;
  2117. TYPE IfcMeasureValue = SELECT
  2118. (IfcVolumeMeasure
  2119. ,IfcTimeMeasure
  2120. ,IfcThermodynamicTemperatureMeasure
  2121. ,IfcSolidAngleMeasure
  2122. ,IfcPositiveRatioMeasure
  2123. ,IfcRatioMeasure
  2124. ,IfcPositivePlaneAngleMeasure
  2125. ,IfcPlaneAngleMeasure
  2126. ,IfcParameterValue
  2127. ,IfcNumericMeasure
  2128. ,IfcMassMeasure
  2129. ,IfcPositiveLengthMeasure
  2130. ,IfcLengthMeasure
  2131. ,IfcElectricCurrentMeasure
  2132. ,IfcDescriptiveMeasure
  2133. ,IfcCountMeasure
  2134. ,IfcContextDependentMeasure
  2135. ,IfcAreaMeasure
  2136. ,IfcAmountOfSubstanceMeasure
  2137. ,IfcLuminousIntensityMeasure
  2138. ,IfcNormalisedRatioMeasure
  2139. ,IfcComplexNumber);
  2140. END_TYPE;
  2141. TYPE IfcMetricValueSelect = SELECT
  2142. (IfcDateTimeSelect
  2143. ,IfcMeasureWithUnit
  2144. ,IfcTable
  2145. ,IfcText
  2146. ,IfcTimeSeries
  2147. ,IfcCostValue);
  2148. END_TYPE;
  2149. TYPE IfcObjectReferenceSelect = SELECT
  2150. (IfcMaterial
  2151. ,IfcPerson
  2152. ,IfcDateAndTime
  2153. ,IfcMaterialList
  2154. ,IfcOrganization
  2155. ,IfcCalendarDate
  2156. ,IfcLocalTime
  2157. ,IfcPersonAndOrganization
  2158. ,IfcMaterialLayer
  2159. ,IfcExternalReference
  2160. ,IfcTimeSeries
  2161. ,IfcAddress
  2162. ,IfcAppliedValue);
  2163. END_TYPE;
  2164. TYPE IfcOrientationSelect = SELECT
  2165. (IfcPlaneAngleMeasure
  2166. ,IfcDirection);
  2167. END_TYPE;
  2168. TYPE IfcPointOrVertexPoint = SELECT
  2169. (IfcPoint
  2170. ,IfcVertexPoint);
  2171. END_TYPE;
  2172. TYPE IfcPresentationStyleSelect = SELECT
  2173. (IfcNullStyle
  2174. ,IfcCurveStyle
  2175. ,IfcSymbolStyle
  2176. ,IfcFillAreaStyle
  2177. ,IfcTextStyle
  2178. ,IfcSurfaceStyle);
  2179. END_TYPE;
  2180. TYPE IfcShell = SELECT
  2181. (IfcClosedShell
  2182. ,IfcOpenShell);
  2183. END_TYPE;
  2184. TYPE IfcSimpleValue = SELECT
  2185. (IfcInteger
  2186. ,IfcReal
  2187. ,IfcBoolean
  2188. ,IfcIdentifier
  2189. ,IfcText
  2190. ,IfcLabel
  2191. ,IfcLogical);
  2192. END_TYPE;
  2193. TYPE IfcSizeSelect = SELECT
  2194. (IfcRatioMeasure
  2195. ,IfcLengthMeasure
  2196. ,IfcDescriptiveMeasure
  2197. ,IfcPositiveLengthMeasure
  2198. ,IfcNormalisedRatioMeasure
  2199. ,IfcPositiveRatioMeasure);
  2200. END_TYPE;
  2201. TYPE IfcSpecularHighlightSelect = SELECT
  2202. (IfcSpecularExponent
  2203. ,IfcSpecularRoughness);
  2204. END_TYPE;
  2205. TYPE IfcStructuralActivityAssignmentSelect = SELECT
  2206. (IfcStructuralItem
  2207. ,IfcElement);
  2208. END_TYPE;
  2209. TYPE IfcSurfaceOrFaceSurface = SELECT
  2210. (IfcSurface
  2211. ,IfcFaceSurface
  2212. ,IfcFaceBasedSurfaceModel);
  2213. END_TYPE;
  2214. TYPE IfcSurfaceStyleElementSelect = SELECT
  2215. (IfcSurfaceStyleShading
  2216. ,IfcSurfaceStyleLighting
  2217. ,IfcSurfaceStyleWithTextures
  2218. ,IfcExternallyDefinedSurfaceStyle
  2219. ,IfcSurfaceStyleRefraction);
  2220. END_TYPE;
  2221. TYPE IfcSymbolStyleSelect = SELECT
  2222. (IfcColour);
  2223. END_TYPE;
  2224. TYPE IfcTextFontSelect = SELECT
  2225. (IfcPreDefinedTextFont
  2226. ,IfcExternallyDefinedTextFont);
  2227. END_TYPE;
  2228. TYPE IfcTextStyleSelect = SELECT
  2229. (IfcTextStyleWithBoxCharacteristics
  2230. ,IfcTextStyleTextModel);
  2231. END_TYPE;
  2232. TYPE IfcTrimmingSelect = SELECT
  2233. (IfcCartesianPoint
  2234. ,IfcParameterValue);
  2235. END_TYPE;
  2236. TYPE IfcUnit = SELECT
  2237. (IfcDerivedUnit
  2238. ,IfcNamedUnit
  2239. ,IfcMonetaryUnit);
  2240. END_TYPE;
  2241. TYPE IfcValue = SELECT
  2242. (IfcMeasureValue
  2243. ,IfcSimpleValue
  2244. ,IfcDerivedMeasureValue);
  2245. END_TYPE;
  2246. TYPE IfcVectorOrDirection = SELECT
  2247. (IfcDirection
  2248. ,IfcVector);
  2249. END_TYPE;
  2250. ENTITY Ifc2DCompositeCurve
  2251. SUBTYPE OF (IfcCompositeCurve);
  2252. WHERE
  2253. WR1 : SELF\IfcCompositeCurve.ClosedCurve;
  2254. WR2 : SELF\IfcCurve.Dim = 2;
  2255. END_ENTITY;
  2256. ENTITY IfcActionRequest
  2257. SUBTYPE OF (IfcControl);
  2258. RequestID : IfcIdentifier;
  2259. UNIQUE
  2260. UR2 : RequestID;
  2261. END_ENTITY;
  2262. ENTITY IfcActor
  2263. SUPERTYPE OF (ONEOF
  2264. (IfcOccupant))
  2265. SUBTYPE OF (IfcObject);
  2266. TheActor : IfcActorSelect;
  2267. INVERSE
  2268. IsActingUpon : SET [0:?] OF IfcRelAssignsToActor FOR RelatingActor;
  2269. END_ENTITY;
  2270. ENTITY IfcActorRole;
  2271. Role : IfcRoleEnum;
  2272. UserDefinedRole : OPTIONAL IfcLabel;
  2273. Description : OPTIONAL IfcText;
  2274. WHERE
  2275. WR1 : (Role <> IfcRoleEnum.USERDEFINED) OR
  2276. ((Role = IfcRoleEnum.USERDEFINED) AND
  2277. EXISTS(SELF.UserDefinedRole));
  2278. END_ENTITY;
  2279. ENTITY IfcActuatorType
  2280. SUBTYPE OF (IfcDistributionControlElementType);
  2281. PredefinedType : IfcActuatorTypeEnum;
  2282. END_ENTITY;
  2283. ENTITY IfcAddress
  2284. ABSTRACT SUPERTYPE OF (ONEOF
  2285. (IfcPostalAddress
  2286. ,IfcTelecomAddress));
  2287. Purpose : OPTIONAL IfcAddressTypeEnum;
  2288. Description : OPTIONAL IfcText;
  2289. UserDefinedPurpose : OPTIONAL IfcLabel;
  2290. INVERSE
  2291. OfPerson : SET [0:?] OF IfcPerson FOR Addresses;
  2292. OfOrganization : SET [0:?] OF IfcOrganization FOR Addresses;
  2293. WHERE
  2294. WR1 : (NOT(EXISTS(Purpose))) OR
  2295. ((Purpose <> IfcAddressTypeEnum.USERDEFINED) OR
  2296. ((Purpose = IfcAddressTypeEnum.USERDEFINED) AND
  2297. EXISTS(SELF.UserDefinedPurpose)));
  2298. END_ENTITY;
  2299. ENTITY IfcAirTerminalBoxType
  2300. SUBTYPE OF (IfcFlowControllerType);
  2301. PredefinedType : IfcAirTerminalBoxTypeEnum;
  2302. WHERE
  2303. WR1 : (PredefinedType <> IfcAirTerminalBoxTypeEnum.USERDEFINED) OR
  2304. ((PredefinedType = IfcAirTerminalBoxTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  2305. END_ENTITY;
  2306. ENTITY IfcAirTerminalType
  2307. SUBTYPE OF (IfcFlowTerminalType);
  2308. PredefinedType : IfcAirTerminalTypeEnum;
  2309. WHERE
  2310. WR1 : (PredefinedType <> IfcAirTerminalTypeEnum.USERDEFINED) OR
  2311. ((PredefinedType = IfcAirTerminalTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  2312. END_ENTITY;
  2313. ENTITY IfcAirToAirHeatRecoveryType
  2314. SUBTYPE OF (IfcEnergyConversionDeviceType);
  2315. PredefinedType : IfcAirToAirHeatRecoveryTypeEnum;
  2316. WHERE
  2317. WR1 : (PredefinedType <> IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED) OR
  2318. ((PredefinedType = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  2319. END_ENTITY;
  2320. ENTITY IfcAlarmType
  2321. SUBTYPE OF (IfcDistributionControlElementType);
  2322. PredefinedType : IfcAlarmTypeEnum;
  2323. END_ENTITY;
  2324. ENTITY IfcAngularDimension
  2325. SUBTYPE OF (IfcDimensionCurveDirectedCallout);
  2326. END_ENTITY;
  2327. ENTITY IfcAnnotation
  2328. SUBTYPE OF (IfcProduct);
  2329. INVERSE
  2330. ContainedInStructure : SET [0:1] OF IfcRelContainedInSpatialStructure FOR RelatedElements;
  2331. END_ENTITY;
  2332. ENTITY IfcAnnotationCurveOccurrence
  2333. SUPERTYPE OF (ONEOF
  2334. (IfcDimensionCurve
  2335. ,IfcProjectionCurve))
  2336. SUBTYPE OF (IfcAnnotationOccurrence);
  2337. WHERE
  2338. WR31 : NOT(EXISTS(SELF\IfcStyledItem.Item)) OR
  2339. ('IFC2X3.IFCCURVE' IN TYPEOF (SELF\IfcStyledItem.Item));
  2340. END_ENTITY;
  2341. ENTITY IfcAnnotationFillArea
  2342. SUBTYPE OF (IfcGeometricRepresentationItem);
  2343. OuterBoundary : IfcCurve;
  2344. InnerBoundaries : OPTIONAL SET [1:?] OF IfcCurve;
  2345. END_ENTITY;
  2346. ENTITY IfcAnnotationFillAreaOccurrence
  2347. SUBTYPE OF (IfcAnnotationOccurrence);
  2348. FillStyleTarget : OPTIONAL IfcPoint;
  2349. GlobalOrLocal : OPTIONAL IfcGlobalOrLocalEnum;
  2350. WHERE
  2351. WR31 : NOT(EXISTS(SELF\IfcStyledItem.Item)) OR
  2352. ('IFC2X3.IFCANNOTATIONFILLAREA' IN TYPEOF (SELF\IfcStyledItem.Item));
  2353. END_ENTITY;
  2354. ENTITY IfcAnnotationOccurrence
  2355. ABSTRACT SUPERTYPE OF (ONEOF
  2356. (IfcAnnotationCurveOccurrence
  2357. ,IfcAnnotationFillAreaOccurrence
  2358. ,IfcAnnotationSurfaceOccurrence
  2359. ,IfcAnnotationSymbolOccurrence
  2360. ,IfcAnnotationTextOccurrence))
  2361. SUBTYPE OF (IfcStyledItem);
  2362. END_ENTITY;
  2363. ENTITY IfcAnnotationSurface
  2364. SUBTYPE OF (IfcGeometricRepresentationItem);
  2365. Item : IfcGeometricRepresentationItem;
  2366. TextureCoordinates : OPTIONAL IfcTextureCoordinate;
  2367. WHERE
  2368. WR01 : SIZEOF([
  2369. 'IFC2X3.IFCSURFACE',
  2370. 'IFC2X3.IFCSHELLBASEDSURFACEMODEL',
  2371. 'IFC2X3.IFCFACEBASEDSURFACEMODEL',
  2372. 'IFC2X3.IFCSOLIDMODEL',
  2373. 'IFC2X3.IFCBOOLEANRESULT',
  2374. 'IFC2X3.IFCCSGPRIMITIVE3D']
  2375. * TYPEOF(Item)
  2376. ) >= 1;
  2377. END_ENTITY;
  2378. ENTITY IfcAnnotationSurfaceOccurrence
  2379. SUBTYPE OF (IfcAnnotationOccurrence);
  2380. WHERE
  2381. WR31 : NOT(EXISTS(SELF\IfcStyledItem.Item)) OR
  2382. (SIZEOF(
  2383. ['IFC2X3.IFCSURFACE',
  2384. 'IFC2X3.IFCFACEBASEDSURFACEMODEL',
  2385. 'IFC2X3.IFCSHELLBASEDSURFACEMODEL',
  2386. 'IFC2X3.IFCSOLIDMODEL'] *
  2387. TYPEOF(SELF\IfcStyledItem.Item)) > 0);
  2388. END_ENTITY;
  2389. ENTITY IfcAnnotationSymbolOccurrence
  2390. SUPERTYPE OF (ONEOF
  2391. (IfcTerminatorSymbol))
  2392. SUBTYPE OF (IfcAnnotationOccurrence);
  2393. WHERE
  2394. WR31 : NOT(EXISTS(SELF\IfcStyledItem.Item)) OR
  2395. ('IFC2X3.IFCDEFINEDSYMBOL' IN TYPEOF (SELF\IfcStyledItem.Item));
  2396. END_ENTITY;
  2397. ENTITY IfcAnnotationTextOccurrence
  2398. SUBTYPE OF (IfcAnnotationOccurrence);
  2399. WHERE
  2400. WR31 : NOT(EXISTS(SELF\IfcStyledItem.Item)) OR
  2401. ('IFC2X3.IFCTEXTLITERAL' IN TYPEOF (SELF\IfcStyledItem.Item));
  2402. END_ENTITY;
  2403. ENTITY IfcApplication;
  2404. ApplicationDeveloper : IfcOrganization;
  2405. Version : IfcLabel;
  2406. ApplicationFullName : IfcLabel;
  2407. ApplicationIdentifier : IfcIdentifier;
  2408. UNIQUE
  2409. UR1 : ApplicationIdentifier;
  2410. UR2 : ApplicationFullName, Version;
  2411. END_ENTITY;
  2412. ENTITY IfcAppliedValue
  2413. ABSTRACT SUPERTYPE OF (ONEOF
  2414. (IfcCostValue
  2415. ,IfcEnvironmentalImpactValue));
  2416. Name : OPTIONAL IfcLabel;
  2417. Description : OPTIONAL IfcText;
  2418. AppliedValue : OPTIONAL IfcAppliedValueSelect;
  2419. UnitBasis : OPTIONAL IfcMeasureWithUnit;
  2420. ApplicableDate : OPTIONAL IfcDateTimeSelect;
  2421. FixedUntilDate : OPTIONAL IfcDateTimeSelect;
  2422. INVERSE
  2423. ValuesReferenced : SET [0:?] OF IfcReferencesValueDocument FOR ReferencingValues;
  2424. ValueOfComponents : SET [0:?] OF IfcAppliedValueRelationship FOR ComponentOfTotal;
  2425. IsComponentIn : SET [0:?] OF IfcAppliedValueRelationship FOR Components;
  2426. WHERE
  2427. WR1 : EXISTS (AppliedValue) OR
  2428. EXISTS (ValueOfComponents);
  2429. END_ENTITY;
  2430. ENTITY IfcAppliedValueRelationship;
  2431. ComponentOfTotal : IfcAppliedValue;
  2432. Components : SET [1:?] OF IfcAppliedValue;
  2433. ArithmeticOperator : IfcArithmeticOperatorEnum;
  2434. Name : OPTIONAL IfcLabel;
  2435. Description : OPTIONAL IfcText;
  2436. END_ENTITY;
  2437. ENTITY IfcApproval;
  2438. Description : OPTIONAL IfcText;
  2439. ApprovalDateTime : IfcDateTimeSelect;
  2440. ApprovalStatus : OPTIONAL IfcLabel;
  2441. ApprovalLevel : OPTIONAL IfcLabel;
  2442. ApprovalQualifier : OPTIONAL IfcText;
  2443. Name : IfcLabel;
  2444. Identifier : IfcIdentifier;
  2445. INVERSE
  2446. Actors : SET [0:?] OF IfcApprovalActorRelationship FOR Approval;
  2447. IsRelatedWith : SET [0:?] OF IfcApprovalRelationship FOR RelatedApproval;
  2448. Relates : SET [0:?] OF IfcApprovalRelationship FOR RelatingApproval;
  2449. END_ENTITY;
  2450. ENTITY IfcApprovalActorRelationship;
  2451. Actor : IfcActorSelect;
  2452. Approval : IfcApproval;
  2453. Role : IfcActorRole;
  2454. END_ENTITY;
  2455. ENTITY IfcApprovalPropertyRelationship;
  2456. ApprovedProperties : SET [1:?] OF IfcProperty;
  2457. Approval : IfcApproval;
  2458. END_ENTITY;
  2459. ENTITY IfcApprovalRelationship;
  2460. RelatedApproval : IfcApproval;
  2461. RelatingApproval : IfcApproval;
  2462. Description : OPTIONAL IfcText;
  2463. Name : IfcLabel;
  2464. END_ENTITY;
  2465. ENTITY IfcArbitraryClosedProfileDef
  2466. SUPERTYPE OF (ONEOF
  2467. (IfcArbitraryProfileDefWithVoids))
  2468. SUBTYPE OF (IfcProfileDef);
  2469. OuterCurve : IfcCurve;
  2470. WHERE
  2471. WR1 : OuterCurve.Dim = 2;
  2472. WR2 : NOT('IFC2X3.IFCLINE' IN TYPEOF(OuterCurve));
  2473. WR3 : NOT('IFC2X3.IFCOFFSETCURVE2D' IN TYPEOF(OuterCurve));
  2474. END_ENTITY;
  2475. ENTITY IfcArbitraryOpenProfileDef
  2476. SUPERTYPE OF (ONEOF
  2477. (IfcCenterLineProfileDef))
  2478. SUBTYPE OF (IfcProfileDef);
  2479. Curve : IfcBoundedCurve;
  2480. WHERE
  2481. WR11 : ('IFC2X3.IFCCENTERLINEPROFILEDEF' IN TYPEOF(SELF)) OR
  2482. (SELF\IfcProfileDef.ProfileType = IfcProfileTypeEnum.CURVE);
  2483. WR12 : Curve.Dim = 2;
  2484. END_ENTITY;
  2485. ENTITY IfcArbitraryProfileDefWithVoids
  2486. SUBTYPE OF (IfcArbitraryClosedProfileDef);
  2487. InnerCurves : SET [1:?] OF IfcCurve;
  2488. WHERE
  2489. WR1 : SELF\IfcProfileDef.ProfileType = AREA;
  2490. WR2 : SIZEOF(QUERY(temp <* InnerCurves | temp.Dim <> 2)) = 0;
  2491. WR3 : SIZEOF(QUERY(temp <* InnerCurves | 'IFC2X3.IFCLINE' IN TYPEOF(temp))) = 0;
  2492. END_ENTITY;
  2493. ENTITY IfcAsset
  2494. SUBTYPE OF (IfcGroup);
  2495. AssetID : IfcIdentifier;
  2496. OriginalValue : IfcCostValue;
  2497. CurrentValue : IfcCostValue;
  2498. TotalReplacementCost : IfcCostValue;
  2499. Owner : IfcActorSelect;
  2500. User : IfcActorSelect;
  2501. ResponsiblePerson : IfcPerson;
  2502. IncorporationDate : IfcCalendarDate;
  2503. DepreciatedValue : IfcCostValue;
  2504. WHERE
  2505. WR1 : SIZEOF(QUERY(Temp <* SELF\IfcGroup.IsGroupedBy.RelatedObjects | NOT('IFC2X3.IFCELEMENT' IN TYPEOF(Temp)))) = 0;
  2506. END_ENTITY;
  2507. ENTITY IfcAsymmetricIShapeProfileDef
  2508. SUBTYPE OF (IfcIShapeProfileDef);
  2509. TopFlangeWidth : IfcPositiveLengthMeasure;
  2510. TopFlangeThickness : OPTIONAL IfcPositiveLengthMeasure;
  2511. TopFlangeFilletRadius : OPTIONAL IfcPositiveLengthMeasure;
  2512. CentreOfGravityInY : OPTIONAL IfcPositiveLengthMeasure;
  2513. END_ENTITY;
  2514. ENTITY IfcAxis1Placement
  2515. SUBTYPE OF (IfcPlacement);
  2516. Axis : OPTIONAL IfcDirection;
  2517. DERIVE
  2518. Z : IfcDirection := NVL (IfcNormalise(Axis), IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0,0.0,1.0]));
  2519. WHERE
  2520. WR1 : (NOT (EXISTS (Axis))) OR (Axis.Dim = 3);
  2521. WR2 : SELF\IfcPlacement.Location.Dim = 3;
  2522. END_ENTITY;
  2523. ENTITY IfcAxis2Placement2D
  2524. SUBTYPE OF (IfcPlacement);
  2525. RefDirection : OPTIONAL IfcDirection;
  2526. DERIVE
  2527. P : LIST [2:2] OF IfcDirection := IfcBuild2Axes(RefDirection);
  2528. WHERE
  2529. WR1 : (NOT (EXISTS (RefDirection))) OR (RefDirection.Dim = 2);
  2530. WR2 : SELF\IfcPlacement.Location.Dim = 2;
  2531. END_ENTITY;
  2532. ENTITY IfcAxis2Placement3D
  2533. SUBTYPE OF (IfcPlacement);
  2534. Axis : OPTIONAL IfcDirection;
  2535. RefDirection : OPTIONAL IfcDirection;
  2536. DERIVE
  2537. P : LIST [3:3] OF IfcDirection := IfcBuildAxes(Axis, RefDirection);
  2538. WHERE
  2539. WR1 : SELF\IfcPlacement.Location.Dim = 3;
  2540. WR2 : (NOT (EXISTS (Axis))) OR (Axis.Dim = 3);
  2541. WR3 : (NOT (EXISTS (RefDirection))) OR (RefDirection.Dim = 3);
  2542. WR4 : (NOT (EXISTS (Axis))) OR (NOT (EXISTS (RefDirection))) OR (IfcCrossProduct(Axis,RefDirection).Magnitude > 0.0);
  2543. WR5 : NOT ((EXISTS (Axis)) XOR (EXISTS (RefDirection)));
  2544. END_ENTITY;
  2545. ENTITY IfcBSplineCurve
  2546. ABSTRACT SUPERTYPE OF (ONEOF
  2547. (IfcBezierCurve))
  2548. SUBTYPE OF (IfcBoundedCurve);
  2549. Degree : INTEGER;
  2550. ControlPointsList : LIST [2:?] OF IfcCartesianPoint;
  2551. CurveForm : IfcBSplineCurveForm;
  2552. ClosedCurve : LOGICAL;
  2553. SelfIntersect : LOGICAL;
  2554. DERIVE
  2555. ControlPoints : ARRAY [0:255] OF IfcCartesianPoint := IfcListToArray(ControlPointsList,0,UpperIndexOnControlPoints);
  2556. UpperIndexOnControlPoints : INTEGER := (SIZEOF(ControlPointsList) - 1);
  2557. WHERE
  2558. WR41 : SIZEOF(QUERY(Temp <* ControlPointsList |
  2559. Temp.Dim <> ControlPointsList[1].Dim))
  2560. = 0;
  2561. END_ENTITY;
  2562. ENTITY IfcBeam
  2563. SUBTYPE OF (IfcBuildingElement);
  2564. END_ENTITY;
  2565. ENTITY IfcBeamType
  2566. SUBTYPE OF (IfcBuildingElementType);
  2567. PredefinedType : IfcBeamTypeEnum;
  2568. END_ENTITY;
  2569. ENTITY IfcBezierCurve
  2570. SUPERTYPE OF (ONEOF
  2571. (IfcRationalBezierCurve))
  2572. SUBTYPE OF (IfcBSplineCurve);
  2573. END_ENTITY;
  2574. ENTITY IfcBlobTexture
  2575. SUBTYPE OF (IfcSurfaceTexture);
  2576. RasterFormat : IfcIdentifier;
  2577. RasterCode : BOOLEAN;
  2578. WHERE
  2579. WR11 : SELF.RasterFormat IN ['BMP', 'JPG', 'GIF', 'PNG'];
  2580. END_ENTITY;
  2581. ENTITY IfcBlock
  2582. SUBTYPE OF (IfcCsgPrimitive3D);
  2583. XLength : IfcPositiveLengthMeasure;
  2584. YLength : IfcPositiveLengthMeasure;
  2585. ZLength : IfcPositiveLengthMeasure;
  2586. END_ENTITY;
  2587. ENTITY IfcBoilerType
  2588. SUBTYPE OF (IfcEnergyConversionDeviceType);
  2589. PredefinedType : IfcBoilerTypeEnum;
  2590. WHERE
  2591. WR1 : (PredefinedType <> IfcBoilerTypeEnum.USERDEFINED) OR
  2592. ((PredefinedType = IfcBoilerTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  2593. END_ENTITY;
  2594. ENTITY IfcBooleanClippingResult
  2595. SUBTYPE OF (IfcBooleanResult);
  2596. WHERE
  2597. WR1 : ('IFC2X3.IFCSWEPTAREASOLID' IN TYPEOF(FirstOperand)) OR ('IFC2X3.IFCBOOLEANCLIPPINGRESULT' IN TYPEOF(FirstOperand));
  2598. WR2 : ('IFC2X3.IFCHALFSPACESOLID' IN TYPEOF(SecondOperand));
  2599. WR3 : Operator = DIFFERENCE;
  2600. END_ENTITY;
  2601. ENTITY IfcBooleanResult
  2602. SUPERTYPE OF (ONEOF
  2603. (IfcBooleanClippingResult))
  2604. SUBTYPE OF (IfcGeometricRepresentationItem);
  2605. Operator : IfcBooleanOperator;
  2606. FirstOperand : IfcBooleanOperand;
  2607. SecondOperand : IfcBooleanOperand;
  2608. DERIVE
  2609. Dim : IfcDimensionCount := FirstOperand.Dim;
  2610. WHERE
  2611. WR1 : FirstOperand.Dim = SecondOperand.Dim;
  2612. END_ENTITY;
  2613. ENTITY IfcBoundaryCondition
  2614. ABSTRACT SUPERTYPE OF (ONEOF
  2615. (IfcBoundaryEdgeCondition
  2616. ,IfcBoundaryFaceCondition
  2617. ,IfcBoundaryNodeCondition));
  2618. Name : OPTIONAL IfcLabel;
  2619. END_ENTITY;
  2620. ENTITY IfcBoundaryEdgeCondition
  2621. SUBTYPE OF (IfcBoundaryCondition);
  2622. LinearStiffnessByLengthX : OPTIONAL IfcModulusOfLinearSubgradeReactionMeasure;
  2623. LinearStiffnessByLengthY : OPTIONAL IfcModulusOfLinearSubgradeReactionMeasure;
  2624. LinearStiffnessByLengthZ : OPTIONAL IfcModulusOfLinearSubgradeReactionMeasure;
  2625. RotationalStiffnessByLengthX : OPTIONAL IfcModulusOfRotationalSubgradeReactionMeasure;
  2626. RotationalStiffnessByLengthY : OPTIONAL IfcModulusOfRotationalSubgradeReactionMeasure;
  2627. RotationalStiffnessByLengthZ : OPTIONAL IfcModulusOfRotationalSubgradeReactionMeasure;
  2628. END_ENTITY;
  2629. ENTITY IfcBoundaryFaceCondition
  2630. SUBTYPE OF (IfcBoundaryCondition);
  2631. LinearStiffnessByAreaX : OPTIONAL IfcModulusOfSubgradeReactionMeasure;
  2632. LinearStiffnessByAreaY : OPTIONAL IfcModulusOfSubgradeReactionMeasure;
  2633. LinearStiffnessByAreaZ : OPTIONAL IfcModulusOfSubgradeReactionMeasure;
  2634. END_ENTITY;
  2635. ENTITY IfcBoundaryNodeCondition
  2636. SUPERTYPE OF (ONEOF
  2637. (IfcBoundaryNodeConditionWarping))
  2638. SUBTYPE OF (IfcBoundaryCondition);
  2639. LinearStiffnessX : OPTIONAL IfcLinearStiffnessMeasure;
  2640. LinearStiffnessY : OPTIONAL IfcLinearStiffnessMeasure;
  2641. LinearStiffnessZ : OPTIONAL IfcLinearStiffnessMeasure;
  2642. RotationalStiffnessX : OPTIONAL IfcRotationalStiffnessMeasure;
  2643. RotationalStiffnessY : OPTIONAL IfcRotationalStiffnessMeasure;
  2644. RotationalStiffnessZ : OPTIONAL IfcRotationalStiffnessMeasure;
  2645. END_ENTITY;
  2646. ENTITY IfcBoundaryNodeConditionWarping
  2647. SUBTYPE OF (IfcBoundaryNodeCondition);
  2648. WarpingStiffness : OPTIONAL IfcWarpingMomentMeasure;
  2649. END_ENTITY;
  2650. ENTITY IfcBoundedCurve
  2651. ABSTRACT SUPERTYPE OF (ONEOF
  2652. (IfcBSplineCurve
  2653. ,IfcCompositeCurve
  2654. ,IfcPolyline
  2655. ,IfcTrimmedCurve))
  2656. SUBTYPE OF (IfcCurve);
  2657. END_ENTITY;
  2658. ENTITY IfcBoundedSurface
  2659. SUPERTYPE OF (ONEOF
  2660. (IfcCurveBoundedPlane
  2661. ,IfcRectangularTrimmedSurface))
  2662. SUBTYPE OF (IfcSurface);
  2663. END_ENTITY;
  2664. ENTITY IfcBoundingBox
  2665. SUBTYPE OF (IfcGeometricRepresentationItem);
  2666. Corner : IfcCartesianPoint;
  2667. XDim : IfcPositiveLengthMeasure;
  2668. YDim : IfcPositiveLengthMeasure;
  2669. ZDim : IfcPositiveLengthMeasure;
  2670. DERIVE
  2671. Dim : IfcDimensionCount := 3;
  2672. END_ENTITY;
  2673. ENTITY IfcBoxedHalfSpace
  2674. SUBTYPE OF (IfcHalfSpaceSolid);
  2675. Enclosure : IfcBoundingBox;
  2676. WHERE
  2677. WR1 : NOT ('IFC2X3.IFCCURVEBOUNDEDPLANE' IN TYPEOF(SELF\IfcHalfSpaceSolid.BaseSurface));
  2678. END_ENTITY;
  2679. ENTITY IfcBuilding
  2680. SUBTYPE OF (IfcSpatialStructureElement);
  2681. ElevationOfRefHeight : OPTIONAL IfcLengthMeasure;
  2682. ElevationOfTerrain : OPTIONAL IfcLengthMeasure;
  2683. BuildingAddress : OPTIONAL IfcPostalAddress;
  2684. END_ENTITY;
  2685. ENTITY IfcBuildingElement
  2686. ABSTRACT SUPERTYPE OF (ONEOF
  2687. (IfcBeam
  2688. ,IfcBuildingElementComponent
  2689. ,IfcBuildingElementProxy
  2690. ,IfcColumn
  2691. ,IfcCovering
  2692. ,IfcCurtainWall
  2693. ,IfcDoor
  2694. ,IfcFooting
  2695. ,IfcMember
  2696. ,IfcPile
  2697. ,IfcPlate
  2698. ,IfcRailing
  2699. ,IfcRamp
  2700. ,IfcRampFlight
  2701. ,IfcRoof
  2702. ,IfcSlab
  2703. ,IfcStair
  2704. ,IfcStairFlight
  2705. ,IfcWall
  2706. ,IfcWindow))
  2707. SUBTYPE OF (IfcElement);
  2708. END_ENTITY;
  2709. ENTITY IfcBuildingElementComponent
  2710. ABSTRACT SUPERTYPE OF (ONEOF
  2711. (IfcBuildingElementPart
  2712. ,IfcReinforcingElement))
  2713. SUBTYPE OF (IfcBuildingElement);
  2714. END_ENTITY;
  2715. ENTITY IfcBuildingElementPart
  2716. SUBTYPE OF (IfcBuildingElementComponent);
  2717. END_ENTITY;
  2718. ENTITY IfcBuildingElementProxy
  2719. SUBTYPE OF (IfcBuildingElement);
  2720. CompositionType : OPTIONAL IfcElementCompositionEnum;
  2721. WHERE
  2722. WR1 : EXISTS(SELF\IfcRoot.Name);
  2723. END_ENTITY;
  2724. ENTITY IfcBuildingElementProxyType
  2725. SUBTYPE OF (IfcBuildingElementType);
  2726. PredefinedType : IfcBuildingElementProxyTypeEnum;
  2727. END_ENTITY;
  2728. ENTITY IfcBuildingElementType
  2729. ABSTRACT SUPERTYPE OF (ONEOF
  2730. (IfcBeamType
  2731. ,IfcBuildingElementProxyType
  2732. ,IfcColumnType
  2733. ,IfcCoveringType
  2734. ,IfcCurtainWallType
  2735. ,IfcMemberType
  2736. ,IfcPlateType
  2737. ,IfcRailingType
  2738. ,IfcRampFlightType
  2739. ,IfcSlabType
  2740. ,IfcStairFlightType
  2741. ,IfcWallType))
  2742. SUBTYPE OF (IfcElementType);
  2743. END_ENTITY;
  2744. ENTITY IfcBuildingStorey
  2745. SUBTYPE OF (IfcSpatialStructureElement);
  2746. Elevation : OPTIONAL IfcLengthMeasure;
  2747. END_ENTITY;
  2748. ENTITY IfcCShapeProfileDef
  2749. SUBTYPE OF (IfcParameterizedProfileDef);
  2750. Depth : IfcPositiveLengthMeasure;
  2751. Width : IfcPositiveLengthMeasure;
  2752. WallThickness : IfcPositiveLengthMeasure;
  2753. Girth : IfcPositiveLengthMeasure;
  2754. InternalFilletRadius : OPTIONAL IfcPositiveLengthMeasure;
  2755. CentreOfGravityInX : OPTIONAL IfcPositiveLengthMeasure;
  2756. WHERE
  2757. WR1 : Girth < (Depth / 2.);
  2758. WR2 : NOT(EXISTS(InternalFilletRadius)) OR
  2759. ((InternalFilletRadius <= Width/2.) AND (InternalFilletRadius <= Depth/2.));
  2760. WR3 : (WallThickness < Width/2.) AND (WallThickness < Depth/2.);
  2761. END_ENTITY;
  2762. ENTITY IfcCableCarrierFittingType
  2763. SUBTYPE OF (IfcFlowFittingType);
  2764. PredefinedType : IfcCableCarrierFittingTypeEnum;
  2765. WHERE
  2766. WR1 : (PredefinedType <> IfcCableCarrierFittingTypeEnum.USERDEFINED) OR
  2767. ((PredefinedType = IfcCableCarrierFittingTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  2768. END_ENTITY;
  2769. ENTITY IfcCableCarrierSegmentType
  2770. SUBTYPE OF (IfcFlowSegmentType);
  2771. PredefinedType : IfcCableCarrierSegmentTypeEnum;
  2772. END_ENTITY;
  2773. ENTITY IfcCableSegmentType
  2774. SUBTYPE OF (IfcFlowSegmentType);
  2775. PredefinedType : IfcCableSegmentTypeEnum;
  2776. END_ENTITY;
  2777. ENTITY IfcCalendarDate;
  2778. DayComponent : IfcDayInMonthNumber;
  2779. MonthComponent : IfcMonthInYearNumber;
  2780. YearComponent : IfcYearNumber;
  2781. WHERE
  2782. WR21 : IfcValidCalendarDate (SELF);
  2783. END_ENTITY;
  2784. ENTITY IfcCartesianPoint
  2785. SUBTYPE OF (IfcPoint);
  2786. Coordinates : LIST [1:3] OF IfcLengthMeasure;
  2787. DERIVE
  2788. Dim : IfcDimensionCount := HIINDEX(Coordinates);
  2789. WHERE
  2790. WR1 : HIINDEX(Coordinates) >= 2;
  2791. END_ENTITY;
  2792. ENTITY IfcCartesianTransformationOperator
  2793. ABSTRACT SUPERTYPE OF (ONEOF
  2794. (IfcCartesianTransformationOperator2D
  2795. ,IfcCartesianTransformationOperator3D))
  2796. SUBTYPE OF (IfcGeometricRepresentationItem);
  2797. Axis1 : OPTIONAL IfcDirection;
  2798. Axis2 : OPTIONAL IfcDirection;
  2799. LocalOrigin : IfcCartesianPoint;
  2800. Scale : OPTIONAL REAL;
  2801. DERIVE
  2802. Scl : REAL := NVL(Scale, 1.0);
  2803. Dim : IfcDimensionCount := LocalOrigin.Dim;
  2804. WHERE
  2805. WR1 : Scl > 0.0;
  2806. END_ENTITY;
  2807. ENTITY IfcCartesianTransformationOperator2D
  2808. SUPERTYPE OF (ONEOF
  2809. (IfcCartesianTransformationOperator2DnonUniform))
  2810. SUBTYPE OF (IfcCartesianTransformationOperator);
  2811. DERIVE
  2812. U : LIST [2:2] OF IfcDirection := IfcBaseAxis(2,SELF\IfcCartesianTransformationOperator.Axis1,
  2813. SELF\IfcCartesianTransformationOperator.Axis2,?);
  2814. WHERE
  2815. WR1 : SELF\IfcCartesianTransformationOperator.Dim = 2;
  2816. WR2 : NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis1)) OR
  2817. (SELF\IfcCartesianTransformationOperator.Axis1.Dim = 2);
  2818. WR3 : NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis2)) OR
  2819. (SELF\IfcCartesianTransformationOperator.Axis2.Dim = 2);
  2820. END_ENTITY;
  2821. ENTITY IfcCartesianTransformationOperator2DnonUniform
  2822. SUBTYPE OF (IfcCartesianTransformationOperator2D);
  2823. Scale2 : OPTIONAL REAL;
  2824. DERIVE
  2825. Scl2 : REAL := NVL(Scale2, SELF\IfcCartesianTransformationOperator.Scl);
  2826. WHERE
  2827. WR1 : Scl2 > 0.0;
  2828. END_ENTITY;
  2829. ENTITY IfcCartesianTransformationOperator3D
  2830. SUPERTYPE OF (ONEOF
  2831. (IfcCartesianTransformationOperator3DnonUniform))
  2832. SUBTYPE OF (IfcCartesianTransformationOperator);
  2833. Axis3 : OPTIONAL IfcDirection;
  2834. DERIVE
  2835. U : LIST [3:3] OF IfcDirection := IfcBaseAxis(3,SELF\IfcCartesianTransformationOperator.Axis1,
  2836. SELF\IfcCartesianTransformationOperator.Axis2,Axis3);
  2837. WHERE
  2838. WR1 : SELF\IfcCartesianTransformationOperator.Dim = 3;
  2839. WR2 : NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis1)) OR
  2840. (SELF\IfcCartesianTransformationOperator.Axis1.Dim = 3);
  2841. WR3 : NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis2)) OR
  2842. (SELF\IfcCartesianTransformationOperator.Axis2.Dim = 3);
  2843. WR4 : NOT(EXISTS(Axis3)) OR (Axis3.Dim = 3);
  2844. END_ENTITY;
  2845. ENTITY IfcCartesianTransformationOperator3DnonUniform
  2846. SUBTYPE OF (IfcCartesianTransformationOperator3D);
  2847. Scale2 : OPTIONAL REAL;
  2848. Scale3 : OPTIONAL REAL;
  2849. DERIVE
  2850. Scl2 : REAL := NVL(Scale2, SELF\IfcCartesianTransformationOperator.Scl);
  2851. Scl3 : REAL := NVL(Scale3, SELF\IfcCartesianTransformationOperator.Scl);
  2852. WHERE
  2853. WR1 : Scl2 > 0.0;
  2854. WR2 : Scl3 > 0.0;
  2855. END_ENTITY;
  2856. ENTITY IfcCenterLineProfileDef
  2857. SUBTYPE OF (IfcArbitraryOpenProfileDef);
  2858. Thickness : IfcPositiveLengthMeasure;
  2859. END_ENTITY;
  2860. ENTITY IfcChamferEdgeFeature
  2861. SUBTYPE OF (IfcEdgeFeature);
  2862. Width : OPTIONAL IfcPositiveLengthMeasure;
  2863. Height : OPTIONAL IfcPositiveLengthMeasure;
  2864. END_ENTITY;
  2865. ENTITY IfcChillerType
  2866. SUBTYPE OF (IfcEnergyConversionDeviceType);
  2867. PredefinedType : IfcChillerTypeEnum;
  2868. WHERE
  2869. WR1 : (PredefinedType <> IfcChillerTypeEnum.USERDEFINED) OR
  2870. ((PredefinedType = IfcChillerTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  2871. END_ENTITY;
  2872. ENTITY IfcCircle
  2873. SUBTYPE OF (IfcConic);
  2874. Radius : IfcPositiveLengthMeasure;
  2875. END_ENTITY;
  2876. ENTITY IfcCircleHollowProfileDef
  2877. SUBTYPE OF (IfcCircleProfileDef);
  2878. WallThickness : IfcPositiveLengthMeasure;
  2879. WHERE
  2880. WR1 : WallThickness < SELF\IfcCircleProfileDef.Radius;
  2881. END_ENTITY;
  2882. ENTITY IfcCircleProfileDef
  2883. SUPERTYPE OF (ONEOF
  2884. (IfcCircleHollowProfileDef))
  2885. SUBTYPE OF (IfcParameterizedProfileDef);
  2886. Radius : IfcPositiveLengthMeasure;
  2887. END_ENTITY;
  2888. ENTITY IfcClassification;
  2889. Source : IfcLabel;
  2890. Edition : IfcLabel;
  2891. EditionDate : OPTIONAL IfcCalendarDate;
  2892. Name : IfcLabel;
  2893. INVERSE
  2894. Contains : SET [0:?] OF IfcClassificationItem FOR ItemOf;
  2895. END_ENTITY;
  2896. ENTITY IfcClassificationItem;
  2897. Notation : IfcClassificationNotationFacet;
  2898. ItemOf : OPTIONAL IfcClassification;
  2899. Title : IfcLabel;
  2900. INVERSE
  2901. IsClassifiedItemIn : SET [0:1] OF IfcClassificationItemRelationship FOR RelatedItems;
  2902. IsClassifyingItemIn : SET [0:1] OF IfcClassificationItemRelationship FOR RelatingItem;
  2903. END_ENTITY;
  2904. ENTITY IfcClassificationItemRelationship;
  2905. RelatingItem : IfcClassificationItem;
  2906. RelatedItems : SET [1:?] OF IfcClassificationItem;
  2907. END_ENTITY;
  2908. ENTITY IfcClassificationNotation;
  2909. NotationFacets : SET [1:?] OF IfcClassificationNotationFacet;
  2910. END_ENTITY;
  2911. ENTITY IfcClassificationNotationFacet;
  2912. NotationValue : IfcLabel;
  2913. END_ENTITY;
  2914. ENTITY IfcClassificationReference
  2915. SUBTYPE OF (IfcExternalReference);
  2916. ReferencedSource : OPTIONAL IfcClassification;
  2917. END_ENTITY;
  2918. ENTITY IfcClosedShell
  2919. SUBTYPE OF (IfcConnectedFaceSet);
  2920. END_ENTITY;
  2921. ENTITY IfcCoilType
  2922. SUBTYPE OF (IfcEnergyConversionDeviceType);
  2923. PredefinedType : IfcCoilTypeEnum;
  2924. WHERE
  2925. WR1 : (PredefinedType <> IfcCoilTypeEnum.USERDEFINED) OR
  2926. ((PredefinedType = IfcCoilTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  2927. END_ENTITY;
  2928. ENTITY IfcColourRgb
  2929. SUBTYPE OF (IfcColourSpecification);
  2930. Red : IfcNormalisedRatioMeasure;
  2931. Green : IfcNormalisedRatioMeasure;
  2932. Blue : IfcNormalisedRatioMeasure;
  2933. END_ENTITY;
  2934. ENTITY IfcColourSpecification
  2935. ABSTRACT SUPERTYPE OF (ONEOF
  2936. (IfcColourRgb));
  2937. Name : OPTIONAL IfcLabel;
  2938. END_ENTITY;
  2939. ENTITY IfcColumn
  2940. SUBTYPE OF (IfcBuildingElement);
  2941. END_ENTITY;
  2942. ENTITY IfcColumnType
  2943. SUBTYPE OF (IfcBuildingElementType);
  2944. PredefinedType : IfcColumnTypeEnum;
  2945. END_ENTITY;
  2946. ENTITY IfcComplexProperty
  2947. SUBTYPE OF (IfcProperty);
  2948. UsageName : IfcIdentifier;
  2949. HasProperties : SET [1:?] OF IfcProperty;
  2950. WHERE
  2951. WR21 : SIZEOF(QUERY(temp <* HasProperties | SELF :=: temp)) = 0;
  2952. WR22 : IfcUniquePropertyName(HasProperties);
  2953. END_ENTITY;
  2954. ENTITY IfcCompositeCurve
  2955. SUPERTYPE OF (ONEOF
  2956. (Ifc2DCompositeCurve))
  2957. SUBTYPE OF (IfcBoundedCurve);
  2958. Segments : LIST [1:?] OF IfcCompositeCurveSegment;
  2959. SelfIntersect : LOGICAL;
  2960. DERIVE
  2961. NSegments : INTEGER := SIZEOF(Segments);
  2962. ClosedCurve : LOGICAL := Segments[NSegments].Transition <> Discontinuous;
  2963. WHERE
  2964. WR41 : ((NOT ClosedCurve) AND (SIZEOF(QUERY(Temp <* Segments | Temp.Transition = Discontinuous)) = 1)) OR ((ClosedCurve) AND (SIZEOF(QUERY(Temp <* Segments | Temp.Transition = Discontinuous)) = 0));
  2965. WR42 : SIZEOF( QUERY( Temp <* Segments | Temp.Dim <> Segments[1].Dim)) = 0;
  2966. END_ENTITY;
  2967. ENTITY IfcCompositeCurveSegment
  2968. SUBTYPE OF (IfcGeometricRepresentationItem);
  2969. Transition : IfcTransitionCode;
  2970. SameSense : BOOLEAN;
  2971. ParentCurve : IfcCurve;
  2972. DERIVE
  2973. Dim : IfcDimensionCount := ParentCurve.Dim;
  2974. INVERSE
  2975. UsingCurves : SET [1:?] OF IfcCompositeCurve FOR Segments;
  2976. WHERE
  2977. WR1 : ('IFC2X3.IFCBOUNDEDCURVE' IN TYPEOF(ParentCurve));
  2978. END_ENTITY;
  2979. ENTITY IfcCompositeProfileDef
  2980. SUBTYPE OF (IfcProfileDef);
  2981. Profiles : SET [2:?] OF IfcProfileDef;
  2982. Label : OPTIONAL IfcLabel;
  2983. WHERE
  2984. WR1 : SIZEOF(QUERY(temp <* Profiles | temp.ProfileType <> Profiles[1].ProfileType)) = 0;
  2985. WR2 : SIZEOF(QUERY(temp <* Profiles | 'IFC2X3.IFCCOMPOSITEPROFILEDEF' IN TYPEOF(temp))) = 0;
  2986. END_ENTITY;
  2987. ENTITY IfcCompressorType
  2988. SUBTYPE OF (IfcFlowMovingDeviceType);
  2989. PredefinedType : IfcCompressorTypeEnum;
  2990. WHERE
  2991. WR1 : (PredefinedType <> IfcCompressorTypeEnum.USERDEFINED) OR
  2992. ((PredefinedType = IfcCompressorTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  2993. END_ENTITY;
  2994. ENTITY IfcCondenserType
  2995. SUBTYPE OF (IfcEnergyConversionDeviceType);
  2996. PredefinedType : IfcCondenserTypeEnum;
  2997. WHERE
  2998. WR1 : (PredefinedType <> IfcCondenserTypeEnum.USERDEFINED) OR
  2999. ((PredefinedType = IfcCondenserTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  3000. END_ENTITY;
  3001. ENTITY IfcCondition
  3002. SUBTYPE OF (IfcGroup);
  3003. END_ENTITY;
  3004. ENTITY IfcConditionCriterion
  3005. SUBTYPE OF (IfcControl);
  3006. Criterion : IfcConditionCriterionSelect;
  3007. CriterionDateTime : IfcDateTimeSelect;
  3008. WHERE
  3009. WR1 : EXISTS(SELF\IfcRoot.Name);
  3010. END_ENTITY;
  3011. ENTITY IfcConic
  3012. ABSTRACT SUPERTYPE OF (ONEOF
  3013. (IfcCircle
  3014. ,IfcEllipse))
  3015. SUBTYPE OF (IfcCurve);
  3016. Position : IfcAxis2Placement;
  3017. END_ENTITY;
  3018. ENTITY IfcConnectedFaceSet
  3019. SUPERTYPE OF (ONEOF
  3020. (IfcClosedShell
  3021. ,IfcOpenShell))
  3022. SUBTYPE OF (IfcTopologicalRepresentationItem);
  3023. CfsFaces : SET [1:?] OF IfcFace;
  3024. END_ENTITY;
  3025. ENTITY IfcConnectionCurveGeometry
  3026. SUBTYPE OF (IfcConnectionGeometry);
  3027. CurveOnRelatingElement : IfcCurveOrEdgeCurve;
  3028. CurveOnRelatedElement : OPTIONAL IfcCurveOrEdgeCurve;
  3029. END_ENTITY;
  3030. ENTITY IfcConnectionGeometry
  3031. ABSTRACT SUPERTYPE OF (ONEOF
  3032. (IfcConnectionCurveGeometry
  3033. ,IfcConnectionPointGeometry
  3034. ,IfcConnectionPortGeometry
  3035. ,IfcConnectionSurfaceGeometry));
  3036. END_ENTITY;
  3037. ENTITY IfcConnectionPointEccentricity
  3038. SUBTYPE OF (IfcConnectionPointGeometry);
  3039. EccentricityInX : OPTIONAL IfcLengthMeasure;
  3040. EccentricityInY : OPTIONAL IfcLengthMeasure;
  3041. EccentricityInZ : OPTIONAL IfcLengthMeasure;
  3042. END_ENTITY;
  3043. ENTITY IfcConnectionPointGeometry
  3044. SUPERTYPE OF (ONEOF
  3045. (IfcConnectionPointEccentricity))
  3046. SUBTYPE OF (IfcConnectionGeometry);
  3047. PointOnRelatingElement : IfcPointOrVertexPoint;
  3048. PointOnRelatedElement : OPTIONAL IfcPointOrVertexPoint;
  3049. END_ENTITY;
  3050. ENTITY IfcConnectionPortGeometry
  3051. SUBTYPE OF (IfcConnectionGeometry);
  3052. LocationAtRelatingElement : IfcAxis2Placement;
  3053. LocationAtRelatedElement : OPTIONAL IfcAxis2Placement;
  3054. ProfileOfPort : IfcProfileDef;
  3055. END_ENTITY;
  3056. ENTITY IfcConnectionSurfaceGeometry
  3057. SUBTYPE OF (IfcConnectionGeometry);
  3058. SurfaceOnRelatingElement : IfcSurfaceOrFaceSurface;
  3059. SurfaceOnRelatedElement : OPTIONAL IfcSurfaceOrFaceSurface;
  3060. END_ENTITY;
  3061. ENTITY IfcConstraint
  3062. ABSTRACT SUPERTYPE OF (ONEOF
  3063. (IfcMetric
  3064. ,IfcObjective));
  3065. Name : IfcLabel;
  3066. Description : OPTIONAL IfcText;
  3067. ConstraintGrade : IfcConstraintEnum;
  3068. ConstraintSource : OPTIONAL IfcLabel;
  3069. CreatingActor : OPTIONAL IfcActorSelect;
  3070. CreationTime : OPTIONAL IfcDateTimeSelect;
  3071. UserDefinedGrade : OPTIONAL IfcLabel;
  3072. INVERSE
  3073. ClassifiedAs : SET [0:?] OF IfcConstraintClassificationRelationship FOR ClassifiedConstraint;
  3074. RelatesConstraints : SET [0:?] OF IfcConstraintRelationship FOR RelatingConstraint;
  3075. IsRelatedWith : SET [0:?] OF IfcConstraintRelationship FOR RelatedConstraints;
  3076. PropertiesForConstraint : SET [0:?] OF IfcPropertyConstraintRelationship FOR RelatingConstraint;
  3077. Aggregates : SET [0:?] OF IfcConstraintAggregationRelationship FOR RelatingConstraint;
  3078. IsAggregatedIn : SET [0:?] OF IfcConstraintAggregationRelationship FOR RelatedConstraints;
  3079. WHERE
  3080. WR11 : (ConstraintGrade <> IfcConstraintEnum.USERDEFINED) OR
  3081. ((ConstraintGrade = IfcConstraintEnum.USERDEFINED) AND EXISTS(SELF\IfcConstraint.UserDefinedGrade));
  3082. END_ENTITY;
  3083. ENTITY IfcConstraintAggregationRelationship;
  3084. Name : OPTIONAL IfcLabel;
  3085. Description : OPTIONAL IfcText;
  3086. RelatingConstraint : IfcConstraint;
  3087. RelatedConstraints : LIST [1:?] OF UNIQUE IfcConstraint;
  3088. LogicalAggregator : IfcLogicalOperatorEnum;
  3089. WHERE
  3090. WR11 : SIZEOF(QUERY(temp <* RelatedConstraints |
  3091. temp :=: RelatingConstraint
  3092. )) = 0;
  3093. END_ENTITY;
  3094. ENTITY IfcConstraintClassificationRelationship;
  3095. ClassifiedConstraint : IfcConstraint;
  3096. RelatedClassifications : SET [1:?] OF IfcClassificationNotationSelect;
  3097. END_ENTITY;
  3098. ENTITY IfcConstraintRelationship;
  3099. Name : OPTIONAL IfcLabel;
  3100. Description : OPTIONAL IfcText;
  3101. RelatingConstraint : IfcConstraint;
  3102. RelatedConstraints : SET [1:?] OF IfcConstraint;
  3103. WHERE
  3104. WR11 : SIZEOF(QUERY(temp <* RelatedConstraints | temp :=: RelatingConstraint )) = 0;
  3105. END_ENTITY;
  3106. ENTITY IfcConstructionEquipmentResource
  3107. SUBTYPE OF (IfcConstructionResource);
  3108. END_ENTITY;
  3109. ENTITY IfcConstructionMaterialResource
  3110. SUBTYPE OF (IfcConstructionResource);
  3111. Suppliers : OPTIONAL SET [1:?] OF IfcActorSelect;
  3112. UsageRatio : OPTIONAL IfcRatioMeasure;
  3113. WHERE
  3114. WR1 : SIZEOF(SELF\IfcResource.ResourceOf) <=1;
  3115. WR2 : NOT(EXISTS(SELF\IfcResource.ResourceOf[1])) OR
  3116. (SELF\IfcResource.ResourceOf[1].RelatedObjectsType = IfcObjectTypeEnum.PRODUCT);
  3117. END_ENTITY;
  3118. ENTITY IfcConstructionProductResource
  3119. SUBTYPE OF (IfcConstructionResource);
  3120. WHERE
  3121. WR1 : SIZEOF(SELF\IfcResource.ResourceOf) <=1;
  3122. WR2 : NOT(EXISTS(SELF\IfcResource.ResourceOf[1])) OR
  3123. (SELF\IfcResource.ResourceOf[1].RelatedObjectsType = IfcObjectTypeEnum.PRODUCT);
  3124. END_ENTITY;
  3125. ENTITY IfcConstructionResource
  3126. ABSTRACT SUPERTYPE OF (ONEOF
  3127. (IfcConstructionEquipmentResource
  3128. ,IfcConstructionMaterialResource
  3129. ,IfcConstructionProductResource
  3130. ,IfcCrewResource
  3131. ,IfcLaborResource
  3132. ,IfcSubContractResource))
  3133. SUBTYPE OF (IfcResource);
  3134. ResourceIdentifier : OPTIONAL IfcIdentifier;
  3135. ResourceGroup : OPTIONAL IfcLabel;
  3136. ResourceConsumption : OPTIONAL IfcResourceConsumptionEnum;
  3137. BaseQuantity : OPTIONAL IfcMeasureWithUnit;
  3138. END_ENTITY;
  3139. ENTITY IfcContextDependentUnit
  3140. SUBTYPE OF (IfcNamedUnit);
  3141. Name : IfcLabel;
  3142. END_ENTITY;
  3143. ENTITY IfcControl
  3144. ABSTRACT SUPERTYPE OF (ONEOF
  3145. (IfcActionRequest
  3146. ,IfcConditionCriterion
  3147. ,IfcCostItem
  3148. ,IfcCostSchedule
  3149. ,IfcEquipmentStandard
  3150. ,IfcFurnitureStandard
  3151. ,IfcPerformanceHistory
  3152. ,IfcPermit
  3153. ,IfcProjectOrder
  3154. ,IfcProjectOrderRecord
  3155. ,IfcScheduleTimeControl
  3156. ,IfcServiceLife
  3157. ,IfcSpaceProgram
  3158. ,IfcTimeSeriesSchedule
  3159. ,IfcWorkControl))
  3160. SUBTYPE OF (IfcObject);
  3161. INVERSE
  3162. Controls : SET [0:?] OF IfcRelAssignsToControl FOR RelatingControl;
  3163. END_ENTITY;
  3164. ENTITY IfcControllerType
  3165. SUBTYPE OF (IfcDistributionControlElementType);
  3166. PredefinedType : IfcControllerTypeEnum;
  3167. END_ENTITY;
  3168. ENTITY IfcConversionBasedUnit
  3169. SUBTYPE OF (IfcNamedUnit);
  3170. Name : IfcLabel;
  3171. ConversionFactor : IfcMeasureWithUnit;
  3172. END_ENTITY;
  3173. ENTITY IfcCooledBeamType
  3174. SUBTYPE OF (IfcEnergyConversionDeviceType);
  3175. PredefinedType : IfcCooledBeamTypeEnum;
  3176. WHERE
  3177. WR1 : (PredefinedType <> IfcCooledBeamTypeEnum.USERDEFINED) OR
  3178. ((PredefinedType = IfcCooledBeamTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  3179. END_ENTITY;
  3180. ENTITY IfcCoolingTowerType
  3181. SUBTYPE OF (IfcEnergyConversionDeviceType);
  3182. PredefinedType : IfcCoolingTowerTypeEnum;
  3183. WHERE
  3184. WR1 : (PredefinedType <> IfcCoolingTowerTypeEnum.USERDEFINED) OR
  3185. ((PredefinedType = IfcCoolingTowerTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  3186. END_ENTITY;
  3187. ENTITY IfcCoordinatedUniversalTimeOffset;
  3188. HourOffset : IfcHourInDay;
  3189. MinuteOffset : OPTIONAL IfcMinuteInHour;
  3190. Sense : IfcAheadOrBehind;
  3191. END_ENTITY;
  3192. ENTITY IfcCostItem
  3193. SUBTYPE OF (IfcControl);
  3194. END_ENTITY;
  3195. ENTITY IfcCostSchedule
  3196. SUBTYPE OF (IfcControl);
  3197. SubmittedBy : OPTIONAL IfcActorSelect;
  3198. PreparedBy : OPTIONAL IfcActorSelect;
  3199. SubmittedOn : OPTIONAL IfcDateTimeSelect;
  3200. Status : OPTIONAL IfcLabel;
  3201. TargetUsers : OPTIONAL SET [1:?] OF IfcActorSelect;
  3202. UpdateDate : OPTIONAL IfcDateTimeSelect;
  3203. ID : IfcIdentifier;
  3204. PredefinedType : IfcCostScheduleTypeEnum;
  3205. UNIQUE
  3206. UR2 : ID;
  3207. END_ENTITY;
  3208. ENTITY IfcCostValue
  3209. SUBTYPE OF (IfcAppliedValue);
  3210. CostType : IfcLabel;
  3211. Condition : OPTIONAL IfcText;
  3212. END_ENTITY;
  3213. ENTITY IfcCovering
  3214. SUBTYPE OF (IfcBuildingElement);
  3215. PredefinedType : OPTIONAL IfcCoveringTypeEnum;
  3216. INVERSE
  3217. CoversSpaces : SET [0:1] OF IfcRelCoversSpaces FOR RelatedCoverings;
  3218. Covers : SET [0:1] OF IfcRelCoversBldgElements FOR RelatedCoverings;
  3219. END_ENTITY;
  3220. ENTITY IfcCoveringType
  3221. SUBTYPE OF (IfcBuildingElementType);
  3222. PredefinedType : IfcCoveringTypeEnum;
  3223. END_ENTITY;
  3224. ENTITY IfcCraneRailAShapeProfileDef
  3225. SUBTYPE OF (IfcParameterizedProfileDef);
  3226. OverallHeight : IfcPositiveLengthMeasure;
  3227. BaseWidth2 : IfcPositiveLengthMeasure;
  3228. Radius : OPTIONAL IfcPositiveLengthMeasure;
  3229. HeadWidth : IfcPositiveLengthMeasure;
  3230. HeadDepth2 : IfcPositiveLengthMeasure;
  3231. HeadDepth3 : IfcPositiveLengthMeasure;
  3232. WebThickness : IfcPositiveLengthMeasure;
  3233. BaseWidth4 : IfcPositiveLengthMeasure;
  3234. BaseDepth1 : IfcPositiveLengthMeasure;
  3235. BaseDepth2 : IfcPositiveLengthMeasure;
  3236. BaseDepth3 : IfcPositiveLengthMeasure;
  3237. CentreOfGravityInY : OPTIONAL IfcPositiveLengthMeasure;
  3238. END_ENTITY;
  3239. ENTITY IfcCraneRailFShapeProfileDef
  3240. SUBTYPE OF (IfcParameterizedProfileDef);
  3241. OverallHeight : IfcPositiveLengthMeasure;
  3242. HeadWidth : IfcPositiveLengthMeasure;
  3243. Radius : OPTIONAL IfcPositiveLengthMeasure;
  3244. HeadDepth2 : IfcPositiveLengthMeasure;
  3245. HeadDepth3 : IfcPositiveLengthMeasure;
  3246. WebThickness : IfcPositiveLengthMeasure;
  3247. BaseDepth1 : IfcPositiveLengthMeasure;
  3248. BaseDepth2 : IfcPositiveLengthMeasure;
  3249. CentreOfGravityInY : OPTIONAL IfcPositiveLengthMeasure;
  3250. END_ENTITY;
  3251. ENTITY IfcCrewResource
  3252. SUBTYPE OF (IfcConstructionResource);
  3253. END_ENTITY;
  3254. ENTITY IfcCsgPrimitive3D
  3255. ABSTRACT SUPERTYPE OF (ONEOF
  3256. (IfcBlock
  3257. ,IfcRectangularPyramid
  3258. ,IfcRightCircularCone
  3259. ,IfcRightCircularCylinder
  3260. ,IfcSphere))
  3261. SUBTYPE OF (IfcGeometricRepresentationItem);
  3262. Position : IfcAxis2Placement3D;
  3263. DERIVE
  3264. Dim : IfcDimensionCount := 3;
  3265. END_ENTITY;
  3266. ENTITY IfcCsgSolid
  3267. SUBTYPE OF (IfcSolidModel);
  3268. TreeRootExpression : IfcCsgSelect;
  3269. END_ENTITY;
  3270. ENTITY IfcCurrencyRelationship;
  3271. RelatingMonetaryUnit : IfcMonetaryUnit;
  3272. RelatedMonetaryUnit : IfcMonetaryUnit;
  3273. ExchangeRate : IfcPositiveRatioMeasure;
  3274. RateDateTime : IfcDateAndTime;
  3275. RateSource : OPTIONAL IfcLibraryInformation;
  3276. END_ENTITY;
  3277. ENTITY IfcCurtainWall
  3278. SUBTYPE OF (IfcBuildingElement);
  3279. END_ENTITY;
  3280. ENTITY IfcCurtainWallType
  3281. SUBTYPE OF (IfcBuildingElementType);
  3282. PredefinedType : IfcCurtainWallTypeEnum;
  3283. END_ENTITY;
  3284. ENTITY IfcCurve
  3285. ABSTRACT SUPERTYPE OF (ONEOF
  3286. (IfcBoundedCurve
  3287. ,IfcConic
  3288. ,IfcLine
  3289. ,IfcOffsetCurve2D
  3290. ,IfcOffsetCurve3D))
  3291. SUBTYPE OF (IfcGeometricRepresentationItem);
  3292. DERIVE
  3293. Dim : IfcDimensionCount := IfcCurveDim(SELF);
  3294. END_ENTITY;
  3295. ENTITY IfcCurveBoundedPlane
  3296. SUBTYPE OF (IfcBoundedSurface);
  3297. BasisSurface : IfcPlane;
  3298. OuterBoundary : IfcCurve;
  3299. InnerBoundaries : SET [0:?] OF IfcCurve;
  3300. DERIVE
  3301. Dim : IfcDimensionCount := BasisSurface.Dim;
  3302. END_ENTITY;
  3303. ENTITY IfcCurveStyle
  3304. SUBTYPE OF (IfcPresentationStyle);
  3305. CurveFont : OPTIONAL IfcCurveFontOrScaledCurveFontSelect;
  3306. CurveWidth : OPTIONAL IfcSizeSelect;
  3307. CurveColour : OPTIONAL IfcColour;
  3308. WHERE
  3309. WR11 : (NOT(EXISTS(CurveWidth))) OR
  3310. ('IFC2X3.IFCPOSITIVELENGTHMEASURE' IN TYPEOF(CurveWidth)) OR
  3311. (('IFC2X3.IFCDESCRIPTIVEMEASURE' IN TYPEOF(CurveWidth)) AND
  3312. (CurveWidth = 'by layer'));
  3313. END_ENTITY;
  3314. ENTITY IfcCurveStyleFont;
  3315. Name : OPTIONAL IfcLabel;
  3316. PatternList : LIST [1:?] OF IfcCurveStyleFontPattern;
  3317. END_ENTITY;
  3318. ENTITY IfcCurveStyleFontAndScaling;
  3319. Name : OPTIONAL IfcLabel;
  3320. CurveFont : IfcCurveStyleFontSelect;
  3321. CurveFontScaling : IfcPositiveRatioMeasure;
  3322. END_ENTITY;
  3323. ENTITY IfcCurveStyleFontPattern;
  3324. VisibleSegmentLength : IfcLengthMeasure;
  3325. InvisibleSegmentLength : IfcPositiveLengthMeasure;
  3326. WHERE
  3327. WR01 : VisibleSegmentLength >= 0.;
  3328. END_ENTITY;
  3329. ENTITY IfcDamperType
  3330. SUBTYPE OF (IfcFlowControllerType);
  3331. PredefinedType : IfcDamperTypeEnum;
  3332. WHERE
  3333. WR1 : (PredefinedType <> IfcDamperTypeEnum.USERDEFINED) OR
  3334. ((PredefinedType = IfcDamperTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  3335. END_ENTITY;
  3336. ENTITY IfcDateAndTime;
  3337. DateComponent : IfcCalendarDate;
  3338. TimeComponent : IfcLocalTime;
  3339. END_ENTITY;
  3340. ENTITY IfcDefinedSymbol
  3341. SUBTYPE OF (IfcGeometricRepresentationItem);
  3342. Definition : IfcDefinedSymbolSelect;
  3343. Target : IfcCartesianTransformationOperator2D;
  3344. END_ENTITY;
  3345. ENTITY IfcDerivedProfileDef
  3346. SUBTYPE OF (IfcProfileDef);
  3347. ParentProfile : IfcProfileDef;
  3348. Operator : IfcCartesianTransformationOperator2D;
  3349. Label : OPTIONAL IfcLabel;
  3350. WHERE
  3351. WR1 : SELF\IfcProfileDef.ProfileType = ParentProfile.ProfileType;
  3352. END_ENTITY;
  3353. ENTITY IfcDerivedUnit;
  3354. Elements : SET [1:?] OF IfcDerivedUnitElement;
  3355. UnitType : IfcDerivedUnitEnum;
  3356. UserDefinedType : OPTIONAL IfcLabel;
  3357. DERIVE
  3358. Dimensions : IfcDimensionalExponents := IfcDeriveDimensionalExponents(SELF);
  3359. WHERE
  3360. WR1 : (SIZEOF (Elements) > 1) OR ((SIZEOF (Elements) = 1) AND (Elements[1].Exponent <> 1 ));
  3361. WR2 : (UnitType <> IfcDerivedUnitEnum.USERDEFINED) OR
  3362. ((UnitType = IfcDerivedUnitEnum.USERDEFINED) AND
  3363. (EXISTS(SELF.UserDefinedType)));
  3364. END_ENTITY;
  3365. ENTITY IfcDerivedUnitElement;
  3366. Unit : IfcNamedUnit;
  3367. Exponent : INTEGER;
  3368. END_ENTITY;
  3369. ENTITY IfcDiameterDimension
  3370. SUBTYPE OF (IfcDimensionCurveDirectedCallout);
  3371. END_ENTITY;
  3372. ENTITY IfcDimensionCalloutRelationship
  3373. SUBTYPE OF (IfcDraughtingCalloutRelationship);
  3374. WHERE
  3375. WR11 : SELF\IfcDraughtingCalloutRelationship.Name IN ['primary','secondary'];
  3376. WR12 : SIZEOF(TYPEOF(SELF\IfcDraughtingCalloutRelationship.RelatingDraughtingCallout) * [
  3377. 'IFC2X3.IFCANGULARDIMENSION',
  3378. 'IFC2X3.IFCDIAMETERDIMENSION',
  3379. 'IFC2X3.IFCLINEARDIMENSION',
  3380. 'IFC2X3.IFCRADIUSDIMENSION']) = 1;
  3381. WR13 : NOT ('IFC2X3.IFCDIMENSIONCURVEDIRECTEDCALLOUT'
  3382. IN TYPEOF (SELF\IfcDraughtingCalloutRelationship.RelatedDraughtingCallout));
  3383. END_ENTITY;
  3384. ENTITY IfcDimensionCurve
  3385. SUBTYPE OF (IfcAnnotationCurveOccurrence);
  3386. INVERSE
  3387. AnnotatedBySymbols : SET [0:2] OF IfcTerminatorSymbol FOR AnnotatedCurve;
  3388. WHERE
  3389. WR51 : SIZEOF(USEDIN(SELF,'IFC2X3.IFCDRAUGHTINGCALLOUT.CONTENTS'))
  3390. >= 1;
  3391. WR52 : (SIZEOF(QUERY (Dct1 <* USEDIN(SELF,'IFC2X3.' +
  3392. 'IFCTERMINATORSYMBOL.ANNOTATEDCURVE') | (Dct1.Role = IfcDimensionExtentUsage.ORIGIN))) <= 1)
  3393. AND
  3394. (SIZEOF(QUERY (Dct2 <* USEDIN(SELF,'IFC2X3.' +
  3395. 'IFCTERMINATORSYMBOL.ANNOTATEDCURVE') | (Dct2.Role = IfcDimensionExtentUsage.TARGET))) <= 1);
  3396. WR53 : SIZEOF(QUERY (Dct <* AnnotatedBySymbols |
  3397. NOT('IFC2X3.IFCDIMENSIONCURVETERMINATOR' IN TYPEOF(Dct))))
  3398. = 0;
  3399. END_ENTITY;
  3400. ENTITY IfcDimensionCurveDirectedCallout
  3401. SUPERTYPE OF (ONEOF
  3402. (IfcAngularDimension
  3403. ,IfcDiameterDimension
  3404. ,IfcLinearDimension
  3405. ,IfcRadiusDimension))
  3406. SUBTYPE OF (IfcDraughtingCallout);
  3407. WHERE
  3408. WR41 : SIZEOF(QUERY (Dc <* SELF\IfcDraughtingCallout.Contents | (
  3409. 'IFC2X3.IFCDIMENSIONCURVE' IN TYPEOF(Dc))))
  3410. = 1;
  3411. WR42 : SIZEOF (QUERY (Dc <* SELF.contents |
  3412. ('IFC2X3.IFCPROJECTIONCURVE' IN
  3413. TYPEOF (Dc)))) <= 2;
  3414. END_ENTITY;
  3415. ENTITY IfcDimensionCurveTerminator
  3416. SUBTYPE OF (IfcTerminatorSymbol);
  3417. Role : IfcDimensionExtentUsage;
  3418. WHERE
  3419. WR61 : 'IFC2X3.IFCDIMENSIONCURVE' IN TYPEOF
  3420. (SELF\IfcTerminatorSymbol.AnnotatedCurve);
  3421. END_ENTITY;
  3422. ENTITY IfcDimensionPair
  3423. SUBTYPE OF (IfcDraughtingCalloutRelationship);
  3424. WHERE
  3425. WR11 : SELF.Name IN ['chained','parallel'];
  3426. WR12 : SIZEOF(TYPEOF(SELF.RelatingDraughtingCallout) * [
  3427. 'IFC2X3.IFCANGULARDIMENSION',
  3428. 'IFC2X3.IFCDIAMETERDIMENSION',
  3429. 'IFC2X3.IFCLINEARDIMENSION',
  3430. 'IFC2X3.IFCRADIUSDIMENSION']) = 1;
  3431. WR13 : SIZEOF(TYPEOF(SELF.RelatedDraughtingCallout) * [
  3432. 'IFC2X3.IFCANGULARDIMENSION',
  3433. 'IFC2X3.IFCDIAMETERDIMENSION',
  3434. 'IFC2X3.IFCLINEARDIMENSION',
  3435. 'IFC2X3.IFCRADIUSDIMENSION']) = 1;
  3436. END_ENTITY;
  3437. ENTITY IfcDimensionalExponents;
  3438. LengthExponent : INTEGER;
  3439. MassExponent : INTEGER;
  3440. TimeExponent : INTEGER;
  3441. ElectricCurrentExponent : INTEGER;
  3442. ThermodynamicTemperatureExponent : INTEGER;
  3443. AmountOfSubstanceExponent : INTEGER;
  3444. LuminousIntensityExponent : INTEGER;
  3445. END_ENTITY;
  3446. ENTITY IfcDirection
  3447. SUBTYPE OF (IfcGeometricRepresentationItem);
  3448. DirectionRatios : LIST [2:3] OF REAL;
  3449. DERIVE
  3450. Dim : IfcDimensionCount := HIINDEX(DirectionRatios);
  3451. END_ENTITY;
  3452. ENTITY IfcDiscreteAccessory
  3453. SUBTYPE OF (IfcElementComponent);
  3454. END_ENTITY;
  3455. ENTITY IfcDiscreteAccessoryType
  3456. SUPERTYPE OF (ONEOF
  3457. (IfcVibrationIsolatorType))
  3458. SUBTYPE OF (IfcElementComponentType);
  3459. END_ENTITY;
  3460. ENTITY IfcDistributionChamberElement
  3461. SUBTYPE OF (IfcDistributionFlowElement);
  3462. END_ENTITY;
  3463. ENTITY IfcDistributionChamberElementType
  3464. SUBTYPE OF (IfcDistributionFlowElementType);
  3465. PredefinedType : IfcDistributionChamberElementTypeEnum;
  3466. END_ENTITY;
  3467. ENTITY IfcDistributionControlElement
  3468. SUBTYPE OF (IfcDistributionElement);
  3469. ControlElementId : OPTIONAL IfcIdentifier;
  3470. INVERSE
  3471. AssignedToFlowElement : SET [0:1] OF IfcRelFlowControlElements FOR RelatedControlElements;
  3472. END_ENTITY;
  3473. ENTITY IfcDistributionControlElementType
  3474. ABSTRACT SUPERTYPE OF (ONEOF
  3475. (IfcActuatorType
  3476. ,IfcAlarmType
  3477. ,IfcControllerType
  3478. ,IfcFlowInstrumentType
  3479. ,IfcSensorType))
  3480. SUBTYPE OF (IfcDistributionElementType);
  3481. END_ENTITY;
  3482. ENTITY IfcDistributionElement
  3483. SUPERTYPE OF (ONEOF
  3484. (IfcDistributionControlElement
  3485. ,IfcDistributionFlowElement))
  3486. SUBTYPE OF (IfcElement);
  3487. END_ENTITY;
  3488. ENTITY IfcDistributionElementType
  3489. SUPERTYPE OF (ONEOF
  3490. (IfcDistributionControlElementType
  3491. ,IfcDistributionFlowElementType))
  3492. SUBTYPE OF (IfcElementType);
  3493. END_ENTITY;
  3494. ENTITY IfcDistributionFlowElement
  3495. SUPERTYPE OF (ONEOF
  3496. (IfcDistributionChamberElement
  3497. ,IfcEnergyConversionDevice
  3498. ,IfcFlowController
  3499. ,IfcFlowFitting
  3500. ,IfcFlowMovingDevice
  3501. ,IfcFlowSegment
  3502. ,IfcFlowStorageDevice
  3503. ,IfcFlowTerminal
  3504. ,IfcFlowTreatmentDevice))
  3505. SUBTYPE OF (IfcDistributionElement);
  3506. INVERSE
  3507. HasControlElements : SET [0:1] OF IfcRelFlowControlElements FOR RelatingFlowElement;
  3508. END_ENTITY;
  3509. ENTITY IfcDistributionFlowElementType
  3510. ABSTRACT SUPERTYPE OF (ONEOF
  3511. (IfcDistributionChamberElementType
  3512. ,IfcEnergyConversionDeviceType
  3513. ,IfcFlowControllerType
  3514. ,IfcFlowFittingType
  3515. ,IfcFlowMovingDeviceType
  3516. ,IfcFlowSegmentType
  3517. ,IfcFlowStorageDeviceType
  3518. ,IfcFlowTerminalType
  3519. ,IfcFlowTreatmentDeviceType))
  3520. SUBTYPE OF (IfcDistributionElementType);
  3521. END_ENTITY;
  3522. ENTITY IfcDistributionPort
  3523. SUBTYPE OF (IfcPort);
  3524. FlowDirection : OPTIONAL IfcFlowDirectionEnum;
  3525. END_ENTITY;
  3526. ENTITY IfcDocumentElectronicFormat;
  3527. FileExtension : OPTIONAL IfcLabel;
  3528. MimeContentType : OPTIONAL IfcLabel;
  3529. MimeSubtype : OPTIONAL IfcLabel;
  3530. WHERE
  3531. WR1 : EXISTS(FileExtension) OR EXISTS(MimeContentType);
  3532. END_ENTITY;
  3533. ENTITY IfcDocumentInformation;
  3534. DocumentId : IfcIdentifier;
  3535. Name : IfcLabel;
  3536. Description : OPTIONAL IfcText;
  3537. DocumentReferences : OPTIONAL SET [1:?] OF IfcDocumentReference;
  3538. Purpose : OPTIONAL IfcText;
  3539. IntendedUse : OPTIONAL IfcText;
  3540. Scope : OPTIONAL IfcText;
  3541. Revision : OPTIONAL IfcLabel;
  3542. DocumentOwner : OPTIONAL IfcActorSelect;
  3543. Editors : OPTIONAL SET [1:?] OF IfcActorSelect;
  3544. CreationTime : OPTIONAL IfcDateAndTime;
  3545. LastRevisionTime : OPTIONAL IfcDateAndTime;
  3546. ElectronicFormat : OPTIONAL IfcDocumentElectronicFormat;
  3547. ValidFrom : OPTIONAL IfcCalendarDate;
  3548. ValidUntil : OPTIONAL IfcCalendarDate;
  3549. Confidentiality : OPTIONAL IfcDocumentConfidentialityEnum;
  3550. Status : OPTIONAL IfcDocumentStatusEnum;
  3551. INVERSE
  3552. IsPointedTo : SET [0:?] OF IfcDocumentInformationRelationship FOR RelatedDocuments;
  3553. IsPointer : SET [0:1] OF IfcDocumentInformationRelationship FOR RelatingDocument;
  3554. END_ENTITY;
  3555. ENTITY IfcDocumentInformationRelationship;
  3556. RelatingDocument : IfcDocumentInformation;
  3557. RelatedDocuments : SET [1:?] OF IfcDocumentInformation;
  3558. RelationshipType : OPTIONAL IfcLabel;
  3559. END_ENTITY;
  3560. ENTITY IfcDocumentReference
  3561. SUBTYPE OF (IfcExternalReference);
  3562. INVERSE
  3563. ReferenceToDocument : SET [0:1] OF IfcDocumentInformation FOR DocumentReferences;
  3564. WHERE
  3565. WR1 : EXISTS(Name) XOR EXISTS(ReferenceToDocument[1]);
  3566. END_ENTITY;
  3567. ENTITY IfcDoor
  3568. SUBTYPE OF (IfcBuildingElement);
  3569. OverallHeight : OPTIONAL IfcPositiveLengthMeasure;
  3570. OverallWidth : OPTIONAL IfcPositiveLengthMeasure;
  3571. END_ENTITY;
  3572. ENTITY IfcDoorLiningProperties
  3573. SUBTYPE OF (IfcPropertySetDefinition);
  3574. LiningDepth : OPTIONAL IfcPositiveLengthMeasure;
  3575. LiningThickness : OPTIONAL IfcPositiveLengthMeasure;
  3576. ThresholdDepth : OPTIONAL IfcPositiveLengthMeasure;
  3577. ThresholdThickness : OPTIONAL IfcPositiveLengthMeasure;
  3578. TransomThickness : OPTIONAL IfcPositiveLengthMeasure;
  3579. TransomOffset : OPTIONAL IfcLengthMeasure;
  3580. LiningOffset : OPTIONAL IfcLengthMeasure;
  3581. ThresholdOffset : OPTIONAL IfcLengthMeasure;
  3582. CasingThickness : OPTIONAL IfcPositiveLengthMeasure;
  3583. CasingDepth : OPTIONAL IfcPositiveLengthMeasure;
  3584. ShapeAspectStyle : OPTIONAL IfcShapeAspect;
  3585. WHERE
  3586. WR31 : NOT(NOT(EXISTS(LiningDepth)) AND EXISTS(LiningThickness));
  3587. WR32 : NOT(NOT(EXISTS(ThresholdDepth)) AND EXISTS(ThresholdThickness));
  3588. WR33 : (EXISTS(TransomOffset) AND EXISTS(TransomThickness)) XOR
  3589. (NOT(EXISTS(TransomOffset)) AND NOT(EXISTS(TransomThickness)));
  3590. WR34 : (EXISTS(CasingDepth) AND EXISTS(CasingThickness)) XOR
  3591. (NOT(EXISTS(CasingDepth)) AND NOT(EXISTS(CasingThickness)));
  3592. WR35 : EXISTS(SELF\IfcPropertySetDefinition.DefinesType[1]) AND
  3593. ('IFC2X3.IFCDOORSTYLE' IN TYPEOF(SELF\IfcPropertySetDefinition.DefinesType[1]));
  3594. END_ENTITY;
  3595. ENTITY IfcDoorPanelProperties
  3596. SUBTYPE OF (IfcPropertySetDefinition);
  3597. PanelDepth : OPTIONAL IfcPositiveLengthMeasure;
  3598. PanelOperation : IfcDoorPanelOperationEnum;
  3599. PanelWidth : OPTIONAL IfcNormalisedRatioMeasure;
  3600. PanelPosition : IfcDoorPanelPositionEnum;
  3601. ShapeAspectStyle : OPTIONAL IfcShapeAspect;
  3602. WHERE
  3603. WR31 : EXISTS(SELF\IfcPropertySetDefinition.DefinesType[1]) AND
  3604. ('IFC2X3.IFCDOORSTYLE' IN TYPEOF(SELF\IfcPropertySetDefinition.DefinesType[1]));
  3605. END_ENTITY;
  3606. ENTITY IfcDoorStyle
  3607. SUBTYPE OF (IfcTypeProduct);
  3608. OperationType : IfcDoorStyleOperationEnum;
  3609. ConstructionType : IfcDoorStyleConstructionEnum;
  3610. ParameterTakesPrecedence : BOOLEAN;
  3611. Sizeable : BOOLEAN;
  3612. END_ENTITY;
  3613. ENTITY IfcDraughtingCallout
  3614. SUPERTYPE OF (ONEOF
  3615. (IfcDimensionCurveDirectedCallout
  3616. ,IfcStructuredDimensionCallout))
  3617. SUBTYPE OF (IfcGeometricRepresentationItem);
  3618. Contents : SET [1:?] OF IfcDraughtingCalloutElement;
  3619. INVERSE
  3620. IsRelatedFromCallout : SET [0:?] OF IfcDraughtingCalloutRelationship FOR RelatedDraughtingCallout;
  3621. IsRelatedToCallout : SET [0:?] OF IfcDraughtingCalloutRelationship FOR RelatingDraughtingCallout;
  3622. END_ENTITY;
  3623. ENTITY IfcDraughtingCalloutRelationship
  3624. SUPERTYPE OF (ONEOF
  3625. (IfcDimensionCalloutRelationship
  3626. ,IfcDimensionPair));
  3627. Name : OPTIONAL IfcLabel;
  3628. Description : OPTIONAL IfcText;
  3629. RelatingDraughtingCallout : IfcDraughtingCallout;
  3630. RelatedDraughtingCallout : IfcDraughtingCallout;
  3631. END_ENTITY;
  3632. ENTITY IfcDraughtingPreDefinedColour
  3633. SUBTYPE OF (IfcPreDefinedColour);
  3634. WHERE
  3635. WR31 : SELF\IfcPreDefinedItem.Name IN ['black','red','green','blue','yellow',
  3636. 'magenta','cyan','white','by layer'];
  3637. END_ENTITY;
  3638. ENTITY IfcDraughtingPreDefinedCurveFont
  3639. SUBTYPE OF (IfcPreDefinedCurveFont);
  3640. WHERE
  3641. WR31 : SELF\IfcPredefinedItem.Name IN
  3642. ['continuous',
  3643. 'chain',
  3644. 'chain double dash',
  3645. 'dashed',
  3646. 'dotted',
  3647. 'by layer'];
  3648. END_ENTITY;
  3649. ENTITY IfcDraughtingPreDefinedTextFont
  3650. SUBTYPE OF (IfcPreDefinedTextFont);
  3651. WHERE
  3652. WR31 : SELF\IfcPreDefinedItem.Name IN ['ISO 3098-1 font A','ISO 3098-1 font B'];
  3653. END_ENTITY;
  3654. ENTITY IfcDuctFittingType
  3655. SUBTYPE OF (IfcFlowFittingType);
  3656. PredefinedType : IfcDuctFittingTypeEnum;
  3657. WHERE
  3658. WR2 : (PredefinedType <> IfcDuctFittingTypeEnum.USERDEFINED) OR
  3659. ((PredefinedType = IfcDuctFittingTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  3660. END_ENTITY;
  3661. ENTITY IfcDuctSegmentType
  3662. SUBTYPE OF (IfcFlowSegmentType);
  3663. PredefinedType : IfcDuctSegmentTypeEnum;
  3664. WHERE
  3665. WR1 : (PredefinedType <> IfcDuctSegmentTypeEnum.USERDEFINED) OR
  3666. ((PredefinedType = IfcDuctSegmentTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  3667. END_ENTITY;
  3668. ENTITY IfcDuctSilencerType
  3669. SUBTYPE OF (IfcFlowTreatmentDeviceType);
  3670. PredefinedType : IfcDuctSilencerTypeEnum;
  3671. WHERE
  3672. WR1 : (PredefinedType <> IfcDuctSilencerTypeEnum.USERDEFINED) OR
  3673. ((PredefinedType = IfcDuctSilencerTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  3674. END_ENTITY;
  3675. ENTITY IfcEdge
  3676. SUPERTYPE OF (ONEOF
  3677. (IfcEdgeCurve
  3678. ,IfcOrientedEdge
  3679. ,IfcSubedge))
  3680. SUBTYPE OF (IfcTopologicalRepresentationItem);
  3681. EdgeStart : IfcVertex;
  3682. EdgeEnd : IfcVertex;
  3683. END_ENTITY;
  3684. ENTITY IfcEdgeCurve
  3685. SUBTYPE OF (IfcEdge);
  3686. EdgeGeometry : IfcCurve;
  3687. SameSense : BOOLEAN;
  3688. END_ENTITY;
  3689. ENTITY IfcEdgeFeature
  3690. ABSTRACT SUPERTYPE OF (ONEOF
  3691. (IfcChamferEdgeFeature
  3692. ,IfcRoundedEdgeFeature))
  3693. SUBTYPE OF (IfcFeatureElementSubtraction);
  3694. FeatureLength : OPTIONAL IfcPositiveLengthMeasure;
  3695. END_ENTITY;
  3696. ENTITY IfcEdgeLoop
  3697. SUBTYPE OF (IfcLoop);
  3698. EdgeList : LIST [1:?] OF IfcOrientedEdge;
  3699. DERIVE
  3700. Ne : INTEGER := SIZEOF(EdgeList);
  3701. WHERE
  3702. WR1 : (EdgeList[1].EdgeStart) :=: (EdgeList[Ne].EdgeEnd);
  3703. WR2 : IfcLoopHeadToTail(SELF);
  3704. END_ENTITY;
  3705. ENTITY IfcElectricApplianceType
  3706. SUBTYPE OF (IfcFlowTerminalType);
  3707. PredefinedType : IfcElectricApplianceTypeEnum;
  3708. END_ENTITY;
  3709. ENTITY IfcElectricDistributionPoint
  3710. SUBTYPE OF (IfcFlowController);
  3711. DistributionPointFunction : IfcElectricDistributionPointFunctionEnum;
  3712. UserDefinedFunction : OPTIONAL IfcLabel;
  3713. WHERE
  3714. WR31 : (DistributionPointFunction <> IfcElectricDistributionPointFunctionEnum.USERDEFINED) OR
  3715. ((DistributionPointFunction = IfcElectricDistributionPointFunctionEnum.USERDEFINED) AND EXISTS(SELF\IfcElectricDistributionPoint.UserDefinedFunction));
  3716. END_ENTITY;
  3717. ENTITY IfcElectricFlowStorageDeviceType
  3718. SUBTYPE OF (IfcFlowStorageDeviceType);
  3719. PredefinedType : IfcElectricFlowStorageDeviceTypeEnum;
  3720. END_ENTITY;
  3721. ENTITY IfcElectricGeneratorType
  3722. SUBTYPE OF (IfcEnergyConversionDeviceType);
  3723. PredefinedType : IfcElectricGeneratorTypeEnum;
  3724. END_ENTITY;
  3725. ENTITY IfcElectricHeaterType
  3726. SUBTYPE OF (IfcFlowTerminalType);
  3727. PredefinedType : IfcElectricHeaterTypeEnum;
  3728. END_ENTITY;
  3729. ENTITY IfcElectricMotorType
  3730. SUBTYPE OF (IfcEnergyConversionDeviceType);
  3731. PredefinedType : IfcElectricMotorTypeEnum;
  3732. END_ENTITY;
  3733. ENTITY IfcElectricTimeControlType
  3734. SUBTYPE OF (IfcFlowControllerType);
  3735. PredefinedType : IfcElectricTimeControlTypeEnum;
  3736. END_ENTITY;
  3737. ENTITY IfcElectricalBaseProperties
  3738. SUBTYPE OF (IfcEnergyProperties);
  3739. ElectricCurrentType : OPTIONAL IfcElectricCurrentEnum;
  3740. InputVoltage : IfcElectricVoltageMeasure;
  3741. InputFrequency : IfcFrequencyMeasure;
  3742. FullLoadCurrent : OPTIONAL IfcElectricCurrentMeasure;
  3743. MinimumCircuitCurrent : OPTIONAL IfcElectricCurrentMeasure;
  3744. MaximumPowerInput : OPTIONAL IfcPowerMeasure;
  3745. RatedPowerInput : OPTIONAL IfcPowerMeasure;
  3746. InputPhase : INTEGER;
  3747. END_ENTITY;
  3748. ENTITY IfcElectricalCircuit
  3749. SUBTYPE OF (IfcSystem);
  3750. END_ENTITY;
  3751. ENTITY IfcElectricalElement
  3752. SUBTYPE OF (IfcElement);
  3753. END_ENTITY;
  3754. ENTITY IfcElement
  3755. ABSTRACT SUPERTYPE OF (ONEOF
  3756. (IfcBuildingElement
  3757. ,IfcDistributionElement
  3758. ,IfcElectricalElement
  3759. ,IfcElementAssembly
  3760. ,IfcElementComponent
  3761. ,IfcEquipmentElement
  3762. ,IfcFeatureElement
  3763. ,IfcFurnishingElement
  3764. ,IfcTransportElement
  3765. ,IfcVirtualElement))
  3766. SUBTYPE OF (IfcProduct);
  3767. Tag : OPTIONAL IfcIdentifier;
  3768. INVERSE
  3769. FillsVoids : SET [0:1] OF IfcRelFillsElement FOR RelatedBuildingElement;
  3770. ConnectedTo : SET [0:?] OF IfcRelConnectsElements FOR RelatingElement;
  3771. HasCoverings : SET [0:?] OF IfcRelCoversBldgElements FOR RelatingBuildingElement;
  3772. HasProjections : SET [0:?] OF IfcRelProjectsElement FOR RelatingElement;
  3773. HasStructuralMember : SET [0:?] OF IfcRelConnectsStructuralElement FOR RelatingElement;
  3774. ReferencedInStructures : SET [0:?] OF IfcRelReferencedInSpatialStructure FOR RelatedElements;
  3775. HasPorts : SET [0:?] OF IfcRelConnectsPortToElement FOR RelatedElement;
  3776. HasOpenings : SET [0:?] OF IfcRelVoidsElement FOR RelatingBuildingElement;
  3777. IsConnectionRealization : SET [0:?] OF IfcRelConnectsWithRealizingElements FOR RealizingElements;
  3778. ProvidesBoundaries : SET [0:?] OF IfcRelSpaceBoundary FOR RelatedBuildingElement;
  3779. ConnectedFrom : SET [0:?] OF IfcRelConnectsElements FOR RelatedElement;
  3780. ContainedInStructure : SET [0:1] OF IfcRelContainedInSpatialStructure FOR RelatedElements;
  3781. END_ENTITY;
  3782. ENTITY IfcElementAssembly
  3783. SUBTYPE OF (IfcElement);
  3784. AssemblyPlace : OPTIONAL IfcAssemblyPlaceEnum;
  3785. PredefinedType : IfcElementAssemblyTypeEnum;
  3786. WHERE
  3787. WR1 : (PredefinedType <> IfcElementAssemblyTypeEnum.USERDEFINED) OR ((PredefinedType = IfcElementAssemblyTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));
  3788. END_ENTITY;
  3789. ENTITY IfcElementComponent
  3790. ABSTRACT SUPERTYPE OF (ONEOF
  3791. (IfcDiscreteAccessory
  3792. ,IfcFastener))
  3793. SUBTYPE OF (IfcElement);
  3794. END_ENTITY;
  3795. ENTITY IfcElementComponentType
  3796. ABSTRACT SUPERTYPE OF (ONEOF
  3797. (IfcDiscreteAccessoryType
  3798. ,IfcFastenerType))
  3799. SUBTYPE OF (IfcElementType);
  3800. END_ENTITY;
  3801. ENTITY IfcElementQuantity
  3802. SUBTYPE OF (IfcPropertySetDefinition);
  3803. MethodOfMeasurement : OPTIONAL IfcLabel;
  3804. Quantities : SET [1:?] OF IfcPhysicalQuantity;
  3805. END_ENTITY;
  3806. ENTITY IfcElementType
  3807. ABSTRACT SUPERTYPE OF (ONEOF
  3808. (IfcBuildingElementType
  3809. ,IfcDistributionElementType
  3810. ,IfcElementComponentType
  3811. ,IfcFurnishingElementType
  3812. ,IfcSpatialStructureElementType
  3813. ,IfcTransportElementType))
  3814. SUBTYPE OF (IfcTypeProduct);
  3815. ElementType : OPTIONAL IfcLabel;
  3816. END_ENTITY;
  3817. ENTITY IfcElementarySurface
  3818. ABSTRACT SUPERTYPE OF (ONEOF
  3819. (IfcPlane))
  3820. SUBTYPE OF (IfcSurface);
  3821. Position : IfcAxis2Placement3D;
  3822. DERIVE
  3823. Dim : IfcDimensionCount := Position.Dim;
  3824. END_ENTITY;
  3825. ENTITY IfcEllipse
  3826. SUBTYPE OF (IfcConic);
  3827. SemiAxis1 : IfcPositiveLengthMeasure;
  3828. SemiAxis2 : IfcPositiveLengthMeasure;
  3829. END_ENTITY;
  3830. ENTITY IfcEllipseProfileDef
  3831. SUBTYPE OF (IfcParameterizedProfileDef);
  3832. SemiAxis1 : IfcPositiveLengthMeasure;
  3833. SemiAxis2 : IfcPositiveLengthMeasure;
  3834. END_ENTITY;
  3835. ENTITY IfcEnergyConversionDevice
  3836. SUBTYPE OF (IfcDistributionFlowElement);
  3837. END_ENTITY;
  3838. ENTITY IfcEnergyConversionDeviceType
  3839. ABSTRACT SUPERTYPE OF (ONEOF
  3840. (IfcAirToAirHeatRecoveryType
  3841. ,IfcBoilerType
  3842. ,IfcChillerType
  3843. ,IfcCoilType
  3844. ,IfcCondenserType
  3845. ,IfcCooledBeamType
  3846. ,IfcCoolingTowerType
  3847. ,IfcElectricGeneratorType
  3848. ,IfcElectricMotorType
  3849. ,IfcEvaporativeCoolerType
  3850. ,IfcEvaporatorType
  3851. ,IfcHeatExchangerType
  3852. ,IfcHumidifierType
  3853. ,IfcMotorConnectionType
  3854. ,IfcSpaceHeaterType
  3855. ,IfcTransformerType
  3856. ,IfcTubeBundleType
  3857. ,IfcUnitaryEquipmentType))
  3858. SUBTYPE OF (IfcDistributionFlowElementType);
  3859. END_ENTITY;
  3860. ENTITY IfcEnergyProperties
  3861. SUPERTYPE OF (ONEOF
  3862. (IfcElectricalBaseProperties))
  3863. SUBTYPE OF (IfcPropertySetDefinition);
  3864. EnergySequence : OPTIONAL IfcEnergySequenceEnum;
  3865. UserDefinedEnergySequence : OPTIONAL IfcLabel;
  3866. END_ENTITY;
  3867. ENTITY IfcEnvironmentalImpactValue
  3868. SUBTYPE OF (IfcAppliedValue);
  3869. ImpactType : IfcLabel;
  3870. Category : IfcEnvironmentalImpactCategoryEnum;
  3871. UserDefinedCategory : OPTIONAL IfcLabel;
  3872. WHERE
  3873. WR1 : (Category <> IfcEnvironmentalImpactCategoryEnum.USERDEFINED) OR
  3874. ((Category = IfcEnvironmentalImpactCategoryEnum.USERDEFINED) AND EXISTS(SELF\IfcEnvironmentalImpactValue.UserDefinedCategory));
  3875. END_ENTITY;
  3876. ENTITY IfcEquipmentElement
  3877. SUBTYPE OF (IfcElement);
  3878. END_ENTITY;
  3879. ENTITY IfcEquipmentStandard
  3880. SUBTYPE OF (IfcControl);
  3881. END_ENTITY;
  3882. ENTITY IfcEvaporativeCoolerType
  3883. SUBTYPE OF (IfcEnergyConversionDeviceType);
  3884. PredefinedType : IfcEvaporativeCoolerTypeEnum;
  3885. WHERE
  3886. WR1 : (PredefinedType <> IfcEvaporativeCoolerTypeEnum.USERDEFINED) OR
  3887. ((PredefinedType = IfcEvaporativeCoolerTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  3888. END_ENTITY;
  3889. ENTITY IfcEvaporatorType
  3890. SUBTYPE OF (IfcEnergyConversionDeviceType);
  3891. PredefinedType : IfcEvaporatorTypeEnum;
  3892. WHERE
  3893. WR1 : (PredefinedType <> IfcEvaporatorTypeEnum.USERDEFINED) OR
  3894. ((PredefinedType = IfcEvaporatorTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  3895. END_ENTITY;
  3896. ENTITY IfcExtendedMaterialProperties
  3897. SUBTYPE OF (IfcMaterialProperties);
  3898. ExtendedProperties : SET [1:?] OF IfcProperty;
  3899. Description : OPTIONAL IfcText;
  3900. Name : IfcLabel;
  3901. END_ENTITY;
  3902. ENTITY IfcExternalReference
  3903. ABSTRACT SUPERTYPE OF (ONEOF
  3904. (IfcClassificationReference
  3905. ,IfcDocumentReference
  3906. ,IfcExternallyDefinedHatchStyle
  3907. ,IfcExternallyDefinedSurfaceStyle
  3908. ,IfcExternallyDefinedSymbol
  3909. ,IfcExternallyDefinedTextFont
  3910. ,IfcLibraryReference));
  3911. Location : OPTIONAL IfcLabel;
  3912. ItemReference : OPTIONAL IfcIdentifier;
  3913. Name : OPTIONAL IfcLabel;
  3914. WHERE
  3915. WR1 : EXISTS(ItemReference) OR EXISTS(Location) OR EXISTS(Name);
  3916. END_ENTITY;
  3917. ENTITY IfcExternallyDefinedHatchStyle
  3918. SUBTYPE OF (IfcExternalReference);
  3919. END_ENTITY;
  3920. ENTITY IfcExternallyDefinedSurfaceStyle
  3921. SUBTYPE OF (IfcExternalReference);
  3922. END_ENTITY;
  3923. ENTITY IfcExternallyDefinedSymbol
  3924. SUBTYPE OF (IfcExternalReference);
  3925. END_ENTITY;
  3926. ENTITY IfcExternallyDefinedTextFont
  3927. SUBTYPE OF (IfcExternalReference);
  3928. END_ENTITY;
  3929. ENTITY IfcExtrudedAreaSolid
  3930. SUBTYPE OF (IfcSweptAreaSolid);
  3931. ExtrudedDirection : IfcDirection;
  3932. Depth : IfcPositiveLengthMeasure;
  3933. WHERE
  3934. WR31 : IfcDotProduct(IfcRepresentationItem() || IfcGeometricRepresentationItem() || IfcDirection([0.0,0.0,1.0]), SELF.ExtrudedDirection) <> 0.0;
  3935. END_ENTITY;
  3936. ENTITY IfcFace
  3937. SUPERTYPE OF (ONEOF
  3938. (IfcFaceSurface))
  3939. SUBTYPE OF (IfcTopologicalRepresentationItem);
  3940. Bounds : SET [1:?] OF IfcFaceBound;
  3941. WHERE
  3942. WR1 : SIZEOF(QUERY(temp <* Bounds | 'IFC2X3.IFCFACEOUTERBOUND' IN TYPEOF(temp))) <= 1;
  3943. END_ENTITY;
  3944. ENTITY IfcFaceBasedSurfaceModel
  3945. SUBTYPE OF (IfcGeometricRepresentationItem);
  3946. FbsmFaces : SET [1:?] OF IfcConnectedFaceSet;
  3947. DERIVE
  3948. Dim : IfcDimensionCount := 3;
  3949. END_ENTITY;
  3950. ENTITY IfcFaceBound
  3951. SUPERTYPE OF (ONEOF
  3952. (IfcFaceOuterBound))
  3953. SUBTYPE OF (IfcTopologicalRepresentationItem);
  3954. Bound : IfcLoop;
  3955. Orientation : BOOLEAN;
  3956. END_ENTITY;
  3957. ENTITY IfcFaceOuterBound
  3958. SUBTYPE OF (IfcFaceBound);
  3959. END_ENTITY;
  3960. ENTITY IfcFaceSurface
  3961. SUBTYPE OF (IfcFace);
  3962. FaceSurface : IfcSurface;
  3963. SameSense : BOOLEAN;
  3964. END_ENTITY;
  3965. ENTITY IfcFacetedBrep
  3966. SUBTYPE OF (IfcManifoldSolidBrep);
  3967. END_ENTITY;
  3968. ENTITY IfcFacetedBrepWithVoids
  3969. SUBTYPE OF (IfcManifoldSolidBrep);
  3970. Voids : SET [1:?] OF IfcClosedShell;
  3971. END_ENTITY;
  3972. ENTITY IfcFailureConnectionCondition
  3973. SUBTYPE OF (IfcStructuralConnectionCondition);
  3974. TensionFailureX : OPTIONAL IfcForceMeasure;
  3975. TensionFailureY : OPTIONAL IfcForceMeasure;
  3976. TensionFailureZ : OPTIONAL IfcForceMeasure;
  3977. CompressionFailureX : OPTIONAL IfcForceMeasure;
  3978. CompressionFailureY : OPTIONAL IfcForceMeasure;
  3979. CompressionFailureZ : OPTIONAL IfcForceMeasure;
  3980. END_ENTITY;
  3981. ENTITY IfcFanType
  3982. SUBTYPE OF (IfcFlowMovingDeviceType);
  3983. PredefinedType : IfcFanTypeEnum;
  3984. WHERE
  3985. WR1 : (PredefinedType <> IfcFanTypeEnum.USERDEFINED) OR
  3986. ((PredefinedType = IfcFanTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  3987. END_ENTITY;
  3988. ENTITY IfcFastener
  3989. SUPERTYPE OF (ONEOF
  3990. (IfcMechanicalFastener))
  3991. SUBTYPE OF (IfcElementComponent);
  3992. END_ENTITY;
  3993. ENTITY IfcFastenerType
  3994. SUPERTYPE OF (ONEOF
  3995. (IfcMechanicalFastenerType))
  3996. SUBTYPE OF (IfcElementComponentType);
  3997. END_ENTITY;
  3998. ENTITY IfcFeatureElement
  3999. ABSTRACT SUPERTYPE OF (ONEOF
  4000. (IfcFeatureElementAddition
  4001. ,IfcFeatureElementSubtraction))
  4002. SUBTYPE OF (IfcElement);
  4003. END_ENTITY;
  4004. ENTITY IfcFeatureElementAddition
  4005. ABSTRACT SUPERTYPE OF (ONEOF
  4006. (IfcProjectionElement))
  4007. SUBTYPE OF (IfcFeatureElement);
  4008. INVERSE
  4009. ProjectsElements : IfcRelProjectsElement FOR RelatedFeatureElement;
  4010. END_ENTITY;
  4011. ENTITY IfcFeatureElementSubtraction
  4012. ABSTRACT SUPERTYPE OF (ONEOF
  4013. (IfcEdgeFeature
  4014. ,IfcOpeningElement))
  4015. SUBTYPE OF (IfcFeatureElement);
  4016. INVERSE
  4017. VoidsElements : IfcRelVoidsElement FOR RelatedOpeningElement;
  4018. END_ENTITY;
  4019. ENTITY IfcFillAreaStyle
  4020. SUBTYPE OF (IfcPresentationStyle);
  4021. FillStyles : SET [1:?] OF IfcFillStyleSelect;
  4022. WHERE
  4023. WR11 : SIZEOF(QUERY(Style <* SELF.FillStyles |
  4024. 'IFC2X3.IFCCOLOUR' IN
  4025. TYPEOF(Style)
  4026. )) <= 1;
  4027. WR12 : SIZEOF(QUERY(Style <* SELF.FillStyles |
  4028. 'IFC2X3.IFCEXTERNALLYDEFINEDHATCHSTYLE' IN
  4029. TYPEOF(Style)
  4030. )) <= 1;
  4031. WR13 : (SIZEOF(QUERY(Style <* SELF.FillStyles |
  4032. 'IFC2X3.IFCEXTERNALLYDEFINEDHATCHSTYLE' IN
  4033. TYPEOF(Style)
  4034. )) >= 1)
  4035. XOR
  4036. (SIZEOF(QUERY(Style <* SELF.FillStyles |
  4037. 'IFC2X3.IFCFILLAREASTYLEHATCHING' IN
  4038. TYPEOF(Style)
  4039. )) >= 1)
  4040. XOR
  4041. (SIZEOF(QUERY(Style <* SELF.FillStyles |
  4042. 'IFC2X3.IFCFILLAREASTYLETILES' IN
  4043. TYPEOF(Style)
  4044. )) >= 1);
  4045. END_ENTITY;
  4046. ENTITY IfcFillAreaStyleHatching
  4047. SUBTYPE OF (IfcGeometricRepresentationItem);
  4048. HatchLineAppearance : IfcCurveStyle;
  4049. StartOfNextHatchLine : IfcHatchLineDistanceSelect;
  4050. PointOfReferenceHatchLine : OPTIONAL IfcCartesianPoint;
  4051. PatternStart : OPTIONAL IfcCartesianPoint;
  4052. HatchLineAngle : IfcPlaneAngleMeasure;
  4053. WHERE
  4054. WR21 : NOT(
  4055. 'IFC2X3.IFCTWODIRECTIONREPEATFACTOR'
  4056. IN TYPEOF(StartOfNextHatchLine)
  4057. );
  4058. WR22 : NOT(EXISTS(PatternStart))
  4059. OR (PatternStart.Dim = 2);
  4060. WR23 : NOT(EXISTS(PointOfReferenceHatchLine))
  4061. OR (PointOfReferenceHatchLine.Dim = 2);
  4062. END_ENTITY;
  4063. ENTITY IfcFillAreaStyleTileSymbolWithStyle
  4064. SUBTYPE OF (IfcGeometricRepresentationItem);
  4065. Symbol : IfcAnnotationSymbolOccurrence;
  4066. END_ENTITY;
  4067. ENTITY IfcFillAreaStyleTiles
  4068. SUBTYPE OF (IfcGeometricRepresentationItem);
  4069. TilingPattern : IfcOneDirectionRepeatFactor;
  4070. Tiles : SET [1:?] OF IfcFillAreaStyleTileShapeSelect;
  4071. TilingScale : IfcPositiveRatioMeasure;
  4072. END_ENTITY;
  4073. ENTITY IfcFilterType
  4074. SUBTYPE OF (IfcFlowTreatmentDeviceType);
  4075. PredefinedType : IfcFilterTypeEnum;
  4076. WHERE
  4077. WR1 : (PredefinedType <> IfcFilterTypeEnum.USERDEFINED) OR
  4078. ((PredefinedType = IfcFilterTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  4079. END_ENTITY;
  4080. ENTITY IfcFireSuppressionTerminalType
  4081. SUBTYPE OF (IfcFlowTerminalType);
  4082. PredefinedType : IfcFireSuppressionTerminalTypeEnum;
  4083. END_ENTITY;
  4084. ENTITY IfcFlowController
  4085. SUPERTYPE OF (ONEOF
  4086. (IfcElectricDistributionPoint))
  4087. SUBTYPE OF (IfcDistributionFlowElement);
  4088. END_ENTITY;
  4089. ENTITY IfcFlowControllerType
  4090. ABSTRACT SUPERTYPE OF (ONEOF
  4091. (IfcAirTerminalBoxType
  4092. ,IfcDamperType
  4093. ,IfcElectricTimeControlType
  4094. ,IfcFlowMeterType
  4095. ,IfcProtectiveDeviceType
  4096. ,IfcSwitchingDeviceType
  4097. ,IfcValveType))
  4098. SUBTYPE OF (IfcDistributionFlowElementType);
  4099. END_ENTITY;
  4100. ENTITY IfcFlowFitting
  4101. SUBTYPE OF (IfcDistributionFlowElement);
  4102. END_ENTITY;
  4103. ENTITY IfcFlowFittingType
  4104. ABSTRACT SUPERTYPE OF (ONEOF
  4105. (IfcCableCarrierFittingType
  4106. ,IfcDuctFittingType
  4107. ,IfcJunctionBoxType
  4108. ,IfcPipeFittingType))
  4109. SUBTYPE OF (IfcDistributionFlowElementType);
  4110. END_ENTITY;
  4111. ENTITY IfcFlowInstrumentType
  4112. SUBTYPE OF (IfcDistributionControlElementType);
  4113. PredefinedType : IfcFlowInstrumentTypeEnum;
  4114. END_ENTITY;
  4115. ENTITY IfcFlowMeterType
  4116. SUBTYPE OF (IfcFlowControllerType);
  4117. PredefinedType : IfcFlowMeterTypeEnum;
  4118. WHERE
  4119. WR1 : (PredefinedType <> IfcFlowMeterTypeEnum.USERDEFINED) OR
  4120. ((PredefinedType = IfcFlowMeterTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  4121. END_ENTITY;
  4122. ENTITY IfcFlowMovingDevice
  4123. SUBTYPE OF (IfcDistributionFlowElement);
  4124. END_ENTITY;
  4125. ENTITY IfcFlowMovingDeviceType
  4126. ABSTRACT SUPERTYPE OF (ONEOF
  4127. (IfcCompressorType
  4128. ,IfcFanType
  4129. ,IfcPumpType))
  4130. SUBTYPE OF (IfcDistributionFlowElementType);
  4131. END_ENTITY;
  4132. ENTITY IfcFlowSegment
  4133. SUBTYPE OF (IfcDistributionFlowElement);
  4134. END_ENTITY;
  4135. ENTITY IfcFlowSegmentType
  4136. ABSTRACT SUPERTYPE OF (ONEOF
  4137. (IfcCableCarrierSegmentType
  4138. ,IfcCableSegmentType
  4139. ,IfcDuctSegmentType
  4140. ,IfcPipeSegmentType))
  4141. SUBTYPE OF (IfcDistributionFlowElementType);
  4142. END_ENTITY;
  4143. ENTITY IfcFlowStorageDevice
  4144. SUBTYPE OF (IfcDistributionFlowElement);
  4145. END_ENTITY;
  4146. ENTITY IfcFlowStorageDeviceType
  4147. ABSTRACT SUPERTYPE OF (ONEOF
  4148. (IfcElectricFlowStorageDeviceType
  4149. ,IfcTankType))
  4150. SUBTYPE OF (IfcDistributionFlowElementType);
  4151. END_ENTITY;
  4152. ENTITY IfcFlowTerminal
  4153. SUBTYPE OF (IfcDistributionFlowElement);
  4154. END_ENTITY;
  4155. ENTITY IfcFlowTerminalType
  4156. ABSTRACT SUPERTYPE OF (ONEOF
  4157. (IfcAirTerminalType
  4158. ,IfcElectricApplianceType
  4159. ,IfcElectricHeaterType
  4160. ,IfcFireSuppressionTerminalType
  4161. ,IfcGasTerminalType
  4162. ,IfcLampType
  4163. ,IfcLightFixtureType
  4164. ,IfcOutletType
  4165. ,IfcSanitaryTerminalType
  4166. ,IfcStackTerminalType
  4167. ,IfcWasteTerminalType))
  4168. SUBTYPE OF (IfcDistributionFlowElementType);
  4169. END_ENTITY;
  4170. ENTITY IfcFlowTreatmentDevice
  4171. SUBTYPE OF (IfcDistributionFlowElement);
  4172. END_ENTITY;
  4173. ENTITY IfcFlowTreatmentDeviceType
  4174. ABSTRACT SUPERTYPE OF (ONEOF
  4175. (IfcDuctSilencerType
  4176. ,IfcFilterType))
  4177. SUBTYPE OF (IfcDistributionFlowElementType);
  4178. END_ENTITY;
  4179. ENTITY IfcFluidFlowProperties
  4180. SUBTYPE OF (IfcPropertySetDefinition);
  4181. PropertySource : IfcPropertySourceEnum;
  4182. FlowConditionTimeSeries : OPTIONAL IfcTimeSeries;
  4183. VelocityTimeSeries : OPTIONAL IfcTimeSeries;
  4184. FlowrateTimeSeries : OPTIONAL IfcTimeSeries;
  4185. Fluid : IfcMaterial;
  4186. PressureTimeSeries : OPTIONAL IfcTimeSeries;
  4187. UserDefinedPropertySource : OPTIONAL IfcLabel;
  4188. TemperatureSingleValue : OPTIONAL IfcThermodynamicTemperatureMeasure;
  4189. WetBulbTemperatureSingleValue : OPTIONAL IfcThermodynamicTemperatureMeasure;
  4190. WetBulbTemperatureTimeSeries : OPTIONAL IfcTimeSeries;
  4191. TemperatureTimeSeries : OPTIONAL IfcTimeSeries;
  4192. FlowrateSingleValue : OPTIONAL IfcDerivedMeasureValue;
  4193. FlowConditionSingleValue : OPTIONAL IfcPositiveRatioMeasure;
  4194. VelocitySingleValue : OPTIONAL IfcLinearVelocityMeasure;
  4195. PressureSingleValue : OPTIONAL IfcPressureMeasure;
  4196. END_ENTITY;
  4197. ENTITY IfcFooting
  4198. SUBTYPE OF (IfcBuildingElement);
  4199. PredefinedType : IfcFootingTypeEnum;
  4200. WHERE
  4201. WR1 : (PredefinedType <> IfcFootingTypeEnum.USERDEFINED) OR ((PredefinedType = IfcFootingTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));
  4202. END_ENTITY;
  4203. ENTITY IfcFuelProperties
  4204. SUBTYPE OF (IfcMaterialProperties);
  4205. CombustionTemperature : OPTIONAL IfcThermodynamicTemperatureMeasure;
  4206. CarbonContent : OPTIONAL IfcPositiveRatioMeasure;
  4207. LowerHeatingValue : OPTIONAL IfcHeatingValueMeasure;
  4208. HigherHeatingValue : OPTIONAL IfcHeatingValueMeasure;
  4209. UNIQUE
  4210. UR11 : Material;
  4211. END_ENTITY;
  4212. ENTITY IfcFurnishingElement
  4213. SUBTYPE OF (IfcElement);
  4214. END_ENTITY;
  4215. ENTITY IfcFurnishingElementType
  4216. SUPERTYPE OF (ONEOF
  4217. (IfcFurnitureType
  4218. ,IfcSystemFurnitureElementType))
  4219. SUBTYPE OF (IfcElementType);
  4220. END_ENTITY;
  4221. ENTITY IfcFurnitureStandard
  4222. SUBTYPE OF (IfcControl);
  4223. END_ENTITY;
  4224. ENTITY IfcFurnitureType
  4225. SUBTYPE OF (IfcFurnishingElementType);
  4226. AssemblyPlace : IfcAssemblyPlaceEnum;
  4227. END_ENTITY;
  4228. ENTITY IfcGasTerminalType
  4229. SUBTYPE OF (IfcFlowTerminalType);
  4230. PredefinedType : IfcGasTerminalTypeEnum;
  4231. WHERE
  4232. WR1 : (PredefinedType <> IfcGasTerminalTypeEnum.USERDEFINED) OR
  4233. ((PredefinedType = IfcGasTerminalTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  4234. END_ENTITY;
  4235. ENTITY IfcGeneralMaterialProperties
  4236. SUBTYPE OF (IfcMaterialProperties);
  4237. MolecularWeight : OPTIONAL IfcMolecularWeightMeasure;
  4238. Porosity : OPTIONAL IfcNormalisedRatioMeasure;
  4239. MassDensity : OPTIONAL IfcMassDensityMeasure;
  4240. UNIQUE
  4241. UR11 : Material;
  4242. END_ENTITY;
  4243. ENTITY IfcGeneralProfileProperties
  4244. SUPERTYPE OF (ONEOF
  4245. (IfcStructuralProfileProperties))
  4246. SUBTYPE OF (IfcProfileProperties);
  4247. PhysicalWeight : OPTIONAL IfcMassPerLengthMeasure;
  4248. Perimeter : OPTIONAL IfcPositiveLengthMeasure;
  4249. MinimumPlateThickness : OPTIONAL IfcPositiveLengthMeasure;
  4250. MaximumPlateThickness : OPTIONAL IfcPositiveLengthMeasure;
  4251. CrossSectionArea : OPTIONAL IfcAreaMeasure;
  4252. WHERE
  4253. WR1 : NOT(EXISTS(CrossSectionArea)) OR (CrossSectionArea > 0.);
  4254. END_ENTITY;
  4255. ENTITY IfcGeometricCurveSet
  4256. SUBTYPE OF (IfcGeometricSet);
  4257. WHERE
  4258. WR1 : SIZEOF(QUERY(Temp <* SELF\IfcGeometricSet.Elements |
  4259. 'IFC2X3.IFCSURFACE' IN TYPEOF(Temp))) = 0;
  4260. END_ENTITY;
  4261. ENTITY IfcGeometricRepresentationContext
  4262. SUPERTYPE OF (ONEOF
  4263. (IfcGeometricRepresentationSubContext))
  4264. SUBTYPE OF (IfcRepresentationContext);
  4265. CoordinateSpaceDimension : IfcDimensionCount;
  4266. Precision : OPTIONAL REAL;
  4267. WorldCoordinateSystem : IfcAxis2Placement;
  4268. TrueNorth : OPTIONAL IfcDirection;
  4269. INVERSE
  4270. HasSubContexts : SET [0:?] OF IfcGeometricRepresentationSubContext FOR ParentContext;
  4271. END_ENTITY;
  4272. ENTITY IfcGeometricRepresentationItem
  4273. ABSTRACT SUPERTYPE OF (ONEOF
  4274. (IfcAnnotationFillArea
  4275. ,IfcAnnotationSurface
  4276. ,IfcBooleanResult
  4277. ,IfcBoundingBox
  4278. ,IfcCartesianTransformationOperator
  4279. ,IfcCompositeCurveSegment
  4280. ,IfcCsgPrimitive3D
  4281. ,IfcCurve
  4282. ,IfcDefinedSymbol
  4283. ,IfcDirection
  4284. ,IfcDraughtingCallout
  4285. ,IfcFaceBasedSurfaceModel
  4286. ,IfcFillAreaStyleHatching
  4287. ,IfcFillAreaStyleTileSymbolWithStyle
  4288. ,IfcFillAreaStyleTiles
  4289. ,IfcGeometricSet
  4290. ,IfcHalfSpaceSolid
  4291. ,IfcLightSource
  4292. ,IfcOneDirectionRepeatFactor
  4293. ,IfcPlacement
  4294. ,IfcPlanarExtent
  4295. ,IfcPoint
  4296. ,IfcSectionedSpine
  4297. ,IfcShellBasedSurfaceModel
  4298. ,IfcSolidModel
  4299. ,IfcSurface
  4300. ,IfcTextLiteral
  4301. ,IfcVector))
  4302. SUBTYPE OF (IfcRepresentationItem);
  4303. END_ENTITY;
  4304. ENTITY IfcGeometricRepresentationSubContext
  4305. SUBTYPE OF (IfcGeometricRepresentationContext);
  4306. ParentContext : IfcGeometricRepresentationContext;
  4307. TargetScale : OPTIONAL IfcPositiveRatioMeasure;
  4308. TargetView : IfcGeometricProjectionEnum;
  4309. UserDefinedTargetView : OPTIONAL IfcLabel;
  4310. DERIVE
  4311. SELF\IfcGeometricRepresentationContext.WorldCoordinateSystem : IfcAxis2Placement := ParentContext.WorldCoordinateSystem;
  4312. SELF\IfcGeometricRepresentationContext.CoordinateSpaceDimension : IfcDimensionCount := ParentContext.CoordinateSpaceDimension;
  4313. SELF\IfcGeometricRepresentationContext.TrueNorth : IfcDirection := NVL(ParentContext.TrueNorth,SELF.WorldCoordinateSystem.P[2]);
  4314. SELF\IfcGeometricRepresentationContext.Precision : REAL := NVL(ParentContext.Precision,1.E-5);
  4315. WHERE
  4316. WR31 : NOT('IFC2X3.IFCGEOMETRICREPRESENTATIONSUBCONTEXT' IN TYPEOF(ParentContext));
  4317. WR32 : (TargetView <> IfcGeometricProjectionEnum.USERDEFINED) OR
  4318. ((TargetView = IfcGeometricProjectionEnum.USERDEFINED) AND
  4319. EXISTS(UserDefinedTargetView));
  4320. END_ENTITY;
  4321. ENTITY IfcGeometricSet
  4322. SUPERTYPE OF (ONEOF
  4323. (IfcGeometricCurveSet))
  4324. SUBTYPE OF (IfcGeometricRepresentationItem);
  4325. Elements : SET [1:?] OF IfcGeometricSetSelect;
  4326. DERIVE
  4327. Dim : IfcDimensionCount := Elements[1].Dim;
  4328. WHERE
  4329. WR21 : SIZEOF(QUERY(Temp <* Elements |
  4330. Temp.Dim <> Elements[1].Dim))
  4331. = 0;
  4332. END_ENTITY;
  4333. ENTITY IfcGrid
  4334. SUBTYPE OF (IfcProduct);
  4335. UAxes : LIST [1:?] OF UNIQUE IfcGridAxis;
  4336. VAxes : LIST [1:?] OF UNIQUE IfcGridAxis;
  4337. WAxes : OPTIONAL LIST [1:?] OF UNIQUE IfcGridAxis;
  4338. INVERSE
  4339. ContainedInStructure : SET [0:1] OF IfcRelContainedInSpatialStructure FOR RelatedElements;
  4340. WHERE
  4341. WR41 : EXISTS(SELF\IfcProduct.ObjectPlacement);
  4342. END_ENTITY;
  4343. ENTITY IfcGridAxis;
  4344. AxisTag : OPTIONAL IfcLabel;
  4345. AxisCurve : IfcCurve;
  4346. SameSense : IfcBoolean;
  4347. INVERSE
  4348. PartOfW : SET [0:1] OF IfcGrid FOR WAxes;
  4349. PartOfV : SET [0:1] OF IfcGrid FOR VAxes;
  4350. PartOfU : SET [0:1] OF IfcGrid FOR UAxes;
  4351. HasIntersections : SET [0:?] OF IfcVirtualGridIntersection FOR IntersectingAxes;
  4352. WHERE
  4353. WR1 : AxisCurve.Dim = 2;
  4354. WR2 : (SIZEOF(PartOfU) = 1) XOR (SIZEOF(PartOfV) = 1) XOR (SIZEOF(PartOfW) = 1);
  4355. END_ENTITY;
  4356. ENTITY IfcGridPlacement
  4357. SUBTYPE OF (IfcObjectPlacement);
  4358. PlacementLocation : IfcVirtualGridIntersection;
  4359. PlacementRefDirection : OPTIONAL IfcVirtualGridIntersection;
  4360. END_ENTITY;
  4361. ENTITY IfcGroup
  4362. SUPERTYPE OF (ONEOF
  4363. (IfcAsset
  4364. ,IfcCondition
  4365. ,IfcInventory
  4366. ,IfcStructuralLoadGroup
  4367. ,IfcStructuralResultGroup
  4368. ,IfcSystem
  4369. ,IfcZone))
  4370. SUBTYPE OF (IfcObject);
  4371. INVERSE
  4372. IsGroupedBy : IfcRelAssignsToGroup FOR RelatingGroup;
  4373. END_ENTITY;
  4374. ENTITY IfcHalfSpaceSolid
  4375. SUPERTYPE OF (ONEOF
  4376. (IfcBoxedHalfSpace
  4377. ,IfcPolygonalBoundedHalfSpace))
  4378. SUBTYPE OF (IfcGeometricRepresentationItem);
  4379. BaseSurface : IfcSurface;
  4380. AgreementFlag : BOOLEAN;
  4381. DERIVE
  4382. Dim : IfcDimensionCount := 3;
  4383. END_ENTITY;
  4384. ENTITY IfcHeatExchangerType
  4385. SUBTYPE OF (IfcEnergyConversionDeviceType);
  4386. PredefinedType : IfcHeatExchangerTypeEnum;
  4387. WHERE
  4388. WR1 : (PredefinedType <> IfcHeatExchangerTypeEnum.USERDEFINED) OR
  4389. ((PredefinedType = IfcHeatExchangerTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  4390. END_ENTITY;
  4391. ENTITY IfcHumidifierType
  4392. SUBTYPE OF (IfcEnergyConversionDeviceType);
  4393. PredefinedType : IfcHumidifierTypeEnum;
  4394. WHERE
  4395. WR1 : (PredefinedType <> IfcHumidifierTypeEnum.USERDEFINED) OR
  4396. ((PredefinedType = IfcHumidifierTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  4397. END_ENTITY;
  4398. ENTITY IfcHygroscopicMaterialProperties
  4399. SUBTYPE OF (IfcMaterialProperties);
  4400. UpperVaporResistanceFactor : OPTIONAL IfcPositiveRatioMeasure;
  4401. LowerVaporResistanceFactor : OPTIONAL IfcPositiveRatioMeasure;
  4402. IsothermalMoistureCapacity : OPTIONAL IfcIsothermalMoistureCapacityMeasure;
  4403. VaporPermeability : OPTIONAL IfcVaporPermeabilityMeasure;
  4404. MoistureDiffusivity : OPTIONAL IfcMoistureDiffusivityMeasure;
  4405. UNIQUE
  4406. UR11 : Material;
  4407. END_ENTITY;
  4408. ENTITY IfcIShapeProfileDef
  4409. SUPERTYPE OF (ONEOF
  4410. (IfcAsymmetricIShapeProfileDef))
  4411. SUBTYPE OF (IfcParameterizedProfileDef);
  4412. OverallWidth : IfcPositiveLengthMeasure;
  4413. OverallDepth : IfcPositiveLengthMeasure;
  4414. WebThickness : IfcPositiveLengthMeasure;
  4415. FlangeThickness : IfcPositiveLengthMeasure;
  4416. FilletRadius : OPTIONAL IfcPositiveLengthMeasure;
  4417. WHERE
  4418. WR1 : FlangeThickness < (OverallDepth / 2.);
  4419. WR2 : WebThickness < OverallWidth;
  4420. WR3 : NOT(EXISTS(FilletRadius)) OR
  4421. ((FilletRadius <= (OverallWidth - WebThickness)/2.) AND
  4422. (FilletRadius <= (OverallDepth - (2. * FlangeThickness))/2.));
  4423. END_ENTITY;
  4424. ENTITY IfcImageTexture
  4425. SUBTYPE OF (IfcSurfaceTexture);
  4426. UrlReference : IfcIdentifier;
  4427. END_ENTITY;
  4428. ENTITY IfcInventory
  4429. SUBTYPE OF (IfcGroup);
  4430. InventoryType : IfcInventoryTypeEnum;
  4431. Jurisdiction : IfcActorSelect;
  4432. ResponsiblePersons : SET [1:?] OF IfcPerson;
  4433. LastUpdateDate : IfcCalendarDate;
  4434. CurrentValue : OPTIONAL IfcCostValue;
  4435. OriginalValue : OPTIONAL IfcCostValue;
  4436. WHERE
  4437. WR41 : SIZEOF(QUERY(temp <* SELF\IfcGroup.IsGroupedBy.RelatedObjects |
  4438. NOT( ('IFC2X3.IFCSPACE' IN TYPEOF (temp)) OR
  4439. ('IFC2X3.IFCASSET' IN TYPEOF (temp)) OR
  4440. ('IFC2X3.IFCFURNISHINGELEMENT' IN TYPEOF (temp))
  4441. ))) = 0;
  4442. END_ENTITY;
  4443. ENTITY IfcIrregularTimeSeries
  4444. SUBTYPE OF (IfcTimeSeries);
  4445. Values : LIST [1:?] OF IfcIrregularTimeSeriesValue;
  4446. END_ENTITY;
  4447. ENTITY IfcIrregularTimeSeriesValue;
  4448. TimeStamp : IfcDateTimeSelect;
  4449. ListValues : LIST [1:?] OF IfcValue;
  4450. END_ENTITY;
  4451. ENTITY IfcJunctionBoxType
  4452. SUBTYPE OF (IfcFlowFittingType);
  4453. PredefinedType : IfcJunctionBoxTypeEnum;
  4454. END_ENTITY;
  4455. ENTITY IfcLShapeProfileDef
  4456. SUBTYPE OF (IfcParameterizedProfileDef);
  4457. Depth : IfcPositiveLengthMeasure;
  4458. Width : OPTIONAL IfcPositiveLengthMeasure;
  4459. Thickness : IfcPositiveLengthMeasure;
  4460. FilletRadius : OPTIONAL IfcPositiveLengthMeasure;
  4461. EdgeRadius : OPTIONAL IfcPositiveLengthMeasure;
  4462. LegSlope : OPTIONAL IfcPlaneAngleMeasure;
  4463. CentreOfGravityInX : OPTIONAL IfcPositiveLengthMeasure;
  4464. CentreOfGravityInY : OPTIONAL IfcPositiveLengthMeasure;
  4465. WHERE
  4466. WR21 : Thickness < Depth;
  4467. WR22 : NOT(EXISTS(Width)) OR (Thickness < Width);
  4468. END_ENTITY;
  4469. ENTITY IfcLaborResource
  4470. SUBTYPE OF (IfcConstructionResource);
  4471. SkillSet : OPTIONAL IfcText;
  4472. END_ENTITY;
  4473. ENTITY IfcLampType
  4474. SUBTYPE OF (IfcFlowTerminalType);
  4475. PredefinedType : IfcLampTypeEnum;
  4476. END_ENTITY;
  4477. ENTITY IfcLibraryInformation;
  4478. Name : IfcLabel;
  4479. Version : OPTIONAL IfcLabel;
  4480. Publisher : OPTIONAL IfcOrganization;
  4481. VersionDate : OPTIONAL IfcCalendarDate;
  4482. LibraryReference : OPTIONAL SET [1:?] OF IfcLibraryReference;
  4483. END_ENTITY;
  4484. ENTITY IfcLibraryReference
  4485. SUBTYPE OF (IfcExternalReference);
  4486. INVERSE
  4487. ReferenceIntoLibrary : SET [0:1] OF IfcLibraryInformation FOR LibraryReference;
  4488. END_ENTITY;
  4489. ENTITY IfcLightDistributionData;
  4490. MainPlaneAngle : IfcPlaneAngleMeasure;
  4491. SecondaryPlaneAngle : LIST [1:?] OF IfcPlaneAngleMeasure;
  4492. LuminousIntensity : LIST [1:?] OF IfcLuminousIntensityDistributionMeasure;
  4493. END_ENTITY;
  4494. ENTITY IfcLightFixtureType
  4495. SUBTYPE OF (IfcFlowTerminalType);
  4496. PredefinedType : IfcLightFixtureTypeEnum;
  4497. END_ENTITY;
  4498. ENTITY IfcLightIntensityDistribution;
  4499. LightDistributionCurve : IfcLightDistributionCurveEnum;
  4500. DistributionData : LIST [1:?] OF IfcLightDistributionData;
  4501. END_ENTITY;
  4502. ENTITY IfcLightSource
  4503. ABSTRACT SUPERTYPE OF (ONEOF
  4504. (IfcLightSourceAmbient
  4505. ,IfcLightSourceDirectional
  4506. ,IfcLightSourceGoniometric
  4507. ,IfcLightSourcePositional))
  4508. SUBTYPE OF (IfcGeometricRepresentationItem);
  4509. Name : OPTIONAL IfcLabel;
  4510. LightColour : IfcColourRgb;
  4511. AmbientIntensity : OPTIONAL IfcNormalisedRatioMeasure;
  4512. Intensity : OPTIONAL IfcNormalisedRatioMeasure;
  4513. END_ENTITY;
  4514. ENTITY IfcLightSourceAmbient
  4515. SUBTYPE OF (IfcLightSource);
  4516. END_ENTITY;
  4517. ENTITY IfcLightSourceDirectional
  4518. SUBTYPE OF (IfcLightSource);
  4519. Orientation : IfcDirection;
  4520. END_ENTITY;
  4521. ENTITY IfcLightSourceGoniometric
  4522. SUBTYPE OF (IfcLightSource);
  4523. Position : IfcAxis2Placement3D;
  4524. ColourAppearance : OPTIONAL IfcColourRgb;
  4525. ColourTemperature : IfcThermodynamicTemperatureMeasure;
  4526. LuminousFlux : IfcLuminousFluxMeasure;
  4527. LightEmissionSource : IfcLightEmissionSourceEnum;
  4528. LightDistributionDataSource : IfcLightDistributionDataSourceSelect;
  4529. END_ENTITY;
  4530. ENTITY IfcLightSourcePositional
  4531. SUPERTYPE OF (ONEOF
  4532. (IfcLightSourceSpot))
  4533. SUBTYPE OF (IfcLightSource);
  4534. Position : IfcCartesianPoint;
  4535. Radius : IfcPositiveLengthMeasure;
  4536. ConstantAttenuation : IfcReal;
  4537. DistanceAttenuation : IfcReal;
  4538. QuadricAttenuation : IfcReal;
  4539. END_ENTITY;
  4540. ENTITY IfcLightSourceSpot
  4541. SUBTYPE OF (IfcLightSourcePositional);
  4542. Orientation : IfcDirection;
  4543. ConcentrationExponent : OPTIONAL IfcReal;
  4544. SpreadAngle : IfcPositivePlaneAngleMeasure;
  4545. BeamWidthAngle : IfcPositivePlaneAngleMeasure;
  4546. END_ENTITY;
  4547. ENTITY IfcLine
  4548. SUBTYPE OF (IfcCurve);
  4549. Pnt : IfcCartesianPoint;
  4550. Dir : IfcVector;
  4551. WHERE
  4552. WR1 : Dir.Dim = Pnt.Dim;
  4553. END_ENTITY;
  4554. ENTITY IfcLinearDimension
  4555. SUBTYPE OF (IfcDimensionCurveDirectedCallout);
  4556. END_ENTITY;
  4557. ENTITY IfcLocalPlacement
  4558. SUBTYPE OF (IfcObjectPlacement);
  4559. PlacementRelTo : OPTIONAL IfcObjectPlacement;
  4560. RelativePlacement : IfcAxis2Placement;
  4561. WHERE
  4562. WR21 : IfcCorrectLocalPlacement(RelativePlacement, PlacementRelTo);
  4563. END_ENTITY;
  4564. ENTITY IfcLocalTime;
  4565. HourComponent : IfcHourInDay;
  4566. MinuteComponent : OPTIONAL IfcMinuteInHour;
  4567. SecondComponent : OPTIONAL IfcSecondInMinute;
  4568. Zone : OPTIONAL IfcCoordinatedUniversalTimeOffset;
  4569. DaylightSavingOffset : OPTIONAL IfcDaylightSavingHour;
  4570. WHERE
  4571. WR21 : IfcValidTime (SELF);
  4572. END_ENTITY;
  4573. ENTITY IfcLoop
  4574. SUPERTYPE OF (ONEOF
  4575. (IfcEdgeLoop
  4576. ,IfcPolyLoop
  4577. ,IfcVertexLoop))
  4578. SUBTYPE OF (IfcTopologicalRepresentationItem);
  4579. END_ENTITY;
  4580. ENTITY IfcManifoldSolidBrep
  4581. ABSTRACT SUPERTYPE OF (ONEOF
  4582. (IfcFacetedBrep
  4583. ,IfcFacetedBrepWithVoids))
  4584. SUBTYPE OF (IfcSolidModel);
  4585. Outer : IfcClosedShell;
  4586. END_ENTITY;
  4587. ENTITY IfcMappedItem
  4588. SUBTYPE OF (IfcRepresentationItem);
  4589. MappingSource : IfcRepresentationMap;
  4590. MappingTarget : IfcCartesianTransformationOperator;
  4591. END_ENTITY;
  4592. ENTITY IfcMaterial;
  4593. Name : IfcLabel;
  4594. INVERSE
  4595. HasRepresentation : SET [0:1] OF IfcMaterialDefinitionRepresentation FOR RepresentedMaterial;
  4596. ClassifiedAs : SET [0:1] OF IfcMaterialClassificationRelationship FOR ClassifiedMaterial;
  4597. END_ENTITY;
  4598. ENTITY IfcMaterialClassificationRelationship;
  4599. MaterialClassifications : SET [1:?] OF IfcClassificationNotationSelect;
  4600. ClassifiedMaterial : IfcMaterial;
  4601. END_ENTITY;
  4602. ENTITY IfcMaterialDefinitionRepresentation
  4603. SUBTYPE OF (IfcProductRepresentation);
  4604. RepresentedMaterial : IfcMaterial;
  4605. WHERE
  4606. WR11 : SIZEOF(QUERY(temp <* Representations |
  4607. (NOT('IFC2X3.IFCSTYLEDREPRESENTATION' IN TYPEOF(temp)))
  4608. )) = 0;
  4609. END_ENTITY;
  4610. ENTITY IfcMaterialLayer;
  4611. Material : OPTIONAL IfcMaterial;
  4612. LayerThickness : IfcPositiveLengthMeasure;
  4613. IsVentilated : OPTIONAL IfcLogical;
  4614. INVERSE
  4615. ToMaterialLayerSet : IfcMaterialLayerSet FOR MaterialLayers;
  4616. END_ENTITY;
  4617. ENTITY IfcMaterialLayerSet;
  4618. MaterialLayers : LIST [1:?] OF IfcMaterialLayer;
  4619. LayerSetName : OPTIONAL IfcLabel;
  4620. DERIVE
  4621. TotalThickness : IfcLengthMeasure := IfcMlsTotalThickness(SELF);
  4622. END_ENTITY;
  4623. ENTITY IfcMaterialLayerSetUsage;
  4624. ForLayerSet : IfcMaterialLayerSet;
  4625. LayerSetDirection : IfcLayerSetDirectionEnum;
  4626. DirectionSense : IfcDirectionSenseEnum;
  4627. OffsetFromReferenceLine : IfcLengthMeasure;
  4628. END_ENTITY;
  4629. ENTITY IfcMaterialList;
  4630. Materials : LIST [1:?] OF IfcMaterial;
  4631. END_ENTITY;
  4632. ENTITY IfcMaterialProperties
  4633. ABSTRACT SUPERTYPE OF (ONEOF
  4634. (IfcExtendedMaterialProperties
  4635. ,IfcFuelProperties
  4636. ,IfcGeneralMaterialProperties
  4637. ,IfcHygroscopicMaterialProperties
  4638. ,IfcMechanicalMaterialProperties
  4639. ,IfcOpticalMaterialProperties
  4640. ,IfcProductsOfCombustionProperties
  4641. ,IfcThermalMaterialProperties
  4642. ,IfcWaterProperties));
  4643. Material : IfcMaterial;
  4644. END_ENTITY;
  4645. ENTITY IfcMeasureWithUnit;
  4646. ValueComponent : IfcValue;
  4647. UnitComponent : IfcUnit;
  4648. END_ENTITY;
  4649. ENTITY IfcMechanicalConcreteMaterialProperties
  4650. SUBTYPE OF (IfcMechanicalMaterialProperties);
  4651. CompressiveStrength : OPTIONAL IfcPressureMeasure;
  4652. MaxAggregateSize : OPTIONAL IfcPositiveLengthMeasure;
  4653. AdmixturesDescription : OPTIONAL IfcText;
  4654. Workability : OPTIONAL IfcText;
  4655. ProtectivePoreRatio : OPTIONAL IfcNormalisedRatioMeasure;
  4656. WaterImpermeability : OPTIONAL IfcText;
  4657. END_ENTITY;
  4658. ENTITY IfcMechanicalFastener
  4659. SUBTYPE OF (IfcFastener);
  4660. NominalDiameter : OPTIONAL IfcPositiveLengthMeasure;
  4661. NominalLength : OPTIONAL IfcPositiveLengthMeasure;
  4662. END_ENTITY;
  4663. ENTITY IfcMechanicalFastenerType
  4664. SUBTYPE OF (IfcFastenerType);
  4665. END_ENTITY;
  4666. ENTITY IfcMechanicalMaterialProperties
  4667. SUPERTYPE OF (ONEOF
  4668. (IfcMechanicalConcreteMaterialProperties
  4669. ,IfcMechanicalSteelMaterialProperties))
  4670. SUBTYPE OF (IfcMaterialProperties);
  4671. DynamicViscosity : OPTIONAL IfcDynamicViscosityMeasure;
  4672. YoungModulus : OPTIONAL IfcModulusOfElasticityMeasure;
  4673. ShearModulus : OPTIONAL IfcModulusOfElasticityMeasure;
  4674. PoissonRatio : OPTIONAL IfcPositiveRatioMeasure;
  4675. ThermalExpansionCoefficient : OPTIONAL IfcThermalExpansionCoefficientMeasure;
  4676. UNIQUE
  4677. UR11 : Material;
  4678. WHERE
  4679. WR21 : NOT(EXISTS(YoungModulus)) OR (YoungModulus >= 0.0);
  4680. WR22 : NOT(EXISTS(ShearModulus)) OR (ShearModulus >= 0.0);
  4681. END_ENTITY;
  4682. ENTITY IfcMechanicalSteelMaterialProperties
  4683. SUBTYPE OF (IfcMechanicalMaterialProperties);
  4684. YieldStress : OPTIONAL IfcPressureMeasure;
  4685. UltimateStress : OPTIONAL IfcPressureMeasure;
  4686. UltimateStrain : OPTIONAL IfcPositiveRatioMeasure;
  4687. HardeningModule : OPTIONAL IfcModulusOfElasticityMeasure;
  4688. ProportionalStress : OPTIONAL IfcPressureMeasure;
  4689. PlasticStrain : OPTIONAL IfcPositiveRatioMeasure;
  4690. Relaxations : OPTIONAL SET [1:?] OF IfcRelaxation;
  4691. WHERE
  4692. WR31 : NOT(EXISTS(YieldStress)) OR (YieldStress >= 0.);
  4693. WR32 : NOT(EXISTS(UltimateStress)) OR (UltimateStress >= 0.);
  4694. WR33 : NOT(EXISTS(HardeningModule)) OR (HardeningModule >= 0.);
  4695. WR34 : NOT(EXISTS(ProportionalStress)) OR (ProportionalStress >= 0.);
  4696. END_ENTITY;
  4697. ENTITY IfcMember
  4698. SUBTYPE OF (IfcBuildingElement);
  4699. END_ENTITY;
  4700. ENTITY IfcMemberType
  4701. SUBTYPE OF (IfcBuildingElementType);
  4702. PredefinedType : IfcMemberTypeEnum;
  4703. END_ENTITY;
  4704. ENTITY IfcMetric
  4705. SUBTYPE OF (IfcConstraint);
  4706. Benchmark : IfcBenchmarkEnum;
  4707. ValueSource : OPTIONAL IfcLabel;
  4708. DataValue : IfcMetricValueSelect;
  4709. END_ENTITY;
  4710. ENTITY IfcMonetaryUnit;
  4711. Currency : IfcCurrencyEnum;
  4712. END_ENTITY;
  4713. ENTITY IfcMotorConnectionType
  4714. SUBTYPE OF (IfcEnergyConversionDeviceType);
  4715. PredefinedType : IfcMotorConnectionTypeEnum;
  4716. END_ENTITY;
  4717. ENTITY IfcMove
  4718. SUBTYPE OF (IfcTask);
  4719. MoveFrom : IfcSpatialStructureElement;
  4720. MoveTo : IfcSpatialStructureElement;
  4721. PunchList : OPTIONAL LIST [1:?] OF UNIQUE IfcText;
  4722. WHERE
  4723. WR1 : SIZEOF(SELF\IfcProcess.OperatesOn) >= 1;
  4724. WR2 : SIZEOF(QUERY(temp <* OperatesOn |
  4725. SIZEOF(QUERY(temp2 <* temp.RelatedObjects |
  4726. ('IFC2X3.IFCACTOR' IN TYPEOF (temp2)) OR
  4727. ('IFC2X3.IFCEQUIPMENTELEMENT' IN TYPEOF (temp2)) OR
  4728. ('IFC2X3.IFCFURNISHINGELEMENT' IN TYPEOF (temp2)) )) >=1
  4729. )) >= 1;
  4730. WR3 : EXISTS(SELF\IfcRoot.Name);
  4731. END_ENTITY;
  4732. ENTITY IfcNamedUnit
  4733. ABSTRACT SUPERTYPE OF (ONEOF
  4734. (IfcContextDependentUnit
  4735. ,IfcConversionBasedUnit
  4736. ,IfcSIUnit));
  4737. Dimensions : IfcDimensionalExponents;
  4738. UnitType : IfcUnitEnum;
  4739. WHERE
  4740. WR1 : IfcCorrectDimensions (SELF.UnitType, SELF.Dimensions);
  4741. END_ENTITY;
  4742. ENTITY IfcObject
  4743. ABSTRACT SUPERTYPE OF (ONEOF
  4744. (IfcActor
  4745. ,IfcControl
  4746. ,IfcGroup
  4747. ,IfcProcess
  4748. ,IfcProduct
  4749. ,IfcProject
  4750. ,IfcResource))
  4751. SUBTYPE OF (IfcObjectDefinition);
  4752. ObjectType : OPTIONAL IfcLabel;
  4753. INVERSE
  4754. IsDefinedBy : SET [0:?] OF IfcRelDefines FOR RelatedObjects;
  4755. WHERE
  4756. WR1 : SIZEOF(QUERY(temp <* IsDefinedBy | 'IFC2X3.IFCRELDEFINESBYTYPE' IN TYPEOF(temp))) <= 1;
  4757. END_ENTITY;
  4758. ENTITY IfcObjectDefinition
  4759. ABSTRACT SUPERTYPE OF (ONEOF
  4760. (IfcObject
  4761. ,IfcTypeObject))
  4762. SUBTYPE OF (IfcRoot);
  4763. INVERSE
  4764. HasAssignments : SET [0:?] OF IfcRelAssigns FOR RelatedObjects;
  4765. IsDecomposedBy : SET [0:?] OF IfcRelDecomposes FOR RelatingObject;
  4766. Decomposes : SET [0:1] OF IfcRelDecomposes FOR RelatedObjects;
  4767. HasAssociations : SET [0:?] OF IfcRelAssociates FOR RelatedObjects;
  4768. END_ENTITY;
  4769. ENTITY IfcObjectPlacement
  4770. ABSTRACT SUPERTYPE OF (ONEOF
  4771. (IfcGridPlacement
  4772. ,IfcLocalPlacement));
  4773. INVERSE
  4774. PlacesObject : SET [1:1] OF IfcProduct FOR ObjectPlacement;
  4775. ReferencedByPlacements : SET [0:?] OF IfcLocalPlacement FOR PlacementRelTo;
  4776. END_ENTITY;
  4777. ENTITY IfcObjective
  4778. SUBTYPE OF (IfcConstraint);
  4779. BenchmarkValues : OPTIONAL IfcMetric;
  4780. ResultValues : OPTIONAL IfcMetric;
  4781. ObjectiveQualifier : IfcObjectiveEnum;
  4782. UserDefinedQualifier : OPTIONAL IfcLabel;
  4783. WHERE
  4784. WR21 : (ObjectiveQualifier <> IfcObjectiveEnum.USERDEFINED) OR
  4785. ((ObjectiveQualifier = IfcObjectiveEnum.USERDEFINED) AND EXISTS(SELF\IfcObjective.UserDefinedQualifier));
  4786. END_ENTITY;
  4787. ENTITY IfcOccupant
  4788. SUBTYPE OF (IfcActor);
  4789. PredefinedType : IfcOccupantTypeEnum;
  4790. WHERE
  4791. WR31 : NOT(PredefinedType = IfcOccupantTypeEnum.USERDEFINED)
  4792. OR EXISTS(SELF\IfcObject.ObjectType);
  4793. END_ENTITY;
  4794. ENTITY IfcOffsetCurve2D
  4795. SUBTYPE OF (IfcCurve);
  4796. BasisCurve : IfcCurve;
  4797. Distance : IfcLengthMeasure;
  4798. SelfIntersect : LOGICAL;
  4799. WHERE
  4800. WR1 : BasisCurve.Dim = 2;
  4801. END_ENTITY;
  4802. ENTITY IfcOffsetCurve3D
  4803. SUBTYPE OF (IfcCurve);
  4804. BasisCurve : IfcCurve;
  4805. Distance : IfcLengthMeasure;
  4806. SelfIntersect : LOGICAL;
  4807. RefDirection : IfcDirection;
  4808. WHERE
  4809. WR1 : BasisCurve.Dim = 3;
  4810. END_ENTITY;
  4811. ENTITY IfcOneDirectionRepeatFactor
  4812. SUPERTYPE OF (ONEOF
  4813. (IfcTwoDirectionRepeatFactor))
  4814. SUBTYPE OF (IfcGeometricRepresentationItem);
  4815. RepeatFactor : IfcVector;
  4816. END_ENTITY;
  4817. ENTITY IfcOpenShell
  4818. SUBTYPE OF (IfcConnectedFaceSet);
  4819. END_ENTITY;
  4820. ENTITY IfcOpeningElement
  4821. SUBTYPE OF (IfcFeatureElementSubtraction);
  4822. INVERSE
  4823. HasFillings : SET [0:?] OF IfcRelFillsElement FOR RelatingOpeningElement;
  4824. END_ENTITY;
  4825. ENTITY IfcOpticalMaterialProperties
  4826. SUBTYPE OF (IfcMaterialProperties);
  4827. VisibleTransmittance : OPTIONAL IfcPositiveRatioMeasure;
  4828. SolarTransmittance : OPTIONAL IfcPositiveRatioMeasure;
  4829. ThermalIrTransmittance : OPTIONAL IfcPositiveRatioMeasure;
  4830. ThermalIrEmissivityBack : OPTIONAL IfcPositiveRatioMeasure;
  4831. ThermalIrEmissivityFront : OPTIONAL IfcPositiveRatioMeasure;
  4832. VisibleReflectanceBack : OPTIONAL IfcPositiveRatioMeasure;
  4833. VisibleReflectanceFront : OPTIONAL IfcPositiveRatioMeasure;
  4834. SolarReflectanceFront : OPTIONAL IfcPositiveRatioMeasure;
  4835. SolarReflectanceBack : OPTIONAL IfcPositiveRatioMeasure;
  4836. UNIQUE
  4837. UR11 : Material;
  4838. END_ENTITY;
  4839. ENTITY IfcOrderAction
  4840. SUBTYPE OF (IfcTask);
  4841. ActionID : IfcIdentifier;
  4842. UNIQUE
  4843. UR2 : ActionID;
  4844. END_ENTITY;
  4845. ENTITY IfcOrganization;
  4846. Id : OPTIONAL IfcIdentifier;
  4847. Name : IfcLabel;
  4848. Description : OPTIONAL IfcText;
  4849. Roles : OPTIONAL LIST [1:?] OF IfcActorRole;
  4850. Addresses : OPTIONAL LIST [1:?] OF IfcAddress;
  4851. INVERSE
  4852. IsRelatedBy : SET [0:?] OF IfcOrganizationRelationship FOR RelatedOrganizations;
  4853. Relates : SET [0:?] OF IfcOrganizationRelationship FOR RelatingOrganization;
  4854. Engages : SET [0:?] OF IfcPersonAndOrganization FOR TheOrganization;
  4855. END_ENTITY;
  4856. ENTITY IfcOrganizationRelationship;
  4857. Name : IfcLabel;
  4858. Description : OPTIONAL IfcText;
  4859. RelatingOrganization : IfcOrganization;
  4860. RelatedOrganizations : SET [1:?] OF IfcOrganization;
  4861. END_ENTITY;
  4862. ENTITY IfcOrientedEdge
  4863. SUBTYPE OF (IfcEdge);
  4864. EdgeElement : IfcEdge;
  4865. Orientation : BOOLEAN;
  4866. DERIVE
  4867. SELF\IfcEdge.EdgeStart : IfcVertex := IfcBooleanChoose
  4868. (Orientation, EdgeElement.EdgeStart, EdgeElement.EdgeEnd);
  4869. SELF\IfcEdge.EdgeEnd : IfcVertex := IfcBooleanChoose
  4870. (Orientation, EdgeElement.EdgeEnd, EdgeElement.EdgeStart);
  4871. WHERE
  4872. WR1 : NOT('IFC2X3.IFCORIENTEDEDGE' IN TYPEOF(EdgeElement));
  4873. END_ENTITY;
  4874. ENTITY IfcOutletType
  4875. SUBTYPE OF (IfcFlowTerminalType);
  4876. PredefinedType : IfcOutletTypeEnum;
  4877. END_ENTITY;
  4878. ENTITY IfcOwnerHistory;
  4879. OwningUser : IfcPersonAndOrganization;
  4880. OwningApplication : IfcApplication;
  4881. State : OPTIONAL IfcStateEnum;
  4882. ChangeAction : IfcChangeActionEnum;
  4883. LastModifiedDate : OPTIONAL IfcTimeStamp;
  4884. LastModifyingUser : OPTIONAL IfcPersonAndOrganization;
  4885. LastModifyingApplication : OPTIONAL IfcApplication;
  4886. CreationDate : IfcTimeStamp;
  4887. END_ENTITY;
  4888. ENTITY IfcParameterizedProfileDef
  4889. ABSTRACT SUPERTYPE OF (ONEOF
  4890. (IfcCShapeProfileDef
  4891. ,IfcCircleProfileDef
  4892. ,IfcCraneRailAShapeProfileDef
  4893. ,IfcCraneRailFShapeProfileDef
  4894. ,IfcEllipseProfileDef
  4895. ,IfcIShapeProfileDef
  4896. ,IfcLShapeProfileDef
  4897. ,IfcRectangleProfileDef
  4898. ,IfcTShapeProfileDef
  4899. ,IfcTrapeziumProfileDef
  4900. ,IfcUShapeProfileDef
  4901. ,IfcZShapeProfileDef))
  4902. SUBTYPE OF (IfcProfileDef);
  4903. Position : IfcAxis2Placement2D;
  4904. END_ENTITY;
  4905. ENTITY IfcPath
  4906. SUBTYPE OF (IfcTopologicalRepresentationItem);
  4907. EdgeList : LIST [1:?] OF UNIQUE IfcOrientedEdge;
  4908. WHERE
  4909. WR1 : IfcPathHeadToTail(SELF);
  4910. END_ENTITY;
  4911. ENTITY IfcPerformanceHistory
  4912. SUBTYPE OF (IfcControl);
  4913. LifeCyclePhase : IfcLabel;
  4914. END_ENTITY;
  4915. ENTITY IfcPermeableCoveringProperties
  4916. SUBTYPE OF (IfcPropertySetDefinition);
  4917. OperationType : IfcPermeableCoveringOperationEnum;
  4918. PanelPosition : IfcWindowPanelPositionEnum;
  4919. FrameDepth : OPTIONAL IfcPositiveLengthMeasure;
  4920. FrameThickness : OPTIONAL IfcPositiveLengthMeasure;
  4921. ShapeAspectStyle : OPTIONAL IfcShapeAspect;
  4922. END_ENTITY;
  4923. ENTITY IfcPermit
  4924. SUBTYPE OF (IfcControl);
  4925. PermitID : IfcIdentifier;
  4926. UNIQUE
  4927. UR2 : PermitID;
  4928. END_ENTITY;
  4929. ENTITY IfcPerson;
  4930. Id : OPTIONAL IfcIdentifier;
  4931. FamilyName : OPTIONAL IfcLabel;
  4932. GivenName : OPTIONAL IfcLabel;
  4933. MiddleNames : OPTIONAL LIST [1:?] OF IfcLabel;
  4934. PrefixTitles : OPTIONAL LIST [1:?] OF IfcLabel;
  4935. SuffixTitles : OPTIONAL LIST [1:?] OF IfcLabel;
  4936. Roles : OPTIONAL LIST [1:?] OF IfcActorRole;
  4937. Addresses : OPTIONAL LIST [1:?] OF IfcAddress;
  4938. INVERSE
  4939. EngagedIn : SET [0:?] OF IfcPersonAndOrganization FOR ThePerson;
  4940. WHERE
  4941. WR1 : EXISTS(FamilyName) OR
  4942. EXISTS(GivenName);
  4943. END_ENTITY;
  4944. ENTITY IfcPersonAndOrganization;
  4945. ThePerson : IfcPerson;
  4946. TheOrganization : IfcOrganization;
  4947. Roles : OPTIONAL LIST [1:?] OF IfcActorRole;
  4948. END_ENTITY;
  4949. ENTITY IfcPhysicalComplexQuantity
  4950. SUBTYPE OF (IfcPhysicalQuantity);
  4951. HasQuantities : SET [1:?] OF IfcPhysicalQuantity;
  4952. Discrimination : IfcLabel;
  4953. Quality : OPTIONAL IfcLabel;
  4954. Usage : OPTIONAL IfcLabel;
  4955. WHERE
  4956. WR21 : SIZEOF(QUERY(temp <* HasQuantities | SELF :=: temp)) = 0;
  4957. END_ENTITY;
  4958. ENTITY IfcPhysicalQuantity
  4959. ABSTRACT SUPERTYPE OF (ONEOF
  4960. (IfcPhysicalComplexQuantity
  4961. ,IfcPhysicalSimpleQuantity));
  4962. Name : IfcLabel;
  4963. Description : OPTIONAL IfcText;
  4964. INVERSE
  4965. PartOfComplex : SET [0:1] OF IfcPhysicalComplexQuantity FOR HasQuantities;
  4966. END_ENTITY;
  4967. ENTITY IfcPhysicalSimpleQuantity
  4968. ABSTRACT SUPERTYPE OF (ONEOF
  4969. (IfcQuantityArea
  4970. ,IfcQuantityCount
  4971. ,IfcQuantityLength
  4972. ,IfcQuantityTime
  4973. ,IfcQuantityVolume
  4974. ,IfcQuantityWeight))
  4975. SUBTYPE OF (IfcPhysicalQuantity);
  4976. Unit : OPTIONAL IfcNamedUnit;
  4977. END_ENTITY;
  4978. ENTITY IfcPile
  4979. SUBTYPE OF (IfcBuildingElement);
  4980. PredefinedType : IfcPileTypeEnum;
  4981. ConstructionType : OPTIONAL IfcPileConstructionEnum;
  4982. WHERE
  4983. WR1 : (PredefinedType <> IfcPileTypeEnum.USERDEFINED) OR ((PredefinedType = IfcPileTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));
  4984. END_ENTITY;
  4985. ENTITY IfcPipeFittingType
  4986. SUBTYPE OF (IfcFlowFittingType);
  4987. PredefinedType : IfcPipeFittingTypeEnum;
  4988. WHERE
  4989. WR1 : (PredefinedType <> IfcPipeFittingTypeEnum.USERDEFINED) OR
  4990. ((PredefinedType = IfcPipeFittingTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  4991. END_ENTITY;
  4992. ENTITY IfcPipeSegmentType
  4993. SUBTYPE OF (IfcFlowSegmentType);
  4994. PredefinedType : IfcPipeSegmentTypeEnum;
  4995. WHERE
  4996. WR1 : (PredefinedType <> IfcPipeSegmentTypeEnum.USERDEFINED) OR
  4997. ((PredefinedType = IfcPipeSegmentTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  4998. END_ENTITY;
  4999. ENTITY IfcPixelTexture
  5000. SUBTYPE OF (IfcSurfaceTexture);
  5001. Width : IfcInteger;
  5002. Height : IfcInteger;
  5003. ColourComponents : IfcInteger;
  5004. Pixel : LIST [1:?] OF BINARY(32);
  5005. WHERE
  5006. WR21 : Width >= 1;
  5007. WR22 : Height >= 1;
  5008. WR23 : {1 <= ColourComponents <= 4};
  5009. WR24 : SIZEOF(Pixel) = (Width * Height);
  5010. END_ENTITY;
  5011. ENTITY IfcPlacement
  5012. ABSTRACT SUPERTYPE OF (ONEOF
  5013. (IfcAxis1Placement
  5014. ,IfcAxis2Placement2D
  5015. ,IfcAxis2Placement3D))
  5016. SUBTYPE OF (IfcGeometricRepresentationItem);
  5017. Location : IfcCartesianPoint;
  5018. DERIVE
  5019. Dim : IfcDimensionCount := Location.Dim;
  5020. END_ENTITY;
  5021. ENTITY IfcPlanarBox
  5022. SUBTYPE OF (IfcPlanarExtent);
  5023. Placement : IfcAxis2Placement;
  5024. END_ENTITY;
  5025. ENTITY IfcPlanarExtent
  5026. SUPERTYPE OF (ONEOF
  5027. (IfcPlanarBox))
  5028. SUBTYPE OF (IfcGeometricRepresentationItem);
  5029. SizeInX : IfcLengthMeasure;
  5030. SizeInY : IfcLengthMeasure;
  5031. END_ENTITY;
  5032. ENTITY IfcPlane
  5033. SUBTYPE OF (IfcElementarySurface);
  5034. END_ENTITY;
  5035. ENTITY IfcPlate
  5036. SUBTYPE OF (IfcBuildingElement);
  5037. END_ENTITY;
  5038. ENTITY IfcPlateType
  5039. SUBTYPE OF (IfcBuildingElementType);
  5040. PredefinedType : IfcPlateTypeEnum;
  5041. WHERE
  5042. WR1 : SIZEOF (QUERY(temp <* SELF\IfcObjectDefinition.HasAssociations | 'IFC2X3.IFCRELASSOCIATESMATERIAL' IN TYPEOF(temp) )) = 1;
  5043. END_ENTITY;
  5044. ENTITY IfcPoint
  5045. ABSTRACT SUPERTYPE OF (ONEOF
  5046. (IfcCartesianPoint
  5047. ,IfcPointOnCurve
  5048. ,IfcPointOnSurface))
  5049. SUBTYPE OF (IfcGeometricRepresentationItem);
  5050. END_ENTITY;
  5051. ENTITY IfcPointOnCurve
  5052. SUBTYPE OF (IfcPoint);
  5053. BasisCurve : IfcCurve;
  5054. PointParameter : IfcParameterValue;
  5055. DERIVE
  5056. Dim : IfcDimensionCount := BasisCurve.Dim;
  5057. END_ENTITY;
  5058. ENTITY IfcPointOnSurface
  5059. SUBTYPE OF (IfcPoint);
  5060. BasisSurface : IfcSurface;
  5061. PointParameterU : IfcParameterValue;
  5062. PointParameterV : IfcParameterValue;
  5063. DERIVE
  5064. Dim : IfcDimensionCount := BasisSurface.Dim;
  5065. END_ENTITY;
  5066. ENTITY IfcPolyLoop
  5067. SUBTYPE OF (IfcLoop);
  5068. Polygon : LIST [3:?] OF UNIQUE IfcCartesianPoint;
  5069. WHERE
  5070. WR21 : SIZEOF(QUERY(Temp <* Polygon | Temp.Dim <> Polygon[1].Dim)) = 0;
  5071. END_ENTITY;
  5072. ENTITY IfcPolygonalBoundedHalfSpace
  5073. SUBTYPE OF (IfcHalfSpaceSolid);
  5074. Position : IfcAxis2Placement3D;
  5075. PolygonalBoundary : IfcBoundedCurve;
  5076. WHERE
  5077. WR41 : PolygonalBoundary.Dim = 2;
  5078. WR42 : SIZEOF(TYPEOF(PolygonalBoundary) * [
  5079. 'IFC2X3.IFCPOLYLINE',
  5080. 'IFC2X3.IFCCOMPOSITECURVE']
  5081. ) = 1;
  5082. END_ENTITY;
  5083. ENTITY IfcPolyline
  5084. SUBTYPE OF (IfcBoundedCurve);
  5085. Points : LIST [2:?] OF IfcCartesianPoint;
  5086. WHERE
  5087. WR41 : SIZEOF(QUERY(Temp <* Points | Temp.Dim <> Points[1].Dim)) = 0;
  5088. END_ENTITY;
  5089. ENTITY IfcPort
  5090. ABSTRACT SUPERTYPE OF (ONEOF
  5091. (IfcDistributionPort))
  5092. SUBTYPE OF (IfcProduct);
  5093. INVERSE
  5094. ContainedIn : IfcRelConnectsPortToElement FOR RelatingPort;
  5095. ConnectedFrom : SET [0:1] OF IfcRelConnectsPorts FOR RelatedPort;
  5096. ConnectedTo : SET [0:1] OF IfcRelConnectsPorts FOR RelatingPort;
  5097. END_ENTITY;
  5098. ENTITY IfcPostalAddress
  5099. SUBTYPE OF (IfcAddress);
  5100. InternalLocation : OPTIONAL IfcLabel;
  5101. AddressLines : OPTIONAL LIST [1:?] OF IfcLabel;
  5102. PostalBox : OPTIONAL IfcLabel;
  5103. Town : OPTIONAL IfcLabel;
  5104. Region : OPTIONAL IfcLabel;
  5105. PostalCode : OPTIONAL IfcLabel;
  5106. Country : OPTIONAL IfcLabel;
  5107. WHERE
  5108. WR1 : EXISTS (InternalLocation) OR
  5109. EXISTS (AddressLines) OR
  5110. EXISTS (PostalBox) OR
  5111. EXISTS (PostalCode) OR
  5112. EXISTS (Town) OR
  5113. EXISTS (Region) OR
  5114. EXISTS (Country);
  5115. END_ENTITY;
  5116. ENTITY IfcPreDefinedColour
  5117. ABSTRACT SUPERTYPE OF (ONEOF
  5118. (IfcDraughtingPreDefinedColour))
  5119. SUBTYPE OF (IfcPreDefinedItem);
  5120. END_ENTITY;
  5121. ENTITY IfcPreDefinedCurveFont
  5122. ABSTRACT SUPERTYPE OF (ONEOF
  5123. (IfcDraughtingPreDefinedCurveFont))
  5124. SUBTYPE OF (IfcPreDefinedItem);
  5125. END_ENTITY;
  5126. ENTITY IfcPreDefinedDimensionSymbol
  5127. SUBTYPE OF (IfcPreDefinedSymbol);
  5128. WHERE
  5129. WR31 : SELF\IfcPreDefinedItem.Name IN ['arc length','conical taper','counterbore',
  5130. 'countersink','depth','diameter','plus minus','radius',
  5131. 'slope','spherical diameter','spherical radius','square'];
  5132. END_ENTITY;
  5133. ENTITY IfcPreDefinedItem
  5134. ABSTRACT SUPERTYPE OF (ONEOF
  5135. (IfcPreDefinedColour
  5136. ,IfcPreDefinedCurveFont
  5137. ,IfcPreDefinedSymbol
  5138. ,IfcPreDefinedTextFont));
  5139. Name : IfcLabel;
  5140. END_ENTITY;
  5141. ENTITY IfcPreDefinedPointMarkerSymbol
  5142. SUBTYPE OF (IfcPreDefinedSymbol);
  5143. WHERE
  5144. WR31 : SELF\IfcPreDefinedItem.Name IN ['asterisk','circle','dot','plus','square','triangle','x'];
  5145. END_ENTITY;
  5146. ENTITY IfcPreDefinedSymbol
  5147. ABSTRACT SUPERTYPE OF (ONEOF
  5148. (IfcPreDefinedDimensionSymbol
  5149. ,IfcPreDefinedPointMarkerSymbol
  5150. ,IfcPreDefinedTerminatorSymbol))
  5151. SUBTYPE OF (IfcPreDefinedItem);
  5152. END_ENTITY;
  5153. ENTITY IfcPreDefinedTerminatorSymbol
  5154. SUBTYPE OF (IfcPreDefinedSymbol);
  5155. WHERE
  5156. WR31 : SELF\IfcPreDefinedItem.Name IN ['blanked arrow','blanked box',
  5157. 'blanked dot','dimension origin','filled arrow','filled box',
  5158. 'filled dot','integral symbol','open arrow','slash','unfilled arrow'];
  5159. END_ENTITY;
  5160. ENTITY IfcPreDefinedTextFont
  5161. ABSTRACT SUPERTYPE OF (ONEOF
  5162. (IfcDraughtingPreDefinedTextFont
  5163. ,IfcTextStyleFontModel))
  5164. SUBTYPE OF (IfcPreDefinedItem);
  5165. END_ENTITY;
  5166. ENTITY IfcPresentationLayerAssignment
  5167. SUPERTYPE OF (ONEOF
  5168. (IfcPresentationLayerWithStyle));
  5169. Name : IfcLabel;
  5170. Description : OPTIONAL IfcText;
  5171. AssignedItems : SET [1:?] OF IfcLayeredItem;
  5172. Identifier : OPTIONAL IfcIdentifier;
  5173. END_ENTITY;
  5174. ENTITY IfcPresentationLayerWithStyle
  5175. SUBTYPE OF (IfcPresentationLayerAssignment);
  5176. LayerOn : LOGICAL;
  5177. LayerFrozen : LOGICAL;
  5178. LayerBlocked : LOGICAL;
  5179. LayerStyles : SET [0:?] OF IfcPresentationStyleSelect;
  5180. END_ENTITY;
  5181. ENTITY IfcPresentationStyle
  5182. ABSTRACT SUPERTYPE OF (ONEOF
  5183. (IfcCurveStyle
  5184. ,IfcFillAreaStyle
  5185. ,IfcSurfaceStyle
  5186. ,IfcSymbolStyle
  5187. ,IfcTextStyle));
  5188. Name : OPTIONAL IfcLabel;
  5189. END_ENTITY;
  5190. ENTITY IfcPresentationStyleAssignment;
  5191. Styles : SET [1:?] OF IfcPresentationStyleSelect;
  5192. END_ENTITY;
  5193. ENTITY IfcProcedure
  5194. SUBTYPE OF (IfcProcess);
  5195. ProcedureID : IfcIdentifier;
  5196. ProcedureType : IfcProcedureTypeEnum;
  5197. UserDefinedProcedureType : OPTIONAL IfcLabel;
  5198. WHERE
  5199. WR1 : SIZEOF(QUERY(temp <* SELF\IfcObjectDefinition.Decomposes | NOT('IFC2X3.IFCRELNESTS' IN TYPEOF(temp)))) = 0;
  5200. WR2 : SIZEOF(QUERY(temp <* SELF\IfcObjectDefinition.IsDecomposedBy | NOT('IFC2X3.IFCRELNESTS' IN TYPEOF(temp)))) = 0;
  5201. WR3 : EXISTS(SELF\IfcRoot.Name);
  5202. WR4 : (ProcedureType <> IfcProcedureTypeEnum.USERDEFINED) OR
  5203. ((ProcedureType = IfcProcedureTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcProcedure.UserDefinedProcedureType));
  5204. END_ENTITY;
  5205. ENTITY IfcProcess
  5206. ABSTRACT SUPERTYPE OF (ONEOF
  5207. (IfcProcedure
  5208. ,IfcTask))
  5209. SUBTYPE OF (IfcObject);
  5210. INVERSE
  5211. OperatesOn : SET [0:?] OF IfcRelAssignsToProcess FOR RelatingProcess;
  5212. IsSuccessorFrom : SET [0:?] OF IfcRelSequence FOR RelatedProcess;
  5213. IsPredecessorTo : SET [0:?] OF IfcRelSequence FOR RelatingProcess;
  5214. END_ENTITY;
  5215. ENTITY IfcProduct
  5216. ABSTRACT SUPERTYPE OF (ONEOF
  5217. (IfcAnnotation
  5218. ,IfcElement
  5219. ,IfcGrid
  5220. ,IfcPort
  5221. ,IfcProxy
  5222. ,IfcSpatialStructureElement
  5223. ,IfcStructuralActivity
  5224. ,IfcStructuralItem))
  5225. SUBTYPE OF (IfcObject);
  5226. ObjectPlacement : OPTIONAL IfcObjectPlacement;
  5227. Representation : OPTIONAL IfcProductRepresentation;
  5228. INVERSE
  5229. ReferencedBy : SET [0:?] OF IfcRelAssignsToProduct FOR RelatingProduct;
  5230. WHERE
  5231. WR1 : (EXISTS(Representation) AND EXISTS(ObjectPlacement))
  5232. OR (EXISTS(Representation) AND
  5233. (NOT('IFC2X3.IFCPRODUCTDEFINITIONSHAPE' IN TYPEOF(Representation))))
  5234. OR (NOT(EXISTS(Representation)));
  5235. END_ENTITY;
  5236. ENTITY IfcProductDefinitionShape
  5237. SUBTYPE OF (IfcProductRepresentation);
  5238. INVERSE
  5239. ShapeOfProduct : SET [1:1] OF IfcProduct FOR Representation;
  5240. HasShapeAspects : SET [0:?] OF IfcShapeAspect FOR PartOfProductDefinitionShape;
  5241. WHERE
  5242. WR11 : SIZEOF(QUERY(temp <* Representations |
  5243. (NOT('IFC2X3.IFCSHAPEMODEL' IN TYPEOF(temp)))
  5244. )) = 0;
  5245. END_ENTITY;
  5246. ENTITY IfcProductRepresentation
  5247. SUPERTYPE OF (ONEOF
  5248. (IfcMaterialDefinitionRepresentation
  5249. ,IfcProductDefinitionShape));
  5250. Name : OPTIONAL IfcLabel;
  5251. Description : OPTIONAL IfcText;
  5252. Representations : LIST [1:?] OF IfcRepresentation;
  5253. END_ENTITY;
  5254. ENTITY IfcProductsOfCombustionProperties
  5255. SUBTYPE OF (IfcMaterialProperties);
  5256. SpecificHeatCapacity : OPTIONAL IfcSpecificHeatCapacityMeasure;
  5257. N20Content : OPTIONAL IfcPositiveRatioMeasure;
  5258. COContent : OPTIONAL IfcPositiveRatioMeasure;
  5259. CO2Content : OPTIONAL IfcPositiveRatioMeasure;
  5260. UNIQUE
  5261. UR11 : Material;
  5262. END_ENTITY;
  5263. ENTITY IfcProfileDef
  5264. ABSTRACT SUPERTYPE OF (ONEOF
  5265. (IfcArbitraryClosedProfileDef
  5266. ,IfcArbitraryOpenProfileDef
  5267. ,IfcCompositeProfileDef
  5268. ,IfcDerivedProfileDef
  5269. ,IfcParameterizedProfileDef));
  5270. ProfileType : IfcProfileTypeEnum;
  5271. ProfileName : OPTIONAL IfcLabel;
  5272. END_ENTITY;
  5273. ENTITY IfcProfileProperties
  5274. ABSTRACT SUPERTYPE OF (ONEOF
  5275. (IfcGeneralProfileProperties
  5276. ,IfcRibPlateProfileProperties));
  5277. ProfileName : OPTIONAL IfcLabel;
  5278. ProfileDefinition : OPTIONAL IfcProfileDef;
  5279. END_ENTITY;
  5280. ENTITY IfcProject
  5281. SUBTYPE OF (IfcObject);
  5282. LongName : OPTIONAL IfcLabel;
  5283. Phase : OPTIONAL IfcLabel;
  5284. RepresentationContexts : SET [1:?] OF IfcRepresentationContext;
  5285. UnitsInContext : IfcUnitAssignment;
  5286. WHERE
  5287. WR31 : EXISTS(SELF\IfcRoot.Name);
  5288. WR32 : SIZEOF(QUERY(Temp <* RepresentationContexts |
  5289. 'IFC2X3.IFCGEOMETRICREPRESENTATIONSUBCONTEXT' IN TYPEOF(Temp)
  5290. )) = 0;
  5291. WR33 : SIZEOF(SELF\IfcObjectDefinition.Decomposes) = 0;
  5292. END_ENTITY;
  5293. ENTITY IfcProjectOrder
  5294. SUBTYPE OF (IfcControl);
  5295. ID : IfcIdentifier;
  5296. PredefinedType : IfcProjectOrderTypeEnum;
  5297. Status : OPTIONAL IfcLabel;
  5298. UNIQUE
  5299. UR2 : ID;
  5300. END_ENTITY;
  5301. ENTITY IfcProjectOrderRecord
  5302. SUBTYPE OF (IfcControl);
  5303. Records : LIST [1:?] OF UNIQUE IfcRelAssignsToProjectOrder;
  5304. PredefinedType : IfcProjectOrderRecordTypeEnum;
  5305. END_ENTITY;
  5306. ENTITY IfcProjectionCurve
  5307. SUBTYPE OF (IfcAnnotationCurveOccurrence);
  5308. END_ENTITY;
  5309. ENTITY IfcProjectionElement
  5310. SUBTYPE OF (IfcFeatureElementAddition);
  5311. END_ENTITY;
  5312. ENTITY IfcProperty
  5313. ABSTRACT SUPERTYPE OF (ONEOF
  5314. (IfcComplexProperty
  5315. ,IfcSimpleProperty));
  5316. Name : IfcIdentifier;
  5317. Description : OPTIONAL IfcText;
  5318. INVERSE
  5319. PropertyForDependance : SET [0:?] OF IfcPropertyDependencyRelationship FOR DependingProperty;
  5320. PropertyDependsOn : SET [0:?] OF IfcPropertyDependencyRelationship FOR DependantProperty;
  5321. PartOfComplex : SET [0:1] OF IfcComplexProperty FOR HasProperties;
  5322. END_ENTITY;
  5323. ENTITY IfcPropertyBoundedValue
  5324. SUBTYPE OF (IfcSimpleProperty);
  5325. UpperBoundValue : OPTIONAL IfcValue;
  5326. LowerBoundValue : OPTIONAL IfcValue;
  5327. Unit : OPTIONAL IfcUnit;
  5328. WHERE
  5329. WR21 : NOT(EXISTS(UpperBoundValue)) OR NOT(EXISTS(LowerBoundValue)) OR
  5330. (TYPEOF(UpperBoundValue) = TYPEOF(LowerBoundValue));
  5331. WR22 : EXISTS(UpperBoundValue) OR EXISTS(LowerBoundValue);
  5332. END_ENTITY;
  5333. ENTITY IfcPropertyConstraintRelationship;
  5334. RelatingConstraint : IfcConstraint;
  5335. RelatedProperties : SET [1:?] OF IfcProperty;
  5336. Name : OPTIONAL IfcLabel;
  5337. Description : OPTIONAL IfcText;
  5338. END_ENTITY;
  5339. ENTITY IfcPropertyDefinition
  5340. ABSTRACT SUPERTYPE OF (ONEOF
  5341. (IfcPropertySetDefinition))
  5342. SUBTYPE OF (IfcRoot);
  5343. INVERSE
  5344. HasAssociations : SET [0:?] OF IfcRelAssociates FOR RelatedObjects;
  5345. END_ENTITY;
  5346. ENTITY IfcPropertyDependencyRelationship;
  5347. DependingProperty : IfcProperty;
  5348. DependantProperty : IfcProperty;
  5349. Name : OPTIONAL IfcLabel;
  5350. Description : OPTIONAL IfcText;
  5351. Expression : OPTIONAL IfcText;
  5352. WHERE
  5353. WR1 : DependingProperty :<>: DependantProperty;
  5354. END_ENTITY;
  5355. ENTITY IfcPropertyEnumeratedValue
  5356. SUBTYPE OF (IfcSimpleProperty);
  5357. EnumerationValues : LIST [1:?] OF IfcValue;
  5358. EnumerationReference : OPTIONAL IfcPropertyEnumeration;
  5359. WHERE
  5360. WR1 : NOT(EXISTS(EnumerationReference)) OR
  5361. (SIZEOF(QUERY(temp <* EnumerationValues |
  5362. temp IN EnumerationReference.EnumerationValues))
  5363. = SIZEOF(EnumerationValues));
  5364. END_ENTITY;
  5365. ENTITY IfcPropertyEnumeration;
  5366. Name : IfcLabel;
  5367. EnumerationValues : LIST [1:?] OF UNIQUE IfcValue;
  5368. Unit : OPTIONAL IfcUnit;
  5369. UNIQUE
  5370. UR1 : Name;
  5371. WHERE
  5372. WR01 : SIZEOF(QUERY(temp <* SELF.EnumerationValues |
  5373. NOT(TYPEOF(SELF.EnumerationValues[1]) = TYPEOF(temp))
  5374. )) = 0;
  5375. END_ENTITY;
  5376. ENTITY IfcPropertyListValue
  5377. SUBTYPE OF (IfcSimpleProperty);
  5378. ListValues : LIST [1:?] OF IfcValue;
  5379. Unit : OPTIONAL IfcUnit;
  5380. WHERE
  5381. WR31 : SIZEOF(QUERY(temp <* SELF.ListValues |
  5382. NOT(TYPEOF(SELF.ListValues[1]) = TYPEOF(temp))
  5383. )) = 0;
  5384. END_ENTITY;
  5385. ENTITY IfcPropertyReferenceValue
  5386. SUBTYPE OF (IfcSimpleProperty);
  5387. UsageName : OPTIONAL IfcLabel;
  5388. PropertyReference : IfcObjectReferenceSelect;
  5389. END_ENTITY;
  5390. ENTITY IfcPropertySet
  5391. SUBTYPE OF (IfcPropertySetDefinition);
  5392. HasProperties : SET [1:?] OF IfcProperty;
  5393. WHERE
  5394. WR31 : EXISTS(SELF\IfcRoot.Name);
  5395. WR32 : IfcUniquePropertyName(HasProperties);
  5396. END_ENTITY;
  5397. ENTITY IfcPropertySetDefinition
  5398. ABSTRACT SUPERTYPE OF (ONEOF
  5399. (IfcDoorLiningProperties
  5400. ,IfcDoorPanelProperties
  5401. ,IfcElementQuantity
  5402. ,IfcEnergyProperties
  5403. ,IfcFluidFlowProperties
  5404. ,IfcPermeableCoveringProperties
  5405. ,IfcPropertySet
  5406. ,IfcReinforcementDefinitionProperties
  5407. ,IfcServiceLifeFactor
  5408. ,IfcSoundProperties
  5409. ,IfcSoundValue
  5410. ,IfcSpaceThermalLoadProperties
  5411. ,IfcWindowLiningProperties
  5412. ,IfcWindowPanelProperties))
  5413. SUBTYPE OF (IfcPropertyDefinition);
  5414. INVERSE
  5415. PropertyDefinitionOf : SET [0:1] OF IfcRelDefinesByProperties FOR RelatingPropertyDefinition;
  5416. DefinesType : SET [0:1] OF IfcTypeObject FOR HasPropertySets;
  5417. END_ENTITY;
  5418. ENTITY IfcPropertySingleValue
  5419. SUBTYPE OF (IfcSimpleProperty);
  5420. NominalValue : OPTIONAL IfcValue;
  5421. Unit : OPTIONAL IfcUnit;
  5422. END_ENTITY;
  5423. ENTITY IfcPropertyTableValue
  5424. SUBTYPE OF (IfcSimpleProperty);
  5425. DefiningValues : LIST [1:?] OF UNIQUE IfcValue;
  5426. DefinedValues : LIST [1:?] OF IfcValue;
  5427. Expression : OPTIONAL IfcText;
  5428. DefiningUnit : OPTIONAL IfcUnit;
  5429. DefinedUnit : OPTIONAL IfcUnit;
  5430. WHERE
  5431. WR1 : SIZEOF(DefiningValues) = SIZEOF(DefinedValues);
  5432. WR2 : SIZEOF(QUERY(temp <* SELF.DefiningValues | TYPEOF(temp) <> TYPEOF(SELF.DefiningValues[1])))=0;
  5433. WR3 : SIZEOF(QUERY(temp <* SELF.DefinedValues | TYPEOF(temp) <> TYPEOF(SELF.DefinedValues[1])))=0;
  5434. END_ENTITY;
  5435. ENTITY IfcProtectiveDeviceType
  5436. SUBTYPE OF (IfcFlowControllerType);
  5437. PredefinedType : IfcProtectiveDeviceTypeEnum;
  5438. END_ENTITY;
  5439. ENTITY IfcProxy
  5440. SUBTYPE OF (IfcProduct);
  5441. ProxyType : IfcObjectTypeEnum;
  5442. Tag : OPTIONAL IfcLabel;
  5443. WHERE
  5444. WR1 : EXISTS(SELF\IfcRoot.Name);
  5445. END_ENTITY;
  5446. ENTITY IfcPumpType
  5447. SUBTYPE OF (IfcFlowMovingDeviceType);
  5448. PredefinedType : IfcPumpTypeEnum;
  5449. WHERE
  5450. WR1 : (PredefinedType <> IfcPumpTypeEnum.USERDEFINED) OR
  5451. ((PredefinedType = IfcPumpTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  5452. END_ENTITY;
  5453. ENTITY IfcQuantityArea
  5454. SUBTYPE OF (IfcPhysicalSimpleQuantity);
  5455. AreaValue : IfcAreaMeasure;
  5456. WHERE
  5457. WR21 : NOT(EXISTS(SELF\IfcPhysicalSimpleQuantity.Unit)) OR
  5458. (SELF\IfcPhysicalSimpleQuantity.Unit.UnitType = IfcUnitEnum.AREAUNIT);
  5459. WR22 : AreaValue >= 0.;
  5460. END_ENTITY;
  5461. ENTITY IfcQuantityCount
  5462. SUBTYPE OF (IfcPhysicalSimpleQuantity);
  5463. CountValue : IfcCountMeasure;
  5464. WHERE
  5465. WR21 : CountValue >= 0.;
  5466. END_ENTITY;
  5467. ENTITY IfcQuantityLength
  5468. SUBTYPE OF (IfcPhysicalSimpleQuantity);
  5469. LengthValue : IfcLengthMeasure;
  5470. WHERE
  5471. WR21 : NOT(EXISTS(SELF\IfcPhysicalSimpleQuantity.Unit)) OR
  5472. (SELF\IfcPhysicalSimpleQuantity.Unit.UnitType = IfcUnitEnum.LENGTHUNIT);
  5473. WR22 : LengthValue >= 0.;
  5474. END_ENTITY;
  5475. ENTITY IfcQuantityTime
  5476. SUBTYPE OF (IfcPhysicalSimpleQuantity);
  5477. TimeValue : IfcTimeMeasure;
  5478. WHERE
  5479. WR21 : NOT(EXISTS(SELF\IfcPhysicalSimpleQuantity.Unit)) OR
  5480. (SELF\IfcPhysicalSimpleQuantity.Unit.UnitType = IfcUnitEnum.TIMEUNIT);
  5481. WR22 : TimeValue >= 0.;
  5482. END_ENTITY;
  5483. ENTITY IfcQuantityVolume
  5484. SUBTYPE OF (IfcPhysicalSimpleQuantity);
  5485. VolumeValue : IfcVolumeMeasure;
  5486. WHERE
  5487. WR21 : NOT(EXISTS(SELF\IfcPhysicalSimpleQuantity.Unit)) OR
  5488. (SELF\IfcPhysicalSimpleQuantity.Unit.UnitType = IfcUnitEnum.VOLUMEUNIT);
  5489. WR22 : VolumeValue >= 0.;
  5490. END_ENTITY;
  5491. ENTITY IfcQuantityWeight
  5492. SUBTYPE OF (IfcPhysicalSimpleQuantity);
  5493. WeightValue : IfcMassMeasure;
  5494. WHERE
  5495. WR21 : NOT(EXISTS(SELF\IfcPhysicalSimpleQuantity.Unit)) OR
  5496. (SELF\IfcPhysicalSimpleQuantity.Unit.UnitType = IfcUnitEnum.MASSUNIT);
  5497. WR22 : WeightValue >= 0.;
  5498. END_ENTITY;
  5499. ENTITY IfcRadiusDimension
  5500. SUBTYPE OF (IfcDimensionCurveDirectedCallout);
  5501. END_ENTITY;
  5502. ENTITY IfcRailing
  5503. SUBTYPE OF (IfcBuildingElement);
  5504. PredefinedType : OPTIONAL IfcRailingTypeEnum;
  5505. END_ENTITY;
  5506. ENTITY IfcRailingType
  5507. SUBTYPE OF (IfcBuildingElementType);
  5508. PredefinedType : IfcRailingTypeEnum;
  5509. END_ENTITY;
  5510. ENTITY IfcRamp
  5511. SUBTYPE OF (IfcBuildingElement);
  5512. ShapeType : IfcRampTypeEnum;
  5513. WHERE
  5514. WR1 : (HIINDEX(SELF\IfcObjectDefinition.IsDecomposedBy) = 0) OR
  5515. ((HIINDEX(SELF\IfcObjectDefinition.IsDecomposedBy) = 1) AND (NOT(EXISTS(SELF\IfcProduct.Representation))));
  5516. END_ENTITY;
  5517. ENTITY IfcRampFlight
  5518. SUBTYPE OF (IfcBuildingElement);
  5519. END_ENTITY;
  5520. ENTITY IfcRampFlightType
  5521. SUBTYPE OF (IfcBuildingElementType);
  5522. PredefinedType : IfcRampFlightTypeEnum;
  5523. END_ENTITY;
  5524. ENTITY IfcRationalBezierCurve
  5525. SUBTYPE OF (IfcBezierCurve);
  5526. WeightsData : LIST [2:?] OF REAL;
  5527. DERIVE
  5528. Weights : ARRAY [0:255] OF REAL := IfcListToArray(WeightsData,0,SELF\IfcBSplineCurve.UpperIndexOnControlPoints);
  5529. WHERE
  5530. WR1 : SIZEOF(WeightsData) = SIZEOF(SELF\IfcBSplineCurve.ControlPointsList);
  5531. WR2 : IfcCurveWeightsPositive(SELF);
  5532. END_ENTITY;
  5533. ENTITY IfcRectangleHollowProfileDef
  5534. SUBTYPE OF (IfcRectangleProfileDef);
  5535. WallThickness : IfcPositiveLengthMeasure;
  5536. InnerFilletRadius : OPTIONAL IfcPositiveLengthMeasure;
  5537. OuterFilletRadius : OPTIONAL IfcPositiveLengthMeasure;
  5538. WHERE
  5539. WR31 : (WallThickness < (SELF\IfcRectangleProfileDef.XDim/2.)) AND
  5540. (WallThickness < (SELF\IfcRectangleProfileDef.YDim/2.));
  5541. WR32 : NOT(EXISTS(OuterFilletRadius)) OR
  5542. ((OuterFilletRadius <= (SELF\IfcRectangleProfileDef.XDim/2.)) AND
  5543. (OuterFilletRadius <= (SELF\IfcRectangleProfileDef.YDim/2.)));
  5544. WR33 : NOT(EXISTS(InnerFilletRadius)) OR
  5545. ((InnerFilletRadius <= (SELF\IfcRectangleProfileDef.XDim/2. - WallThickness)) AND
  5546. (InnerFilletRadius <= (SELF\IfcRectangleProfileDef.YDim/2. - WallThickness)));
  5547. END_ENTITY;
  5548. ENTITY IfcRectangleProfileDef
  5549. SUPERTYPE OF (ONEOF
  5550. (IfcRectangleHollowProfileDef
  5551. ,IfcRoundedRectangleProfileDef))
  5552. SUBTYPE OF (IfcParameterizedProfileDef);
  5553. XDim : IfcPositiveLengthMeasure;
  5554. YDim : IfcPositiveLengthMeasure;
  5555. END_ENTITY;
  5556. ENTITY IfcRectangularPyramid
  5557. SUBTYPE OF (IfcCsgPrimitive3D);
  5558. XLength : IfcPositiveLengthMeasure;
  5559. YLength : IfcPositiveLengthMeasure;
  5560. Height : IfcPositiveLengthMeasure;
  5561. END_ENTITY;
  5562. ENTITY IfcRectangularTrimmedSurface
  5563. SUBTYPE OF (IfcBoundedSurface);
  5564. BasisSurface : IfcSurface;
  5565. U1 : IfcParameterValue;
  5566. V1 : IfcParameterValue;
  5567. U2 : IfcParameterValue;
  5568. V2 : IfcParameterValue;
  5569. Usense : BOOLEAN;
  5570. Vsense : BOOLEAN;
  5571. DERIVE
  5572. Dim : IfcDimensionCount := BasisSurface.Dim;
  5573. WHERE
  5574. WR1 : U1 <> U2;
  5575. WR2 : V1 <> V2;
  5576. WR3 : (('IFC2X3.IFCELEMENTARYSURFACE' IN TYPEOF(BasisSurface)) AND
  5577. (NOT ('IFC2X3.IFCPLANE' IN TYPEOF(BasisSurface)))) OR
  5578. ('IFC2X3.IFCSURFACEOFREVOLUTION' IN TYPEOF(BasisSurface)) OR
  5579. (Usense = (U2 > U1));
  5580. WR4 : Vsense = (V2 > V1);
  5581. END_ENTITY;
  5582. ENTITY IfcReferencesValueDocument;
  5583. ReferencedDocument : IfcDocumentSelect;
  5584. ReferencingValues : SET [1:?] OF IfcAppliedValue;
  5585. Name : OPTIONAL IfcLabel;
  5586. Description : OPTIONAL IfcText;
  5587. END_ENTITY;
  5588. ENTITY IfcRegularTimeSeries
  5589. SUBTYPE OF (IfcTimeSeries);
  5590. TimeStep : IfcTimeMeasure;
  5591. Values : LIST [1:?] OF IfcTimeSeriesValue;
  5592. END_ENTITY;
  5593. ENTITY IfcReinforcementBarProperties;
  5594. TotalCrossSectionArea : IfcAreaMeasure;
  5595. SteelGrade : IfcLabel;
  5596. BarSurface : OPTIONAL IfcReinforcingBarSurfaceEnum;
  5597. EffectiveDepth : OPTIONAL IfcLengthMeasure;
  5598. NominalBarDiameter : OPTIONAL IfcPositiveLengthMeasure;
  5599. BarCount : OPTIONAL IfcCountMeasure;
  5600. END_ENTITY;
  5601. ENTITY IfcReinforcementDefinitionProperties
  5602. SUBTYPE OF (IfcPropertySetDefinition);
  5603. DefinitionType : OPTIONAL IfcLabel;
  5604. ReinforcementSectionDefinitions : LIST [1:?] OF IfcSectionReinforcementProperties;
  5605. END_ENTITY;
  5606. ENTITY IfcReinforcingBar
  5607. SUBTYPE OF (IfcReinforcingElement);
  5608. NominalDiameter : IfcPositiveLengthMeasure;
  5609. CrossSectionArea : IfcAreaMeasure;
  5610. BarLength : OPTIONAL IfcPositiveLengthMeasure;
  5611. BarRole : IfcReinforcingBarRoleEnum;
  5612. BarSurface : OPTIONAL IfcReinforcingBarSurfaceEnum;
  5613. WHERE
  5614. WR1 : (BarRole <> IfcReinforcingBarRoleEnum.USERDEFINED) OR ((BarRole = IfcReinforcingBarRoleEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));
  5615. END_ENTITY;
  5616. ENTITY IfcReinforcingElement
  5617. ABSTRACT SUPERTYPE OF (ONEOF
  5618. (IfcReinforcingBar
  5619. ,IfcReinforcingMesh
  5620. ,IfcTendon
  5621. ,IfcTendonAnchor))
  5622. SUBTYPE OF (IfcBuildingElementComponent);
  5623. SteelGrade : OPTIONAL IfcLabel;
  5624. END_ENTITY;
  5625. ENTITY IfcReinforcingMesh
  5626. SUBTYPE OF (IfcReinforcingElement);
  5627. MeshLength : OPTIONAL IfcPositiveLengthMeasure;
  5628. MeshWidth : OPTIONAL IfcPositiveLengthMeasure;
  5629. LongitudinalBarNominalDiameter : IfcPositiveLengthMeasure;
  5630. TransverseBarNominalDiameter : IfcPositiveLengthMeasure;
  5631. LongitudinalBarCrossSectionArea : IfcAreaMeasure;
  5632. TransverseBarCrossSectionArea : IfcAreaMeasure;
  5633. LongitudinalBarSpacing : IfcPositiveLengthMeasure;
  5634. TransverseBarSpacing : IfcPositiveLengthMeasure;
  5635. END_ENTITY;
  5636. ENTITY IfcRelAggregates
  5637. SUBTYPE OF (IfcRelDecomposes);
  5638. END_ENTITY;
  5639. ENTITY IfcRelAssigns
  5640. ABSTRACT SUPERTYPE OF (ONEOF
  5641. (IfcRelAssignsToActor
  5642. ,IfcRelAssignsToControl
  5643. ,IfcRelAssignsToGroup
  5644. ,IfcRelAssignsToProcess
  5645. ,IfcRelAssignsToProduct
  5646. ,IfcRelAssignsToResource))
  5647. SUBTYPE OF (IfcRelationship);
  5648. RelatedObjects : SET [1:?] OF IfcObjectDefinition;
  5649. RelatedObjectsType : OPTIONAL IfcObjectTypeEnum;
  5650. WHERE
  5651. WR1 : IfcCorrectObjectAssignment(RelatedObjectsType, RelatedObjects);
  5652. END_ENTITY;
  5653. ENTITY IfcRelAssignsTasks
  5654. SUBTYPE OF (IfcRelAssignsToControl);
  5655. TimeForTask : OPTIONAL IfcScheduleTimeControl;
  5656. WHERE
  5657. WR1 : HIINDEX(SELF\IfcRelAssigns.RelatedObjects) = 1;
  5658. WR2 : 'IFC2X3.IFCTASK' IN TYPEOF(SELF\IfcRelAssigns.RelatedObjects[1]);
  5659. WR3 : 'IFC2X3.IFCWORKCONTROL' IN TYPEOF(SELF\IfcRelAssignsToControl.RelatingControl);
  5660. END_ENTITY;
  5661. ENTITY IfcRelAssignsToActor
  5662. SUPERTYPE OF (ONEOF
  5663. (IfcRelOccupiesSpaces))
  5664. SUBTYPE OF (IfcRelAssigns);
  5665. RelatingActor : IfcActor;
  5666. ActingRole : OPTIONAL IfcActorRole;
  5667. WHERE
  5668. WR1 : SIZEOF(QUERY(Temp <* SELF\IfcRelAssigns.RelatedObjects | RelatingActor :=: Temp)) = 0;
  5669. END_ENTITY;
  5670. ENTITY IfcRelAssignsToControl
  5671. SUPERTYPE OF (ONEOF
  5672. (IfcRelAssignsTasks
  5673. ,IfcRelAssignsToProjectOrder
  5674. ,IfcRelSchedulesCostItems))
  5675. SUBTYPE OF (IfcRelAssigns);
  5676. RelatingControl : IfcControl;
  5677. WHERE
  5678. WR1 : SIZEOF(QUERY(Temp <* SELF\IfcRelAssigns.RelatedObjects | RelatingControl :=: Temp)) = 0;
  5679. END_ENTITY;
  5680. ENTITY IfcRelAssignsToGroup
  5681. SUBTYPE OF (IfcRelAssigns);
  5682. RelatingGroup : IfcGroup;
  5683. WHERE
  5684. WR1 : SIZEOF(QUERY(Temp <* SELF\IfcRelAssigns.RelatedObjects | RelatingGroup :=: Temp)) = 0;
  5685. END_ENTITY;
  5686. ENTITY IfcRelAssignsToProcess
  5687. SUBTYPE OF (IfcRelAssigns);
  5688. RelatingProcess : IfcProcess;
  5689. QuantityInProcess : OPTIONAL IfcMeasureWithUnit;
  5690. WHERE
  5691. WR1 : SIZEOF(QUERY(Temp <* SELF\IfcRelAssigns.RelatedObjects | RelatingProcess :=: Temp)) = 0;
  5692. END_ENTITY;
  5693. ENTITY IfcRelAssignsToProduct
  5694. SUBTYPE OF (IfcRelAssigns);
  5695. RelatingProduct : IfcProduct;
  5696. WHERE
  5697. WR1 : SIZEOF(QUERY(Temp <* SELF\IfcRelAssigns.RelatedObjects | RelatingProduct :=: Temp)) = 0;
  5698. END_ENTITY;
  5699. ENTITY IfcRelAssignsToProjectOrder
  5700. SUBTYPE OF (IfcRelAssignsToControl);
  5701. END_ENTITY;
  5702. ENTITY IfcRelAssignsToResource
  5703. SUBTYPE OF (IfcRelAssigns);
  5704. RelatingResource : IfcResource;
  5705. WHERE
  5706. WR1 : SIZEOF(QUERY(Temp <* SELF\IfcRelAssigns.RelatedObjects | RelatingResource :=: Temp)) = 0;
  5707. END_ENTITY;
  5708. ENTITY IfcRelAssociates
  5709. SUPERTYPE OF (ONEOF
  5710. (IfcRelAssociatesAppliedValue
  5711. ,IfcRelAssociatesApproval
  5712. ,IfcRelAssociatesClassification
  5713. ,IfcRelAssociatesConstraint
  5714. ,IfcRelAssociatesDocument
  5715. ,IfcRelAssociatesLibrary
  5716. ,IfcRelAssociatesMaterial
  5717. ,IfcRelAssociatesProfileProperties))
  5718. SUBTYPE OF (IfcRelationship);
  5719. RelatedObjects : SET [1:?] OF IfcRoot;
  5720. WHERE
  5721. WR21 : SIZEOF(QUERY(temp <* RelatedObjects |
  5722. NOT(('IFC2X3.IFCOBJECTDEFINITION' IN TYPEOF(temp))
  5723. OR ('IFC2X3.IFCPROPERTYDEFINITION' IN TYPEOF(temp)))
  5724. )) = 0;
  5725. END_ENTITY;
  5726. ENTITY IfcRelAssociatesAppliedValue
  5727. SUBTYPE OF (IfcRelAssociates);
  5728. RelatingAppliedValue : IfcAppliedValue;
  5729. END_ENTITY;
  5730. ENTITY IfcRelAssociatesApproval
  5731. SUBTYPE OF (IfcRelAssociates);
  5732. RelatingApproval : IfcApproval;
  5733. END_ENTITY;
  5734. ENTITY IfcRelAssociatesClassification
  5735. SUBTYPE OF (IfcRelAssociates);
  5736. RelatingClassification : IfcClassificationNotationSelect;
  5737. END_ENTITY;
  5738. ENTITY IfcRelAssociatesConstraint
  5739. SUBTYPE OF (IfcRelAssociates);
  5740. Intent : IfcLabel;
  5741. RelatingConstraint : IfcConstraint;
  5742. END_ENTITY;
  5743. ENTITY IfcRelAssociatesDocument
  5744. SUBTYPE OF (IfcRelAssociates);
  5745. RelatingDocument : IfcDocumentSelect;
  5746. END_ENTITY;
  5747. ENTITY IfcRelAssociatesLibrary
  5748. SUBTYPE OF (IfcRelAssociates);
  5749. RelatingLibrary : IfcLibrarySelect;
  5750. END_ENTITY;
  5751. ENTITY IfcRelAssociatesMaterial
  5752. SUBTYPE OF (IfcRelAssociates);
  5753. RelatingMaterial : IfcMaterialSelect;
  5754. WHERE
  5755. WR21 : SIZEOF(QUERY(temp <* SELF\IfcRelAssociates.RelatedObjects |
  5756. ('IFC2X3.IFCFEATUREELEMENTSUBTRACTION' IN TYPEOF(temp))
  5757. OR ('IFC2X3.IFCVIRTUALELEMENT' IN TYPEOF(temp))
  5758. )) = 0;
  5759. WR22 : SIZEOF(QUERY(temp <* SELF\IfcRelAssociates.RelatedObjects |
  5760. (NOT('IFC2X3.IFCPRODUCT' IN TYPEOF(temp)) AND NOT('IFC2X3.IFCTYPEPRODUCT' IN TYPEOF(temp)))
  5761. )) = 0;
  5762. END_ENTITY;
  5763. ENTITY IfcRelAssociatesProfileProperties
  5764. SUBTYPE OF (IfcRelAssociates);
  5765. RelatingProfileProperties : IfcProfileProperties;
  5766. ProfileSectionLocation : OPTIONAL IfcShapeAspect;
  5767. ProfileOrientation : OPTIONAL IfcOrientationSelect;
  5768. END_ENTITY;
  5769. ENTITY IfcRelConnects
  5770. ABSTRACT SUPERTYPE OF (ONEOF
  5771. (IfcRelConnectsElements
  5772. ,IfcRelConnectsPortToElement
  5773. ,IfcRelConnectsPorts
  5774. ,IfcRelConnectsStructuralActivity
  5775. ,IfcRelConnectsStructuralElement
  5776. ,IfcRelConnectsStructuralMember
  5777. ,IfcRelContainedInSpatialStructure
  5778. ,IfcRelCoversBldgElements
  5779. ,IfcRelCoversSpaces
  5780. ,IfcRelFillsElement
  5781. ,IfcRelFlowControlElements
  5782. ,IfcRelInteractionRequirements
  5783. ,IfcRelProjectsElement
  5784. ,IfcRelReferencedInSpatialStructure
  5785. ,IfcRelSequence
  5786. ,IfcRelServicesBuildings
  5787. ,IfcRelSpaceBoundary
  5788. ,IfcRelVoidsElement))
  5789. SUBTYPE OF (IfcRelationship);
  5790. END_ENTITY;
  5791. ENTITY IfcRelConnectsElements
  5792. SUPERTYPE OF (ONEOF
  5793. (IfcRelConnectsPathElements
  5794. ,IfcRelConnectsWithRealizingElements))
  5795. SUBTYPE OF (IfcRelConnects);
  5796. ConnectionGeometry : OPTIONAL IfcConnectionGeometry;
  5797. RelatingElement : IfcElement;
  5798. RelatedElement : IfcElement;
  5799. WHERE
  5800. WR31 : RelatingElement :<>: RelatedElement;
  5801. END_ENTITY;
  5802. ENTITY IfcRelConnectsPathElements
  5803. SUBTYPE OF (IfcRelConnectsElements);
  5804. RelatingPriorities : LIST [0:?] OF INTEGER;
  5805. RelatedPriorities : LIST [0:?] OF INTEGER;
  5806. RelatedConnectionType : IfcConnectionTypeEnum;
  5807. RelatingConnectionType : IfcConnectionTypeEnum;
  5808. DERIVE
  5809. RelatedLayerCount : INTEGER := IfcNoOfLayers(SELF\IfcRelConnectsElements.RelatedElement);
  5810. RelatingLayerCount : INTEGER := IfcNoOfLayers(SELF\IfcRelConnectsElements.RelatingElement);
  5811. END_ENTITY;
  5812. ENTITY IfcRelConnectsPortToElement
  5813. SUBTYPE OF (IfcRelConnects);
  5814. RelatingPort : IfcPort;
  5815. RelatedElement : IfcElement;
  5816. END_ENTITY;
  5817. ENTITY IfcRelConnectsPorts
  5818. SUBTYPE OF (IfcRelConnects);
  5819. RelatingPort : IfcPort;
  5820. RelatedPort : IfcPort;
  5821. RealizingElement : OPTIONAL IfcElement;
  5822. END_ENTITY;
  5823. ENTITY IfcRelConnectsStructuralActivity
  5824. SUBTYPE OF (IfcRelConnects);
  5825. RelatingElement : IfcStructuralActivityAssignmentSelect;
  5826. RelatedStructuralActivity : IfcStructuralActivity;
  5827. END_ENTITY;
  5828. ENTITY IfcRelConnectsStructuralElement
  5829. SUBTYPE OF (IfcRelConnects);
  5830. RelatingElement : IfcElement;
  5831. RelatedStructuralMember : IfcStructuralMember;
  5832. END_ENTITY;
  5833. ENTITY IfcRelConnectsStructuralMember
  5834. SUPERTYPE OF (ONEOF
  5835. (IfcRelConnectsWithEccentricity))
  5836. SUBTYPE OF (IfcRelConnects);
  5837. RelatingStructuralMember : IfcStructuralMember;
  5838. RelatedStructuralConnection : IfcStructuralConnection;
  5839. AppliedCondition : OPTIONAL IfcBoundaryCondition;
  5840. AdditionalConditions : OPTIONAL IfcStructuralConnectionCondition;
  5841. SupportedLength : OPTIONAL IfcLengthMeasure;
  5842. ConditionCoordinateSystem : OPTIONAL IfcAxis2Placement3D;
  5843. END_ENTITY;
  5844. ENTITY IfcRelConnectsWithEccentricity
  5845. SUBTYPE OF (IfcRelConnectsStructuralMember);
  5846. ConnectionConstraint : IfcConnectionGeometry;
  5847. END_ENTITY;
  5848. ENTITY IfcRelConnectsWithRealizingElements
  5849. SUBTYPE OF (IfcRelConnectsElements);
  5850. RealizingElements : SET [1:?] OF IfcElement;
  5851. ConnectionType : OPTIONAL IfcLabel;
  5852. END_ENTITY;
  5853. ENTITY IfcRelContainedInSpatialStructure
  5854. SUBTYPE OF (IfcRelConnects);
  5855. RelatedElements : SET [1:?] OF IfcProduct;
  5856. RelatingStructure : IfcSpatialStructureElement;
  5857. WHERE
  5858. WR31 : SIZEOF(QUERY(temp <* RelatedElements | 'IFC2X3.IFCSPATIALSTRUCTUREELEMENT' IN TYPEOF(temp))) = 0;
  5859. END_ENTITY;
  5860. ENTITY IfcRelCoversBldgElements
  5861. SUBTYPE OF (IfcRelConnects);
  5862. RelatingBuildingElement : IfcElement;
  5863. RelatedCoverings : SET [1:?] OF IfcCovering;
  5864. END_ENTITY;
  5865. ENTITY IfcRelCoversSpaces
  5866. SUBTYPE OF (IfcRelConnects);
  5867. RelatedSpace : IfcSpace;
  5868. RelatedCoverings : SET [1:?] OF IfcCovering;
  5869. END_ENTITY;
  5870. ENTITY IfcRelDecomposes
  5871. ABSTRACT SUPERTYPE OF (ONEOF
  5872. (IfcRelAggregates
  5873. ,IfcRelNests))
  5874. SUBTYPE OF (IfcRelationship);
  5875. RelatingObject : IfcObjectDefinition;
  5876. RelatedObjects : SET [1:?] OF IfcObjectDefinition;
  5877. WHERE
  5878. WR31 : SIZEOF(QUERY(Temp <* RelatedObjects | RelatingObject :=: Temp)) = 0;
  5879. WR32 : SIZEOF(QUERY(Temp <* RelatedObjects | 'IFC2X3.IFCTYPEOBJECT' IN TYPEOF(temp))) = 0;
  5880. WR33 : NOT('IFC2X3.IFCTYPEOBJECT' IN TYPEOF(RelatingObject));
  5881. END_ENTITY;
  5882. ENTITY IfcRelDefines
  5883. ABSTRACT SUPERTYPE OF (ONEOF
  5884. (IfcRelDefinesByProperties
  5885. ,IfcRelDefinesByType))
  5886. SUBTYPE OF (IfcRelationship);
  5887. RelatedObjects : SET [1:?] OF IfcObject;
  5888. END_ENTITY;
  5889. ENTITY IfcRelDefinesByProperties
  5890. SUPERTYPE OF (ONEOF
  5891. (IfcRelOverridesProperties))
  5892. SUBTYPE OF (IfcRelDefines);
  5893. RelatingPropertyDefinition : IfcPropertySetDefinition;
  5894. END_ENTITY;
  5895. ENTITY IfcRelDefinesByType
  5896. SUBTYPE OF (IfcRelDefines);
  5897. RelatingType : IfcTypeObject;
  5898. END_ENTITY;
  5899. ENTITY IfcRelFillsElement
  5900. SUBTYPE OF (IfcRelConnects);
  5901. RelatingOpeningElement : IfcOpeningElement;
  5902. RelatedBuildingElement : IfcElement;
  5903. END_ENTITY;
  5904. ENTITY IfcRelFlowControlElements
  5905. SUBTYPE OF (IfcRelConnects);
  5906. RelatedControlElements : SET [1:?] OF IfcDistributionControlElement;
  5907. RelatingFlowElement : IfcDistributionFlowElement;
  5908. END_ENTITY;
  5909. ENTITY IfcRelInteractionRequirements
  5910. SUBTYPE OF (IfcRelConnects);
  5911. DailyInteraction : OPTIONAL IfcCountMeasure;
  5912. ImportanceRating : OPTIONAL IfcNormalisedRatioMeasure;
  5913. LocationOfInteraction : OPTIONAL IfcSpatialStructureElement;
  5914. RelatedSpaceProgram : IfcSpaceProgram;
  5915. RelatingSpaceProgram : IfcSpaceProgram;
  5916. END_ENTITY;
  5917. ENTITY IfcRelNests
  5918. SUBTYPE OF (IfcRelDecomposes);
  5919. WHERE
  5920. WR1 : SIZEOF(QUERY(Temp <* SELF\IfcRelDecomposes.RelatedObjects |
  5921. NOT(TYPEOF(SELF\IfcRelDecomposes.RelatingObject) = TYPEOF(Temp)))) = 0;
  5922. END_ENTITY;
  5923. ENTITY IfcRelOccupiesSpaces
  5924. SUBTYPE OF (IfcRelAssignsToActor);
  5925. END_ENTITY;
  5926. ENTITY IfcRelOverridesProperties
  5927. SUBTYPE OF (IfcRelDefinesByProperties);
  5928. OverridingProperties : SET [1:?] OF IfcProperty;
  5929. WHERE
  5930. WR1 : SIZEOF(SELF\IfcRelDefines.RelatedObjects) = 1;
  5931. END_ENTITY;
  5932. ENTITY IfcRelProjectsElement
  5933. SUBTYPE OF (IfcRelConnects);
  5934. RelatingElement : IfcElement;
  5935. RelatedFeatureElement : IfcFeatureElementAddition;
  5936. END_ENTITY;
  5937. ENTITY IfcRelReferencedInSpatialStructure
  5938. SUBTYPE OF (IfcRelConnects);
  5939. RelatedElements : SET [1:?] OF IfcProduct;
  5940. RelatingStructure : IfcSpatialStructureElement;
  5941. WHERE
  5942. WR31 : SIZEOF(QUERY(temp <* RelatedElements | 'IFC2X3.IFCSPATIALSTRUCTUREELEMENT' IN TYPEOF(temp))) = 0;
  5943. END_ENTITY;
  5944. ENTITY IfcRelSchedulesCostItems
  5945. SUBTYPE OF (IfcRelAssignsToControl);
  5946. WHERE
  5947. WR11 : SIZEOF(QUERY(temp <* SELF\IfcRelAssigns.RelatedObjects |
  5948. NOT('IFC2X3.IFCCOSTITEM' IN TYPEOF(temp))
  5949. )) = 0;
  5950. WR12 : 'IFC2X3.IFCCOSTSCHEDULE' IN TYPEOF (SELF\IfcRelAssignsToControl.RelatingControl);
  5951. END_ENTITY;
  5952. ENTITY IfcRelSequence
  5953. SUBTYPE OF (IfcRelConnects);
  5954. RelatingProcess : IfcProcess;
  5955. RelatedProcess : IfcProcess;
  5956. TimeLag : IfcTimeMeasure;
  5957. SequenceType : IfcSequenceEnum;
  5958. WHERE
  5959. WR1 : RelatingProcess :<>: RelatedProcess;
  5960. END_ENTITY;
  5961. ENTITY IfcRelServicesBuildings
  5962. SUBTYPE OF (IfcRelConnects);
  5963. RelatingSystem : IfcSystem;
  5964. RelatedBuildings : SET [1:?] OF IfcSpatialStructureElement;
  5965. END_ENTITY;
  5966. ENTITY IfcRelSpaceBoundary
  5967. SUBTYPE OF (IfcRelConnects);
  5968. RelatingSpace : IfcSpace;
  5969. RelatedBuildingElement : OPTIONAL IfcElement;
  5970. ConnectionGeometry : OPTIONAL IfcConnectionGeometry;
  5971. PhysicalOrVirtualBoundary : IfcPhysicalOrVirtualEnum;
  5972. InternalOrExternalBoundary : IfcInternalOrExternalEnum;
  5973. WHERE
  5974. WR1 : ((PhysicalOrVirtualBoundary = IfcPhysicalOrVirtualEnum.Physical) AND
  5975. (EXISTS(RelatedBuildingElement) AND NOT('IFC2X3.IFCVIRTUALELEMENT' IN TYPEOF(RelatedBuildingElement))))
  5976. OR
  5977. ((PhysicalOrVirtualBoundary = IfcPhysicalOrVirtualEnum.Virtual) AND
  5978. (NOT(EXISTS(RelatedBuildingElement)) OR ('IFC2X3.IFCVIRTUALELEMENT' IN TYPEOF(RelatedBuildingElement))))
  5979. OR
  5980. (PhysicalOrVirtualBoundary = IfcPhysicalOrVirtualEnum.NotDefined);
  5981. END_ENTITY;
  5982. ENTITY IfcRelVoidsElement
  5983. SUBTYPE OF (IfcRelConnects);
  5984. RelatingBuildingElement : IfcElement;
  5985. RelatedOpeningElement : IfcFeatureElementSubtraction;
  5986. END_ENTITY;
  5987. ENTITY IfcRelationship
  5988. ABSTRACT SUPERTYPE OF (ONEOF
  5989. (IfcRelAssigns
  5990. ,IfcRelAssociates
  5991. ,IfcRelConnects
  5992. ,IfcRelDecomposes
  5993. ,IfcRelDefines))
  5994. SUBTYPE OF (IfcRoot);
  5995. END_ENTITY;
  5996. ENTITY IfcRelaxation;
  5997. RelaxationValue : IfcNormalisedRatioMeasure;
  5998. InitialStress : IfcNormalisedRatioMeasure;
  5999. END_ENTITY;
  6000. ENTITY IfcRepresentation
  6001. SUPERTYPE OF (ONEOF
  6002. (IfcShapeModel
  6003. ,IfcStyleModel));
  6004. ContextOfItems : IfcRepresentationContext;
  6005. RepresentationIdentifier : OPTIONAL IfcLabel;
  6006. RepresentationType : OPTIONAL IfcLabel;
  6007. Items : SET [1:?] OF IfcRepresentationItem;
  6008. INVERSE
  6009. RepresentationMap : SET [0:1] OF IfcRepresentationMap FOR MappedRepresentation;
  6010. LayerAssignments : SET [0:?] OF IfcPresentationLayerAssignment FOR Assigneditems;
  6011. OfProductRepresentation : SET [0:1] OF IfcProductRepresentation FOR Representations;
  6012. END_ENTITY;
  6013. ENTITY IfcRepresentationContext
  6014. SUPERTYPE OF (ONEOF
  6015. (IfcGeometricRepresentationContext));
  6016. ContextIdentifier : OPTIONAL IfcLabel;
  6017. ContextType : OPTIONAL IfcLabel;
  6018. INVERSE
  6019. RepresentationsInContext : SET [0:?] OF IfcRepresentation FOR ContextOfItems;
  6020. END_ENTITY;
  6021. ENTITY IfcRepresentationItem
  6022. ABSTRACT SUPERTYPE OF (ONEOF
  6023. (IfcGeometricRepresentationItem
  6024. ,IfcMappedItem
  6025. ,IfcStyledItem
  6026. ,IfcTopologicalRepresentationItem));
  6027. INVERSE
  6028. LayerAssignments : SET [0:?] OF IfcPresentationLayerAssignment FOR AssignedItems;
  6029. StyledByItem : SET [0:1] OF IfcStyledItem FOR Item;
  6030. END_ENTITY;
  6031. ENTITY IfcRepresentationMap;
  6032. MappingOrigin : IfcAxis2Placement;
  6033. MappedRepresentation : IfcRepresentation;
  6034. INVERSE
  6035. MapUsage : SET [0:?] OF IfcMappedItem FOR MappingSource;
  6036. END_ENTITY;
  6037. ENTITY IfcResource
  6038. ABSTRACT SUPERTYPE OF (ONEOF
  6039. (IfcConstructionResource))
  6040. SUBTYPE OF (IfcObject);
  6041. INVERSE
  6042. ResourceOf : SET [0:?] OF IfcRelAssignsToResource FOR RelatingResource;
  6043. END_ENTITY;
  6044. ENTITY IfcRevolvedAreaSolid
  6045. SUBTYPE OF (IfcSweptAreaSolid);
  6046. Axis : IfcAxis1Placement;
  6047. Angle : IfcPlaneAngleMeasure;
  6048. DERIVE
  6049. AxisLine : IfcLine := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcCurve() || IfcLine(Axis.Location,
  6050. IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector(Axis.Z,1.0));
  6051. WHERE
  6052. WR31 : Axis.Location.Coordinates[3] = 0.0;
  6053. WR32 : Axis.Z.DirectionRatios[3] = 0.0;
  6054. END_ENTITY;
  6055. ENTITY IfcRibPlateProfileProperties
  6056. SUBTYPE OF (IfcProfileProperties);
  6057. Thickness : OPTIONAL IfcPositiveLengthMeasure;
  6058. RibHeight : OPTIONAL IfcPositiveLengthMeasure;
  6059. RibWidth : OPTIONAL IfcPositiveLengthMeasure;
  6060. RibSpacing : OPTIONAL IfcPositiveLengthMeasure;
  6061. Direction : IfcRibPlateDirectionEnum;
  6062. END_ENTITY;
  6063. ENTITY IfcRightCircularCone
  6064. SUBTYPE OF (IfcCsgPrimitive3D);
  6065. Height : IfcPositiveLengthMeasure;
  6066. BottomRadius : IfcPositiveLengthMeasure;
  6067. END_ENTITY;
  6068. ENTITY IfcRightCircularCylinder
  6069. SUBTYPE OF (IfcCsgPrimitive3D);
  6070. Height : IfcPositiveLengthMeasure;
  6071. Radius : IfcPositiveLengthMeasure;
  6072. END_ENTITY;
  6073. ENTITY IfcRoof
  6074. SUBTYPE OF (IfcBuildingElement);
  6075. ShapeType : IfcRoofTypeEnum;
  6076. WHERE
  6077. WR1 : (HIINDEX(SELF\IfcObjectDefinition.IsDecomposedBy) = 0) OR
  6078. ((HIINDEX(SELF\IfcObjectDefinition.IsDecomposedBy) = 1) AND (NOT(EXISTS(SELF\IfcProduct.Representation))));
  6079. END_ENTITY;
  6080. ENTITY IfcRoot
  6081. ABSTRACT SUPERTYPE OF (ONEOF
  6082. (IfcObjectDefinition
  6083. ,IfcPropertyDefinition
  6084. ,IfcRelationship));
  6085. GlobalId : IfcGloballyUniqueId;
  6086. OwnerHistory : IfcOwnerHistory;
  6087. Name : OPTIONAL IfcLabel;
  6088. Description : OPTIONAL IfcText;
  6089. UNIQUE
  6090. UR1 : GlobalId;
  6091. END_ENTITY;
  6092. ENTITY IfcRoundedEdgeFeature
  6093. SUBTYPE OF (IfcEdgeFeature);
  6094. Radius : OPTIONAL IfcPositiveLengthMeasure;
  6095. END_ENTITY;
  6096. ENTITY IfcRoundedRectangleProfileDef
  6097. SUBTYPE OF (IfcRectangleProfileDef);
  6098. RoundingRadius : IfcPositiveLengthMeasure;
  6099. WHERE
  6100. WR31 : ((RoundingRadius <= (SELF\IfcRectangleProfileDef.XDim/2.)) AND
  6101. (RoundingRadius <= (SELF\IfcRectangleProfileDef.YDim/2.)));
  6102. END_ENTITY;
  6103. ENTITY IfcSIUnit
  6104. SUBTYPE OF (IfcNamedUnit);
  6105. Prefix : OPTIONAL IfcSIPrefix;
  6106. Name : IfcSIUnitName;
  6107. DERIVE
  6108. SELF\IfcNamedUnit.Dimensions : IfcDimensionalExponents := IfcDimensionsForSiUnit (SELF.Name);
  6109. END_ENTITY;
  6110. ENTITY IfcSanitaryTerminalType
  6111. SUBTYPE OF (IfcFlowTerminalType);
  6112. PredefinedType : IfcSanitaryTerminalTypeEnum;
  6113. END_ENTITY;
  6114. ENTITY IfcScheduleTimeControl
  6115. SUBTYPE OF (IfcControl);
  6116. ActualStart : OPTIONAL IfcDateTimeSelect;
  6117. EarlyStart : OPTIONAL IfcDateTimeSelect;
  6118. LateStart : OPTIONAL IfcDateTimeSelect;
  6119. ScheduleStart : OPTIONAL IfcDateTimeSelect;
  6120. ActualFinish : OPTIONAL IfcDateTimeSelect;
  6121. EarlyFinish : OPTIONAL IfcDateTimeSelect;
  6122. LateFinish : OPTIONAL IfcDateTimeSelect;
  6123. ScheduleFinish : OPTIONAL IfcDateTimeSelect;
  6124. ScheduleDuration : OPTIONAL IfcTimeMeasure;
  6125. ActualDuration : OPTIONAL IfcTimeMeasure;
  6126. RemainingTime : OPTIONAL IfcTimeMeasure;
  6127. FreeFloat : OPTIONAL IfcTimeMeasure;
  6128. TotalFloat : OPTIONAL IfcTimeMeasure;
  6129. IsCritical : OPTIONAL BOOLEAN;
  6130. StatusTime : OPTIONAL IfcDateTimeSelect;
  6131. StartFloat : OPTIONAL IfcTimeMeasure;
  6132. FinishFloat : OPTIONAL IfcTimeMeasure;
  6133. Completion : OPTIONAL IfcPositiveRatioMeasure;
  6134. INVERSE
  6135. ScheduleTimeControlAssigned : IfcRelAssignsTasks FOR TimeForTask;
  6136. END_ENTITY;
  6137. ENTITY IfcSectionProperties;
  6138. SectionType : IfcSectionTypeEnum;
  6139. StartProfile : IfcProfileDef;
  6140. EndProfile : OPTIONAL IfcProfileDef;
  6141. END_ENTITY;
  6142. ENTITY IfcSectionReinforcementProperties;
  6143. LongitudinalStartPosition : IfcLengthMeasure;
  6144. LongitudinalEndPosition : IfcLengthMeasure;
  6145. TransversePosition : OPTIONAL IfcLengthMeasure;
  6146. ReinforcementRole : IfcReinforcingBarRoleEnum;
  6147. SectionDefinition : IfcSectionProperties;
  6148. CrossSectionReinforcementDefinitions : SET [1:?] OF IfcReinforcementBarProperties;
  6149. END_ENTITY;
  6150. ENTITY IfcSectionedSpine
  6151. SUBTYPE OF (IfcGeometricRepresentationItem);
  6152. SpineCurve : IfcCompositeCurve;
  6153. CrossSections : LIST [2:?] OF IfcProfileDef;
  6154. CrossSectionPositions : LIST [2:?] OF IfcAxis2Placement3D;
  6155. DERIVE
  6156. Dim : IfcDimensionCount := 3;
  6157. WHERE
  6158. WR1 : SIZEOF(CrossSections) = SIZEOF(CrossSectionPositions);
  6159. WR2 : SIZEOF(QUERY(temp <* CrossSections | CrossSections[1].ProfileType <> temp.ProfileType)) = 0;
  6160. WR3 : SpineCurve.Dim = 3;
  6161. END_ENTITY;
  6162. ENTITY IfcSensorType
  6163. SUBTYPE OF (IfcDistributionControlElementType);
  6164. PredefinedType : IfcSensorTypeEnum;
  6165. END_ENTITY;
  6166. ENTITY IfcServiceLife
  6167. SUBTYPE OF (IfcControl);
  6168. ServiceLifeType : IfcServiceLifeTypeEnum;
  6169. ServiceLifeDuration : IfcTimeMeasure;
  6170. END_ENTITY;
  6171. ENTITY IfcServiceLifeFactor
  6172. SUBTYPE OF (IfcPropertySetDefinition);
  6173. PredefinedType : IfcServiceLifeFactorTypeEnum;
  6174. UpperValue : OPTIONAL IfcMeasureValue;
  6175. MostUsedValue : IfcMeasureValue;
  6176. LowerValue : OPTIONAL IfcMeasureValue;
  6177. WHERE
  6178. WR31 : NOT(PredefinedType = IfcServiceLifeFactorTypeEnum.USERDEFINED)
  6179. OR EXISTS(SELF\IfcObject.ObjectType);
  6180. END_ENTITY;
  6181. ENTITY IfcShapeAspect;
  6182. ShapeRepresentations : LIST [1:?] OF IfcShapeModel;
  6183. Name : OPTIONAL IfcLabel;
  6184. Description : OPTIONAL IfcText;
  6185. ProductDefinitional : LOGICAL;
  6186. PartOfProductDefinitionShape : IfcProductDefinitionShape;
  6187. END_ENTITY;
  6188. ENTITY IfcShapeModel
  6189. ABSTRACT SUPERTYPE OF (ONEOF
  6190. (IfcShapeRepresentation
  6191. ,IfcTopologyRepresentation))
  6192. SUBTYPE OF (IfcRepresentation);
  6193. INVERSE
  6194. OfShapeAspect : SET [0:1] OF IfcShapeAspect FOR ShapeRepresentations;
  6195. WHERE
  6196. WR11 : (SIZEOF(SELF\IfcRepresentation.OfProductRepresentation) = 1) XOR
  6197. (SIZEOF(SELF\IfcRepresentation.RepresentationMap) = 1) XOR
  6198. (SIZEOF(OfShapeAspect) = 1);
  6199. END_ENTITY;
  6200. ENTITY IfcShapeRepresentation
  6201. SUBTYPE OF (IfcShapeModel);
  6202. WHERE
  6203. WR21 : 'IFC2X3.IFCGEOMETRICREPRESENTATIONCONTEXT'
  6204. IN TYPEOF(SELF\IfcRepresentation.ContextOfItems);
  6205. WR22 : SIZEOF(QUERY(temp <* Items |
  6206. ('IFC2X3.IFCTOPOLOGICALREPRESENTATIONITEM' IN TYPEOF(temp))
  6207. AND (NOT(SIZEOF(
  6208. ['IFC2X3.IFCVERTEXPOINT',
  6209. 'IFC2X3.IFCEDGECURVE',
  6210. 'IFC2X3.IFCFACESURFACE'] * TYPEOF(temp)) = 1))
  6211. )) = 0;
  6212. WR23 : EXISTS(SELF\IfcRepresentation.RepresentationType);
  6213. WR24 : IfcShapeRepresentationTypes(SELF\IfcRepresentation.RepresentationType, SELF\IfcRepresentation.Items);
  6214. END_ENTITY;
  6215. ENTITY IfcShellBasedSurfaceModel
  6216. SUBTYPE OF (IfcGeometricRepresentationItem);
  6217. SbsmBoundary : SET [1:?] OF IfcShell;
  6218. DERIVE
  6219. Dim : IfcDimensionCount := 3;
  6220. END_ENTITY;
  6221. ENTITY IfcSimpleProperty
  6222. ABSTRACT SUPERTYPE OF (ONEOF
  6223. (IfcPropertyBoundedValue
  6224. ,IfcPropertyEnumeratedValue
  6225. ,IfcPropertyListValue
  6226. ,IfcPropertyReferenceValue
  6227. ,IfcPropertySingleValue
  6228. ,IfcPropertyTableValue))
  6229. SUBTYPE OF (IfcProperty);
  6230. END_ENTITY;
  6231. ENTITY IfcSite
  6232. SUBTYPE OF (IfcSpatialStructureElement);
  6233. RefLatitude : OPTIONAL IfcCompoundPlaneAngleMeasure;
  6234. RefLongitude : OPTIONAL IfcCompoundPlaneAngleMeasure;
  6235. RefElevation : OPTIONAL IfcLengthMeasure;
  6236. LandTitleNumber : OPTIONAL IfcLabel;
  6237. SiteAddress : OPTIONAL IfcPostalAddress;
  6238. END_ENTITY;
  6239. ENTITY IfcSlab
  6240. SUBTYPE OF (IfcBuildingElement);
  6241. PredefinedType : OPTIONAL IfcSlabTypeEnum;
  6242. WHERE
  6243. WR2 : (PredefinedType <> IfcSlabTypeEnum.USERDEFINED) OR
  6244. ((PredefinedType = IfcSlabTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));
  6245. END_ENTITY;
  6246. ENTITY IfcSlabType
  6247. SUBTYPE OF (IfcBuildingElementType);
  6248. PredefinedType : IfcSlabTypeEnum;
  6249. END_ENTITY;
  6250. ENTITY IfcSlippageConnectionCondition
  6251. SUBTYPE OF (IfcStructuralConnectionCondition);
  6252. SlippageX : OPTIONAL IfcLengthMeasure;
  6253. SlippageY : OPTIONAL IfcLengthMeasure;
  6254. SlippageZ : OPTIONAL IfcLengthMeasure;
  6255. END_ENTITY;
  6256. ENTITY IfcSolidModel
  6257. ABSTRACT SUPERTYPE OF (ONEOF
  6258. (IfcCsgSolid
  6259. ,IfcManifoldSolidBrep
  6260. ,IfcSweptAreaSolid
  6261. ,IfcSweptDiskSolid))
  6262. SUBTYPE OF (IfcGeometricRepresentationItem);
  6263. DERIVE
  6264. Dim : IfcDimensionCount := 3;
  6265. END_ENTITY;
  6266. ENTITY IfcSoundProperties
  6267. SUBTYPE OF (IfcPropertySetDefinition);
  6268. IsAttenuating : IfcBoolean;
  6269. SoundScale : OPTIONAL IfcSoundScaleEnum;
  6270. SoundValues : LIST [1:8] OF IfcSoundValue;
  6271. END_ENTITY;
  6272. ENTITY IfcSoundValue
  6273. SUBTYPE OF (IfcPropertySetDefinition);
  6274. SoundLevelTimeSeries : OPTIONAL IfcTimeSeries;
  6275. Frequency : IfcFrequencyMeasure;
  6276. SoundLevelSingleValue : OPTIONAL IfcDerivedMeasureValue;
  6277. END_ENTITY;
  6278. ENTITY IfcSpace
  6279. SUBTYPE OF (IfcSpatialStructureElement);
  6280. InteriorOrExteriorSpace : IfcInternalOrExternalEnum;
  6281. ElevationWithFlooring : OPTIONAL IfcLengthMeasure;
  6282. INVERSE
  6283. HasCoverings : SET [0:?] OF IfcRelCoversSpaces FOR RelatedSpace;
  6284. BoundedBy : SET [0:?] OF IfcRelSpaceBoundary FOR RelatingSpace;
  6285. END_ENTITY;
  6286. ENTITY IfcSpaceHeaterType
  6287. SUBTYPE OF (IfcEnergyConversionDeviceType);
  6288. PredefinedType : IfcSpaceHeaterTypeEnum;
  6289. WHERE
  6290. WR1 : (PredefinedType <> IfcSpaceHeaterTypeEnum.USERDEFINED) OR
  6291. ((PredefinedType = IfcSpaceHeaterTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  6292. END_ENTITY;
  6293. ENTITY IfcSpaceProgram
  6294. SUBTYPE OF (IfcControl);
  6295. SpaceProgramIdentifier : IfcIdentifier;
  6296. MaxRequiredArea : OPTIONAL IfcAreaMeasure;
  6297. MinRequiredArea : OPTIONAL IfcAreaMeasure;
  6298. RequestedLocation : OPTIONAL IfcSpatialStructureElement;
  6299. StandardRequiredArea : IfcAreaMeasure;
  6300. INVERSE
  6301. HasInteractionReqsFrom : SET [0:?] OF IfcRelInteractionRequirements FOR RelatedSpaceProgram;
  6302. HasInteractionReqsTo : SET [0:?] OF IfcRelInteractionRequirements FOR RelatingSpaceProgram;
  6303. END_ENTITY;
  6304. ENTITY IfcSpaceThermalLoadProperties
  6305. SUBTYPE OF (IfcPropertySetDefinition);
  6306. ApplicableValueRatio : OPTIONAL IfcPositiveRatioMeasure;
  6307. ThermalLoadSource : IfcThermalLoadSourceEnum;
  6308. PropertySource : IfcPropertySourceEnum;
  6309. SourceDescription : OPTIONAL IfcText;
  6310. MaximumValue : IfcPowerMeasure;
  6311. MinimumValue : OPTIONAL IfcPowerMeasure;
  6312. ThermalLoadTimeSeriesValues : OPTIONAL IfcTimeSeries;
  6313. UserDefinedThermalLoadSource : OPTIONAL IfcLabel;
  6314. UserDefinedPropertySource : OPTIONAL IfcLabel;
  6315. ThermalLoadType : IfcThermalLoadTypeEnum;
  6316. END_ENTITY;
  6317. ENTITY IfcSpaceType
  6318. SUBTYPE OF (IfcSpatialStructureElementType);
  6319. PredefinedType : IfcSpaceTypeEnum;
  6320. END_ENTITY;
  6321. ENTITY IfcSpatialStructureElement
  6322. ABSTRACT SUPERTYPE OF (ONEOF
  6323. (IfcBuilding
  6324. ,IfcBuildingStorey
  6325. ,IfcSite
  6326. ,IfcSpace))
  6327. SUBTYPE OF (IfcProduct);
  6328. LongName : OPTIONAL IfcLabel;
  6329. CompositionType : IfcElementCompositionEnum;
  6330. INVERSE
  6331. ReferencesElements : SET [0:?] OF IfcRelReferencedInSpatialStructure FOR RelatingStructure;
  6332. ServicedBySystems : SET [0:?] OF IfcRelServicesBuildings FOR RelatedBuildings;
  6333. ContainsElements : SET [0:?] OF IfcRelContainedInSpatialStructure FOR RelatingStructure;
  6334. WHERE
  6335. WR41 : (HIINDEX(SELF\IfcObjectDefinition.Decomposes) = 1)
  6336. AND
  6337. ('IFC2X3.IFCRELAGGREGATES' IN TYPEOF(SELF\IfcObjectDefinition.Decomposes[1]))
  6338. AND
  6339. (('IFC2X3.IFCPROJECT' IN TYPEOF (SELF\IfcObjectDefinition.Decomposes[1].RelatingObject)) OR
  6340. ('IFC2X3.IFCSPATIALSTRUCTUREELEMENT' IN TYPEOF (SELF\IfcObjectDefinition.Decomposes[1].RelatingObject))
  6341. );
  6342. END_ENTITY;
  6343. ENTITY IfcSpatialStructureElementType
  6344. ABSTRACT SUPERTYPE OF (ONEOF
  6345. (IfcSpaceType))
  6346. SUBTYPE OF (IfcElementType);
  6347. END_ENTITY;
  6348. ENTITY IfcSphere
  6349. SUBTYPE OF (IfcCsgPrimitive3D);
  6350. Radius : IfcPositiveLengthMeasure;
  6351. END_ENTITY;
  6352. ENTITY IfcStackTerminalType
  6353. SUBTYPE OF (IfcFlowTerminalType);
  6354. PredefinedType : IfcStackTerminalTypeEnum;
  6355. END_ENTITY;
  6356. ENTITY IfcStair
  6357. SUBTYPE OF (IfcBuildingElement);
  6358. ShapeType : IfcStairTypeEnum;
  6359. WHERE
  6360. WR1 : (HIINDEX(SELF\IfcObjectDefinition.IsDecomposedBy) = 0) OR
  6361. ((HIINDEX(SELF\IfcObjectDefinition.IsDecomposedBy) = 1) AND (NOT(EXISTS(SELF\IfcProduct.Representation))));
  6362. END_ENTITY;
  6363. ENTITY IfcStairFlight
  6364. SUBTYPE OF (IfcBuildingElement);
  6365. NumberOfRiser : OPTIONAL INTEGER;
  6366. NumberOfTreads : OPTIONAL INTEGER;
  6367. RiserHeight : OPTIONAL IfcPositiveLengthMeasure;
  6368. TreadLength : OPTIONAL IfcPositiveLengthMeasure;
  6369. END_ENTITY;
  6370. ENTITY IfcStairFlightType
  6371. SUBTYPE OF (IfcBuildingElementType);
  6372. PredefinedType : IfcStairFlightTypeEnum;
  6373. END_ENTITY;
  6374. ENTITY IfcStructuralAction
  6375. ABSTRACT SUPERTYPE OF (ONEOF
  6376. (IfcStructuralLinearAction
  6377. ,IfcStructuralPlanarAction
  6378. ,IfcStructuralPointAction))
  6379. SUBTYPE OF (IfcStructuralActivity);
  6380. DestabilizingLoad : BOOLEAN;
  6381. CausedBy : OPTIONAL IfcStructuralReaction;
  6382. END_ENTITY;
  6383. ENTITY IfcStructuralActivity
  6384. ABSTRACT SUPERTYPE OF (ONEOF
  6385. (IfcStructuralAction
  6386. ,IfcStructuralReaction))
  6387. SUBTYPE OF (IfcProduct);
  6388. AppliedLoad : IfcStructuralLoad;
  6389. GlobalOrLocal : IfcGlobalOrLocalEnum;
  6390. INVERSE
  6391. AssignedToStructuralItem : IfcRelConnectsStructuralActivity FOR RelatedStructuralActivity;
  6392. END_ENTITY;
  6393. ENTITY IfcStructuralAnalysisModel
  6394. SUBTYPE OF (IfcSystem);
  6395. PredefinedType : IfcAnalysisModelTypeEnum;
  6396. OrientationOf2DPlane : OPTIONAL IfcAxis2Placement3D;
  6397. LoadedBy : OPTIONAL SET [1:?] OF IfcStructuralLoadGroup;
  6398. HasResults : OPTIONAL SET [1:?] OF IfcStructuralResultGroup;
  6399. END_ENTITY;
  6400. ENTITY IfcStructuralConnection
  6401. ABSTRACT SUPERTYPE OF (ONEOF
  6402. (IfcStructuralCurveConnection
  6403. ,IfcStructuralPointConnection
  6404. ,IfcStructuralSurfaceConnection))
  6405. SUBTYPE OF (IfcStructuralItem);
  6406. AppliedCondition : OPTIONAL IfcBoundaryCondition;
  6407. INVERSE
  6408. ConnectsStructuralMembers : SET [1:?] OF IfcRelConnectsStructuralMember FOR RelatedStructuralConnection;
  6409. END_ENTITY;
  6410. ENTITY IfcStructuralConnectionCondition
  6411. ABSTRACT SUPERTYPE OF (ONEOF
  6412. (IfcFailureConnectionCondition
  6413. ,IfcSlippageConnectionCondition));
  6414. Name : OPTIONAL IfcLabel;
  6415. END_ENTITY;
  6416. ENTITY IfcStructuralCurveConnection
  6417. SUBTYPE OF (IfcStructuralConnection);
  6418. END_ENTITY;
  6419. ENTITY IfcStructuralCurveMember
  6420. SUPERTYPE OF (ONEOF
  6421. (IfcStructuralCurveMemberVarying))
  6422. SUBTYPE OF (IfcStructuralMember);
  6423. PredefinedType : IfcStructuralCurveTypeEnum;
  6424. END_ENTITY;
  6425. ENTITY IfcStructuralCurveMemberVarying
  6426. SUBTYPE OF (IfcStructuralCurveMember);
  6427. END_ENTITY;
  6428. ENTITY IfcStructuralItem
  6429. ABSTRACT SUPERTYPE OF (ONEOF
  6430. (IfcStructuralConnection
  6431. ,IfcStructuralMember))
  6432. SUBTYPE OF (IfcProduct);
  6433. INVERSE
  6434. AssignedStructuralActivity : SET [0:?] OF IfcRelConnectsStructuralActivity FOR RelatingElement;
  6435. END_ENTITY;
  6436. ENTITY IfcStructuralLinearAction
  6437. SUPERTYPE OF (ONEOF
  6438. (IfcStructuralLinearActionVarying))
  6439. SUBTYPE OF (IfcStructuralAction);
  6440. ProjectedOrTrue : IfcProjectedOrTrueLengthEnum;
  6441. WHERE
  6442. WR61 : SIZEOF(['IFC2X3.IFCSTRUCTURALLOADLINEARFORCE',
  6443. 'IFC2X3.IFCSTRUCTURALLOADTEMPERATURE']
  6444. * TYPEOF(SELF\IfcStructuralActivity.AppliedLoad)) = 1;
  6445. END_ENTITY;
  6446. ENTITY IfcStructuralLinearActionVarying
  6447. SUBTYPE OF (IfcStructuralLinearAction);
  6448. VaryingAppliedLoadLocation : IfcShapeAspect;
  6449. SubsequentAppliedLoads : LIST [1:?] OF IfcStructuralLoad;
  6450. DERIVE
  6451. VaryingAppliedLoads : LIST [2:?] OF IfcStructuralLoad := IfcAddToBeginOfList(SELF\IfcStructuralActivity.AppliedLoad, SubsequentAppliedLoads);
  6452. END_ENTITY;
  6453. ENTITY IfcStructuralLoad
  6454. ABSTRACT SUPERTYPE OF (ONEOF
  6455. (IfcStructuralLoadStatic));
  6456. Name : OPTIONAL IfcLabel;
  6457. END_ENTITY;
  6458. ENTITY IfcStructuralLoadGroup
  6459. SUBTYPE OF (IfcGroup);
  6460. PredefinedType : IfcLoadGroupTypeEnum;
  6461. ActionType : IfcActionTypeEnum;
  6462. ActionSource : IfcActionSourceTypeEnum;
  6463. Coefficient : OPTIONAL IfcPositiveRatioMeasure;
  6464. Purpose : OPTIONAL IfcLabel;
  6465. INVERSE
  6466. SourceOfResultGroup : SET [0:1] OF IfcStructuralResultGroup FOR ResultForLoadGroup;
  6467. LoadGroupFor : SET [0:?] OF IfcStructuralAnalysisModel FOR LoadedBy;
  6468. END_ENTITY;
  6469. ENTITY IfcStructuralLoadLinearForce
  6470. SUBTYPE OF (IfcStructuralLoadStatic);
  6471. LinearForceX : OPTIONAL IfcLinearForceMeasure;
  6472. LinearForceY : OPTIONAL IfcLinearForceMeasure;
  6473. LinearForceZ : OPTIONAL IfcLinearForceMeasure;
  6474. LinearMomentX : OPTIONAL IfcLinearMomentMeasure;
  6475. LinearMomentY : OPTIONAL IfcLinearMomentMeasure;
  6476. LinearMomentZ : OPTIONAL IfcLinearMomentMeasure;
  6477. END_ENTITY;
  6478. ENTITY IfcStructuralLoadPlanarForce
  6479. SUBTYPE OF (IfcStructuralLoadStatic);
  6480. PlanarForceX : OPTIONAL IfcPlanarForceMeasure;
  6481. PlanarForceY : OPTIONAL IfcPlanarForceMeasure;
  6482. PlanarForceZ : OPTIONAL IfcPlanarForceMeasure;
  6483. END_ENTITY;
  6484. ENTITY IfcStructuralLoadSingleDisplacement
  6485. SUPERTYPE OF (ONEOF
  6486. (IfcStructuralLoadSingleDisplacementDistortion))
  6487. SUBTYPE OF (IfcStructuralLoadStatic);
  6488. DisplacementX : OPTIONAL IfcLengthMeasure;
  6489. DisplacementY : OPTIONAL IfcLengthMeasure;
  6490. DisplacementZ : OPTIONAL IfcLengthMeasure;
  6491. RotationalDisplacementRX : OPTIONAL IfcPlaneAngleMeasure;
  6492. RotationalDisplacementRY : OPTIONAL IfcPlaneAngleMeasure;
  6493. RotationalDisplacementRZ : OPTIONAL IfcPlaneAngleMeasure;
  6494. END_ENTITY;
  6495. ENTITY IfcStructuralLoadSingleDisplacementDistortion
  6496. SUBTYPE OF (IfcStructuralLoadSingleDisplacement);
  6497. Distortion : OPTIONAL IfcCurvatureMeasure;
  6498. END_ENTITY;
  6499. ENTITY IfcStructuralLoadSingleForce
  6500. SUPERTYPE OF (ONEOF
  6501. (IfcStructuralLoadSingleForceWarping))
  6502. SUBTYPE OF (IfcStructuralLoadStatic);
  6503. ForceX : OPTIONAL IfcForceMeasure;
  6504. ForceY : OPTIONAL IfcForceMeasure;
  6505. ForceZ : OPTIONAL IfcForceMeasure;
  6506. MomentX : OPTIONAL IfcTorqueMeasure;
  6507. MomentY : OPTIONAL IfcTorqueMeasure;
  6508. MomentZ : OPTIONAL IfcTorqueMeasure;
  6509. END_ENTITY;
  6510. ENTITY IfcStructuralLoadSingleForceWarping
  6511. SUBTYPE OF (IfcStructuralLoadSingleForce);
  6512. WarpingMoment : OPTIONAL IfcWarpingMomentMeasure;
  6513. END_ENTITY;
  6514. ENTITY IfcStructuralLoadStatic
  6515. ABSTRACT SUPERTYPE OF (ONEOF
  6516. (IfcStructuralLoadLinearForce
  6517. ,IfcStructuralLoadPlanarForce
  6518. ,IfcStructuralLoadSingleDisplacement
  6519. ,IfcStructuralLoadSingleForce
  6520. ,IfcStructuralLoadTemperature))
  6521. SUBTYPE OF (IfcStructuralLoad);
  6522. END_ENTITY;
  6523. ENTITY IfcStructuralLoadTemperature
  6524. SUBTYPE OF (IfcStructuralLoadStatic);
  6525. DeltaT_Constant : OPTIONAL IfcThermodynamicTemperatureMeasure;
  6526. DeltaT_Y : OPTIONAL IfcThermodynamicTemperatureMeasure;
  6527. DeltaT_Z : OPTIONAL IfcThermodynamicTemperatureMeasure;
  6528. END_ENTITY;
  6529. ENTITY IfcStructuralMember
  6530. ABSTRACT SUPERTYPE OF (ONEOF
  6531. (IfcStructuralCurveMember
  6532. ,IfcStructuralSurfaceMember))
  6533. SUBTYPE OF (IfcStructuralItem);
  6534. INVERSE
  6535. ReferencesElement : SET [0:?] OF IfcRelConnectsStructuralElement FOR RelatedStructuralMember;
  6536. ConnectedBy : SET [0:?] OF IfcRelConnectsStructuralMember FOR RelatingStructuralMember;
  6537. END_ENTITY;
  6538. ENTITY IfcStructuralPlanarAction
  6539. SUPERTYPE OF (ONEOF
  6540. (IfcStructuralPlanarActionVarying))
  6541. SUBTYPE OF (IfcStructuralAction);
  6542. ProjectedOrTrue : IfcProjectedOrTrueLengthEnum;
  6543. WHERE
  6544. WR61 : SIZEOF(['IFC2X3.IFCSTRUCTURALLOADPLANARFORCE',
  6545. 'IFC2X3.IFCSTRUCTURALLOADTEMPERATURE']
  6546. * TYPEOF(SELF\IfcStructuralActivity.AppliedLoad)) = 1;
  6547. END_ENTITY;
  6548. ENTITY IfcStructuralPlanarActionVarying
  6549. SUBTYPE OF (IfcStructuralPlanarAction);
  6550. VaryingAppliedLoadLocation : IfcShapeAspect;
  6551. SubsequentAppliedLoads : LIST [2:?] OF IfcStructuralLoad;
  6552. DERIVE
  6553. VaryingAppliedLoads : LIST [3:?] OF IfcStructuralLoad := IfcAddToBeginOfList(SELF\IfcStructuralActivity.AppliedLoad, SubsequentAppliedLoads);
  6554. END_ENTITY;
  6555. ENTITY IfcStructuralPointAction
  6556. SUBTYPE OF (IfcStructuralAction);
  6557. WHERE
  6558. WR61 : SIZEOF(['IFC2X3.IFCSTRUCTURALLOADSINGLEFORCE',
  6559. 'IFC2X3.IFCSTRUCTURALLOADSINGLEDISPLACEMENT']
  6560. * TYPEOF(SELF\IfcStructuralActivity.AppliedLoad)) = 1;
  6561. END_ENTITY;
  6562. ENTITY IfcStructuralPointConnection
  6563. SUBTYPE OF (IfcStructuralConnection);
  6564. END_ENTITY;
  6565. ENTITY IfcStructuralPointReaction
  6566. SUBTYPE OF (IfcStructuralReaction);
  6567. WHERE
  6568. WR61 : SIZEOF(['IFC2X3.IFCSTRUCTURALLOADSINGLEFORCE',
  6569. 'IFC2X3.IFCSTRUCTURALLOADSINGLEDISPLACEMENT']
  6570. * TYPEOF(SELF\IfcStructuralActivity.AppliedLoad)) = 1;
  6571. END_ENTITY;
  6572. ENTITY IfcStructuralProfileProperties
  6573. SUPERTYPE OF (ONEOF
  6574. (IfcStructuralSteelProfileProperties))
  6575. SUBTYPE OF (IfcGeneralProfileProperties);
  6576. TorsionalConstantX : OPTIONAL IfcMomentOfInertiaMeasure;
  6577. MomentOfInertiaYZ : OPTIONAL IfcMomentOfInertiaMeasure;
  6578. MomentOfInertiaY : OPTIONAL IfcMomentOfInertiaMeasure;
  6579. MomentOfInertiaZ : OPTIONAL IfcMomentOfInertiaMeasure;
  6580. WarpingConstant : OPTIONAL IfcWarpingConstantMeasure;
  6581. ShearCentreZ : OPTIONAL IfcLengthMeasure;
  6582. ShearCentreY : OPTIONAL IfcLengthMeasure;
  6583. ShearDeformationAreaZ : OPTIONAL IfcAreaMeasure;
  6584. ShearDeformationAreaY : OPTIONAL IfcAreaMeasure;
  6585. MaximumSectionModulusY : OPTIONAL IfcSectionModulusMeasure;
  6586. MinimumSectionModulusY : OPTIONAL IfcSectionModulusMeasure;
  6587. MaximumSectionModulusZ : OPTIONAL IfcSectionModulusMeasure;
  6588. MinimumSectionModulusZ : OPTIONAL IfcSectionModulusMeasure;
  6589. TorsionalSectionModulus : OPTIONAL IfcSectionModulusMeasure;
  6590. CentreOfGravityInX : OPTIONAL IfcLengthMeasure;
  6591. CentreOfGravityInY : OPTIONAL IfcLengthMeasure;
  6592. WHERE
  6593. WR21 : NOT(EXISTS(ShearDeformationAreaY)) OR (ShearDeformationAreaY >= 0.);
  6594. WR22 : NOT(EXISTS(ShearDeformationAreaZ)) OR (ShearDeformationAreaZ >= 0.);
  6595. END_ENTITY;
  6596. ENTITY IfcStructuralReaction
  6597. ABSTRACT SUPERTYPE OF (ONEOF
  6598. (IfcStructuralPointReaction))
  6599. SUBTYPE OF (IfcStructuralActivity);
  6600. INVERSE
  6601. Causes : SET [0:?] OF IfcStructuralAction FOR CausedBy;
  6602. END_ENTITY;
  6603. ENTITY IfcStructuralResultGroup
  6604. SUBTYPE OF (IfcGroup);
  6605. TheoryType : IfcAnalysisTheoryTypeEnum;
  6606. ResultForLoadGroup : OPTIONAL IfcStructuralLoadGroup;
  6607. IsLinear : BOOLEAN;
  6608. INVERSE
  6609. ResultGroupFor : SET [0:1] OF IfcStructuralAnalysisModel FOR HasResults;
  6610. END_ENTITY;
  6611. ENTITY IfcStructuralSteelProfileProperties
  6612. SUBTYPE OF (IfcStructuralProfileProperties);
  6613. ShearAreaZ : OPTIONAL IfcAreaMeasure;
  6614. ShearAreaY : OPTIONAL IfcAreaMeasure;
  6615. PlasticShapeFactorY : OPTIONAL IfcPositiveRatioMeasure;
  6616. PlasticShapeFactorZ : OPTIONAL IfcPositiveRatioMeasure;
  6617. WHERE
  6618. WR31 : NOT(EXISTS(ShearAreaY)) OR (ShearAreaY >= 0.);
  6619. WR32 : NOT(EXISTS(ShearAreaZ)) OR (ShearAreaZ >= 0.);
  6620. END_ENTITY;
  6621. ENTITY IfcStructuralSurfaceConnection
  6622. SUBTYPE OF (IfcStructuralConnection);
  6623. END_ENTITY;
  6624. ENTITY IfcStructuralSurfaceMember
  6625. SUPERTYPE OF (ONEOF
  6626. (IfcStructuralSurfaceMemberVarying))
  6627. SUBTYPE OF (IfcStructuralMember);
  6628. PredefinedType : IfcStructuralSurfaceTypeEnum;
  6629. Thickness : OPTIONAL IfcPositiveLengthMeasure;
  6630. END_ENTITY;
  6631. ENTITY IfcStructuralSurfaceMemberVarying
  6632. SUBTYPE OF (IfcStructuralSurfaceMember);
  6633. SubsequentThickness : LIST [2:?] OF IfcPositiveLengthMeasure;
  6634. VaryingThicknessLocation : IfcShapeAspect;
  6635. DERIVE
  6636. VaryingThickness : LIST [3:?] OF IfcPositiveLengthMeasure := IfcAddToBeginOfList(SELF\IfcStructuralSurfaceMember.Thickness, SubsequentThickness);
  6637. WHERE
  6638. WR61 : EXISTS(SELF\IfcStructuralSurfaceMember.Thickness);
  6639. WR62 : SIZEOF(QUERY(temp <* SELF.VaryingThicknessLocation.ShapeRepresentations |
  6640. NOT(SIZEOF(temp\IfcRepresentation.Items) = 1)
  6641. )) = 0;
  6642. WR63 : SIZEOF(QUERY(temp <* SELF.VaryingThicknessLocation.ShapeRepresentations |
  6643. NOT(('IFC2X3.IFCCARTESIANPOINT' IN TYPEOF(temp\IfcRepresentation.Items[1]))
  6644. OR
  6645. ('IFC2X3.IFCPOINTONSURFACE' IN TYPEOF(temp\IfcRepresentation.Items[1])))
  6646. )) = 0;
  6647. END_ENTITY;
  6648. ENTITY IfcStructuredDimensionCallout
  6649. SUBTYPE OF (IfcDraughtingCallout);
  6650. WHERE
  6651. WR31 : SIZEOF(QUERY ( Ato <* QUERY ( Con <* SELF.contents | (
  6652. 'IFC2X3.IFCANNOTATIONTEXTOCCURRENCE' IN
  6653. TYPEOF(Con)) ) | (NOT (Ato.Name IN ['dimension value',
  6654. 'tolerance value','unit text','prefix text','suffix text']))))
  6655. = 0;
  6656. END_ENTITY;
  6657. ENTITY IfcStyleModel
  6658. ABSTRACT SUPERTYPE OF (ONEOF
  6659. (IfcStyledRepresentation))
  6660. SUBTYPE OF (IfcRepresentation);
  6661. END_ENTITY;
  6662. ENTITY IfcStyledItem
  6663. SUPERTYPE OF (ONEOF
  6664. (IfcAnnotationOccurrence))
  6665. SUBTYPE OF (IfcRepresentationItem);
  6666. Item : OPTIONAL IfcRepresentationItem;
  6667. Styles : SET [1:?] OF IfcPresentationStyleAssignment;
  6668. Name : OPTIONAL IfcLabel;
  6669. WHERE
  6670. WR11 : SIZEOF(Styles) = 1;
  6671. WR12 : NOT('IFC2X3.IFCSTYLEDITEM' IN TYPEOF(Item));
  6672. END_ENTITY;
  6673. ENTITY IfcStyledRepresentation
  6674. SUBTYPE OF (IfcStyleModel);
  6675. WHERE
  6676. WR21 : SIZEOF(QUERY(temp <* SELF\IfcRepresentation.Items |
  6677. (NOT('IFC2X3.IFCSTYLEDITEM' IN TYPEOF(temp)))
  6678. )) = 0;
  6679. END_ENTITY;
  6680. ENTITY IfcSubContractResource
  6681. SUBTYPE OF (IfcConstructionResource);
  6682. SubContractor : OPTIONAL IfcActorSelect;
  6683. JobDescription : OPTIONAL IfcText;
  6684. END_ENTITY;
  6685. ENTITY IfcSubedge
  6686. SUBTYPE OF (IfcEdge);
  6687. ParentEdge : IfcEdge;
  6688. END_ENTITY;
  6689. ENTITY IfcSurface
  6690. ABSTRACT SUPERTYPE OF (ONEOF
  6691. (IfcBoundedSurface
  6692. ,IfcElementarySurface
  6693. ,IfcSweptSurface))
  6694. SUBTYPE OF (IfcGeometricRepresentationItem);
  6695. END_ENTITY;
  6696. ENTITY IfcSurfaceCurveSweptAreaSolid
  6697. SUBTYPE OF (IfcSweptAreaSolid);
  6698. Directrix : IfcCurve;
  6699. StartParam : IfcParameterValue;
  6700. EndParam : IfcParameterValue;
  6701. ReferenceSurface : IfcSurface;
  6702. END_ENTITY;
  6703. ENTITY IfcSurfaceOfLinearExtrusion
  6704. SUBTYPE OF (IfcSweptSurface);
  6705. ExtrudedDirection : IfcDirection;
  6706. Depth : IfcLengthMeasure;
  6707. DERIVE
  6708. ExtrusionAxis : IfcVector := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector (ExtrudedDirection, Depth);
  6709. WHERE
  6710. WR41 : Depth > 0.;
  6711. END_ENTITY;
  6712. ENTITY IfcSurfaceOfRevolution
  6713. SUBTYPE OF (IfcSweptSurface);
  6714. AxisPosition : IfcAxis1Placement;
  6715. DERIVE
  6716. AxisLine : IfcLine := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcCurve() || IfcLine(AxisPosition.Location,
  6717. IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector(AxisPosition.Z,1.0));
  6718. END_ENTITY;
  6719. ENTITY IfcSurfaceStyle
  6720. SUBTYPE OF (IfcPresentationStyle);
  6721. Side : IfcSurfaceSide;
  6722. Styles : SET [1:5] OF IfcSurfaceStyleElementSelect;
  6723. WHERE
  6724. WR11 : SIZEOF(QUERY(Style <* SELF.Styles |
  6725. 'IFC2X3.IFCSURFACESTYLESHADING' IN
  6726. TYPEOF(Style)
  6727. )) <= 1;
  6728. WR12 : SIZEOF(QUERY(Style <* SELF.Styles |
  6729. 'IFC2X3.IFCSURFACESTYLELIGHTING' IN
  6730. TYPEOF(Style)
  6731. )) <= 1;
  6732. WR13 : SIZEOF(QUERY(Style <* SELF.Styles |
  6733. 'IFC2X3.IFCSURFACESTYLEREFRACTION' IN
  6734. TYPEOF(Style)
  6735. )) <= 1;
  6736. WR14 : SIZEOF(QUERY(Style <* SELF.Styles |
  6737. 'IFC2X3.IFCSURFACESTYLEWITHTEXTURES' IN
  6738. TYPEOF(Style)
  6739. )) <= 1;
  6740. WR15 : SIZEOF(QUERY(Style <* SELF.Styles |
  6741. 'IFC2X3.IFCEXTERNALLYDEFINEDSURFACESTYLE' IN
  6742. TYPEOF(Style)
  6743. )) <= 1;
  6744. END_ENTITY;
  6745. ENTITY IfcSurfaceStyleLighting;
  6746. DiffuseTransmissionColour : IfcColourRgb;
  6747. DiffuseReflectionColour : IfcColourRgb;
  6748. TransmissionColour : IfcColourRgb;
  6749. ReflectanceColour : IfcColourRgb;
  6750. END_ENTITY;
  6751. ENTITY IfcSurfaceStyleRefraction;
  6752. RefractionIndex : OPTIONAL IfcReal;
  6753. DispersionFactor : OPTIONAL IfcReal;
  6754. END_ENTITY;
  6755. ENTITY IfcSurfaceStyleRendering
  6756. SUBTYPE OF (IfcSurfaceStyleShading);
  6757. Transparency : OPTIONAL IfcNormalisedRatioMeasure;
  6758. DiffuseColour : OPTIONAL IfcColourOrFactor;
  6759. TransmissionColour : OPTIONAL IfcColourOrFactor;
  6760. DiffuseTransmissionColour : OPTIONAL IfcColourOrFactor;
  6761. ReflectionColour : OPTIONAL IfcColourOrFactor;
  6762. SpecularColour : OPTIONAL IfcColourOrFactor;
  6763. SpecularHighlight : OPTIONAL IfcSpecularHighlightSelect;
  6764. ReflectanceMethod : IfcReflectanceMethodEnum;
  6765. END_ENTITY;
  6766. ENTITY IfcSurfaceStyleShading
  6767. SUPERTYPE OF (ONEOF
  6768. (IfcSurfaceStyleRendering));
  6769. SurfaceColour : IfcColourRgb;
  6770. END_ENTITY;
  6771. ENTITY IfcSurfaceStyleWithTextures;
  6772. Textures : LIST [1:?] OF IfcSurfaceTexture;
  6773. END_ENTITY;
  6774. ENTITY IfcSurfaceTexture
  6775. ABSTRACT SUPERTYPE OF (ONEOF
  6776. (IfcBlobTexture
  6777. ,IfcImageTexture
  6778. ,IfcPixelTexture));
  6779. RepeatS : BOOLEAN;
  6780. RepeatT : BOOLEAN;
  6781. TextureType : IfcSurfaceTextureEnum;
  6782. TextureTransform : OPTIONAL IfcCartesianTransformationOperator2D;
  6783. END_ENTITY;
  6784. ENTITY IfcSweptAreaSolid
  6785. ABSTRACT SUPERTYPE OF (ONEOF
  6786. (IfcExtrudedAreaSolid
  6787. ,IfcRevolvedAreaSolid
  6788. ,IfcSurfaceCurveSweptAreaSolid))
  6789. SUBTYPE OF (IfcSolidModel);
  6790. SweptArea : IfcProfileDef;
  6791. Position : IfcAxis2Placement3D;
  6792. WHERE
  6793. WR22 : SweptArea.ProfileType = IfcProfileTypeEnum.Area;
  6794. END_ENTITY;
  6795. ENTITY IfcSweptDiskSolid
  6796. SUBTYPE OF (IfcSolidModel);
  6797. Directrix : IfcCurve;
  6798. Radius : IfcPositiveLengthMeasure;
  6799. InnerRadius : OPTIONAL IfcPositiveLengthMeasure;
  6800. StartParam : IfcParameterValue;
  6801. EndParam : IfcParameterValue;
  6802. WHERE
  6803. WR1 : Directrix.Dim = 3;
  6804. WR2 : (NOT EXISTS(InnerRadius)) OR (Radius > InnerRadius);
  6805. END_ENTITY;
  6806. ENTITY IfcSweptSurface
  6807. ABSTRACT SUPERTYPE OF (ONEOF
  6808. (IfcSurfaceOfLinearExtrusion
  6809. ,IfcSurfaceOfRevolution))
  6810. SUBTYPE OF (IfcSurface);
  6811. SweptCurve : IfcProfileDef;
  6812. Position : IfcAxis2Placement3D;
  6813. DERIVE
  6814. Dim : IfcDimensionCount := Position.Dim;
  6815. WHERE
  6816. WR1 : NOT('IFC2X3.IFCDERIVEDPROFILEDEF' IN TYPEOF(SweptCurve));
  6817. WR2 : SweptCurve.ProfileType = IfcProfileTypeEnum.Curve;
  6818. END_ENTITY;
  6819. ENTITY IfcSwitchingDeviceType
  6820. SUBTYPE OF (IfcFlowControllerType);
  6821. PredefinedType : IfcSwitchingDeviceTypeEnum;
  6822. END_ENTITY;
  6823. ENTITY IfcSymbolStyle
  6824. SUBTYPE OF (IfcPresentationStyle);
  6825. StyleOfSymbol : IfcSymbolStyleSelect;
  6826. END_ENTITY;
  6827. ENTITY IfcSystem
  6828. SUPERTYPE OF (ONEOF
  6829. (IfcElectricalCircuit
  6830. ,IfcStructuralAnalysisModel))
  6831. SUBTYPE OF (IfcGroup);
  6832. INVERSE
  6833. ServicesBuildings : SET [0:1] OF IfcRelServicesBuildings FOR RelatingSystem;
  6834. END_ENTITY;
  6835. ENTITY IfcSystemFurnitureElementType
  6836. SUBTYPE OF (IfcFurnishingElementType);
  6837. END_ENTITY;
  6838. ENTITY IfcTShapeProfileDef
  6839. SUBTYPE OF (IfcParameterizedProfileDef);
  6840. Depth : IfcPositiveLengthMeasure;
  6841. FlangeWidth : IfcPositiveLengthMeasure;
  6842. WebThickness : IfcPositiveLengthMeasure;
  6843. FlangeThickness : IfcPositiveLengthMeasure;
  6844. FilletRadius : OPTIONAL IfcPositiveLengthMeasure;
  6845. FlangeEdgeRadius : OPTIONAL IfcPositiveLengthMeasure;
  6846. WebEdgeRadius : OPTIONAL IfcPositiveLengthMeasure;
  6847. WebSlope : OPTIONAL IfcPlaneAngleMeasure;
  6848. FlangeSlope : OPTIONAL IfcPlaneAngleMeasure;
  6849. CentreOfGravityInY : OPTIONAL IfcPositiveLengthMeasure;
  6850. WHERE
  6851. WR1 : FlangeThickness < Depth;
  6852. WR2 : WebThickness < FlangeWidth;
  6853. END_ENTITY;
  6854. ENTITY IfcTable;
  6855. Name : STRING;
  6856. Rows : LIST [1:?] OF IfcTableRow;
  6857. DERIVE
  6858. NumberOfCellsInRow : INTEGER := HIINDEX(Rows[1].RowCells);
  6859. NumberOfHeadings : INTEGER := SIZEOF(QUERY( Temp <* Rows | Temp.IsHeading));
  6860. NumberOfDataRows : INTEGER := SIZEOF(QUERY( Temp <* Rows | NOT(Temp.IsHeading)));
  6861. WHERE
  6862. WR1 : SIZEOF(QUERY( Temp <* Rows | HIINDEX(Temp.RowCells) <> HIINDEX(Rows[1].RowCells))) = 0;
  6863. WR2 : SIZEOF(QUERY( Temp <* Rows | HIINDEX(Temp.RowCells) <> HIINDEX(Rows[1].RowCells))) = 0;
  6864. WR3 : { 0 <= NumberOfHeadings <= 1 };
  6865. END_ENTITY;
  6866. ENTITY IfcTableRow;
  6867. RowCells : LIST [1:?] OF IfcValue;
  6868. IsHeading : BOOLEAN;
  6869. INVERSE
  6870. OfTable : IfcTable FOR Rows;
  6871. END_ENTITY;
  6872. ENTITY IfcTankType
  6873. SUBTYPE OF (IfcFlowStorageDeviceType);
  6874. PredefinedType : IfcTankTypeEnum;
  6875. WHERE
  6876. WR1 : (PredefinedType <> IfcTankTypeEnum.USERDEFINED) OR
  6877. ((PredefinedType = IfcTankTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  6878. END_ENTITY;
  6879. ENTITY IfcTask
  6880. SUPERTYPE OF (ONEOF
  6881. (IfcMove
  6882. ,IfcOrderAction))
  6883. SUBTYPE OF (IfcProcess);
  6884. TaskId : IfcIdentifier;
  6885. Status : OPTIONAL IfcLabel;
  6886. WorkMethod : OPTIONAL IfcLabel;
  6887. IsMilestone : BOOLEAN;
  6888. Priority : OPTIONAL INTEGER;
  6889. WHERE
  6890. WR1 : SIZEOF(QUERY(temp <* SELF\IfcObjectDefinition.Decomposes | NOT('IFC2X3.IFCRELNESTS' IN TYPEOF(temp)))) = 0;
  6891. WR2 : SIZEOF(QUERY(temp <* SELF\IfcObjectDefinition.IsDecomposedBy | NOT('IFC2X3.IFCRELNESTS' IN TYPEOF(temp)))) = 0;
  6892. WR3 : EXISTS(SELF\IfcRoot.Name);
  6893. END_ENTITY;
  6894. ENTITY IfcTelecomAddress
  6895. SUBTYPE OF (IfcAddress);
  6896. TelephoneNumbers : OPTIONAL LIST [1:?] OF IfcLabel;
  6897. FacsimileNumbers : OPTIONAL LIST [1:?] OF IfcLabel;
  6898. PagerNumber : OPTIONAL IfcLabel;
  6899. ElectronicMailAddresses : OPTIONAL LIST [1:?] OF IfcLabel;
  6900. WWWHomePageURL : OPTIONAL IfcLabel;
  6901. WHERE
  6902. WR1 : EXISTS (TelephoneNumbers) OR
  6903. EXISTS (PagerNumber) OR
  6904. EXISTS (FacsimileNumbers) OR
  6905. EXISTS (ElectronicMailAddresses) OR
  6906. EXISTS (WWWHomePageURL);
  6907. END_ENTITY;
  6908. ENTITY IfcTendon
  6909. SUBTYPE OF (IfcReinforcingElement);
  6910. PredefinedType : IfcTendonTypeEnum;
  6911. NominalDiameter : IfcPositiveLengthMeasure;
  6912. CrossSectionArea : IfcAreaMeasure;
  6913. TensionForce : OPTIONAL IfcForceMeasure;
  6914. PreStress : OPTIONAL IfcPressureMeasure;
  6915. FrictionCoefficient : OPTIONAL IfcNormalisedRatioMeasure;
  6916. AnchorageSlip : OPTIONAL IfcPositiveLengthMeasure;
  6917. MinCurvatureRadius : OPTIONAL IfcPositiveLengthMeasure;
  6918. WHERE
  6919. WR1 : (PredefinedType <> IfcTendonTypeEnum.USERDEFINED) OR ((PredefinedType = IfcTendonTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));
  6920. END_ENTITY;
  6921. ENTITY IfcTendonAnchor
  6922. SUBTYPE OF (IfcReinforcingElement);
  6923. END_ENTITY;
  6924. ENTITY IfcTerminatorSymbol
  6925. SUPERTYPE OF (ONEOF
  6926. (IfcDimensionCurveTerminator))
  6927. SUBTYPE OF (IfcAnnotationSymbolOccurrence);
  6928. AnnotatedCurve : IfcAnnotationCurveOccurrence;
  6929. END_ENTITY;
  6930. ENTITY IfcTextLiteral
  6931. SUPERTYPE OF (ONEOF
  6932. (IfcTextLiteralWithExtent))
  6933. SUBTYPE OF (IfcGeometricRepresentationItem);
  6934. Literal : IfcPresentableText;
  6935. Placement : IfcAxis2Placement;
  6936. Path : IfcTextPath;
  6937. END_ENTITY;
  6938. ENTITY IfcTextLiteralWithExtent
  6939. SUBTYPE OF (IfcTextLiteral);
  6940. Extent : IfcPlanarExtent;
  6941. BoxAlignment : IfcBoxAlignment;
  6942. WHERE
  6943. WR31 : NOT('IFC2X3.IFCPLANARBOX' IN TYPEOF(Extent));
  6944. END_ENTITY;
  6945. ENTITY IfcTextStyle
  6946. SUBTYPE OF (IfcPresentationStyle);
  6947. TextCharacterAppearance : OPTIONAL IfcCharacterStyleSelect;
  6948. TextStyle : OPTIONAL IfcTextStyleSelect;
  6949. TextFontStyle : IfcTextFontSelect;
  6950. END_ENTITY;
  6951. ENTITY IfcTextStyleFontModel
  6952. SUBTYPE OF (IfcPreDefinedTextFont);
  6953. FontFamily : OPTIONAL LIST [1:?] OF IfcTextFontName;
  6954. FontStyle : OPTIONAL IfcFontStyle;
  6955. FontVariant : OPTIONAL IfcFontVariant;
  6956. FontWeight : OPTIONAL IfcFontWeight;
  6957. FontSize : IfcSizeSelect;
  6958. WHERE
  6959. WR31 : ('IFC2X3.IFCLENGTHMEASURE' IN TYPEOF(SELF.FontSize)) AND
  6960. (SELF.FontSize > 0.);
  6961. END_ENTITY;
  6962. ENTITY IfcTextStyleForDefinedFont;
  6963. Colour : IfcColour;
  6964. BackgroundColour : OPTIONAL IfcColour;
  6965. END_ENTITY;
  6966. ENTITY IfcTextStyleTextModel;
  6967. TextIndent : OPTIONAL IfcSizeSelect;
  6968. TextAlign : OPTIONAL IfcTextAlignment;
  6969. TextDecoration : OPTIONAL IfcTextDecoration;
  6970. LetterSpacing : OPTIONAL IfcSizeSelect;
  6971. WordSpacing : OPTIONAL IfcSizeSelect;
  6972. TextTransform : OPTIONAL IfcTextTransformation;
  6973. LineHeight : OPTIONAL IfcSizeSelect;
  6974. END_ENTITY;
  6975. ENTITY IfcTextStyleWithBoxCharacteristics;
  6976. BoxHeight : OPTIONAL IfcPositiveLengthMeasure;
  6977. BoxWidth : OPTIONAL IfcPositiveLengthMeasure;
  6978. BoxSlantAngle : OPTIONAL IfcPlaneAngleMeasure;
  6979. BoxRotateAngle : OPTIONAL IfcPlaneAngleMeasure;
  6980. CharacterSpacing : OPTIONAL IfcSizeSelect;
  6981. END_ENTITY;
  6982. ENTITY IfcTextureCoordinate
  6983. ABSTRACT SUPERTYPE OF (ONEOF
  6984. (IfcTextureCoordinateGenerator
  6985. ,IfcTextureMap));
  6986. INVERSE
  6987. AnnotatedSurface : SET [1:1] OF IfcAnnotationSurface FOR TextureCoordinates;
  6988. END_ENTITY;
  6989. ENTITY IfcTextureCoordinateGenerator
  6990. SUBTYPE OF (IfcTextureCoordinate);
  6991. Mode : IfcLabel;
  6992. Parameter : LIST [1:?] OF IfcSimpleValue;
  6993. END_ENTITY;
  6994. ENTITY IfcTextureMap
  6995. SUBTYPE OF (IfcTextureCoordinate);
  6996. TextureMaps : SET [1:?] OF IfcVertexBasedTextureMap;
  6997. WHERE
  6998. WR11 : SIZEOF([
  6999. 'IFC2X3.IFCSHELLBASEDSURFACEMODEL',
  7000. 'IFC2X3.IFCFACEBASEDSURFACEMODEL',
  7001. 'IFC2X3.IFCFACETEDBREP',
  7002. 'IFC2X3.IFCFACETEDBREPWITHVOIDS']
  7003. * TYPEOF(SELF\IfcTextureCoordinate.AnnotatedSurface[1].Item)
  7004. ) >= 1;
  7005. END_ENTITY;
  7006. ENTITY IfcTextureVertex;
  7007. Coordinates : LIST [2:2] OF IfcParameterValue;
  7008. END_ENTITY;
  7009. ENTITY IfcThermalMaterialProperties
  7010. SUBTYPE OF (IfcMaterialProperties);
  7011. SpecificHeatCapacity : OPTIONAL IfcSpecificHeatCapacityMeasure;
  7012. BoilingPoint : OPTIONAL IfcThermodynamicTemperatureMeasure;
  7013. FreezingPoint : OPTIONAL IfcThermodynamicTemperatureMeasure;
  7014. ThermalConductivity : OPTIONAL IfcThermalConductivityMeasure;
  7015. UNIQUE
  7016. UR11 : Material;
  7017. END_ENTITY;
  7018. ENTITY IfcTimeSeries
  7019. ABSTRACT SUPERTYPE OF (ONEOF
  7020. (IfcIrregularTimeSeries
  7021. ,IfcRegularTimeSeries));
  7022. Name : IfcLabel;
  7023. Description : OPTIONAL IfcText;
  7024. StartTime : IfcDateTimeSelect;
  7025. EndTime : IfcDateTimeSelect;
  7026. TimeSeriesDataType : IfcTimeSeriesDataTypeEnum;
  7027. DataOrigin : IfcDataOriginEnum;
  7028. UserDefinedDataOrigin : OPTIONAL IfcLabel;
  7029. Unit : OPTIONAL IfcUnit;
  7030. INVERSE
  7031. DocumentedBy : SET [0:1] OF IfcTimeSeriesReferenceRelationship FOR ReferencedTimeSeries;
  7032. END_ENTITY;
  7033. ENTITY IfcTimeSeriesReferenceRelationship;
  7034. ReferencedTimeSeries : IfcTimeSeries;
  7035. TimeSeriesReferences : SET [1:?] OF IfcDocumentSelect;
  7036. END_ENTITY;
  7037. ENTITY IfcTimeSeriesSchedule
  7038. SUBTYPE OF (IfcControl);
  7039. ApplicableDates : OPTIONAL LIST [1:?] OF IfcDateTimeSelect;
  7040. TimeSeriesScheduleType : IfcTimeSeriesScheduleTypeEnum;
  7041. TimeSeries : IfcTimeSeries;
  7042. WHERE
  7043. WR41 : NOT(TimeSeriesScheduleType=IfcTimeSeriesScheduleTypeEnum.USERDEFINED) OR EXISTS(SELF\IfcObject.ObjectType);
  7044. END_ENTITY;
  7045. ENTITY IfcTimeSeriesValue;
  7046. ListValues : LIST [1:?] OF IfcValue;
  7047. END_ENTITY;
  7048. ENTITY IfcTopologicalRepresentationItem
  7049. ABSTRACT SUPERTYPE OF (ONEOF
  7050. (IfcConnectedFaceSet
  7051. ,IfcEdge
  7052. ,IfcFace
  7053. ,IfcFaceBound
  7054. ,IfcLoop
  7055. ,IfcPath
  7056. ,IfcVertex))
  7057. SUBTYPE OF (IfcRepresentationItem);
  7058. END_ENTITY;
  7059. ENTITY IfcTopologyRepresentation
  7060. SUBTYPE OF (IfcShapeModel);
  7061. WHERE
  7062. WR21 : SIZEOF(QUERY(temp <* SELF\IfcRepresentation.Items |
  7063. NOT('IFC2X3.IFCTOPOLOGICALREPRESENTATIONITEM' IN TYPEOF(temp))
  7064. )) = 0;
  7065. WR22 : EXISTS(SELF\IfcRepresentation.RepresentationType);
  7066. WR23 : IfcTopologyRepresentationTypes(SELF\IfcRepresentation.RepresentationType, SELF\IfcRepresentation.Items);
  7067. END_ENTITY;
  7068. ENTITY IfcTransformerType
  7069. SUBTYPE OF (IfcEnergyConversionDeviceType);
  7070. PredefinedType : IfcTransformerTypeEnum;
  7071. END_ENTITY;
  7072. ENTITY IfcTransportElement
  7073. SUBTYPE OF (IfcElement);
  7074. OperationType : OPTIONAL IfcTransportElementTypeEnum;
  7075. CapacityByWeight : OPTIONAL IfcMassMeasure;
  7076. CapacityByNumber : OPTIONAL IfcCountMeasure;
  7077. END_ENTITY;
  7078. ENTITY IfcTransportElementType
  7079. SUBTYPE OF (IfcElementType);
  7080. PredefinedType : IfcTransportElementTypeEnum;
  7081. END_ENTITY;
  7082. ENTITY IfcTrapeziumProfileDef
  7083. SUBTYPE OF (IfcParameterizedProfileDef);
  7084. BottomXDim : IfcPositiveLengthMeasure;
  7085. TopXDim : IfcPositiveLengthMeasure;
  7086. YDim : IfcPositiveLengthMeasure;
  7087. TopXOffset : IfcLengthMeasure;
  7088. END_ENTITY;
  7089. ENTITY IfcTrimmedCurve
  7090. SUBTYPE OF (IfcBoundedCurve);
  7091. BasisCurve : IfcCurve;
  7092. Trim1 : SET [1:2] OF IfcTrimmingSelect;
  7093. Trim2 : SET [1:2] OF IfcTrimmingSelect;
  7094. SenseAgreement : BOOLEAN;
  7095. MasterRepresentation : IfcTrimmingPreference;
  7096. WHERE
  7097. WR41 : (HIINDEX(Trim1) = 1) OR (TYPEOF(Trim1[1]) <> TYPEOF(Trim1[2]));
  7098. WR42 : (HIINDEX(Trim2) = 1) OR (TYPEOF(Trim2[1]) <> TYPEOF(Trim2[2]));
  7099. WR43 : NOT('IFC2X3.IFCBOUNDEDCURVE' IN TYPEOF(BasisCurve));
  7100. END_ENTITY;
  7101. ENTITY IfcTubeBundleType
  7102. SUBTYPE OF (IfcEnergyConversionDeviceType);
  7103. PredefinedType : IfcTubeBundleTypeEnum;
  7104. WHERE
  7105. WR1 : (PredefinedType <> IfcTubeBundleTypeEnum.USERDEFINED) OR
  7106. ((PredefinedType = IfcTubeBundleTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  7107. END_ENTITY;
  7108. ENTITY IfcTwoDirectionRepeatFactor
  7109. SUBTYPE OF (IfcOneDirectionRepeatFactor);
  7110. SecondRepeatFactor : IfcVector;
  7111. END_ENTITY;
  7112. ENTITY IfcTypeObject
  7113. SUPERTYPE OF (ONEOF
  7114. (IfcTypeProduct))
  7115. SUBTYPE OF (IfcObjectDefinition);
  7116. ApplicableOccurrence : OPTIONAL IfcLabel;
  7117. HasPropertySets : OPTIONAL SET [1:?] OF IfcPropertySetDefinition;
  7118. INVERSE
  7119. ObjectTypeOf : SET [0:1] OF IfcRelDefinesByType FOR RelatingType;
  7120. WHERE
  7121. WR1 : EXISTS(SELF\IfcRoot.Name);
  7122. END_ENTITY;
  7123. ENTITY IfcTypeProduct
  7124. SUPERTYPE OF (ONEOF
  7125. (IfcDoorStyle
  7126. ,IfcElementType
  7127. ,IfcWindowStyle))
  7128. SUBTYPE OF (IfcTypeObject);
  7129. RepresentationMaps : OPTIONAL LIST [1:?] OF UNIQUE IfcRepresentationMap;
  7130. Tag : OPTIONAL IfcLabel;
  7131. WHERE
  7132. WR41 : NOT(EXISTS(SELF\IfcTypeObject.ObjectTypeOf[1])) OR
  7133. (SIZEOF(QUERY(temp <* SELF\IfcTypeObject.ObjectTypeOf[1].RelatedObjects |
  7134. NOT('IFC2X3.IFCPRODUCT' IN TYPEOF(temp)))
  7135. ) = 0);
  7136. END_ENTITY;
  7137. ENTITY IfcUShapeProfileDef
  7138. SUBTYPE OF (IfcParameterizedProfileDef);
  7139. Depth : IfcPositiveLengthMeasure;
  7140. FlangeWidth : IfcPositiveLengthMeasure;
  7141. WebThickness : IfcPositiveLengthMeasure;
  7142. FlangeThickness : IfcPositiveLengthMeasure;
  7143. FilletRadius : OPTIONAL IfcPositiveLengthMeasure;
  7144. EdgeRadius : OPTIONAL IfcPositiveLengthMeasure;
  7145. FlangeSlope : OPTIONAL IfcPlaneAngleMeasure;
  7146. CentreOfGravityInX : OPTIONAL IfcPositiveLengthMeasure;
  7147. WHERE
  7148. WR21 : FlangeThickness < (Depth / 2.);
  7149. WR22 : WebThickness < FlangeWidth;
  7150. END_ENTITY;
  7151. ENTITY IfcUnitAssignment;
  7152. Units : SET [1:?] OF IfcUnit;
  7153. WHERE
  7154. WR01 : IfcCorrectUnitAssignment(Units);
  7155. END_ENTITY;
  7156. ENTITY IfcUnitaryEquipmentType
  7157. SUBTYPE OF (IfcEnergyConversionDeviceType);
  7158. PredefinedType : IfcUnitaryEquipmentTypeEnum;
  7159. WHERE
  7160. WR1 : (PredefinedType <> IfcUnitaryEquipmentTypeEnum.USERDEFINED) OR
  7161. ((PredefinedType = IfcUnitaryEquipmentTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  7162. END_ENTITY;
  7163. ENTITY IfcValveType
  7164. SUBTYPE OF (IfcFlowControllerType);
  7165. PredefinedType : IfcValveTypeEnum;
  7166. WHERE
  7167. WR1 : (PredefinedType <> IfcValveTypeEnum.USERDEFINED) OR
  7168. ((PredefinedType = IfcValveTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  7169. END_ENTITY;
  7170. ENTITY IfcVector
  7171. SUBTYPE OF (IfcGeometricRepresentationItem);
  7172. Orientation : IfcDirection;
  7173. Magnitude : IfcLengthMeasure;
  7174. DERIVE
  7175. Dim : IfcDimensionCount := Orientation.Dim;
  7176. WHERE
  7177. WR1 : Magnitude >= 0.0;
  7178. END_ENTITY;
  7179. ENTITY IfcVertex
  7180. SUPERTYPE OF (ONEOF
  7181. (IfcVertexPoint))
  7182. SUBTYPE OF (IfcTopologicalRepresentationItem);
  7183. END_ENTITY;
  7184. ENTITY IfcVertexBasedTextureMap;
  7185. TextureVertices : LIST [3:?] OF IfcTextureVertex;
  7186. TexturePoints : LIST [3:?] OF IfcCartesianPoint;
  7187. END_ENTITY;
  7188. ENTITY IfcVertexLoop
  7189. SUBTYPE OF (IfcLoop);
  7190. LoopVertex : IfcVertex;
  7191. END_ENTITY;
  7192. ENTITY IfcVertexPoint
  7193. SUBTYPE OF (IfcVertex);
  7194. VertexGeometry : IfcPoint;
  7195. END_ENTITY;
  7196. ENTITY IfcVibrationIsolatorType
  7197. SUBTYPE OF (IfcDiscreteAccessoryType);
  7198. PredefinedType : IfcVibrationIsolatorTypeEnum;
  7199. WHERE
  7200. WR1 : (PredefinedType <> IfcVibrationIsolatorTypeEnum.USERDEFINED) OR
  7201. ((PredefinedType = IfcVibrationIsolatorTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
  7202. END_ENTITY;
  7203. ENTITY IfcVirtualElement
  7204. SUBTYPE OF (IfcElement);
  7205. END_ENTITY;
  7206. ENTITY IfcVirtualGridIntersection;
  7207. IntersectingAxes : LIST [2:2] OF UNIQUE IfcGridAxis;
  7208. OffsetDistances : LIST [2:3] OF IfcLengthMeasure;
  7209. END_ENTITY;
  7210. ENTITY IfcWall
  7211. SUPERTYPE OF (ONEOF
  7212. (IfcWallStandardCase))
  7213. SUBTYPE OF (IfcBuildingElement);
  7214. WHERE
  7215. WR1 : SIZEOF (QUERY(temp <* SELF\IfcObjectDefinition.HasAssociations |
  7216. 'IFC2X3.IFCRELASSOCIATESMATERIAL' IN TYPEOF(temp)
  7217. )) <= 1;
  7218. END_ENTITY;
  7219. ENTITY IfcWallStandardCase
  7220. SUBTYPE OF (IfcWall);
  7221. WHERE
  7222. WR1 : SIZEOF (QUERY(temp <* USEDIN(SELF, 'IFC2X3.IFCRELASSOCIATES.RELATEDOBJECTS') |
  7223. ('IFC2X3.IFCRELASSOCIATESMATERIAL' IN TYPEOF(temp)) AND
  7224. ('IFC2X3.IFCMATERIALLAYERSETUSAGE' IN TYPEOF(temp.RelatingMaterial))
  7225. )) = 1;
  7226. END_ENTITY;
  7227. ENTITY IfcWallType
  7228. SUBTYPE OF (IfcBuildingElementType);
  7229. PredefinedType : IfcWallTypeEnum;
  7230. END_ENTITY;
  7231. ENTITY IfcWasteTerminalType
  7232. SUBTYPE OF (IfcFlowTerminalType);
  7233. PredefinedType : IfcWasteTerminalTypeEnum;
  7234. END_ENTITY;
  7235. ENTITY IfcWaterProperties
  7236. SUBTYPE OF (IfcMaterialProperties);
  7237. IsPotable : OPTIONAL BOOLEAN;
  7238. Hardness : OPTIONAL IfcIonConcentrationMeasure;
  7239. AlkalinityConcentration : OPTIONAL IfcIonConcentrationMeasure;
  7240. AcidityConcentration : OPTIONAL IfcIonConcentrationMeasure;
  7241. ImpuritiesContent : OPTIONAL IfcNormalisedRatioMeasure;
  7242. PHLevel : OPTIONAL IfcPHMeasure;
  7243. DissolvedSolidsContent : OPTIONAL IfcNormalisedRatioMeasure;
  7244. UNIQUE
  7245. UR11 : Material;
  7246. END_ENTITY;
  7247. ENTITY IfcWindow
  7248. SUBTYPE OF (IfcBuildingElement);
  7249. OverallHeight : OPTIONAL IfcPositiveLengthMeasure;
  7250. OverallWidth : OPTIONAL IfcPositiveLengthMeasure;
  7251. END_ENTITY;
  7252. ENTITY IfcWindowLiningProperties
  7253. SUBTYPE OF (IfcPropertySetDefinition);
  7254. LiningDepth : OPTIONAL IfcPositiveLengthMeasure;
  7255. LiningThickness : OPTIONAL IfcPositiveLengthMeasure;
  7256. TransomThickness : OPTIONAL IfcPositiveLengthMeasure;
  7257. MullionThickness : OPTIONAL IfcPositiveLengthMeasure;
  7258. FirstTransomOffset : OPTIONAL IfcNormalisedRatioMeasure;
  7259. SecondTransomOffset : OPTIONAL IfcNormalisedRatioMeasure;
  7260. FirstMullionOffset : OPTIONAL IfcNormalisedRatioMeasure;
  7261. SecondMullionOffset : OPTIONAL IfcNormalisedRatioMeasure;
  7262. ShapeAspectStyle : OPTIONAL IfcShapeAspect;
  7263. WHERE
  7264. WR31 : NOT(NOT(EXISTS(LiningDepth)) AND EXISTS(LiningThickness));
  7265. WR32 : NOT(NOT(EXISTS(FirstTransomOffset)) AND EXISTS(SecondTransomOffset));
  7266. WR33 : NOT(NOT(EXISTS(FirstMullionOffset)) AND EXISTS(SecondMullionOffset));
  7267. WR34 : EXISTS(SELF\IfcPropertySetDefinition.DefinesType[1]) AND
  7268. ('IFC2X3.IFCWINDOWSTYLE' IN TYPEOF(SELF\IfcPropertySetDefinition.DefinesType[1]));
  7269. END_ENTITY;
  7270. ENTITY IfcWindowPanelProperties
  7271. SUBTYPE OF (IfcPropertySetDefinition);
  7272. OperationType : IfcWindowPanelOperationEnum;
  7273. PanelPosition : IfcWindowPanelPositionEnum;
  7274. FrameDepth : OPTIONAL IfcPositiveLengthMeasure;
  7275. FrameThickness : OPTIONAL IfcPositiveLengthMeasure;
  7276. ShapeAspectStyle : OPTIONAL IfcShapeAspect;
  7277. END_ENTITY;
  7278. ENTITY IfcWindowStyle
  7279. SUBTYPE OF (IfcTypeProduct);
  7280. ConstructionType : IfcWindowStyleConstructionEnum;
  7281. OperationType : IfcWindowStyleOperationEnum;
  7282. ParameterTakesPrecedence : BOOLEAN;
  7283. Sizeable : BOOLEAN;
  7284. END_ENTITY;
  7285. ENTITY IfcWorkControl
  7286. ABSTRACT SUPERTYPE OF (ONEOF
  7287. (IfcWorkPlan
  7288. ,IfcWorkSchedule))
  7289. SUBTYPE OF (IfcControl);
  7290. Identifier : IfcIdentifier;
  7291. CreationDate : IfcDateTimeSelect;
  7292. Creators : OPTIONAL SET [1:?] OF IfcPerson;
  7293. Purpose : OPTIONAL IfcLabel;
  7294. Duration : OPTIONAL IfcTimeMeasure;
  7295. TotalFloat : OPTIONAL IfcTimeMeasure;
  7296. StartTime : IfcDateTimeSelect;
  7297. FinishTime : OPTIONAL IfcDateTimeSelect;
  7298. WorkControlType : OPTIONAL IfcWorkControlTypeEnum;
  7299. UserDefinedControlType : OPTIONAL IfcLabel;
  7300. WHERE
  7301. WR1 : (WorkControlType <> IfcWorkControlTypeEnum.USERDEFINED) OR
  7302. ((WorkControlType = IfcWorkControlTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcWorkControl.UserDefinedControlType));
  7303. END_ENTITY;
  7304. ENTITY IfcWorkPlan
  7305. SUBTYPE OF (IfcWorkControl);
  7306. END_ENTITY;
  7307. ENTITY IfcWorkSchedule
  7308. SUBTYPE OF (IfcWorkControl);
  7309. END_ENTITY;
  7310. ENTITY IfcZShapeProfileDef
  7311. SUBTYPE OF (IfcParameterizedProfileDef);
  7312. Depth : IfcPositiveLengthMeasure;
  7313. FlangeWidth : IfcPositiveLengthMeasure;
  7314. WebThickness : IfcPositiveLengthMeasure;
  7315. FlangeThickness : IfcPositiveLengthMeasure;
  7316. FilletRadius : OPTIONAL IfcPositiveLengthMeasure;
  7317. EdgeRadius : OPTIONAL IfcPositiveLengthMeasure;
  7318. WHERE
  7319. WR21 : FlangeThickness < (Depth / 2.);
  7320. END_ENTITY;
  7321. ENTITY IfcZone
  7322. SUBTYPE OF (IfcGroup);
  7323. WHERE
  7324. WR1 : SIZEOF (QUERY (temp <* SELF\IfcGroup.IsGroupedBy.RelatedObjects | NOT(('IFC2X3.IFCZONE' IN TYPEOF(temp)) OR ('IFC2X3.IFCSPACE' IN TYPEOF(temp))) )) = 0;
  7325. END_ENTITY;
  7326. FUNCTION IfcAddToBeginOfList
  7327. (AScalar : GENERIC;
  7328. AList : LIST OF GENERIC:AL)
  7329. : LIST[1:?] OF GENERIC:AL;
  7330. LOCAL
  7331. Result : LIST OF GENERIC:AL := [];
  7332. END_LOCAL;
  7333. IF NOT(EXISTS(AScalar)) THEN
  7334. Result := AList;
  7335. ELSE
  7336. Result := Result + AScalar;
  7337. IF (HIINDEX(AList) >= 1) THEN
  7338. REPEAT i:=1 TO HIINDEX(AList);
  7339. Result[i+1] := AList[i];
  7340. END_REPEAT;
  7341. END_IF;
  7342. END_IF;
  7343. RETURN(Result);
  7344. END_FUNCTION;
  7345. FUNCTION IfcBaseAxis
  7346. (Dim : INTEGER;
  7347. Axis1, Axis2, Axis3 : IfcDirection)
  7348. : LIST [2:3] OF IfcDirection;
  7349. LOCAL
  7350. U : LIST [2:3] OF IfcDirection;
  7351. Factor : REAL;
  7352. D1, D2 : IfcDirection;
  7353. END_LOCAL;
  7354. IF (Dim = 3) THEN
  7355. D1 := NVL(IfcNormalise(Axis3), IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0,0.0,1.0]));
  7356. D2 := IfcFirstProjAxis(D1, Axis1);
  7357. U := [D2, IfcSecondProjAxis(D1, D2, Axis2), D1];
  7358. ELSE
  7359. IF EXISTS(Axis1) THEN
  7360. D1 := IfcNormalise(Axis1);
  7361. U := [D1, IfcOrthogonalComplement(D1)];
  7362. IF EXISTS(Axis2) THEN
  7363. Factor := IfcDotProduct(Axis2, U[2]);
  7364. IF (Factor < 0.0) THEN
  7365. U[2].DirectionRatios[1] := -U[2].DirectionRatios[1];
  7366. U[2].DirectionRatios[2] := -U[2].DirectionRatios[2];
  7367. END_IF;
  7368. END_IF;
  7369. ELSE
  7370. IF EXISTS(Axis2) THEN
  7371. D1 := IfcNormalise(Axis2);
  7372. U := [IfcOrthogonalComplement(D1), D1];
  7373. U[1].DirectionRatios[1] := -U[1].DirectionRatios[1];
  7374. U[1].DirectionRatios[2] := -U[1].DirectionRatios[2];
  7375. ELSE
  7376. U := [IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([1.0, 0.0]),
  7377. IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0, 1.0])];
  7378. END_IF;
  7379. END_IF;
  7380. END_IF;
  7381. RETURN(U);
  7382. END_FUNCTION;
  7383. FUNCTION IfcBooleanChoose
  7384. (B : BOOLEAN ;
  7385. Choice1, Choice2 : Generic : Item)
  7386. : Generic : Item;
  7387. IF B THEN
  7388. RETURN (Choice1);
  7389. ELSE
  7390. RETURN (Choice2);
  7391. END_IF;
  7392. END_FUNCTION;
  7393. FUNCTION IfcBuild2Axes
  7394. (RefDirection : IfcDirection)
  7395. : LIST [2:2] OF IfcDirection;
  7396. LOCAL
  7397. D : IfcDirection := NVL(IfcNormalise(RefDirection),
  7398. IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([1.0,0.0]));
  7399. END_LOCAL;
  7400. RETURN([D, IfcOrthogonalComplement(D)]);
  7401. END_FUNCTION;
  7402. FUNCTION IfcBuildAxes
  7403. (Axis, RefDirection : IfcDirection)
  7404. : LIST [3:3] OF IfcDirection;
  7405. LOCAL
  7406. D1, D2 : IfcDirection;
  7407. END_LOCAL;
  7408. D1 := NVL(IfcNormalise(Axis), IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0,0.0,1.0]));
  7409. D2 := IfcFirstProjAxis(D1, RefDirection);
  7410. RETURN ([D2, IfcNormalise(IfcCrossProduct(D1,D2)).Orientation, D1]);
  7411. END_FUNCTION;
  7412. FUNCTION IfcCorrectDimensions
  7413. (m : IfcUnitEnum; Dim : IfcDimensionalExponents)
  7414. : LOGICAL;
  7415. CASE m OF
  7416. LENGTHUNIT : IF
  7417. Dim = (IfcDimensionalExponents (1, 0, 0, 0, 0, 0, 0))
  7418. THEN RETURN(TRUE);
  7419. ELSE RETURN(FALSE);
  7420. END_IF;
  7421. MASSUNIT : IF
  7422. Dim = (IfcDimensionalExponents (0, 1, 0, 0, 0, 0, 0))
  7423. THEN RETURN(TRUE);
  7424. ELSE RETURN(FALSE);
  7425. END_IF;
  7426. TIMEUNIT : IF
  7427. Dim = (IfcDimensionalExponents (0, 0, 1, 0, 0, 0, 0))
  7428. THEN RETURN(TRUE);
  7429. ELSE RETURN(FALSE);
  7430. END_IF;
  7431. ELECTRICCURRENTUNIT : IF
  7432. Dim = (IfcDimensionalExponents (0, 0, 0, 1, 0, 0, 0))
  7433. THEN RETURN(TRUE);
  7434. ELSE RETURN(FALSE);
  7435. END_IF;
  7436. THERMODYNAMICTEMPERATUREUNIT : IF
  7437. Dim = (IfcDimensionalExponents (0, 0, 0, 0, 1, 0, 0))
  7438. THEN RETURN(TRUE);
  7439. ELSE RETURN(FALSE);
  7440. END_IF;
  7441. AMOUNTOFSUBSTANCEUNIT : IF
  7442. Dim = (IfcDimensionalExponents (0, 0, 0, 0, 0, 1, 0))
  7443. THEN RETURN(TRUE);
  7444. ELSE RETURN(FALSE);
  7445. END_IF;
  7446. LUMINOUSINTENSITYUNIT : IF
  7447. Dim = (IfcDimensionalExponents (0, 0, 0, 0, 0, 0, 1))
  7448. THEN RETURN(TRUE);
  7449. ELSE RETURN(FALSE);
  7450. END_IF;
  7451. PLANEANGLEUNIT : IF
  7452. Dim = (IfcDimensionalExponents (0, 0, 0, 0, 0, 0, 0))
  7453. THEN RETURN(TRUE);
  7454. ELSE RETURN(FALSE);
  7455. END_IF;
  7456. SOLIDANGLEUNIT : IF
  7457. Dim = (IfcDimensionalExponents (0, 0, 0, 0, 0, 0, 0))
  7458. THEN RETURN(TRUE);
  7459. ELSE RETURN(FALSE);
  7460. END_IF;
  7461. AREAUNIT : IF
  7462. Dim = (IfcDimensionalExponents (2, 0, 0, 0, 0, 0, 0))
  7463. THEN RETURN(TRUE);
  7464. ELSE RETURN(FALSE);
  7465. END_IF;
  7466. VOLUMEUNIT : IF
  7467. Dim = (IfcDimensionalExponents (3, 0, 0, 0, 0, 0, 0))
  7468. THEN RETURN(TRUE);
  7469. ELSE RETURN(FALSE);
  7470. END_IF;
  7471. ABSORBEDDOSEUNIT : IF
  7472. Dim = (IfcDimensionalExponents (2, 0, -2, 0, 0, 0, 0))
  7473. THEN RETURN(TRUE);
  7474. ELSE RETURN(FALSE);
  7475. END_IF;
  7476. RADIOACTIVITYUNIT : IF
  7477. Dim = (IfcDimensionalExponents (0, 0, -1, 0, 0, 0, 0))
  7478. THEN RETURN(TRUE);
  7479. ELSE RETURN(FALSE);
  7480. END_IF;
  7481. ELECTRICCAPACITANCEUNIT : IF
  7482. Dim = (IfcDimensionalExponents (-2, 1, 4, 1, 0, 0, 0))
  7483. THEN RETURN(TRUE);
  7484. ELSE RETURN(FALSE);
  7485. END_IF;
  7486. DOSEEQUIVALENTUNIT : IF
  7487. Dim = (IfcDimensionalExponents (2, 0, -2, 0, 0, 0, 0))
  7488. THEN RETURN(TRUE);
  7489. ELSE RETURN(FALSE);
  7490. END_IF;
  7491. ELECTRICCHARGEUNIT : IF
  7492. Dim = (IfcDimensionalExponents (0, 0, 1, 1, 0, 0, 0))
  7493. THEN RETURN(TRUE);
  7494. ELSE RETURN(FALSE);
  7495. END_IF;
  7496. ELECTRICCONDUCTANCEUNIT : IF
  7497. Dim = (IfcDimensionalExponents (-2, -1, 3, 2, 0, 0, 0))
  7498. THEN RETURN(TRUE);
  7499. ELSE RETURN(FALSE);
  7500. END_IF;
  7501. ELECTRICVOLTAGEUNIT : IF
  7502. Dim = (IfcDimensionalExponents (2, 1, -3, -1, 0, 0, 0))
  7503. THEN RETURN(TRUE);
  7504. ELSE RETURN(FALSE);
  7505. END_IF;
  7506. ELECTRICRESISTANCEUNIT : IF
  7507. Dim = (IfcDimensionalExponents (2, 1, -3, -2, 0, 0, 0))
  7508. THEN RETURN(TRUE);
  7509. ELSE RETURN(FALSE);
  7510. END_IF;
  7511. ENERGYUNIT : IF
  7512. Dim = (IfcDimensionalExponents (2, 1, -2, 0, 0, 0, 0))
  7513. THEN RETURN(TRUE);
  7514. ELSE RETURN(FALSE);
  7515. END_IF;
  7516. FORCEUNIT : IF
  7517. Dim = (IfcDimensionalExponents (1, 1, -2, 0, 0, 0, 0))
  7518. THEN RETURN(TRUE);
  7519. ELSE RETURN(FALSE);
  7520. END_IF;
  7521. FREQUENCYUNIT : IF
  7522. Dim = (IfcDimensionalExponents (0, 0, -1, 0, 0, 0, 0))
  7523. THEN RETURN(TRUE);
  7524. ELSE RETURN(FALSE);
  7525. END_IF;
  7526. INDUCTANCEUNIT : IF
  7527. Dim = (IfcDimensionalExponents (2, 1, -2, -2, 0, 0, 0))
  7528. THEN RETURN(TRUE);
  7529. ELSE RETURN(FALSE);
  7530. END_IF;
  7531. ILLUMINANCEUNIT : IF
  7532. Dim = (IfcDimensionalExponents (-2, 0, 0, 0, 0, 0, 1))
  7533. THEN RETURN(TRUE);
  7534. ELSE RETURN(FALSE);
  7535. END_IF;
  7536. LUMINOUSFLUXUNIT : IF
  7537. Dim = (IfcDimensionalExponents (0, 0, 0, 0, 0, 0, 1))
  7538. THEN RETURN(TRUE);
  7539. ELSE RETURN(FALSE);
  7540. END_IF;
  7541. MAGNETICFLUXUNIT : IF
  7542. Dim = (IfcDimensionalExponents (2, 1, -2, -1, 0, 0, 0))
  7543. THEN RETURN(TRUE);
  7544. ELSE RETURN(FALSE);
  7545. END_IF;
  7546. MAGNETICFLUXDENSITYUNIT : IF
  7547. Dim = (IfcDimensionalExponents (0, 1, -2, -1, 0, 0, 0))
  7548. THEN RETURN(TRUE);
  7549. ELSE RETURN(FALSE);
  7550. END_IF;
  7551. POWERUNIT : IF
  7552. Dim = (IfcDimensionalExponents (2, 1, -3, 0, 0, 0, 0))
  7553. THEN RETURN(TRUE);
  7554. ELSE RETURN(FALSE);
  7555. END_IF;
  7556. PRESSUREUNIT : IF
  7557. Dim = (IfcDimensionalExponents (-1, 1, -2, 0, 0, 0, 0))
  7558. THEN RETURN(TRUE);
  7559. ELSE RETURN(FALSE);
  7560. END_IF;
  7561. OTHERWISE :
  7562. RETURN (UNKNOWN);
  7563. END_CASE;
  7564. END_FUNCTION;
  7565. FUNCTION IfcCorrectLocalPlacement
  7566. (AxisPlacement:IfcAxis2Placement;
  7567. RelPlacement : IfcObjectPlacement)
  7568. : LOGICAL;
  7569. IF (EXISTS(RelPlacement)) THEN
  7570. IF ('IFC2X3.IFCGRIDPLACEMENT' IN TYPEOF(RelPlacement)) THEN
  7571. RETURN(?);
  7572. END_IF;
  7573. IF ('IFC2X3.IFCLOCALPLACEMENT' IN TYPEOF(RelPlacement)) THEN
  7574. IF ('IFC2X3.IFCAXIS2PLACEMENT2D' IN TYPEOF(AxisPlacement)) THEN
  7575. RETURN(TRUE);
  7576. END_IF;
  7577. IF ('IFC2X3.IFCAXIS2PLACEMENT3D' IN TYPEOF(AxisPlacement)) THEN
  7578. IF (RelPlacement.RelativePlacement.Dim = 3) THEN
  7579. RETURN(TRUE);
  7580. ELSE
  7581. RETURN(FALSE);
  7582. END_IF;
  7583. END_IF;
  7584. END_IF;
  7585. ELSE
  7586. RETURN(TRUE);
  7587. END_IF;
  7588. RETURN(?);
  7589. END_FUNCTION;
  7590. FUNCTION IfcCorrectObjectAssignment
  7591. (Constraint: IfcObjectTypeEnum; Objects : SET[1:?] OF IfcObjectDefinition)
  7592. : LOGICAL;
  7593. LOCAL
  7594. Count : INTEGER := 0;
  7595. END_LOCAL;
  7596. IF NOT(EXISTS(Constraint)) THEN
  7597. RETURN(TRUE);
  7598. END_IF;
  7599. CASE Constraint OF
  7600. IfcObjectTypeEnum.NOTDEFINED : RETURN(TRUE);
  7601. IfcObjectTypeEnum.PRODUCT :
  7602. BEGIN
  7603. Count := SIZEOF(QUERY(temp <* Objects | NOT('IFC2X3.IFCPRODUCT' IN TYPEOF(temp))));
  7604. RETURN(Count = 0);
  7605. END;
  7606. IfcObjectTypeEnum.PROCESS :
  7607. BEGIN
  7608. Count := SIZEOF(QUERY(temp <* Objects | NOT('IFC2X3.IFCPROCESS' IN TYPEOF(temp))));
  7609. RETURN(Count = 0);
  7610. END;
  7611. IfcObjectTypeEnum.CONTROL :
  7612. BEGIN
  7613. Count := SIZEOF(QUERY(temp <* Objects | NOT('IFC2X3.IFCCONTROL' IN TYPEOF(temp))));
  7614. RETURN(Count = 0);
  7615. END;
  7616. IfcObjectTypeEnum.RESOURCE :
  7617. BEGIN
  7618. Count := SIZEOF(QUERY(temp <* Objects | NOT('IFC2X3.IFCRESOURCE' IN TYPEOF(temp))));
  7619. RETURN(Count = 0);
  7620. END;
  7621. IfcObjectTypeEnum.ACTOR :
  7622. BEGIN
  7623. Count := SIZEOF(QUERY(temp <* Objects | NOT('IFC2X3.IFCACTOR' IN TYPEOF(temp))));
  7624. RETURN(Count = 0);
  7625. END;
  7626. IfcObjectTypeEnum.GROUP :
  7627. BEGIN
  7628. Count := SIZEOF(QUERY(temp <* Objects | NOT('IFC2X3.IFCGROUP' IN TYPEOF(temp))));
  7629. RETURN(Count = 0);
  7630. END;
  7631. IfcObjectTypeEnum.PROJECT :
  7632. BEGIN
  7633. Count := SIZEOF(QUERY(temp <* Objects | NOT('IFC2X3.IFCPROJECT' IN TYPEOF(temp))));
  7634. RETURN(Count = 0);
  7635. END;
  7636. OTHERWISE : RETURN(?);
  7637. END_CASE;
  7638. END_FUNCTION;
  7639. FUNCTION IfcCorrectUnitAssignment
  7640. (Units : SET [1:?] OF IfcUnit)
  7641. : LOGICAL;
  7642. LOCAL
  7643. NamedUnitNumber : INTEGER := 0;
  7644. DerivedUnitNumber : INTEGER := 0;
  7645. MonetaryUnitNumber : INTEGER := 0;
  7646. NamedUnitNames : SET OF IfcUnitEnum := [];
  7647. DerivedUnitNames : SET OF IfcDerivedUnitEnum := [];
  7648. END_LOCAL;
  7649. NamedUnitNumber := SIZEOF(QUERY(temp <* Units | ('IFC2X3.IFCNAMEDUNIT' IN TYPEOF(temp)) AND NOT(temp.UnitType = IfcUnitEnum.USERDEFINED)));
  7650. DerivedUnitNumber := SIZEOF(QUERY(temp <* Units | ('IFC2X3.IFCDERIVEDUNIT' IN TYPEOF(temp)) AND NOT(temp.UnitType = IfcDerivedUnitEnum.USERDEFINED)));
  7651. MonetaryUnitNumber := SIZEOF(QUERY(temp <* Units | 'IFC2X3.IFCMONETARYUNIT' IN TYPEOF(temp)));
  7652. REPEAT i := 1 TO SIZEOF(Units);
  7653. IF (('IFC2X3.IFCNAMEDUNIT' IN TYPEOF(Units[i])) AND NOT(Units[i].UnitType = IfcUnitEnum.USERDEFINED)) THEN
  7654. NamedUnitNames := NamedUnitNames + Units[i].UnitType;
  7655. END_IF;
  7656. IF (('IFC2X3.IFCDERIVEDUNIT' IN TYPEOF(Units[i])) AND NOT(Units[i].UnitType = IfcDerivedUnitEnum.USERDEFINED)) THEN
  7657. DerivedUnitNames := DerivedUnitNames + Units[i].UnitType;
  7658. END_IF;
  7659. END_REPEAT;
  7660. RETURN((SIZEOF(NamedUnitNames) = NamedUnitNumber) AND (SIZEOF(DerivedUnitNames) = DerivedUnitNumber) AND (MonetaryUnitNumber <= 1));
  7661. END_FUNCTION;
  7662. FUNCTION IfcCrossProduct
  7663. (Arg1, Arg2 : IfcDirection)
  7664. : IfcVector;
  7665. LOCAL
  7666. Mag : REAL;
  7667. Res : IfcDirection;
  7668. V1,V2 : LIST[3:3] OF REAL;
  7669. Result : IfcVector;
  7670. END_LOCAL;
  7671. IF (NOT EXISTS (Arg1) OR (Arg1.Dim = 2)) OR (NOT EXISTS (Arg2) OR (Arg2.Dim = 2)) THEN
  7672. RETURN(?);
  7673. ELSE
  7674. BEGIN
  7675. V1 := IfcNormalise(Arg1).DirectionRatios;
  7676. V2 := IfcNormalise(Arg2).DirectionRatios;
  7677. Res := IfcRepresentationItem() || IfcGeometricRepresentationItem ()
  7678. || IfcDirection([(V1[2]*V2[3] - V1[3]*V2[2]), (V1[3]*V2[1] - V1[1]*V2[3]), (V1[1]*V2[2] - V1[2]*V2[1])]);
  7679. Mag := 0.0;
  7680. REPEAT i := 1 TO 3;
  7681. Mag := Mag + Res.DirectionRatios[i]*Res.DirectionRatios[i];
  7682. END_REPEAT;
  7683. IF (Mag > 0.0) THEN
  7684. Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector(Res, SQRT(Mag));
  7685. ELSE
  7686. Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector(Arg1, 0.0);
  7687. END_IF;
  7688. RETURN(Result);
  7689. END;
  7690. END_IF;
  7691. END_FUNCTION;
  7692. FUNCTION IfcCurveDim
  7693. (Curve : IfcCurve)
  7694. : IfcDimensionCount;
  7695. IF ('IFC2X3.IFCLINE' IN TYPEOF(Curve))
  7696. THEN RETURN(Curve.Pnt.Dim);
  7697. END_IF;
  7698. IF ('IFC2X3.IFCCONIC' IN TYPEOF(Curve))
  7699. THEN RETURN(Curve.Position.Dim);
  7700. END_IF;
  7701. IF ('IFC2X3.IFCPOLYLINE' IN TYPEOF(Curve))
  7702. THEN RETURN(Curve.Points[1].Dim);
  7703. END_IF;
  7704. IF ('IFC2X3.IFCTRIMMEDCURVE' IN TYPEOF(Curve))
  7705. THEN RETURN(IfcCurveDim(Curve.BasisCurve));
  7706. END_IF;
  7707. IF ('IFC2X3.IFCCOMPOSITECURVE' IN TYPEOF(Curve))
  7708. THEN RETURN(Curve.Segments[1].Dim);
  7709. END_IF;
  7710. IF ('IFC2X3.IFCBSPLINECURVE' IN TYPEOF(Curve))
  7711. THEN RETURN(Curve.ControlPointsList[1].Dim);
  7712. END_IF;
  7713. IF ('IFC2X3.IFCOFFSETCURVE2D' IN TYPEOF(Curve))
  7714. THEN RETURN(2);
  7715. END_IF;
  7716. IF ('IFC2X3.IFCOFFSETCURVE3D' IN TYPEOF(Curve))
  7717. THEN RETURN(3);
  7718. END_IF;
  7719. RETURN (?);
  7720. END_FUNCTION;
  7721. FUNCTION IfcCurveWeightsPositive
  7722. (B: IfcRationalBezierCurve)
  7723. : BOOLEAN;
  7724. LOCAL
  7725. Result : BOOLEAN := TRUE;
  7726. END_LOCAL;
  7727. REPEAT i := 0 TO B.UpperIndexOnControlPoints;
  7728. IF B.Weights[i] <= 0.0 THEN
  7729. Result := FALSE;
  7730. RETURN(Result);
  7731. END_IF;
  7732. END_REPEAT;
  7733. RETURN(Result);
  7734. END_FUNCTION;
  7735. FUNCTION IfcDeriveDimensionalExponents
  7736. (x : IfcUnit)
  7737. : IfcDimensionalExponents;
  7738. LOCAL
  7739. Result : IfcDimensionalExponents :=
  7740. IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0);
  7741. END_LOCAL;
  7742. IF 'IFC2X3.IFCDERIVEDUNIT' IN TYPEOF(x) THEN
  7743. REPEAT i := LOINDEX(x.Elements) TO HIINDEX(x.Elements);
  7744. Result.LengthExponent := Result.LengthExponent +
  7745. (x.Elements[i].Exponent *
  7746. x.Elements[i].Unit.Dimensions.LengthExponent);
  7747. Result.MassExponent := Result.MassExponent +
  7748. (x.Elements[i].Exponent *
  7749. x.Elements[i].Unit.Dimensions.MassExponent);
  7750. Result.TimeExponent := Result.TimeExponent +
  7751. (x.Elements[i].Exponent *
  7752. x.Elements[i].Unit.Dimensions.TimeExponent);
  7753. Result.ElectricCurrentExponent := Result.ElectricCurrentExponent +
  7754. (x.Elements[i].Exponent *
  7755. x.Elements[i].Unit.Dimensions.ElectricCurrentExponent);
  7756. Result.ThermodynamicTemperatureExponent :=
  7757. Result.ThermodynamicTemperatureExponent +
  7758. (x.Elements[i].Exponent *
  7759. x.Elements[i].Unit.Dimensions.ThermodynamicTemperatureExponent);
  7760. Result.AmountOfSubstanceExponent :=
  7761. Result.AmountOfSubstanceExponent + (x.Elements[i].Exponent *
  7762. x.Elements[i].Unit.Dimensions.AmountOfSubstanceExponent);
  7763. Result.LuminousIntensityExponent :=
  7764. Result.LuminousIntensityExponent + (x.Elements[i].Exponent *
  7765. x.Elements[i].Unit.Dimensions.LuminousIntensityExponent);
  7766. END_REPEAT;
  7767. ELSE
  7768. Result := x.Dimensions;
  7769. END_IF;
  7770. RETURN (Result);
  7771. END_FUNCTION;
  7772. FUNCTION IfcDimensionsForSiUnit
  7773. (n : IfcSiUnitName )
  7774. : IfcDimensionalExponents;
  7775. CASE n OF
  7776. METRE : RETURN (IfcDimensionalExponents
  7777. (1, 0, 0, 0, 0, 0, 0));
  7778. SQUARE_METRE : RETURN (IfcDimensionalExponents
  7779. (2, 0, 0, 0, 0, 0, 0));
  7780. CUBIC_METRE : RETURN (IfcDimensionalExponents
  7781. (3, 0, 0, 0, 0, 0, 0));
  7782. GRAM : RETURN (IfcDimensionalExponents
  7783. (0, 1, 0, 0, 0, 0, 0));
  7784. SECOND : RETURN (IfcDimensionalExponents
  7785. (0, 0, 1, 0, 0, 0, 0));
  7786. AMPERE : RETURN (IfcDimensionalExponents
  7787. (0, 0, 0, 1, 0, 0, 0));
  7788. KELVIN : RETURN (IfcDimensionalExponents
  7789. (0, 0, 0, 0, 1, 0, 0));
  7790. MOLE : RETURN (IfcDimensionalExponents
  7791. (0, 0, 0, 0, 0, 1, 0));
  7792. CANDELA : RETURN (IfcDimensionalExponents
  7793. (0, 0, 0, 0, 0, 0, 1));
  7794. RADIAN : RETURN (IfcDimensionalExponents
  7795. (0, 0, 0, 0, 0, 0, 0));
  7796. STERADIAN : RETURN (IfcDimensionalExponents
  7797. (0, 0, 0, 0, 0, 0, 0));
  7798. HERTZ : RETURN (IfcDimensionalExponents
  7799. (0, 0, -1, 0, 0, 0, 0));
  7800. NEWTON : RETURN (IfcDimensionalExponents
  7801. (1, 1, -2, 0, 0, 0, 0));
  7802. PASCAL : RETURN (IfcDimensionalExponents
  7803. (-1, 1, -2, 0, 0, 0, 0));
  7804. JOULE : RETURN (IfcDimensionalExponents
  7805. (2, 1, -2, 0, 0, 0, 0));
  7806. WATT : RETURN (IfcDimensionalExponents
  7807. (2, 1, -3, 0, 0, 0, 0));
  7808. COULOMB : RETURN (IfcDimensionalExponents
  7809. (0, 0, 1, 1, 0, 0, 0));
  7810. VOLT : RETURN (IfcDimensionalExponents
  7811. (2, 1, -3, -1, 0, 0, 0));
  7812. FARAD : RETURN (IfcDimensionalExponents
  7813. (-2, -1, 4, 1, 0, 0, 0));
  7814. OHM : RETURN (IfcDimensionalExponents
  7815. (2, 1, -3, -2, 0, 0, 0));
  7816. SIEMENS : RETURN (IfcDimensionalExponents
  7817. (-2, -1, 3, 2, 0, 0, 0));
  7818. WEBER : RETURN (IfcDimensionalExponents
  7819. (2, 1, -2, -1, 0, 0, 0));
  7820. TESLA : RETURN (IfcDimensionalExponents
  7821. (0, 1, -2, -1, 0, 0, 0));
  7822. HENRY : RETURN (IfcDimensionalExponents
  7823. (2, 1, -2, -2, 0, 0, 0));
  7824. DEGREE_CELSIUS : RETURN (IfcDimensionalExponents
  7825. (0, 0, 0, 0, 1, 0, 0));
  7826. LUMEN : RETURN (IfcDimensionalExponents
  7827. (0, 0, 0, 0, 0, 0, 1));
  7828. LUX : RETURN (IfcDimensionalExponents
  7829. (-2, 0, 0, 0, 0, 0, 1));
  7830. BECQUEREL : RETURN (IfcDimensionalExponents
  7831. (0, 0, -1, 0, 0, 0, 0));
  7832. GRAY : RETURN (IfcDimensionalExponents
  7833. (2, 0, -2, 0, 0, 0, 0));
  7834. SIEVERT : RETURN (IfcDimensionalExponents
  7835. (2, 0, -2, 0, 0, 0, 0));
  7836. OTHERWISE : RETURN (IfcDimensionalExponents
  7837. (0, 0, 0, 0, 0, 0, 0));
  7838. END_CASE;
  7839. END_FUNCTION;
  7840. FUNCTION IfcDotProduct
  7841. (Arg1, Arg2 : IfcDirection)
  7842. : REAL;
  7843. LOCAL
  7844. Scalar : REAL;
  7845. Vec1, Vec2 : IfcDirection;
  7846. Ndim : INTEGER;
  7847. END_LOCAL;
  7848. IF NOT EXISTS (Arg1) OR NOT EXISTS (Arg2) THEN
  7849. Scalar := ?;
  7850. ELSE
  7851. IF (Arg1.Dim <> Arg2.Dim) THEN
  7852. Scalar := ?;
  7853. ELSE
  7854. BEGIN
  7855. Vec1 := IfcNormalise(Arg1);
  7856. Vec2 := IfcNormalise(Arg2);
  7857. Ndim := Arg1.Dim;
  7858. Scalar := 0.0;
  7859. REPEAT i := 1 TO Ndim;
  7860. Scalar := Scalar + Vec1.DirectionRatios[i]*Vec2.DirectionRatios[i];
  7861. END_REPEAT;
  7862. END;
  7863. END_IF;
  7864. END_IF;
  7865. RETURN (Scalar);
  7866. END_FUNCTION;
  7867. FUNCTION IfcFirstProjAxis
  7868. (ZAxis, Arg : IfcDirection)
  7869. : IfcDirection;
  7870. LOCAL
  7871. XAxis : IfcDirection;
  7872. V : IfcDirection;
  7873. Z : IfcDirection;
  7874. XVec : IfcVector;
  7875. END_LOCAL;
  7876. IF (NOT EXISTS(ZAxis)) THEN
  7877. RETURN (?) ;
  7878. ELSE
  7879. Z := IfcNormalise(ZAxis);
  7880. IF NOT EXISTS(Arg) THEN
  7881. IF (Z.DirectionRatios <> [1.0,0.0,0.0]) THEN
  7882. V := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([1.0,0.0,0.0]);
  7883. ELSE
  7884. V := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0,1.0,0.0]);
  7885. END_IF;
  7886. ELSE
  7887. IF (Arg.Dim <> 3) THEN
  7888. RETURN (?) ;
  7889. END_IF;
  7890. IF ((IfcCrossProduct(Arg,Z).Magnitude) = 0.0) THEN
  7891. RETURN (?);
  7892. ELSE
  7893. V := IfcNormalise(Arg);
  7894. END_IF;
  7895. END_IF;
  7896. XVec := IfcScalarTimesVector(IfcDotProduct(V, Z), Z);
  7897. XAxis := IfcVectorDifference(V, XVec).Orientation;
  7898. XAxis := IfcNormalise(XAxis);
  7899. END_IF;
  7900. RETURN(XAxis);
  7901. END_FUNCTION;
  7902. FUNCTION IfcLeapYear
  7903. (Year : IfcYearNumber)
  7904. : BOOLEAN;
  7905. IF ((((Year MOD 4) = 0) AND ((Year MOD 100) <> 0)) OR
  7906. ((Year MOD 400) = 0)) THEN
  7907. RETURN(TRUE);
  7908. ELSE
  7909. RETURN(FALSE);
  7910. END_IF;
  7911. END_FUNCTION;
  7912. FUNCTION IfcListToArray
  7913. (Lis : LIST [0:?] OF GENERIC : T;
  7914. Low,U : INTEGER)
  7915. : ARRAY OF GENERIC : T;
  7916. LOCAL
  7917. N : INTEGER;
  7918. Res : ARRAY [Low:U] OF GENERIC : T;
  7919. END_LOCAL;
  7920. N := SIZEOF(Lis);
  7921. IF (N <> (U-Low +1)) THEN
  7922. RETURN(?);
  7923. ELSE
  7924. Res := [Lis[1] : N];
  7925. REPEAT i := 2 TO N;
  7926. Res[Low+i-1] := Lis[i];
  7927. END_REPEAT;
  7928. RETURN(Res);
  7929. END_IF;
  7930. END_FUNCTION;
  7931. FUNCTION IfcLoopHeadToTail
  7932. (ALoop : IfcEdgeLoop)
  7933. : LOGICAL;
  7934. LOCAL
  7935. N : INTEGER;
  7936. P : LOGICAL := TRUE;
  7937. END_LOCAL;
  7938. N := SIZEOF (ALoop.EdgeList);
  7939. REPEAT i := 2 TO N;
  7940. P := P AND (ALoop.EdgeList[i-1].EdgeEnd :=:
  7941. ALoop.EdgeList[i].EdgeStart);
  7942. END_REPEAT;
  7943. RETURN (P);
  7944. END_FUNCTION;
  7945. FUNCTION IfcMlsTotalThickness
  7946. (LayerSet : IfcMaterialLayerSet)
  7947. : IfcLengthMeasure;
  7948. LOCAL
  7949. Max : IfcLengthMeasure := LayerSet.MaterialLayers[1].LayerThickness;
  7950. END_LOCAL;
  7951. IF SIZEOF(LayerSet.MaterialLayers) > 1 THEN
  7952. REPEAT i := 2 TO HIINDEX(LayerSet.MaterialLayers);
  7953. Max := Max + LayerSet.MaterialLayers[i].LayerThickness;
  7954. END_REPEAT;
  7955. END_IF;
  7956. RETURN (Max);
  7957. END_FUNCTION;
  7958. FUNCTION IfcNoOfLayers
  7959. (Element : IfcElement )
  7960. : INTEGER;
  7961. LOCAL
  7962. Association : BAG OF IfcRelAssociates := [];
  7963. MaterialAssociation : SET OF IfcRelAssociatesMaterial := [];
  7964. END_LOCAL;
  7965. Association := USEDIN(Element, 'IFC2X3.IFCRELASSOCIATES.RELATEDOBJECTS');
  7966. IF SIZEOF (Association) > 0 THEN
  7967. REPEAT i := 1 TO HIINDEX(Association);
  7968. IF ('IFC2X3.IFCRELASSOCIATESMATERIAL' IN TYPEOF(Association[i])) THEN
  7969. MaterialAssociation := MaterialAssociation + Association[i];
  7970. END_IF;
  7971. END_REPEAT;
  7972. END_IF;
  7973. IF (SIZEOF(MaterialAssociation) <> 1) THEN
  7974. RETURN (?);
  7975. ELSE
  7976. IF 'IFC2X3.IFCMATERIAL' IN TYPEOF(MaterialAssociation[1].RelatingMaterial) THEN
  7977. RETURN (1);
  7978. END_IF;
  7979. IF 'IFC2X3.IFCMATERIALLAYERSETUSAGE' IN TYPEOF(MaterialAssociation[1].RelatingMaterial) THEN
  7980. RETURN (SIZEOF(MaterialAssociation[1].RelatingMaterial.ForLayerSet.MaterialLayers));
  7981. END_IF;
  7982. IF 'IFC2X3.IFCMATERIALLIST' IN TYPEOF(MaterialAssociation[1].RelatingMaterial) THEN
  7983. RETURN (?);
  7984. END_IF;
  7985. END_IF;
  7986. RETURN (?);
  7987. END_FUNCTION;
  7988. FUNCTION IfcNormalise
  7989. (Arg : IfcVectorOrDirection)
  7990. : IfcVectorOrDirection;
  7991. LOCAL
  7992. Ndim : INTEGER;
  7993. V : IfcDirection
  7994. := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([1.,0.]);
  7995. Vec : IfcVector
  7996. := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector (
  7997. IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([1.,0.]), 1.);
  7998. Mag : REAL;
  7999. Result : IfcVectorOrDirection
  8000. := V;
  8001. END_LOCAL;
  8002. IF NOT EXISTS (Arg) THEN
  8003. RETURN (?);
  8004. ELSE
  8005. Ndim := Arg.Dim;
  8006. IF 'IFC2X3.IFCVECTOR' IN TYPEOF(Arg) THEN
  8007. BEGIN
  8008. V.DirectionRatios := Arg.Orientation.DirectionRatios;
  8009. Vec.Magnitude := Arg.Magnitude;
  8010. Vec.Orientation := V;
  8011. IF Arg.Magnitude = 0.0 THEN
  8012. RETURN(?);
  8013. ELSE
  8014. Vec.Magnitude := 1.0;
  8015. END_IF;
  8016. END;
  8017. ELSE
  8018. V.DirectionRatios := Arg.DirectionRatios;
  8019. END_IF;
  8020. Mag := 0.0;
  8021. REPEAT i := 1 TO Ndim;
  8022. Mag := Mag + V.DirectionRatios[i]*V.DirectionRatios[i];
  8023. END_REPEAT;
  8024. IF Mag > 0.0 THEN
  8025. Mag := SQRT(Mag);
  8026. REPEAT i := 1 TO Ndim;
  8027. V.DirectionRatios[i] := V.DirectionRatios[i]/Mag;
  8028. END_REPEAT;
  8029. IF 'IFC2X3.IFCVECTOR' IN TYPEOF(arg) THEN
  8030. Vec.Orientation := V;
  8031. Result := Vec;
  8032. ELSE
  8033. Result := V;
  8034. END_IF;
  8035. ELSE
  8036. RETURN(?);
  8037. END_IF;
  8038. END_IF;
  8039. RETURN (Result);
  8040. END_FUNCTION;
  8041. FUNCTION IfcOrthogonalComplement
  8042. (Vec : IfcDirection)
  8043. : IfcDirection;
  8044. LOCAL
  8045. Result : IfcDirection ;
  8046. END_LOCAL;
  8047. IF NOT EXISTS (Vec) OR (Vec.Dim <> 2) THEN
  8048. RETURN(?);
  8049. ELSE
  8050. Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([-Vec.DirectionRatios[2], Vec.DirectionRatios[1]]);
  8051. RETURN(Result);
  8052. END_IF;
  8053. END_FUNCTION;
  8054. FUNCTION IfcPathHeadToTail
  8055. (APath : IfcPath)
  8056. : LOGICAL;
  8057. LOCAL
  8058. N : INTEGER := 0;
  8059. P : LOGICAL := UNKNOWN;
  8060. END_LOCAL;
  8061. N := SIZEOF (APath.EdgeList);
  8062. REPEAT i := 2 TO N;
  8063. P := P AND (APath.EdgeList[i-1].EdgeEnd :=:
  8064. APath.EdgeList[i].EdgeStart);
  8065. END_REPEAT;
  8066. RETURN (P);
  8067. END_FUNCTION;
  8068. FUNCTION IfcSameAxis2Placement
  8069. (ap1, ap2 : IfcAxis2Placement; Epsilon : REAL)
  8070. : LOGICAL;
  8071. RETURN (IfcSameDirection(ap1.P[1],ap2.P[1],Epsilon) AND
  8072. IfcSameDirection(ap1.P[2],ap2.P[2],Epsilon) AND
  8073. IfcSameCartesianPoint(ap1.Location,ap1.Location,Epsilon));
  8074. END_FUNCTION;
  8075. FUNCTION IfcSameCartesianPoint
  8076. (cp1, cp2 : IfcCartesianPoint; Epsilon : REAL)
  8077. : LOGICAL;
  8078. LOCAL
  8079. cp1x : REAL := cp1.Coordinates[1];
  8080. cp1y : REAL := cp1.Coordinates[2];
  8081. cp1z : REAL := 0;
  8082. cp2x : REAL := cp2.Coordinates[1];
  8083. cp2y : REAL := cp2.Coordinates[2];
  8084. cp2z : REAL := 0;
  8085. END_LOCAL;
  8086. IF (SIZEOF(cp1.Coordinates) > 2) THEN
  8087. cp1z := cp1.Coordinates[3];
  8088. END_IF;
  8089. IF (SIZEOF(cp2.Coordinates) > 2) THEN
  8090. cp2z := cp2.Coordinates[3];
  8091. END_IF;
  8092. RETURN (IfcSameValue(cp1x,cp2x,Epsilon) AND
  8093. IfcSameValue(cp1y,cp2y,Epsilon) AND
  8094. IfcSameValue(cp1z,cp2z,Epsilon));
  8095. END_FUNCTION;
  8096. FUNCTION IfcSameDirection
  8097. (dir1, dir2 : IfcDirection; Epsilon : REAL)
  8098. : LOGICAL;
  8099. LOCAL
  8100. dir1x : REAL := dir1.DirectionRatios[1];
  8101. dir1y : REAL := dir1.DirectionRatios[2];
  8102. dir1z : REAL := 0;
  8103. dir2x : REAL := dir2.DirectionRatios[1];
  8104. dir2y : REAL := dir2.DirectionRatios[2];
  8105. dir2z : REAL := 0;
  8106. END_LOCAL;
  8107. IF (SIZEOF(dir1.DirectionRatios) > 2) THEN
  8108. dir1z := dir1.DirectionRatios[3];
  8109. END_IF;
  8110. IF (SIZEOF(dir2.DirectionRatios) > 2) THEN
  8111. dir2z := dir2.DirectionRatios[3];
  8112. END_IF;
  8113. RETURN (IfcSameValue(dir1x,dir2x,Epsilon) AND
  8114. IfcSameValue(dir1y,dir2y,Epsilon) AND
  8115. IfcSameValue(dir1z,dir2z,Epsilon));
  8116. END_FUNCTION;
  8117. FUNCTION IfcSameValidPrecision
  8118. (Epsilon1, Epsilon2 : REAL)
  8119. : LOGICAL;
  8120. LOCAL
  8121. ValidEps1, ValidEps2 : REAL;
  8122. DefaultEps : REAL := 0.000001;
  8123. DerivationOfEps : REAL := 1.001;
  8124. UpperEps : REAL := 1.0;
  8125. END_LOCAL;
  8126. ValidEps1 := NVL(Epsilon1, DefaultEps);
  8127. ValidEps2 := NVL(Epsilon2, DefaultEps);
  8128. RETURN ((0.0 < ValidEps1) AND (ValidEps1 <= (DerivationOfEps * ValidEps2)) AND
  8129. (ValidEps2 <= (DerivationOfEps * ValidEps1)) AND (ValidEps2 < UpperEps));
  8130. END_FUNCTION;
  8131. FUNCTION IfcSameValue
  8132. (Value1, Value2 : REAL; Epsilon : REAL)
  8133. : LOGICAL;
  8134. LOCAL
  8135. ValidEps : REAL;
  8136. DefaultEps : REAL := 0.000001;
  8137. END_LOCAL;
  8138. ValidEps := NVL(Epsilon, DefaultEps);
  8139. RETURN ((Value1 + ValidEps > Value2) AND (Value1 < Value2 + ValidEps));
  8140. END_FUNCTION;
  8141. FUNCTION IfcScalarTimesVector
  8142. (Scalar : REAL; Vec : IfcVectorOrDirection)
  8143. : IfcVector;
  8144. LOCAL
  8145. V : IfcDirection;
  8146. Mag : REAL;
  8147. Result : IfcVector;
  8148. END_LOCAL;
  8149. IF NOT EXISTS (Scalar) OR NOT EXISTS (Vec) THEN
  8150. RETURN (?) ;
  8151. ELSE
  8152. IF 'IFC2X3.IFCVECTOR' IN TYPEOF (Vec) THEN
  8153. V := Vec.Orientation;
  8154. Mag := Scalar * Vec.Magnitude;
  8155. ELSE
  8156. V := Vec;
  8157. Mag := Scalar;
  8158. END_IF;
  8159. IF (Mag < 0.0 ) THEN
  8160. REPEAT i := 1 TO SIZEOF(V.DirectionRatios);
  8161. V.DirectionRatios[i] := -V.DirectionRatios[i];
  8162. END_REPEAT;
  8163. Mag := -Mag;
  8164. END_IF;
  8165. Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector(IfcNormalise(V), Mag);
  8166. END_IF;
  8167. RETURN (Result);
  8168. END_FUNCTION;
  8169. FUNCTION IfcSecondProjAxis
  8170. (ZAxis, XAxis, Arg: IfcDirection)
  8171. : IfcDirection;
  8172. LOCAL
  8173. YAxis : IfcVector;
  8174. V : IfcDirection;
  8175. Temp : IfcVector;
  8176. END_LOCAL;
  8177. IF NOT EXISTS(Arg) THEN
  8178. V := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0,1.0,0.0]);
  8179. ELSE
  8180. V := Arg;
  8181. END_IF;
  8182. Temp := IfcScalarTimesVector(IfcDotProduct(V, ZAxis), ZAxis);
  8183. YAxis := IfcVectorDifference(V, Temp);
  8184. Temp := IfcScalarTimesVector(IfcDotProduct(V, XAxis), XAxis);
  8185. YAxis := IfcVectorDifference(YAxis, Temp);
  8186. YAxis := IfcNormalise(YAxis);
  8187. RETURN(YAxis.Orientation);
  8188. END_FUNCTION;
  8189. FUNCTION IfcShapeRepresentationTypes
  8190. (RepType : IfcLabel; Items : SET OF IfcRepresentationItem)
  8191. : LOGICAL;
  8192. LOCAL
  8193. Count : INTEGER := 0;
  8194. END_LOCAL;
  8195. CASE RepType OF
  8196. 'Curve2D' :
  8197. BEGIN
  8198. Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCCURVE' IN TYPEOF(temp))
  8199. AND (temp.Dim = 2)));
  8200. END;
  8201. 'Annotation2D' :
  8202. BEGIN
  8203. Count := SIZEOF(QUERY(temp <* Items | (
  8204. SIZEOF(TYPEOF(temp) * [
  8205. 'IFC2X3.IFCPOINT',
  8206. 'IFC2X3.IFCCURVE',
  8207. 'IFC2X3.IFCGEOMETRICCURVESET',
  8208. 'IFC2X3.IFCANNOTATIONFILLAREA',
  8209. 'IFC2X3.IFCDEFINEDSYMBOL',
  8210. 'IFC2X3.IFCTEXTLITERAL',
  8211. 'IFC2X3.IFCDRAUGHTINGCALLOUT']) = 1)
  8212. ));
  8213. END;
  8214. 'GeometricSet' :
  8215. BEGIN
  8216. Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCGEOMETRICSET' IN TYPEOF(temp))
  8217. OR ('IFC2X3.IFCPOINT' IN TYPEOF(temp))
  8218. OR ('IFC2X3.IFCCURVE' IN TYPEOF(temp))
  8219. OR ('IFC2X3.IFCSURFACE' IN TYPEOF(temp))));
  8220. END;
  8221. 'GeometricCurveSet' :
  8222. BEGIN
  8223. Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCGEOMETRICCURVESET' IN TYPEOF(temp))
  8224. OR ('IFC2X3.IFCGEOMETRICSET' IN TYPEOF(temp))
  8225. OR ('IFC2X3.IFCPOINT' IN TYPEOF(temp))
  8226. OR ('IFC2X3.IFCCURVE' IN TYPEOF(temp))));
  8227. REPEAT i:=1 TO HIINDEX(Items);
  8228. IF ('IFC2X3.IFCGEOMETRICSET' IN TYPEOF(Items[i]))
  8229. THEN
  8230. IF (SIZEOF(QUERY(temp <* Items[i]\IfcGeometricSet.Elements | 'IFC2X3.IFCSURFACE' IN TYPEOF(temp))) > 0)
  8231. THEN
  8232. Count := Count - 1;
  8233. END_IF;
  8234. END_IF;
  8235. END_REPEAT;
  8236. END;
  8237. 'SurfaceModel' :
  8238. BEGIN
  8239. Count := SIZEOF(QUERY(temp <* Items | SIZEOF([
  8240. 'IFC2X3.IFCSHELLBASEDSURFACEMODEL',
  8241. 'IFC2X3.IFCFACEBASEDSURFACEMODEL',
  8242. 'IFC2X3.IFCFACETEDBREP',
  8243. 'IFC2X3.IFCFACETEDBREPWITHVOIDS'] * TYPEOF(temp)) >= 1
  8244. ));
  8245. END;
  8246. 'SolidModel' :
  8247. BEGIN
  8248. Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCSOLIDMODEL' IN TYPEOF(temp))));
  8249. END;
  8250. 'SweptSolid' :
  8251. BEGIN
  8252. Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCSWEPTAREASOLID' IN TYPEOF(temp))));
  8253. END;
  8254. 'CSG' :
  8255. BEGIN
  8256. Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCBOOLEANRESULT' IN TYPEOF(temp))));
  8257. END;
  8258. 'Clipping' :
  8259. BEGIN
  8260. Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCBOOLEANCLIPPINGRESULT' IN TYPEOF(temp))));
  8261. END;
  8262. 'AdvancedSweptSolid' :
  8263. BEGIN
  8264. Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCSURFACECURVESWEPTAREASOLID' IN TYPEOF(temp))
  8265. OR ('IFC2X3.IFCSWEPTDISKSOLID' IN TYPEOF(temp))));
  8266. END;
  8267. 'Brep' :
  8268. BEGIN
  8269. Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCFACETEDBREP' IN TYPEOF(temp))
  8270. OR ('IFC2X3.IFCFACETEDBREPWITHVOIDS' IN TYPEOF(temp))));
  8271. END;
  8272. 'BoundingBox' :
  8273. BEGIN
  8274. Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCBOUNDINGBOX' IN TYPEOF(temp))));
  8275. IF (SIZEOF(Items) > 1)
  8276. THEN
  8277. Count := 0;
  8278. END_IF;
  8279. END;
  8280. 'SectionedSpine' :
  8281. BEGIN
  8282. Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCSECTIONEDSPINE' IN TYPEOF(temp))));
  8283. END;
  8284. 'MappedRepresentation' :
  8285. BEGIN
  8286. Count := SIZEOF(QUERY(temp <* Items | ('IFC2X3.IFCMAPPEDITEM' IN TYPEOF(temp))));
  8287. END;
  8288. OTHERWISE : RETURN(?);
  8289. END_CASE;
  8290. RETURN (Count = SIZEOF(Items));
  8291. END_FUNCTION;
  8292. FUNCTION IfcTopologyRepresentationTypes
  8293. (RepType : IfcLabel; Items : SET OF IfcRepresentationItem)
  8294. : LOGICAL;
  8295. LOCAL
  8296. Count : INTEGER := 0;
  8297. END_LOCAL;
  8298. CASE RepType OF
  8299. 'Vertex' :
  8300. BEGIN
  8301. Count := SIZEOF(QUERY(temp <* Items |
  8302. ('IFC2X3.IFCVERTEX' IN TYPEOF(temp))));
  8303. END;
  8304. 'Edge' :
  8305. BEGIN
  8306. Count := SIZEOF(QUERY(temp <* Items |
  8307. ('IFC2X3.IFCEDGE' IN TYPEOF(temp))));
  8308. END;
  8309. 'Path' :
  8310. BEGIN
  8311. Count := SIZEOF(QUERY(temp <* Items |
  8312. ('IFC2X3.IFCPATH' IN TYPEOF(temp))));
  8313. END;
  8314. 'Face' :
  8315. BEGIN
  8316. Count := SIZEOF(QUERY(temp <* Items |
  8317. ('IFC2X3.IFCFACE' IN TYPEOF(temp))));
  8318. END;
  8319. 'Shell' :
  8320. BEGIN
  8321. Count := SIZEOF(QUERY(temp <* Items |
  8322. ('IFC2X3.IFCOPENSHELL' IN TYPEOF(temp))
  8323. OR ('IFC2X3.IFCCLOSEDSHELL' IN TYPEOF(temp))));
  8324. END;
  8325. 'Undefined': RETURN(TRUE);
  8326. OTHERWISE : RETURN(?);
  8327. END_CASE;
  8328. RETURN (Count = SIZEOF(Items));
  8329. END_FUNCTION;
  8330. FUNCTION IfcUniquePropertyName
  8331. (Properties : SET [1:?] OF IfcProperty)
  8332. : LOGICAL;
  8333. LOCAL
  8334. Names : SET OF IfcIdentifier := [];
  8335. END_LOCAL;
  8336. REPEAT i:=1 TO HIINDEX(Properties);
  8337. Names := Names + Properties[i].Name;
  8338. END_REPEAT;
  8339. RETURN (SIZEOF(Names) = SIZEOF(Properties));
  8340. END_FUNCTION;
  8341. FUNCTION IfcValidCalendarDate
  8342. (Date : IfcCalendarDate)
  8343. : LOGICAL;
  8344. IF NOT ({1 <= Date.DayComponent <= 31}) THEN
  8345. RETURN(FALSE);
  8346. END_IF;
  8347. CASE Date.MonthComponent OF
  8348. 4 : RETURN({ 1<= Date.DayComponent <= 30});
  8349. 6 : RETURN({ 1<= Date.DayComponent <= 30});
  8350. 9 : RETURN({ 1<= Date.DayComponent <= 30});
  8351. 11 : RETURN({ 1<= Date.DayComponent <= 30});
  8352. 2 :
  8353. BEGIN
  8354. IF (IfcLeapYear(Date.YearComponent)) THEN
  8355. RETURN({ 1<= Date.DayComponent <= 29});
  8356. ELSE
  8357. RETURN({ 1<= Date.DayComponent <= 28});
  8358. END_IF;
  8359. END;
  8360. OTHERWISE : RETURN(TRUE);
  8361. END_CASE;
  8362. END_FUNCTION;
  8363. FUNCTION IfcValidTime
  8364. (Time: IfcLocalTime)
  8365. : BOOLEAN;
  8366. IF EXISTS (Time.SecondComponent) THEN
  8367. RETURN (EXISTS (Time.MinuteComponent));
  8368. ELSE
  8369. RETURN (TRUE);
  8370. END_IF;
  8371. END_FUNCTION;
  8372. FUNCTION IfcVectorDifference
  8373. (Arg1, Arg2 : IfcVectorOrDirection)
  8374. : IfcVector;
  8375. LOCAL
  8376. Result : IfcVector;
  8377. Res, Vec1, Vec2 : IfcDirection;
  8378. Mag, Mag1, Mag2 : REAL;
  8379. Ndim : INTEGER;
  8380. END_LOCAL;
  8381. IF ((NOT EXISTS (Arg1)) OR (NOT EXISTS (Arg2))) OR (Arg1.Dim <> Arg2.Dim) THEN
  8382. RETURN (?) ;
  8383. ELSE
  8384. BEGIN
  8385. IF 'IFC2X3.IFCVECTOR' IN TYPEOF(Arg1) THEN
  8386. Mag1 := Arg1.Magnitude;
  8387. Vec1 := Arg1.Orientation;
  8388. ELSE
  8389. Mag1 := 1.0;
  8390. Vec1 := Arg1;
  8391. END_IF;
  8392. IF 'IFC2X3.IFCVECTOR' IN TYPEOF(Arg2) THEN
  8393. Mag2 := Arg2.Magnitude;
  8394. Vec2 := Arg2.Orientation;
  8395. ELSE
  8396. Mag2 := 1.0;
  8397. Vec2 := Arg2;
  8398. END_IF;
  8399. Vec1 := IfcNormalise (Vec1);
  8400. Vec2 := IfcNormalise (Vec2);
  8401. Ndim := SIZEOF(Vec1.DirectionRatios);
  8402. Mag := 0.0;
  8403. Res := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0:Ndim]);
  8404. REPEAT i := 1 TO Ndim;
  8405. Res.DirectionRatios[i] := Mag1*Vec1.DirectionRatios[i] - Mag2*Vec2.DirectionRatios[i];
  8406. Mag := Mag + (Res.DirectionRatios[i]*Res.DirectionRatios[i]);
  8407. END_REPEAT;
  8408. IF (Mag > 0.0 ) THEN
  8409. Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector( Res, SQRT(Mag));
  8410. ELSE
  8411. Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector( Vec1, 0.0);
  8412. END_IF;
  8413. END;
  8414. END_IF;
  8415. RETURN (Result);
  8416. END_FUNCTION;
  8417. FUNCTION IfcVectorSum
  8418. (Arg1, Arg2 : IfcVectorOrDirection)
  8419. : IfcVector;
  8420. LOCAL
  8421. Result : IfcVector;
  8422. Res, Vec1, Vec2 : IfcDirection;
  8423. Mag, Mag1, Mag2 : REAL;
  8424. Ndim : INTEGER;
  8425. END_LOCAL;
  8426. IF ((NOT EXISTS (Arg1)) OR (NOT EXISTS (Arg2))) OR (Arg1.Dim <> Arg2.Dim) THEN
  8427. RETURN (?) ;
  8428. ELSE
  8429. BEGIN
  8430. IF 'IFC2X3.IFCVECTOR' IN TYPEOF(Arg1) THEN
  8431. Mag1 := Arg1.Magnitude;
  8432. Vec1 := Arg1.Orientation;
  8433. ELSE
  8434. Mag1 := 1.0;
  8435. Vec1 := Arg1;
  8436. END_IF;
  8437. IF 'IFC2X3.IFCVECTOR' IN TYPEOF(Arg2) THEN
  8438. Mag2 := Arg2.Magnitude;
  8439. Vec2 := Arg2.Orientation;
  8440. ELSE
  8441. Mag2 := 1.0;
  8442. Vec2 := Arg2;
  8443. END_IF;
  8444. Vec1 := IfcNormalise (Vec1);
  8445. Vec2 := IfcNormalise (Vec2);
  8446. Ndim := SIZEOF(Vec1.DirectionRatios);
  8447. Mag := 0.0;
  8448. Res := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcDirection([0.0:Ndim]);
  8449. REPEAT i := 1 TO Ndim;
  8450. Res.DirectionRatios[i] := Mag1*Vec1.DirectionRatios[i] + Mag2*Vec2.DirectionRatios[i];
  8451. Mag := Mag + (Res.DirectionRatios[i]*Res.DirectionRatios[i]);
  8452. END_REPEAT;
  8453. IF (Mag > 0.0 ) THEN
  8454. Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector( Res, SQRT(Mag));
  8455. ELSE
  8456. Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector( Vec1, 0.0);
  8457. END_IF;
  8458. END;
  8459. END_IF;
  8460. RETURN (Result);
  8461. END_FUNCTION;
  8462. RULE IfcRepresentationContextSameWCS FOR
  8463. (IfcGeometricRepresentationContext);
  8464. LOCAL
  8465. IsDifferent : LOGICAL := FALSE;
  8466. END_LOCAL;
  8467. IF (SIZEOF(IfcGeometricRepresentationContext) > 1)
  8468. THEN
  8469. REPEAT i := 2 TO HIINDEX(IfcGeometricRepresentationContext);
  8470. IF (IfcGeometricRepresentationContext[1].WorldCoordinateSystem :<>: IfcGeometricRepresentationContext[i].WorldCoordinateSystem)
  8471. THEN
  8472. IsDifferent := (NOT(IfcSameValidPrecision(IfcGeometricRepresentationContext[1].Precision,
  8473. IfcGeometricRepresentationContext[i].Precision)))
  8474. OR (NOT(IfcSameAxis2Placement(IfcGeometricRepresentationContext[1].WorldCoordinateSystem,
  8475. IfcGeometricRepresentationContext[i].WorldCoordinateSystem,
  8476. IfcGeometricRepresentationContext[1].Precision)));
  8477. IF (IsDifferent = TRUE) THEN
  8478. ESCAPE;
  8479. END_IF;
  8480. END_IF;
  8481. END_REPEAT;
  8482. END_IF;
  8483. WHERE
  8484. WR1 : IsDifferent = FALSE;
  8485. END_RULE;
  8486. RULE IfcSingleProjectInstance FOR
  8487. (IfcProject);
  8488. WHERE
  8489. WR1 : SIZEOF(IfcProject) <= 1;
  8490. END_RULE;
  8491. END_SCHEMA;