Making Full Use of the Power of Lookup Tables
Kelli Lubeley – Enceptia
Elizabeth Mierendorf – Dewberry
MP1294 This class shows users how Autodesk® Revit® MEP building design software uses lookup tables to
automatically size pipe, conduit, and cable tray fittings properly. We look at how lookup tables are formatted and how
the Revit family references the lookup table. Users will better understand the role of lookup tables in Revit and be able
to use lookup tables when creating and editing families
.
LearningObjectives
At the end of this class, you will be able to:
Identify and describe the concepts behind lookup tables and explain how lookup tables benefit the design
process
Create custom families that reference lookup tables for automated design
Use formulas with lookup tables for accurate design
Explain how using lookup tables improves workflow
AbouttheSpeakers
Kelli Lubeley currently works as a technical advisor for Enceptia, an Autodesk gold partner. Her
main focus is on workflow development, content creation, and 3rd party application integration
for Revit Architecture, Revit MEP, and Revit Structure. She has developed and instructed Revit
courses at the community college and corporate level for over 5 years, and implemented Revit
Architecture and MEP at multiple firms. She enjoys the many facets of the Revit platform and
loves to constantly find new ways to leverage BIM technology for the design community.
Elizabeth Mierendorf currently works at Dewberry as a Senior Virtual Design Coordinator. As
part of the Virtual Design Team, she has been involved in all aspects of Dewberry’s BIM
implementation, primarily focusing on Architecture and Interior Design processes.
Elizabeth is responsible for developing efficient BIM workflows, training all architectural staff,
creating and maintaining Revit content, and providing support for all of Dewberry’s architectural
offices. She has been using Autodesk Revit since 2006 and began training others in the
software in 2009. She is passionate about teaching BIM concepts to others and loves helping
them get the most out of their Revit models.
Making Full Use of the Power of Lookup Tables
2
ConceptandBenefitofLookupTables
Theuseoflookuptablesforpipeandconduitfittingsprovideaninvaluableprocessthatwetakefor
granted.Imaginelayingoutapipesystemandgoingthroughtomanuallysetthesizeofeverysingle
fittinginthesystem.Sure,itmightonlytakeafewseconds,butwithhundreds
offittings,itaddsupfast.
Thenofcoursetherearethemultipleredesignsandresizesthroughoutthelifeoftheproject.We’re
talkingdozensofhoursthatlookuptablesaresavingusbyautoma tingfittingsizing.Let’sexplorelookup
tablesandtheirrelationshipwithRevitfamiliestobetterunderstand
thisprocessanditsbenefits.
Lookuptablesare.csv(commaseparatedvalue)filesthatareusedinconjunctionwithRevit.Revituses
specialparametersandformulasinfamiliestoreferencethelookuptableinformation.Lookuptableslet
youspecifymultipleparametervaluesrelativetoanothervaluewithoutcreatingaseparatetype
for
eachsetofvalues.Th e mostcommonuseoflookuptablesisdefiningthevariousdimensionsofpipe
andconduitfitting sbasedontheNominalDiameterofthefitting.Thisrelationshipofthe.csvfileand
theparameters/formulasinthefamilyletsRevitimmediatelysizeandresizefittingsbased
onthe
segmentstowhichtheyareconnected.
FormattingtheLookupTable
LookuptablescanbeeditedusingMicrosoftExcelorNotepad.Row1containsthecolumnheadersfor
eachcolumn.ColumnheaderformattingisParameterName##ParameterType##ParameterUnits.
Notethe##betweeneachpartofthecolumnheader.

Making Full Use of the Power of Lookup Tables
3
Thefirstcolumnisareference columnusedtodesignatea“na me”orreferenceforwhatthatrowinthe
tabledefines.Thecolumnheaderforthiscolumnisalwaysleftblank.Thesecondcolumndefinesthe
lookupvalue,typicallythenominaldiameteroftheelement.Thiscolumn
isacomparativecolumnthat
Revittriestomatchdata fr omthefamilytothedatainthiscolu mn.Allremainingcolumnsarelookup
columns,whereRevitwillretrievevaluesbasedonthelookupvaluedatainthefamily.Ifmorethanone
lookupvalueisnecessary,thenasmany
columnsasneededarecreated,shiftingthelookupcolumns
over.So,ifyou’recreatingateefittingthathasthreedifferentnominaldiameters,oneforeach
connection,youshouldhavethreelookupvaluecolumnstocoincidetheseparameters.
ReferenceColumn,LookupValue,andLookupColumnsinaLookupTable.
Note:Thelookupvalue(s)inthelookuptablemustcorrelatetoaSizetypeparameter(i.e.DuctSize,
PipeSize,etc.).lookupcolumnscanbeanytypethatisnumerical(i.e.Length,Integer,Volume,etc.).
HowRevitFamiliesuseLookupTables
Revitfamiliesmustuseaveryspecificprocesstoaccessandretrieveinformationfromlookuptables.
Thelookuptableisstoredwithinthefamilythroughanimport/exportdialog.Thisfileisthenreferenced
throughatextparameter.Thesetwocomponentsprovidetheaccesstotheinformationinthelookup
table.Then,
aspecialformulaisusedtoretrievevaluesfromthelookuptable.Wewilltakeanindepth
lookateachpieceoftheconnectiontounderstandtherelationshipbetweenthefileandhoweach
pieceofinformationisretrievedandutilizedbythefamily.
ImportingandReferencingtheLookup
Table
Toimportthelookuptable intoyourfamily,intheFamilyTypesdialog,clickontheManage…button
alongtherightsideofthedialogbox.
Making Full Use of the Power of Lookup Tables
4
IntheManageLookupTablesdialog,clickontheImport…button.Browsetotheappropriatelookup
tablefileandclickOK.
BackintheFamilyTyp es dialog,weaddatextparameternamedLookupTableName.(Thetext
parametercantechnicallybenamedanythingyou
want,buttokeepconsistencywithoutofthebox
familiesandtosimplifyformulas,Irecommendkeepingthestandardname.)Thenenterthenameofthe
.csvfileinthevalueofthisparameter.
Note:TheLookupTableNamevaluemustmatchthe.csvfilenameexactlywithoutthe
.csvextension,
butitisnotcasesensi tive.
OncetheLookupTableNameparameterhasbeenfilledin withtheappropriate.csvfilename , the
lookuptablecanbeusedinformulastoreferencethetableforvalues.
UsingFormulaswiththeLookupTable
Aspecificformulaisusedto
referencethelookuptabletoacquirevalues:
Making Full Use of the Power of Lookup Tables
5
size_lookup(LookupTableName,“LookupColumn”,DefaultIfNotFound,LookupValue)
TotranslatethisintoEn glish,wearetellingRevittogolookin(LookupTableName) foracolumncalled
(lookupcolumn)andreturnthevaluefromthatcolumnthat correspondswith(lookupvalue)row.If
thereisnomatch,returnthevaluespecifiedfor(DefaultIfNotFound). 
Let’slookatanexample:
Inthiscase,theformulaforfindingthevalueofFittingOutsideDiameterreadss omethinglikethis:In
LookupTableName(referstoparameterunderTextwhereyouenteredthe.csvfile
name),lookfora
rowinthelookupvaluecolumnthatcorrespondstothefamily’scurrentvalueofNominalDiameterand
returnthevaluefromcolumn“FOD”inthatrow.IfnomatchisfoundforNominalDiameterinthe
lookupvaluecolumn,retur navalueequaltoNominalDiameter
1+1/8”.
NoticethatNominalDiametercurrentlyhasavalueof1”.Ifwelookatour.csvfile,we’llseethatND,
ourlookupvalue,correspondstoNominalDiameterintheFamilyTypesdialog.WhenNDis1”,FODis
1.125”,or11/8”.Soourfamilywillhave
aFittingOutsideDiametervalueof11/8”.
UsingMultipleLookupValues
Toverifythevaluesofmultipleparameters,additionallookupvaluesareaddedtotheendofthe
formulaandthecorrespondinglookupvaluecolumnsareaddedtothe.csvfilebetweenthefirstlookup
valueandlookupcolumns.
Here’sanexampleshowingafamilythatusesmultiplelookupvalues.
Making Full Use of the Power of Lookup Tables
6
Inthiscase,theformulaforfindingthevalueofSocketBottomtoSocketBottomRunreadssomething
likethis:InLookupTableName(referstoparameterunderTextwhereyouenteredthe.csvfilename),
lookforamatchbetweenRevit’sNomi nal Diameter1andNominal
Diameter2parametervaluesand
thelookupvaluecolumnsinasinglerowwithinthelookuptable.IfamatchisfoundRevitwillreturnthe
valuefoundinthatrowforthecolumn“SBtSBR”.Ifnomatchisfound,Revit willreturnavaluee qualto
.03*NominalDiameter1+
1.96*NominalDiameter2+125/256”.
NoticethatNominalDiameter1currentlyhasavalueof2”andNominalDiameter2hasavalueof1
1/4”.Ifwelookatour.csvfile,we’llseeourfirstlookupvalue,calledND1,correspondstoN o minal
Diameter1intheFamilyTypes
dialogandoursecondlookupvalue,calledND2,correspondstoNominal
Diameter2.WhenND1is2”andND2is1.25",SBtSBRis3.0625,or31/16".
Wecandefineasmanyparametersasnecessaryusingthelookuptable,butrememberthatthevalues
aredrivenbythefirstcolumn(s).
Thenumberoflookupvaluesintheformulashouldalwaysbeequalto
thenumberoflookupvaluecolumnsinthe.csvfile.Ifaparameterisunrelatedtothelookupvalue
(typicallythenominaldiam eter),itshouldn’tbepartofthelookuptable.
Here’sanotherlookatinterpretingthis
complexrelationship:
Making Full Use of the Power of Lookup Tables
7
It’simportanttounderstandwhatRevitisactuallyco mparingistheparameternameusedinthe
formula(NominalDiameter2),andthecorrespondingcolumn inthelookuptable.Soifyourformula
reads(...,DefaultIfNotFound,LookupValue1,LookupValue2)RevitwilllookatcolumnsBand
C,
respectivelyinthe.csvfile.Ifyourformulaisonlyreferencingasinglelookupvalue,Revi twillneverlook
pastthefirstlookupvaluecolumninthelookuptable.Ifyou’reusing(...,DefaultIfNotFoun d,
LookupValue1)or...,DefaultIfNotFound,LookupValue2) Revitwillalwayscomparethe
parameterin
theformulatoONLYcolumnBinthe.csvfile.Theparameternameinthelookupvaluecolumn(s)isin
nowayusedbyRevit.
LookupTablesImproveWorkflow
Nowthatwe’vecoveredhowlookuptablesareformattedandreferencedwithinRevitfamilies,let’stalk
abouthowtheycanimproveworkflow.Wealreadyknowhowbeneficialtheyaretothepipeand
conduitmodelingprocess,savingusafewsecondswitheachofhundredsofinstancesthroughoutour
project.So
whyaren’tweusingthisconceptwithothercategories?
Lookuptablesmayhaveoriginallybeenintendedtobeuse donlywithPipeFittingsandConduitFittings,
butwecanactuallyuseth em withanycategorywewant!Byusingtheprocessthatwehavediscussed
forcreatinglookuptablesand
associatingthemwithRevitfamilies,anyfamilythatcanbeflexedinRevit
canbecontrolledbylookuptables.Somearealittlemorelogicalthanothers. Forinstan ce,youcould
addlookuptablestopipevalvefamiliessotheyaresizedtofitthesegmenttheyareplacedin.However,
whencreatingaVAVboxfa mily, ittypicallymakesmoresensetodrivethepara metersthroughformulas
andotherparameterssinceyoudon’twanttheductsizetodictatetheVAVcon nectorsizes.Sohowcan
lookuptableshelpyourworkflow?MaybeinPipeAccessories,orDuctAccessories,orwhy
noteven
Making Full Use of the Power of Lookup Tables
8
MechanicalEquipment.Getcreative!Ifyoudecidethatlookuptablesaren’trightforthesituationyou
canalwaysconvertthe.csvfiletoatypecatalog(DidImentionthatlookuptablesworkwithfamilies
thathavetypecatalogstoo?).
TrickingtheSystem
Sometimestheparameterwewant
touseforthelookupvaluemaynotbeaSizetypeparameter,even
thoughRevitrequiresthatitbeone fortheformulatoworkproperly.Sowehavetogetcreativewith
ourfamilies.Sinceweknowthatlookuptableswillonlyfunctionwithnumericallybasedparameter
types,
wecanuseanintermediatepara metertoconverttheinformationwewanttouseintoaformat
thatwillsatisfythelimitati onsoftheworkflow.
Inthisexamplewewanttousealookuptable tosizeapieceofequipmentbasedontheman ufacturer’s
specifications.Toaccomplishthis,wewill
takeallofthepredeterminedsizesthatwerepopulatedinto
thetypesofthisfamilyandconvertthemintoalookuptable.Doingthis“locksdown”thesesizessothat
theuserwillbeunabletomanipulatethemintheprojectenvironment.
Thelookupvalueforthisfamilywill
bethecapacityofthetank.Wewillusethisvaluebecauseallofthe
othersizeparametersdirectlyrelatetothisfield.However,thisiswherewehitasnag.TheCapacity
parameterisnotaSizeparameter…itisanInteger!Accordingwhatwesaidearlier,weareunable
touse
parametersthatarenotoftheSizetypeasourlookupvalue.
Thisiswherewetrickthesystem.Wecancreateanewparameterthatis ofaSizetypeinorderto
convertthisvaluetosomethingwecanuseinalookuptable.Inthis
case,wemakeaparametercalled
CapacityConverterthatisoftheDuctSizetype.
Making Full Use of the Power of Lookup Tables
9
Then,backintheFamilyTypesdialog,youcanenterasimpleformulatoconverttheIntegervaluetoa
Sizevalue(ininches).
Oncethisconversionisdonewecanuse thisparameterasthelookupvalueinourlookuptable.The
resultinglookuptablewould
looksomethinglikethis,whereourlookupvalue“CC”relatestoour
CapacityConverterparameterinRevit.Alloftherema iningcolumnsinthelookupta blewillbelookup
columns.

Making Full Use of the Power of Lookup Tables
10
TheselookupcolumnscanthenbeusedinRevitviathelookup tableformulawecoveredearlier.For
example,youcanmakethe“H”lookupcolumnrelatetothe“Height”parameterinRevit.
Then,youcancontinuethisprocessfortheremainingparametersinyourfamily.Once
allofthe
parameterscontaintheappropriatelookuptableformula,allthatauserhastodoischangethevaluein
theCapacityparametertooneoftheappropriatecapacityvaluesshowninthetable,andallofthe
dimensionswillautomaticallyupdate.
AStepFurther:AllowingCustomUserInput
Theaboveexampleworksgreatwhenyouwanttocompletely“lockdown”afamily,butwhatifyou
wanttoalsoallowcustomsizesfromtheuser?Wecanaccomplishthisbyaddingsomeaddi tional
parameterstothefamily.
First,wewillcreateaYes/Noparamete rfortheuserto
specifyiftheywantacustomsize.When
checked,thisparameterwillcompletelyoverridethelookuptable.
Then,wewilladdadditionalparameterstoourfamilyforeveryparameterthatisbeingcontro lledby
thelookuptable.Forexample,theHeight_CustomparameterrelatestotheHeightparameterthatis
being
drivenbythelookuptable.Thecustomparametersaresortedundertheg rouping ofCo nstruction
ratherthanDimensionstogroupthecustomparameterstogetherratherthanbeingmixedinwiththe
lookuptabledrivenparameters.
Making Full Use of the Power of Lookup Tables
11
Now,weneedtomakeachangetotheformulaforeachoftheparametersbeingcontrolledbythe
lookuptable.WewilldothissothatwhentheusercheckstheCustomcheckmark,thecustomvalues
controlthegeometryratherthanthelookuptablevalues.
IntheexampleoftheHeightparameter,the
formulawilllooksomethinglikethis:
Note:Inthisexample,theDefaultifNotFoundvalueforthelookuptableformulaalsotellsRevitto
usethecustomvalues.
TotranslatethisintoEn glish,iftheCustomparameterischecked,usethevaluefromthecustom
parameter,otherwiseusethesize_lookupformula.
Continuemodifyingtheformulas
fortheremainingparameters.Youshouldnowhaveafam ilythat
allowsforcustominputorforinputbasedonthelookuptable.
Making Full Use of the Power of Lookup Tables
12
MakingOurOwn
Sonowthatwe’vediscussedtheconceptbehindlookuptables,let’sbuildoneofourown.Forthis
example,we’regoingtobuildasimplepipetransition.
1. OpenthefamilyTransition–A U.rfa.
2. OpentheFamilyTypesdialog.
3. ClickontheManagebuttonunder LookupTables.
4. Clickthe
Import…buttonandselectPipeFittingAU.csvfromthelocationitissaved.
5. CreateaFamilyTypeparametercalledLookupTable Name.DefineitasaCommonText
parameterandgroupitunderOther.
6. FortheLookupTableNameparamete r value,enter PipeFitting‐AU.
Nowthat
thelookuptablehasbeenimportedandassociated,wecanreferencethelookuptableto
provideparametervalues.Atthispointyoumightwanttoopenthe.csvfileasareferenceforthe
formulas.
7. IntheFormulacolumnforFittingOD1,enterthefollowing:
size_lookup(LookupTableName,
"FOD",NominalDiameter1,NominalDiame ter 1) 
Howdidwearriveatthisformula?UsingtheformatfromthefirstpartofthehandoutandPipeFitting‐
CSRW.csv.“FOD”isthenameofthecolumnofvalueswewouldliketopopulatetheFittingOD1
Making Full Use of the Power of Lookup Tables
13
parameter.ThefirstNominalDiameter1iswhatwewanttouseasavalueifRevitcan’tfindoneinthe
.csvfile.Thelastvalue,thesecondNominalDiameter1isthelookupvalue.ThismeansthatRevitlooks
atthefirstcolumnafterReferenceColumn
(ND)andcomparesittothevalueinthefamilyforNominal
Diameter1.Ifthisvaluecorrespondstoavalueinanyrow,RevitwillpopulatetheFittingOD1
parameterwiththevalueofFODfromthesamerow.
8. RepeattheprocessfortheFittingOD2
parameter,usingtheFODcolumnagain.
9. Saveandclosethefamily.
10. OpenaRevitprojectandloadthenewfamily.
11. Verifythatthefamilyisutilizingthevaluesfromthelookuptableintheproject.
12. Congratulations!Youhavenowsuccessfullycreatedafamilyusingalookuptable.