mirror of
https://github.com/jeremytammik/RevitSdkSamples.git
synced 2026-08-06 05:01:35 +00:00
2029 lines
196 KiB
Plaintext
2029 lines
196 KiB
Plaintext
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang2057\deflangfe2057\themelang2057\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
|
|
{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f36\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;}
|
|
{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
|
{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
|
{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
|
{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f41\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
|
{\f42\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f44\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f45\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f46\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
|
{\f47\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f48\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f49\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f51\fbidi \fswiss\fcharset238\fprq2 Arial CE;}
|
|
{\f52\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;}{\f54\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f55\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f56\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);}
|
|
{\f57\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}{\f58\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f59\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f381\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}
|
|
{\f382\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f384\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f385\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f388\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}
|
|
{\f401\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\f402\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\f404\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\f405\fbidi \froman\fcharset162\fprq2 Cambria Tur;}
|
|
{\f408\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\f421\fbidi \fswiss\fcharset238\fprq2 Tahoma CE;}{\f422\fbidi \fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f424\fbidi \fswiss\fcharset161\fprq2 Tahoma Greek;}
|
|
{\f425\fbidi \fswiss\fcharset162\fprq2 Tahoma Tur;}{\f426\fbidi \fswiss\fcharset177\fprq2 Tahoma (Hebrew);}{\f427\fbidi \fswiss\fcharset178\fprq2 Tahoma (Arabic);}{\f428\fbidi \fswiss\fcharset186\fprq2 Tahoma Baltic;}
|
|
{\f429\fbidi \fswiss\fcharset163\fprq2 Tahoma (Vietnamese);}{\f430\fbidi \fswiss\fcharset222\fprq2 Tahoma (Thai);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
|
{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
|
{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
|
|
{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
|
|
{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
|
{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}
|
|
{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}
|
|
{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
|
{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
|
{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
|
|
{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
|
|
{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
|
{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
|
{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
|
|
{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
|
|
{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}
|
|
{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
|
|
{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
|
|
{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
|
{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;
|
|
\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;
|
|
\red192\green192\blue192;\caccentone\ctint255\cshade191\red54\green95\blue145;\ctexttwo\ctint255\cshade255\red31\green73\blue125;\caccentone\ctint255\cshade255\red79\green129\blue189;\ctexttwo\ctint255\cshade191\red23\green54\blue93;}{\*\defchp
|
|
\f31506\fs22\lang2057\langfe1033\langfenp1033 }{\*\defpap \ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{
|
|
\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \snext0 \sqformat \spriority0 \styrsid10491340 Normal;}{
|
|
\s1\ql \li0\ri0\sb480\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af31503\afs28\alang1025 \ltrch\fcs0
|
|
\b\fs28\cf17\lang2057\langfe1033\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext0 \slink15 \sqformat \spriority9 \styrsid10099304 heading 1;}{
|
|
\s2\ql \li0\ri0\sb240\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af31503\afs26\alang1025 \ltrch\fcs0
|
|
\b\fs24\cf18\lang2057\langfe1033\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext0 \slink16 \sunhideused \sqformat \spriority9 \styrsid13985477 heading 2;}{
|
|
\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext0 \slink17 \sunhideused \sqformat \spriority9 \styrsid10099304 heading 3;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1
|
|
Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
|
|
\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31506\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \snext11 \ssemihidden \sunhideused \sqformat
|
|
Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \ab\af31503\afs28 \ltrch\fcs0 \b\fs28\cf17\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink1 \slocked \spriority9 \styrsid10099304 Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \ab\af31503\afs26
|
|
\ltrch\fcs0 \b\fs26\cf18\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink2 \slocked \spriority9 \styrsid13985477 Heading 2 Char;}{\*\cs17 \additive \rtlch\fcs1 \ab\af31503 \ltrch\fcs0 \b\cf19\loch\f31502\hich\af31502\dbch\af31501
|
|
\sbasedon10 \slink3 \slocked \spriority9 \styrsid10099304 Heading 3 Char;}{\s18\ql \li0\ri0\sa300\widctlpar\brdrb\brdrs\brdrw20\brsp80\brdrcf19 \wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\contextualspace \rtlch\fcs1
|
|
\af31503\afs52\alang1025 \ltrch\fcs0 \fs52\expnd1\expndtw5\cf20\lang2057\langfe1033\kerning28\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext0 \slink19 \sqformat \spriority10 \styrsid10099304 Title;}{\*\cs19
|
|
\additive \rtlch\fcs1 \af31503\afs52 \ltrch\fcs0 \fs52\expnd1\expndtw5\cf20\kerning28\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink18 \slocked \spriority10 \styrsid10099304 Title Char;}{\s20\ql \li0\ri0\widctlpar
|
|
\tqc\tx4513\tqr\tx9026\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext20 \slink21 \sunhideused \styrsid10491340
|
|
header;}{\*\cs21 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \sbasedon10 \slink20 \slocked \styrsid10491340 Header Char;}{\s22\ql \li0\ri0\widctlpar\tqc\tx4513\tqr\tx9026\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1
|
|
\af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext22 \slink23 \ssemihidden \sunhideused \styrsid10491340 footer;}{\*\cs23 \additive \rtlch\fcs1 \af0 \ltrch\fcs0
|
|
\sbasedon10 \slink22 \slocked \ssemihidden \styrsid10491340 Footer Char;}{\s24\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs16\alang1025 \ltrch\fcs0
|
|
\f38\fs16\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext24 \slink25 \ssemihidden \sunhideused \styrsid10491340 Balloon Text;}{\*\cs25 \additive \rtlch\fcs1 \af38\afs16 \ltrch\fcs0 \f38\fs16
|
|
\sbasedon10 \slink24 \slocked \ssemihidden \styrsid10491340 Balloon Text Char;}}{\*\rsidtbl \rsid669583\rsid1800260\rsid3482130\rsid4066187\rsid8087796\rsid10099304\rsid10491340\rsid10496755\rsid11081352\rsid11288989\rsid12071576\rsid12729836\rsid13071986
|
|
\rsid13985477\rsid14885548\rsid16255071}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author tammikj}{\operator tammikj}{\creatim\yr2007\mo11\dy26\hr16\min37}
|
|
{\revtim\yr2008\mo5\dy13\hr16\min11}{\version11}{\edmins0}{\nofpages27}{\nofwords10485}{\nofchars63754}{\*\company Autodesk, Inc.}{\nofcharsws74091}{\vern32889}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
|
|
\paperw11906\paperh16838\margl1361\margr1361\margt1361\margb1361\gutter0\ltrsect
|
|
\widowctrl\ftnbj\aenddoc\trackmoves1\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\makebackup
|
|
\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1361\dgvorigin1361\dghshow1\dgvshow1
|
|
\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct
|
|
\asianbrkrule\rsidroot10099304\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0
|
|
{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0{\*\ftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10491340 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0
|
|
\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10491340 \chftnsep
|
|
\par }}{\*\ftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10491340 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {
|
|
\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10491340 \chftnsepc
|
|
\par }}{\*\aftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10491340 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {
|
|
\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10491340 \chftnsep
|
|
\par }}{\*\aftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10491340 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {
|
|
\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10491340 \chftnsepc
|
|
\par }}\ltrpar \sectd \ltrsect\linex0\headery709\footery709\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sectrsid669583\sftnbj {\footerr \ltrpar \pard\plain \ltrpar\s22\ql \li0\ri0\widctlpar
|
|
\tqc\tx4513\tqr\tx9072\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af1\afs16 \ltrch\fcs0
|
|
\i\f1\fs16\insrsid4066187 Revit Structure API Webcast }{\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \i\f1\fs16\insrsid10491340\charrsid10491340 Notes\tab Jeremy Tammik}{\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \i\f1\fs16\insrsid4066187 \tab }{\field{\*\fldinst {
|
|
\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \i\f1\fs16\insrsid10491340\charrsid10491340 PAGE \\* MERGEFORMAT }}{\fldrslt {\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \i\f1\fs16\lang1024\langfe1024\noproof\insrsid14885548 1}}}\sectd \ltrsect
|
|
\linex0\endnhere\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs16 \ltrch\fcs0 \i\f1\fs16\insrsid10491340\charrsid10491340
|
|
\par }}{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}
|
|
{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8
|
|
\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\s18\qc \li0\ri0\sa300\widctlpar\brdrb\brdrs\brdrw20\brsp80\brdrcf19
|
|
\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187\contextualspace \rtlch\fcs1 \af31503\afs52\alang1025 \ltrch\fcs0
|
|
\fs52\expnd1\expndtw5\cf20\lang2057\langfe1033\kerning28\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \fs96\insrsid4066187\charrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Revit Structure API
|
|
}{\rtlch\fcs1 \af31503 \ltrch\fcs0 \fs96\insrsid12071576\charrsid4066187
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10099304 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1
|
|
\af31507 \ltrch\fcs0 \insrsid1800260\charrsid8087796 \sect }\sectd \ltrsect\sbknone\linex0\headery709\footery709\cols2\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sectrsid4066187\sftnbj \pard\plain \ltrpar
|
|
\s3\ql \li0\ri0\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid14885548 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Before we start
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 LiveMeeting and conference call - how to
|
|
\par Expand to full screen mode
|
|
\par Press ESC to return
|
|
\par Introduction
|
|
\par Full Screen Mode
|
|
\par Provide feedback
|
|
\par Real-time Q&A
|
|
\par Mute phone *6
|
|
\par This conference is muted, so you cannot hear anybody else than me talking, and cannot provide feedback through the
|
|
phone conference. We will unmute it and open it up for general discussion and questions and answers at the end. Meanwhile, written questions can be entered in the live meeting console and will be answered in real-time during the presentation by my collea
|
|
g
|
|
ues. Thank you very much for that support! Since I will be switching back and forth between these slides and live demonstrations in Revit and Visual Studio, I will set my computer to low resolution and full screen mode to reduce bandwidth and speed up the
|
|
|
|
display. This means I will not see the live meeting console and the feedback panel. My colleagues will be monitoring the livemeeting console and also answering questions online. We will post the materials from this presentation together with the audio rec
|
|
ording.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 About the Presenter
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Jeremy originally joined Autodesk in 1988 as the technology evangelist responsible for European developer support. In this capacity, he wrote articles, consulted, lectured on AutoCAD application programming techniques, an
|
|
d supported AutoCAD application developers in Europe, the U.S., Australia, and South Africa. He was a cofounder of ADGE (AutoCAD Developer Group Europe) and a prolific author on AutoCAD application development. He left Autodesk in 1994 to work as an HVAC
|
|
application developer, then rejoined the company in 2005.
|
|
\par Jeremy graduated with a MA in mathematics and physics in Marburg, Germany, in 1984, and worked first as a teacher and translator of both computer and human languages, then as a C++ programmer. He is
|
|
fluent in five European languages, vegetarian, has four kids, plays the flute, likes theatre improvisation and loves sports and climbing.
|
|
\par Jeremy Tammik
|
|
\par Developer Technical Services
|
|
\par EMEA
|
|
\par Autodesk SARL
|
|
\par Introduction
|
|
\par It is my pleasure to work in for the Autodesk Developer Network, ADN, in the AEC workgroup.
|
|
\par ABCs of Revit Programming
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Prerequisite
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Knowledge of Revit API basics
|
|
\par Basic Revit API recordings are available
|
|
\par DevTV Introduction to Revit 2008 Programming
|
|
\par http://adn.autodesk.com/adn/servlet/item?siteID=4814862&id=10194238&linkID=4901650
|
|
\par Revit API 2009 Introduction webcast (May 6, 2008)
|
|
\par Public
|
|
\par Developer Center > API Training and Consulting > Schedule
|
|
\par http://download.autodesk.com/media/adn/Revit2009APIWebcast_06May2008.zip
|
|
\par ADN
|
|
\par ADN web site > Revit product > Knowledgebase > Whitepapers and Training Videos
|
|
\par http://adn.autodesk.com/adn/servlet/item?siteID=4814862&id=11255592&linkID=4901650
|
|
\par Introduction
|
|
\par This course assumes basic knowledge of Revit programming. We w
|
|
ill not cover basics such as how to define an external command, add menus, use filtering, etc. VSTA is also not covered. If you are not familiar with the basic Revit API and have missed Revit API Introduction course we had last week, a recording is avail
|
|
able on the ADN web site as well as on the developer center training schedule page. The download link is on the right side of the page.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Agenda
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Revit 2009 API News
|
|
\par Analysis Link
|
|
\par Overview - workflow, rac versus rst, physical versus analytical model
|
|
\par RstLabs - analysis link requirements and labs
|
|
\par RstLink - sample analysis link application
|
|
\par Rebar
|
|
\par Revit Structure rebar workflow
|
|
\par Generate and extract rebar and its information
|
|
\par Detailing
|
|
\par Generate views and sheets
|
|
\par Import and export dwg and other external file formats
|
|
\par Add text, dimensioning and annotation
|
|
\par Introduction
|
|
\par Our discussion here proceeds in three steps. First, look at the workflow and how it is supported by Revit Structure or RST. Secondly, walk through a series of labs related to extracting and analysing the data managed by RST. Finally, we will look at a sam
|
|
ple application linking RST with an external application. In this case, the external stress analysis package is simulated by AutoCAD.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Revit 2009 API News
|
|
\par \hich\af31502\dbch\af31501\loch\f31502 Revit 2009 API News Highlights
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 See "Getting Started Revit API 2009.doc"
|
|
\par Directory "API Changes"
|
|
\par Conversion from struct to class
|
|
\par Some method signature changes
|
|
\par Element iteration and filtering
|
|
\par Element batch creation: family instance, room, wall, grid, area, text
|
|
\par Performance improvements: creation, SuspendUpdating
|
|
\par Element parameter access: get by name, get map
|
|
\par New family properties: LoadedSymbols, FamilyCategory
|
|
\par Print Manager, rendering and material properties
|
|
\par VSTA
|
|
\par Set name of symbol
|
|
\par Family instance placement on faces
|
|
\par FBX for 3DS, DWFx 2D and 3D export
|
|
\par RoofType, RoofBase, FootprintRoof, ExtrusionRoof
|
|
\par Status bar message when prompting to pick elements
|
|
\par Volume calculation settings
|
|
\par New element categories: curtain systems, curtain wall mullions, roofs
|
|
\par View crop box settings access
|
|
\par Introduction
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Revit Stucture API News
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Rebar API Changes
|
|
\par Significant new functionality for modeling concrete reinforcement bars
|
|
\par New rebar element object model
|
|
\par Rebar element is now an instance of a shape
|
|
\par RebarShape is analogous to a Revit family
|
|
\par Different implementation and behaviour
|
|
\par Rebar shape objects are shipped as content
|
|
\par New ones can be created using the NewRebarShape() method
|
|
\par NewRebar() has two versions
|
|
\par Specify a RebarShape and a location
|
|
\par Specify a curve array, similar to 2008
|
|
\par Reinforcement
|
|
\par Loads, creation of hosted loads
|
|
\par Introduction
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Analysis Link Overview
|
|
\par \hich\af31502\dbch\af31501\loch\f31502 Completing the Building Information Model
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Building Information Modeling (BIM) - The creation and use of coordinated, internally consistent, computable information about a building project in design and construction
|
|
\par Image Courtesy of DDB Architectural International Ltd.
|
|
\par BUILDING
|
|
\par INFORMATION
|
|
\par MODELING
|
|
\par Overview
|
|
\par Building information modeling (BIM) is the creation and use of coordinated, consistent, computable information about a building project in design that yields
|
|
reliable digital representations of the building - representations used for design decision-making, production of high-quality construction documents, performance predictions, cost-estimating and construction planning, and, eventually, for managing and op
|
|
erating the facility. The focus of this presentation is on the structural part of it with Revit Structure.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Revit Structure Target Projects
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Buildings -
|
|
\par Any Type, any Size, any Complexity
|
|
\par made of any kind of Materials
|
|
\par Overview
|
|
\par Even if structural engineers can design any type of structures including bridges, tunnels, plants etc., RST focuses on building design. It does not mean that a user cannot design other type of structures, but the marketing that we do, the training and doc
|
|
umentation materials that we provide are positioning RST on building design.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Current Analysis Process
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Overview
|
|
\par Currently, the analysis of a building involves a lot of manual data transfer with accompanying loss of information and additional cost. Th
|
|
e aim of Revit and its building information model and Revit Structure and its linked physical and analytical model is to preserve more information, support communication between all parties involved, and reduce cost.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Structural Market Definition
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Designer
|
|
\par Structural
|
|
\par Analysis
|
|
\par Construction
|
|
\par Documentation
|
|
\par Engineer
|
|
\par Drafter
|
|
\par Contractor
|
|
\par Steel Detailer
|
|
\par Fabrication and
|
|
\par Shop Drawings
|
|
\par Overview
|
|
\par The structural industry is extremely fragmented. We segment is into 2 parts: design and fabrication. The design is composed of 2 tasks (analysis and construction drawings) done by 3 actors and the fabrication focuses on shop drawings.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Tasks and User Focus
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Designer
|
|
\par Engineer
|
|
\par Drafter
|
|
\par Revit Structure Focus
|
|
\par Construction
|
|
\par Documentation
|
|
\par Contractor
|
|
\par Steel Detailer
|
|
\par Fabrication and
|
|
\par Shop Drawings
|
|
\par Fabrication
|
|
\par Structural
|
|
\par Analysis
|
|
\par Modeling
|
|
\par Overview
|
|
\par The focus that we have for RST is on the design part only where we do modeling for drawings and analysis. We do not do analysis.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Issues to Address
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Problems addressed by Revit Structure
|
|
\par Same information is duplicated for different tasks
|
|
\par Lack of coordination tools
|
|
\par Between drafters and engineers
|
|
\par Between architects and engineers
|
|
\par Lack of standard software modelling platform
|
|
\par How are these problems addressed?
|
|
\par Overview
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 I\hich\af31502\dbch\af31501\loch\f31502 ntroduction
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Overview
|
|
\par Revit Structure is used by a structural engineer to manage and combine data from several different sources:
|
|
\par Architectural data, the building design, which can come from Revit Architecture, but also from other Autodesk or non-Autodesk products.
|
|
\par Analysis data for stress analysis in external packages.
|
|
\par Details which are designed based on the analysis results.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Structural BIM Workflow: The 4 Cs
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 ARCHITECTS
|
|
\par STRUCTURAL
|
|
\par ENGINEERS
|
|
\par BUILDERS
|
|
\par FABRICATORS
|
|
\par Coordination
|
|
\par Calculations
|
|
\par Construction Documents
|
|
\par Construction
|
|
\par Overview
|
|
\par In the context of the structural BIM, we focus on four C's which require significant coordination between architects, structural engineers, fabricators and builders:
|
|
\par Coordination
|
|
\par Calculations
|
|
\par Construction Documents
|
|
\par Construction
|
|
\par Developers and ADN partners can develop applications for each of the four Cs:
|
|
\par - Coordination with other disciplines
|
|
\par Using the rich information in RST and process it against other disciplines
|
|
\par Calculations or Analysis
|
|
\par Link analysis and design applications
|
|
\par Construction documentations
|
|
\par Focus on local standards
|
|
\par Automation
|
|
\par Construction
|
|
\par Use the information downstream for fabrication
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Application Development Opportunities
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Integration of analysis and design software
|
|
\par Automatic modeling
|
|
\par Reinforcement
|
|
\par Framing
|
|
\par Connections (Steel, precast)
|
|
\par Portal frames
|
|
\par Bridge/tunnels
|
|
\par Special structures (towers, retaining walls)
|
|
\par Data exchange (with other AutoCAD based applications)
|
|
\par Scheduling
|
|
\par Drawing automation
|
|
\par ...
|
|
\par Overview
|
|
\par As the API is becoming more and more robust, there are many areas of opportunity to port existing applications to RST or to develop new ones.
|
|
\par The API is a great way to automate repetitive manual tasks such as reinforcement, framing modeling. There is also
|
|
an opportunity to create dedicated Revit families and to drive their generation with the API such as steel connections. You can also imagine building wizard type applications that generate civil structures including soil, geometry reinforcement etc. The A
|
|
P
|
|
I is also built so you can link the RST model to your existing application and complete what RST does not do such as local standard drawings or schedules. With the API you can drive an application to generate a dwg file and then import it automatically in
|
|
RST.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Application Development Opportunities
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Integration of analysis and design software
|
|
\par Automatic modeling
|
|
\par Reinforcement
|
|
\par Framing
|
|
\par Connections (Steel, precast)
|
|
\par Portal frames
|
|
\par Bridge/tunnels
|
|
\par Special structures (towers, retaining walls)
|
|
\par Data exchange (with other AutoCAD based applications)
|
|
\par Scheduling
|
|
\par Drawing automation
|
|
\par ...
|
|
\par Overview
|
|
\par Today we will focus on the three highlighted areas.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Comparison with Revit Architecture
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 General User Interface
|
|
\par Command organization
|
|
\par Category filtering
|
|
\par Functionality added
|
|
\par Analytical model (generation and adjustment)
|
|
\par Load modelling
|
|
\par API specific model and load objects
|
|
\par Rebar modelling
|
|
\par Composite metal deck
|
|
\par Graphical column schedule
|
|
\par ...
|
|
\par Overview
|
|
\par Revit Architecture and Structure have a lot of common features. The differences are visible in the user interface in the command organisation and the category filtering. Some structure-specific functionality has been added.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Comparison with Revit Architecture
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Functionality removed
|
|
\par Reflected ceiling plans
|
|
\par Room related functionalities
|
|
\par Model text
|
|
\par ...
|
|
\par Overview
|
|
\par Some functionality has also been removed.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Analytical Model
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Structural analysis model differs from drawing model
|
|
\par Revit Structure solves this problem
|
|
\par Physical model is used for drawings, coordination and construction
|
|
\par Analytical model is the simplified model used for analysis
|
|
\par Overview
|
|
\par The most important problem of the structural industry is the fact that the information used for structural analysis is physically different than the one used for drawings. Revit Structure solves this problem. The physical model is the model that we use fo
|
|
r drawings, coordination and construction, and the analytical model is the simplified model used for analysis.
|
|
\par Some examples show the discrepancies between the analytical and physical models.
|
|
\par For example, consider a plan view where the walls need to be aligned for the analysis and the beams need to join the centre of columns to end of walls.
|
|
\par Another example is an elevation where the analytical model is horizontally projected even if the physical model of the beam has a slope.
|
|
\par Finally, consider a situation where the physical model of the beam is curved and the analytical model is segmented.
|
|
\par Revit Structure maintains the coordination between the 2 models and will keep the analytical model of each element connected.
|
|
\par As a third party analysis developer, you just need to work with the analytical model.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 What is in the analytical model?
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Members that need to participate in the analysis
|
|
\par Geometry (location)
|
|
\par Sections
|
|
\par Materials
|
|
\par Release conditions
|
|
\par Reference to level (optional)
|
|
\par Loads
|
|
\par Load cases
|
|
\par Load combinations
|
|
\par Point, line, area loads
|
|
\par Boundary conditions
|
|
\par Support data
|
|
\par Overview
|
|
\par In this presentation, we explain how to access all this information.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Analytical vs Physical Model
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Overview
|
|
\par Revit Structure combines the physical model which drives the modeling and documentation process with the analytical model which drives the analysis process and export to third party analysis software.
|
|
\par The Revit Structure analytical model can be adjusted for analysis purposes while the physical model stays accurate for documentation.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Analytical vs Physical Model
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Overview
|
|
\par Here are examples of different cases highlighting the difference between the physical and the analytical models and the need for flexibility in linking the two:
|
|
\par The end points of two beams may are not at the same location. We want to the end points of their analytical models to be located at the same point. An engineer decides to move the end of one beam.
|
|
\par Remodelling an old historic building, walls may not be straight. An engineer decides to approximate them by planes for analysis.
|
|
\par Two walls with different thicknesses but aligned analytical planes.
|
|
\par A wall with a parapet that does not need to be included in the analysis.
|
|
\par Adjusting the location of analytical columns horizontally.
|
|
\par The cases are taken from AE_CD_RST2008/Analysis_workflows/Analysis_Workflows.pdf.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Data Exchange Workflow
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Geometry
|
|
\par Physical
|
|
\par Analytical
|
|
\par Loads
|
|
\par Connectivity
|
|
\par Material
|
|
\par Project parameters
|
|
\par Overview
|
|
\par In general, we start off with a physical mod
|
|
el. This can be used to automatically generate the analytical one. The analytical model is exported to an external analysis package, which adds its own data. As a result of the analysis, the analytical model may be modified, resulting in changes in the ph
|
|
ysical model as well. New changes may be added in the physical model as well. All of these processes may continue over many iterations.
|
|
\par The example presented displays the following steps:
|
|
\par RST defines the physical model, analytical model composed of geometry, loads, connectivity (release and boundary conditions), material properties, project parameters. This is information is accessible via the API
|
|
\par In the analysis software we get the analytical model
|
|
\par Analytical model initializes specific properties not present in RST (here they are symbolized with X and Y) and the user can change them. We can do an analysis, delete specific members, change sections and then the analysis software updates the RST model
|
|
|
|
\par Changes can be add, delete, create, and move members and also add new properties to RST members
|
|
\par If we select a column and duplicate it, it will have the Y parameter that was defined in 3)
|
|
\par So the next time we round trip the data to the 3rd party, we retrieve the Y parameter.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Analysis Requirements
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Extract the analytical model geometry
|
|
\par Extract the load cases, load combinations, loads
|
|
\par Extract release and boundary conditions
|
|
\par Update the model with changes and new and deleted elements
|
|
\par Add load cases and load combinations
|
|
\par Add loads and reactions
|
|
\par Add project information, shared parameters
|
|
\par Add shared parameters on structural objects
|
|
\par Overview
|
|
\par Now we understand the structural workflow and its needs, we can start looking at the API features provided to address these needs.
|
|
\par Here is an overview of the typical requirements for implementing a link to an external analysis package using the RST API.
|
|
\par In the following slides, we will look at the Revit samples and a series of labs demonstrating how to address these issues one by one.
|
|
\par Finally, the results of these labs will be integrated into the sample link application.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Adding local parameters to Revit
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Shared parameters
|
|
\par Can be defined in an external file
|
|
\par Can be added with the API
|
|
\par Can be defined per element
|
|
\par Can be project specific, e.g. building codes
|
|
\par Templates
|
|
\par Can contain specific information such as load combinations
|
|
\par Overview
|
|
\par Here are some different strategies for a third party application to add new properties in the database.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Analytical model access
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 How to get the ...
|
|
\par ... thickness of a wall with multiple layers?
|
|
\par SDK sample TestWallThickness
|
|
\par ... analytical model of an in-place family?
|
|
\par SDK sample AnalyticalViewer
|
|
\par ... analytical model defined in an external family?
|
|
\par SDK sample AnalyticalViewer
|
|
\par ... multiple analytical segments of a curved beam?
|
|
\par Tessellate the underlying curve
|
|
\par Overview
|
|
\par Here are some typical frequently asked questions and examples on how to solve them.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Useful Revit SDK Samples
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Parameters
|
|
\par BrowseBindings
|
|
\par CreateShared
|
|
\par FireRating
|
|
\par InvisibleParam
|
|
\par Analytical Model
|
|
\par AnalyticalSupportData_Info
|
|
\par AnalyticalViewer
|
|
\par BoundaryConditions
|
|
\par InplaceFamilyAnalyticalModel3D
|
|
\par Loads
|
|
\par RotateFramingObjects
|
|
\par SlabProperties
|
|
\par SpanDirection
|
|
\par Overview
|
|
\par Currently, information on how to combine Revit API calls to achieve certain complex tasks is contained mainly in the SDK samples. Here is a list of some of the Revit SDK samples which address areas related to structure.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Revit Structure Analysis Labs
|
|
\par \hich\af31502\dbch\af31501\loch\f31502 Revit Structure Analysis Labs
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Loads
|
|
\par 1-1\tab Load cases, natures, combinations, usages
|
|
\par 1-2\tab Point, line and area loads
|
|
\par 1-3\tab Load parameters and modification
|
|
\par 1-4\tab Load symbols
|
|
\par 1-5\tab Creating load objects
|
|
\par Structure
|
|
\par 2-1\tab Columns
|
|
\par 2-2\tab Framing
|
|
\par 2-3\tab Foundations
|
|
\par 2-4\tab Structural standard family instances
|
|
\par 2-5\tab Structural system family instances: walls, floors, footings
|
|
\par Analytical Model
|
|
\par 3\tab Analytical model
|
|
\par RstLabs
|
|
\par In the section, we demonstrate step by step how to implement the functionality required for an application linking Revit Structure with an external analysis package. The first group of labs addresses ac
|
|
cess and modification of load data, the second examines the building structure, and the third addresses the entire analytical model.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Load Grouping Objects
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Load Cases
|
|
\par Load Natures
|
|
\par Load Combinations
|
|
\par Load Usages
|
|
\par Lab 1-1
|
|
\par To retrieve load case, nature, combination and usage objects, simply filter for the corresponding object class LoadCase, LoadNature, LoadCombination and LoadUsage
|
|
\par To create new objects, use the Autodesk.Revit.Creation.Document methods NewLoadCase(), NewLoadCombination(), NewLoadNature(), NewLoadUsage() accessible through ActiveDocument.Create
|
|
\par RstLabs
|
|
\par This first lab extracts and lists the load cases, natures, combinations and usages defined in the Revit model.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Loads Grouping Code
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Retrieve objects
|
|
\par public static List<Element> GetAllLoadNatures( Application app )
|
|
\par \{
|
|
\par List<Element> a = new List<Element>();
|
|
\par Filter filterType = app.Create.Filter.NewTypeFilter( typeof( LoadNature ) );
|
|
\par app.ActiveDocument.get_Elements( filterType, a );
|
|
\par return a;
|
|
\par \}
|
|
\par Create objects
|
|
\par ActiveDocument.Create.
|
|
\par LoadCase NewLoadCase( string name, LoadNature nature, Category category );
|
|
\par LoadNature NewLoadNature( string name )
|
|
\par LoadUsage NewLoadUsage( string name )
|
|
\par LoadCombination NewLoadCombination( string name, int typeInd, int stateInd,
|
|
\par double[] factors, LoadCaseArray cases, LoadCombinationArray combinations,
|
|
\par LoadUsageArray usages )
|
|
\par RstLabs
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Loads Grouping Demo
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 RstLabs
|
|
\par Todo: add image of model.
|
|
\par To run the demo, install and compile RstLabs, add Lab 1-1 to Revit.ini, start Revit, and select the external command.
|
|
\par [ExternalCommands]
|
|
\par ECCount=1
|
|
\par ECName1=RS Lab1-1 Load Natures, Cases and Combinations
|
|
\par ECDescription1=Lab1_1...
|
|
\par ECClassName1=RSSolvedLabsCode.Lab1_1
|
|
\par ECAssembly1=C:\\a\\j\\adn\\rst\\rst_api\\RSSolvedLabsCode\\bin\\RSSolvedLabsCode.dll
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Access to Load Objects
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Point Loads
|
|
\par Line Loads
|
|
\par Area Loads
|
|
\par Lab 1-2
|
|
\par Shows how to access all load objects using the base or specific classes
|
|
\par All three load classes are derived from LoadBase
|
|
\par Creation through NewAreaLoad (3 overloads), NewLineLoad (2), NewPointLoad
|
|
\par RstLabs
|
|
\par Lab 1-2 shows how to access all load objects using the base or specific classes. All three load classes are derived from LoadBase. They are creation through NewAreaLoad() (3 overloads), NewLineLoad() (2), and NewPointLoad().
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Ret\hich\af31502\dbch\af31501\loch\f31502 rieve Load Objects
|
|
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 public static void GetAllSpecificLoads(
|
|
\par Application app,
|
|
\par ref ElementSet pointLoads,
|
|
\par ref ElementSet lineLoads,
|
|
\par ref ElementSet areaLoads )
|
|
\par \{
|
|
\par List<Element> a = new List<Element>();
|
|
\par Filter filterTypeLoad = app.Create.Filter.NewTypeFilter( typeof( LoadBase ), true );
|
|
\par app.ActiveDocument.get_Elements( filterTypeLoad, a );
|
|
\par foreach( Element elem in a )
|
|
\par \{
|
|
\par if( elem is PointLoad )
|
|
\par \{
|
|
\par pointLoads.Insert( elem );
|
|
\par \}
|
|
\par else if( elem is LineLoad )
|
|
\par \{
|
|
\par lineLoads.Insert( elem );
|
|
\par \}
|
|
\par else if( elem is AreaLoad )
|
|
\par \{
|
|
\par areaLoads.Insert( elem );
|
|
\par \}
|
|
\par \}
|
|
\par \}
|
|
\par RstLabs
|
|
\par Just like in the preceding lab, we iterate over all Revit elements and pick out the object types of interest. For each load type object, a number of properties are defined for extracting and modifying data.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 L\hich\af31502\dbch\af31501\loch\f31502 oad Objects Demo
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 RstLabs
|
|
\par Todo: add image of model.
|
|
\par Open RstLabs.rvt to obtain a model with a few predefined loads.
|
|
\par Run the external command Lab 1-2 after adding RstLabs.dll to Revit.ini.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Load Object Parameters
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Lab 1-3
|
|
\par Shows more details about loads, this time from selected objects
|
|
\par How to access load parameters
|
|
\par How to modify load objects
|
|
\par Dim iter As ElementSetIterator = doc.Selection.Elements.ForwardIterator
|
|
\par While iter.MoveNext
|
|
\par Dim elem As Revit.Element = iter.Current
|
|
\par If TypeOf elem Is PointLoad Then
|
|
\par ListAndModifyPointLoad(CType(elem, PointLoad))
|
|
\par ElseIf TypeOf elem Is LineLoad Then
|
|
\par ListAndModifyLineLoad(CType(elem, LineLoad), app)
|
|
\par ElseIf TypeOf elem Is AreaLoad Then
|
|
\par ListAndModifyAreaLoad(CType(elem, AreaLoad), app)
|
|
\par End If
|
|
\par End While
|
|
\par RstLabs
|
|
\par Lab 1-3 continues the exploration about loads.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Get Parameter by Display Name
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 New in 2009: direct parameter access by display name
|
|
\par Parameter para = elem.get_Parameter( name );
|
|
\par Some parameters are accessible via display name only
|
|
\par Using BuiltInParameter enum is language independent
|
|
\par elem.get_Parameter( BuiltInParameter.LOAD_IS_REACTION )
|
|
\par RstLabs
|
|
\par Some element parameters can be accessed via display name only. In general, we try to use the BuiltInParameter enum to access parameters whenever possible, since it is language independent.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Point Load Parameters
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Equivalent
|
|
\par LOAD_IS_REACTION\tab "Is Reaction"
|
|
\par LOAD_CASE_ID\tab "Load Case"
|
|
\par Similar
|
|
\par LOAD_USE_LOCAL_COORDINATE_SYSTEM\tab "Orient to"
|
|
\par Built-in only
|
|
\par LOAD_USE_LOCAL_COORDINATE_SYSTEM_HOSTED
|
|
\par LOAD_IS_CREATED_BY_API
|
|
\par Display name only
|
|
\par "Fz"
|
|
\par RstLabs
|
|
\par Parameters vary from Revit version to version.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Other Load Parameters
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 See list of 59 load-relevant built-in parameters at end of Labs1.vb
|
|
\par LOAD_ALL_NON_0_LOADS
|
|
\par LOAD_AREA_AREA
|
|
\par LOAD_AREA_FORCE_FX1
|
|
\par LOAD_AREA_FORCE_FX2
|
|
\par LOAD_AREA_FORCE_FX3
|
|
\par LOAD_AREA_FORCE_FY1
|
|
\par LOAD_AREA_FORCE_FY2
|
|
\par LOAD_AREA_FORCE_FY3
|
|
\par LOAD_AREA_FORCE_FZ1
|
|
\par LOAD_AREA_FORCE_FZ2
|
|
\par LOAD_AREA_FORCE_FZ3
|
|
\par LOAD_ARROW_SEPARATION
|
|
\par LOAD_ATTR_AREA_FORCE_SCALE_FACTOR
|
|
\par LOAD_ATTR_FORCE_ARROW_TYPE
|
|
\par LOAD_ATTR_FORCE_SCALE_FACTOR
|
|
\par LOAD_ATTR_LINEAR_FORCE_SCALE_FACTOR
|
|
\par LOAD_ATTR_MOMENT_ARROW_ARC
|
|
\par LOAD_ATTR_MOMENT_ARROW_LINE
|
|
\par LOAD_ATTR_MOMENT_SCALE_FACTOR
|
|
\par LOAD_CASE_CATEGORY
|
|
\par LOAD_CASE_ID
|
|
\par LOAD_CASE_NAME
|
|
\par LOAD_CASE_NATURE
|
|
\par LOAD_CASE_NATURE_TEXT
|
|
\par LOAD_CASE_NUMBER
|
|
\par LOAD_COMBINATION_FACTOR
|
|
\par LOAD_COMBINATION_NAME
|
|
\par LOAD_COMBINATION_STATE
|
|
\par LOAD_COMBINATION_TYPE
|
|
\par LOAD_COMMENTS
|
|
\par LOAD_COMMENT_TEXT
|
|
\par LOAD_DESCRIPTION
|
|
\par LOAD_FORCE_FX
|
|
\par LOAD_FORCE_FY
|
|
\par LOAD_FORCE_FZ
|
|
\par LOAD_IS_CREATED_BY_API
|
|
\par LOAD_IS_PROJECTED
|
|
\par LOAD_IS_REACTION
|
|
\par LOAD_IS_UNIFORM
|
|
\par LOAD_LINEAR_FORCE_FX1
|
|
\par LOAD_LINEAR_FORCE_FX2
|
|
\par LOAD_LINEAR_FORCE_FY1
|
|
\par LOAD_LINEAR_FORCE_FY2
|
|
\par LOAD_LINEAR_FORCE_FZ1
|
|
\par LOAD_LINEAR_FORCE_FZ2
|
|
\par LOAD_LINEAR_LENGTH
|
|
\par LOAD_MOMENT_MX
|
|
\par LOAD_MOMENT_MX1
|
|
\par LOAD_MOMENT_MX2
|
|
\par LOAD_MOMENT_MY
|
|
\par LOAD_MOMENT_MY1
|
|
\par LOAD_MOMENT_MY2
|
|
\par LOAD_MOMENT_MZ
|
|
\par LOAD_MOMENT_MZ1
|
|
\par LOAD_MOMENT_MZ2
|
|
\par LOAD_NATURE_NAME
|
|
\par LOAD_USAGE_NAME
|
|
\par RstLabs
|
|
\par LOAD_USE_LOCAL_COORDINATE_SYSTEM
|
|
\par LOAD_USE_LOCAL_COORDINATE_SYSTEM_HOSTED
|
|
\par Here is a full list of parameters relevant to loads given in the comment at the end of Labs1.vb.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Point Load Properties
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 LoadBase
|
|
\par HostElement
|
|
\par LoadCaseName
|
|
\par LoadCategoryName
|
|
\par LoadNatureName
|
|
\par PointLoad
|
|
\par Force
|
|
\par Moment
|
|
\par Point
|
|
\par Explore
|
|
\par Help file
|
|
\par Debugger
|
|
\par RvtMgdDbg
|
|
\par Reflection
|
|
\par RstLabs
|
|
\par Some of the values accessible through parameters are also exposed directly as properties on the object class.
|
|
\par Whenever you are looking for a specific property, you will need to explore the Revit API and one or more suitable sample models to determine what exactly you are looking for and how to access it.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 More Point Load Properties
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 RvtMgdDbg
|
|
\par Available with source code on ADN
|
|
\par RstLabs
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Modify Load Demo
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 // Scale Fz by factor 2
|
|
\par Parameter paramFz = ptLd.get_Parameter( "Fz" );
|
|
\par double Fz_old = paramFz.AsDouble();
|
|
\par paramFz.Set( 2.0 * Fz_old );
|
|
\par RstLabs
|
|
\par In "RS Labs.rvt", select a point, line and area load, then run the external command for Lab 1-3.
|
|
\par One new property in 2008 is the HostElement. Many other properties are also available. Here is an example of a line load element.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Load Symbols
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Lab 1-4
|
|
\par Retrieve load symbols aka types available in the project
|
|
\par Determine load symbol family
|
|
\par One utility for all load symbols (point, line and area)
|
|
\par Another one specifically for point loads
|
|
\par Load symbols are system families, not standard ones
|
|
\par RstLabs
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Retrieve Load Symbols
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 In 2008
|
|
\par Iterate over Elements
|
|
\par Pick out Symbol instances
|
|
\par Check for structural loads category
|
|
\par Now
|
|
\par Make use of new classes LoadTypeBase, PointLoadType, LineLoadType, AreaLoadType
|
|
\par Search for the base class instead of the category
|
|
\par public static List<Element> GetAllLoadSymbols( Application app )
|
|
\par \{
|
|
\par List<Element> a = new List<Element>();
|
|
\par Filter filter = app.Create.Filter.NewTypeFilter( typeof( LoadTypeBase ), true );
|
|
\par app.ActiveDocument.get_Elements( filter, a );
|
|
\par return a;
|
|
\par \}
|
|
\par RstLabs
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Determine Load Symbol Family
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 No dedicated classes
|
|
\par Examine family name parameter
|
|
\par BuiltInParameter.SYMBOL_FAMILY_NAME_PARAM
|
|
\par equals "Point Loads", "Line Loads", "Area Loads"
|
|
\par RstLabs
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Creating Load Objects
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Lab 1-5
|
|
\par Show how to create a new Load object, specifically PointLoad
|
|
\par One as reaction, simulating analysis result
|
|
\par One as standard external load
|
|
\par Also show how to
|
|
\par Set a selected symbol for this new load
|
|
\par Assign the load to a selected load case
|
|
\par RstLabs
|
|
\par Lab 1-5 shows how to create a new load object, sp
|
|
ecifically a point load. It creates two new point loads by calling NewPointLoad() with somewhat arbitrary parameters. One as reaction, simulating an analysis result, the other is a standard external load. It also shows how to set a selected symbol for thi
|
|
s
|
|
new load and assign the load to a selected load case. To assign a selected symbol to it, all point load symbols in the document are retrieved and the user is allowed to select one of them. Its id is then assigned to the newly created point load ELEM_TYPE
|
|
_PARAM. Similarly, to assign a load case, all load cases are retrieved and displayed and the selected one's id is assigned to the LOAD_CASE_ID parameter.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Point Load Creation
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Create
|
|
\par Signature changed in 2009
|
|
\par Revit.Creation.Document.NewPointLoad( reference As Reference,
|
|
\par force As XYZ, moment As XYZ, isReaction As Boolean,
|
|
\par symbol As PointLoadType, plane As SketchPlane ) As PointLoad
|
|
\par Revit.Creation.Document.NewPointLoad ( point As XYZ,
|
|
\par force As XYZ, moment As XYZ, isReaction As Boolean, _
|
|
\par symbol As PointLoadType, plane As SketchPlane ) As PointLoad
|
|
\par Assign Symbol
|
|
\par Iterate over all point load symbols
|
|
\par Assign selected one's id to parameter
|
|
\par BuiltInParameter.ELEM_TYPE_PARAM
|
|
\par Assign Load Case
|
|
\par Iterate over all load cases
|
|
\par Assign selected one's id to parameter
|
|
\par BuiltInParameter.LOAD_CASE_ID
|
|
\par RstLabs
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Structure Load Creation
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 What's new in 2009
|
|
\par Load creation methods
|
|
\par Revit.Creation.Document.NewPointLoad( reference As Reference,
|
|
\par force As XYZ, moment As XYZ, isReaction As Boolean,
|
|
\par symbol As PointLoadType, plane As SketchPlane ) As PointLoad
|
|
\par Added a load type and sketch plane argument
|
|
\par Optional, can be null (Nothing in VB) = Default load type
|
|
\par Point (Line/Area) LoadType and *LoadTypeSet objects added
|
|
\par Supports creation of hosted loads
|
|
\par Overloads for assignment of a host element or geometry reference of a host element to create the hosted loads
|
|
\par NewPointLoad(), NewLineLoad() and NewAreaLoad()
|
|
\par RstLabs
|
|
\par Revit Structure has enhanced load elements by adding their symbols. In the API, parameters used for load creation have changed: all load creation methods now take an optional load type and sketch plane argument. Both of these arguments are optional and c
|
|
an be supplied null (Nothing in VB) to use the default load type for the category of load being created.
|
|
\par Point(Line/Area)LoadType and Point(Line/Area)LoadTypeSet objects are added.
|
|
\par In addition, the Autodesk Revit API now supports creation of hosted loads.
|
|
Several overloads have been added for NewPointLoad(), NewLineLoad() and NewAreaLoad() permitting assignment of a host element or geometry reference of a host element to create the hosted loads.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Columns and Framing
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Structural Elements
|
|
\par Standard families
|
|
\par Lab 2-1
|
|
\par Retrieve all structural 'line segment' or 'stick' elements
|
|
\par Columns belong to a separate standard family
|
|
\par Others such as beam, brace, joist, etc. belong to the framing standard family
|
|
\par RstLabs
|
|
\par The next section explores accessing and modifying structural elements and their data in RST.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Select all columns
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Select all standard family instances for category OST_StructuralColumns
|
|
\par BuiltInCategory bicSc = BuiltInCategory.OST_StructuralColumns;
|
|
\par List<Element> columns = RacUtils.GetAllStandardFamilyInstancesForACategory( app, bicSc );
|
|
\par . . .
|
|
\par public static List<Element> GetAllStandardFamilyInstancesForACategory(
|
|
\par Application app,
|
|
\par BuiltInCategory bic )
|
|
\par \{
|
|
\par List<Element> elements = new List<Element>();
|
|
\par Filter filterType = app.Create.Filter.NewTypeFilter( typeof( FamilyInstance ) );
|
|
\par Filter filterCategory = app.Create.Filter.NewCategoryFilter( bic );
|
|
\par Filter filterAnd = app.Create.Filter.NewLogicAndFilter( filterType, filterCategory );
|
|
\par app.ActiveDocument.get_Elements( filterAnd, elements );
|
|
\par return elements;
|
|
\par \}
|
|
\par RstLabs
|
|
\par To select all columns in the model, we once again use filtering to select all standard family instances for category OST_StructuralColumns. We can display generic element and column properties such as element id, symbol name, structural type and an
|
|
alytical model type.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Select all framing elements
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Select all standard family instances for category OST_StructuralFraming
|
|
\par Dim catStructuralFraming As Category = doc.Settings.Categories.Item(BuiltInCategory.OST_StructuralFraming)
|
|
\par Dim frmEls As ElementSet = RBUtils.GetAllStandardFamilyInstancesForACategory(app, catStructuralFraming.Name)
|
|
\par sMsg = "There are " & frmEls.Size & " Structural FRAMING elements:" & vbCrLf
|
|
\par Dim frmEl As FamilyInstance
|
|
\par For Each frmEl In frmEls
|
|
\par sMsg += " Id=" & frmEl.Id.Value.ToString & " Type=" & frmEl.Symbol.Name & _
|
|
\par " Struct.Usage=" & frmEl.StructuralUsage.ToString & _
|
|
\par " Struct.Type=" & frmEl.StructuralType.ToString & _
|
|
\par " Analytical Type=" & frmEl.AnalyticalModel.GetType.Name & vbCrLf
|
|
\par Next
|
|
\par MsgBox(sMsg)
|
|
\par RstLabs
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Foundation\hich\af31502\dbch\af31501\loch\f31502 s
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Structural Elements
|
|
\par Foundations standard family
|
|
\par Lab 2-2
|
|
\par Retrieve structural foundation elements
|
|
\par May not be needed for analysis package
|
|
\par Alternative approach retrieves all standard family instances having structural usage, i.e., having an analytical model
|
|
\par RstLabs
|
|
\par Foundations are structural elements and also make use of a standard family. Lab 2-2 demonstrates how to retrieve all structural foundation elements. This may not be required for every analysis package. An alternative approach would be to retrieve all stan
|
|
dard family instances having structural usage, i.e., having an analytical model.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Retrieve Foundations
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Get all standard structural foundation elements
|
|
\par Category OST_StructuralFoundation
|
|
\par Excludes 'Wall Foundation' System Type under
|
|
\par 'Structural Foundations' category in the Browser
|
|
\par These belong to 'Continuous Footing' system family, Lab 2-3
|
|
\par Excludes 'Foundation Slab' System Type under
|
|
\par 'Structural Foundations' category in the Browser
|
|
\par These are internally implemented as Revit 'Floor' system family, Lab 2-3
|
|
\par RstLabs
|
|
\par To retrieve all foundations in the model, we can use the same approach as above, getting all standard structural foundation elements, using the category OST_StructuralFoundation. This excludes the 'Wall Foundation' system type under 'Structural F
|
|
oundations' category in the browser, because these belong to the 'Continuous Footing' system family, and also the 'Foundation Slab' system type under the 'Structural Foundations' category in the browser, which are internally implemented as Revit 'Floor' s
|
|
ystem family. These are examined in Lab 2-3.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Retrieve Structural Family Instances
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Alternative approach
|
|
\par Select all standard family instances with an analytical model
|
|
\par Filter filter = app.Create.Filter.NewTypeFilter( typeof( FamilyInstance ) );
|
|
\par List<Element> instances = new List<Element>();
|
|
\par app.ActiveDocument.get_Elements( filter, instances );
|
|
\par string sMsg = "All structural family instances (generic check):";
|
|
\par foreach( FamilyInstance fi in instances )
|
|
\par \{
|
|
\par //
|
|
\par // note that instead of looping through and checking for a
|
|
\par // non-null analytical model, we might also be able to use some
|
|
\par // other criterion that can be fed straight into the Revit API
|
|
\par // filtering mechanism, such as structural usage:
|
|
\par //
|
|
\par if( null != fi.AnalyticalModel )
|
|
\par \{
|
|
\par sMsg += "\\r\\n " + RstUtils.StructuralElementDescription( fi );
|
|
\par \}
|
|
\par \}
|
|
\par RstLabs
|
|
\par As an alternative approach, we can also iterate over the document elements and select all FamilyInstance objects having an analytical model.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Walls, Floors, Footings
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Structural Elements
|
|
\par System families
|
|
\par Wall, Floor (Slab), Continuous Footing
|
|
\par Lab 2-3
|
|
\par Retrieve structural elements from these system families
|
|
\par Not all instances will have analytical model (user-definable!)
|
|
\par RstLabs
|
|
\par The structural elements walls, floors, and footings a
|
|
lso all make use of system families, specifically Wall, Floor (Slab), and Continuous Footing, respectively. Lab 2-3 shows how to retrieve all structural elements from each of these system families. Please note that some instances may not have an analytica
|
|
l model, since this property is user definable.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Analytical Model
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Abstract API base class
|
|
\par AnalyticalModel
|
|
\par Specific derived classes
|
|
\par Wall\tab AnalyticalModelWall
|
|
\par Floor\tab AnalyticalModelFloor
|
|
\par Cont.Footing\tab AnalyticalModel3D
|
|
\par Column, Framing\tab AnalyticalModelFrame
|
|
\par Foundation\tab AnalyticalModelLocation
|
|
\par RstLabs
|
|
\par The analytical model makes use of a separate little class hierarchy derived from the abstract base class AnalyticalModel. It defines specialised derived classes for various structural elements.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Retrieve Structural Walls
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Retrieve all Wall elements having an analytical model
|
|
\par Filter filterWall = app.Create.Filter.NewTypeFilter( typeof( Wall ) );
|
|
\par List<Element> walls = new List<Element>();
|
|
\par app.ActiveDocument.get_Elements( filterWall, walls );
|
|
\par ElementSet elems = app.Create.NewElementSet();
|
|
\par foreach( Wall w in walls )
|
|
\par \{
|
|
\par if( null != w.AnalyticalModel )
|
|
\par \{
|
|
\par elems.Insert( w );
|
|
\par \}
|
|
\par \}
|
|
\par Same for ContFooting elements
|
|
\par RstLabs
|
|
\par To retrieve all Wall elements having an analytical model, we perform the normal Revit
|
|
document elements iteration, pick out wall elements, and check for the presence of an analytical model using the Wall.AnalyticalModel property. The same approach can be used for ContFooting elements.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Retrieve Structural Floors
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Retrieve all Floor elements having a non-empty analytical model
|
|
\par Filter filterFloors = app.Create.Filter.NewTypeFilter( typeof( Floor ) );
|
|
\par List<Element> floors = new List<Element>();
|
|
\par app.ActiveDocument.get_Elements( filterFloors, floors );
|
|
\par ElementSet elems = app.Create.NewElementSet();
|
|
\par foreach( Floor f in floors )
|
|
\par \{
|
|
\par AnalyticalModel anaMod = f.AnalyticalModel;
|
|
\par if( null != anaMod )
|
|
\par \{
|
|
\par //
|
|
\par // For floors, looks like we need to have additional check:
|
|
\par // for non-structural floors anaMod is NOT null, but it IS empty!
|
|
\par //
|
|
\par AnalyticalModelFloor floorAnaMod = anaMod as AnalyticalModelFloor;
|
|
\par if( 0 < floorAnaMod.Curves.Size )
|
|
\par \{
|
|
\par elems.Insert( f );
|
|
\par \}
|
|
\par \}
|
|
\par \}
|
|
\par RstLabs
|
|
\par A similar approach as for walls can also be used for floor elements. However, in the case of floors, the analytical mode
|
|
l may well be non-null, but still be empty, so we need to add an additional check that the number of curves in it, given by AnalyticalModelFloor.Curves.Size, is actually greater than zero.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Analytical Model
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Investigate geometry contained in model
|
|
\par Lab 3
|
|
\par Retrieve detailed analytical model geometry for selected elements, depending on the family and/or category
|
|
\par RstLabs
|
|
\par Lab 3 implements some code to investigate the geometry contained in the analytical model. It retrieves detailed analytical model geometry for selected elements, depending on their family and/or category.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Retrieve Analytical Model
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Iterate over selected elements
|
|
\par Wall
|
|
\par Floor
|
|
\par ContFooting
|
|
\par FamilyInstance with category
|
|
\par OST_StructuralColumns
|
|
\par OST_StructuralFraming
|
|
\par OST_StructuralFoundation
|
|
\par Get AnalyticalModel and list
|
|
\par Curves
|
|
\par Support data - cf. AnalyticalSupportData_Info SDK sample
|
|
\par RstLabs
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Retrieve Analytical Model
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 RstLabs
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Structural Analysis Link
|
|
\par \hich\af31502\dbch\af31501\loch\f31502 Structural Analysis Link
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Introduction
|
|
\par Export and import
|
|
\par Practical examples
|
|
\par Sample application
|
|
\par RstLink
|
|
\par Now we have assembled all the tools we might need, let us put them together into an actual Revit Structure Analysis link application. First we discuss some general questions regarding applications linking Revit with external p
|
|
rograms, followed by some practical examples.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Analysis Link Introduction
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 There are MANY ways in which the link can be designed
|
|
\par There are MANY implementation scenarios concerning
|
|
\par Which structural elements are passed between the applications
|
|
\par Which kind of model changes are automatically supported in either of them
|
|
\par It is up to the particular 3rd party package and its implementer to design, code and document the link
|
|
\par Revit Structure API provides the tools to do this
|
|
\par RST does not pre-determine the design of the link application
|
|
\par RstLink
|
|
\par There are many different implementation scenarios in which it might be useful to link a Revit building model with some external data, both RST-specific for analysis as we are discussing here, and also generic for other situ
|
|
ations. Obviously, there are also many ways in which such a link can be designed.
|
|
\par For the RST analysis link, we need to decide which structural elements are passed between the applications and what kind of model changes are automatically supported in either of them.
|
|
\par It is obviously up to the individual third party package and its implementer to design, code and document the link. The Revit Structure API provides the required tools to do this, and does not pre-determine the design of the link application in any way.
|
|
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Analysis Link Export
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Data export from Revit to 3rd party A&D application
|
|
\par Use a custom Revit external command to export relevant data
|
|
\par App's native file/DB format \'e2}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4066187 \u128\'80\u148\'94 typically proprietary
|
|
\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4066187 App's neutral file/DB format \'e2}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4066187 \u128\'80\u148\'94 typically public
|
|
\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4066187 Public neutral file/DB format supported by the app
|
|
\par Intermediate file/DB format purpose-designed for the link
|
|
\par ...
|
|
\par The choice depends on the combination of technical, functional, commercial and political requirements...
|
|
\par RstLink
|
|
\par For data export from Revit to a third party A&D application, one will generally use a custom Revit external comman
|
|
d to export relevant data. The format used for this communication is once again completely up to the implementer, and could be any one of the following.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Analysis Link Import
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Define another custom Revit external command
|
|
\par The choice of options and reasoning is basically the same as for the export
|
|
\par The chosen file format need not be the same as for the export, though typically it would be
|
|
\par RstLink
|
|
\par For importing the updated and modified data from the external application back into Revit, one would generall
|
|
y define another custom Revit external command. The choice of options and reasoning is basically the same as for the export. The chosen file format does not need to be the same as for the export, though typically it would be.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Practical Examples
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 RstLink
|
|
\par Simple demonstration application
|
|
\par MidasLink
|
|
\par Simple but real
|
|
\par FireRating
|
|
\par Minimal generic Revit
|
|
\par RDBLink
|
|
\par Generic Revit BIM, not RST specific
|
|
\par Commercial Software
|
|
\par RstLink
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Practical Example
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 AutoCAD 2008 simulates A&D 3rd party app
|
|
\par AutoCAD.NET API utilities used on the 'other' side
|
|
\par Xdata used to store Revit Structure specific info on standard AutoCAD entities
|
|
\par AutoCAD Dynamic Properties COM API used for the link-specific UI within AutoCAD
|
|
\par Intermediate, purpose designed XML
|
|
\par Used in both directions
|
|
\par For simplicity, based on .NET SOAP serialization
|
|
\par Custom .NET neutral classes utilized by both sides' export/import commands
|
|
\par RstLink
|
|
\par We have implemented a custom designed practical example of a Revit Structure analysis link application called R
|
|
stLink to accompany this presentation. We use AutoCAD 2008 with an AutoCAD.NET plug-in to simulate the external third party analysis and design application and extended entity data, also known as xdata, to store Revit Structure specific information on sta
|
|
ndard AutoCAD entities. We use the AutoCAD Dynamic Properties COM API and the Object Property Manager OPM for the link-specific user interface within AutoCAD.
|
|
\par AutoCAD.NET API utilities used on the 'other' side
|
|
\par Xdata used to store Revit Structure specific info on standard AutoCAD entities
|
|
\par AutoCAD Dynamic Properties COM API used for the link-specific UI within AutoCAD
|
|
\par The data exchange in both directions between the Revit model and the A&D simulation in AutoCAD is implemented using an intermediate, custom desi
|
|
gned XML format. For simplicity, the XML format is based on .NET SOAP serialization. Some neutral custom .NET classes are utilised by both sides' export and import commands.
|
|
\par Used in both directions
|
|
\par For simplicity, based on .NET SOAP serialization
|
|
\par Custom .NET neutral classes utilized by both sides' export/import commands
|
|
\par Before running the demo, the following applications need to be present:
|
|
\par RstLink - helper dll shared by both acad and revit client
|
|
\par RSLinkRevitClient - command implementations
|
|
\par RSLinkRevitApp - external application
|
|
\par RSLinkAcadClient - AutoCAD client
|
|
\par RSLinkAcadClientDynProps - dynamic Revit properties for AutoCAD objects
|
|
\par Here are possible steps to run the demo:
|
|
\par Set up Revit.ini to load either the client or the external application or both.
|
|
\par Open or create a sample model in Revit Structure.
|
|
\par Run the export command. You are prompted for a file location. A dialogue box pops up, reporting the number of exported elements.
|
|
\par Start up AutoCAD and load the client and the dynamic property application.
|
|
\par This can be achieved automatically by setting up AutoCAD to start in the RVT sample directory and placing an acad.lsp file there containing:
|
|
\par (defun s::startup()
|
|
\par (command "_netload" "RSLinkAcadClient.dll")
|
|
\par (princ "\\nAutoCAD RSLink client loaded.")
|
|
\par (arxload "RSLinkAcadClientDynProps.arx")
|
|
\par (princ "\\nAutoCAD RSLink dynamic properties loaded.")
|
|
\par (princ)
|
|
\par )
|
|
\par If it does not load automatically, you can load it manually by calling
|
|
\par (load "C:/a/j/adn/revit/rst_api/RVT/acad.lsp")
|
|
\par with the appropriate full path, and then call
|
|
\par (s::startup).
|
|
\par The commands defined by the AutoCAD client are RSImport, RSExport and RSMakeMember.
|
|
\par Use RSImport to load the xml file just exported from Revit.
|
|
\par Modify some cross sections in the model using the OPM, simulating modifications made by the A&D application, and optionally RSMakeMember to add some new elements.
|
|
\par Use RSExport to write the model back out again.
|
|
\par Back in Revit, use the import command to read the modifications and update the Revit model accordingly. Dialogue boxes are displayed to repor
|
|
t the number of elements imported and modified. Note that the column types were swapped. Currently, the new elements defined by RsMakeMember are ignored.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 RstLink Modules
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 RstLink
|
|
\par Helper dll shared by both acad and revit client
|
|
\par RSLinkRevitClient
|
|
\par Revit command implementations
|
|
\par RSLinkImport, RSLinkExport
|
|
\par RSLinkRevitApp
|
|
\par Revit external application
|
|
\par RSLinkAcadClient
|
|
\par AutoCAD client
|
|
\par RSImport, RSExport, RSMakeMember
|
|
\par RSLinkAcadClientDynProps
|
|
\par Dynamic Revit properties for AutoCAD objects
|
|
\par RstLink
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 RstLink Revit Export
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 RstLink
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 RstLink AutoCAD Import
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Invoke RSImport command
|
|
\par RstLink
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Modify Cross Section
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Edit dynamic properties
|
|
\par Change cross section
|
|
\par RstLink
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Add new Members and Data
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Invoke RSMakeMember command
|
|
\par RstLink
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Import Modified Data into RST
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 RSExport from AutoCAD
|
|
\par Import into Revit
|
|
\par Column type was swapped
|
|
\par New elements are ignored
|
|
\par RstLink
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Another Practical Example
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 MidasLink
|
|
\par Subscription only module
|
|
\par Source code for 2008 available on ADN
|
|
\par Source code for 2009 still to come
|
|
\par Search for "MidasLink"
|
|
\par http://adn.autodesk.com/adn/servlet/item?siteID=4814862&id=9628885&linkID=4901650
|
|
\par Includes
|
|
\par Analysis package executable
|
|
\par Documentation
|
|
\par Source code
|
|
\par Installer
|
|
\par RstLink
|
|
\par MidasLink is a Revit Structure add-
|
|
in program that exports and imports the Revit model to and from the MIDAS/Gen structure analysis application. The source code is provided to help developers integrating analysis programs with Revit Structure. The compiled add-in is available to Revit Stru
|
|
cture subscription customers.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Analysis Software
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 ADAPT
|
|
\par www.adaptsoft.com/releases.php
|
|
\par RISA
|
|
\par www.risatech.com/partner/revit_structure.asp
|
|
\par RAM
|
|
\par www.bentley.com/structural
|
|
\par CSC
|
|
\par MIDAS - MidasLink subscription module)
|
|
\par ROBOBAT - recently acquired by Autodesk
|
|
\par http://www.extensions4revit.com/n/e4r
|
|
\par Analysis Partners site:
|
|
\par http://usa.autodesk.com/adsk/servlet/item?id=8447050&siteID=123112
|
|
\par RstLink
|
|
\par Here is an overview of some other available analysis link packages. An up-to-date list is available on the analysis partners site. Robot Millennium is an analysis software by Robobat, which is recently acquired by Autodesk.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Rebar
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Sample and API feature walkthrough in the rebar and detailing workflow context
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Revit Structure Rebar Workflow
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Revit Structure 3D
|
|
\par Object Model
|
|
\par Physical Model
|
|
\par Analytical Model
|
|
\par 3D Rebar Model
|
|
\par User
|
|
\par Input
|
|
\par 3rd Party
|
|
\par Analysis
|
|
\par Design
|
|
\par Concrete Drawings
|
|
\par Specific Rebar Details
|
|
\par Specific Rebar Details
|
|
\par Shop
|
|
\par Drawing
|
|
\par Typical Rebar Details
|
|
\par 3D Design
|
|
\par QTO
|
|
\par User
|
|
\par Input
|
|
\par User
|
|
\par Input
|
|
\par Manual
|
|
\par Automated
|
|
\par Rebar
|
|
\par Working with reinforcements in Revit Structure involves two phases. The initial phase is the building analysis, which may result in design changes. In the second phase, reinforcements are added, analysed, and detailed. Both phases may include multiple ite
|
|
rations. Many of the tasks required can be automated. This is where our applications can save a lot of time, effort, and eliminate sources for errors.
|
|
\par The central hub is the Revit Structure three-dimensional object model which integrates the physical and an
|
|
alytical models used respectively for the building design and analysis. The 3D rebar model is integrated in this database. The physical model is used to generate concrete drawings including rebar specific details. The rebar model can be used to generate r
|
|
ebar specific details and quantity takeoffs. The analytical model is used to connect to third party analysis and design packages, which in turn can help define the rebar model.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 The 3D Rebar Model
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Revit Structure has a 3D rebar model composed of
|
|
\par Single bars
|
|
\par Sets (array of bars with rules)
|
|
\par Area reinforcement for slabs and walls
|
|
\par Path reinforcement for slabs
|
|
\par 3D rebar model can be generated
|
|
\par Manually by user
|
|
\par Loaded from a group that defines a cage
|
|
\par Generated with the API from analysis and design software or from macros
|
|
\par Advantages of 3D rebar model
|
|
\par Quantities
|
|
\par Complex layout
|
|
\par Automatic reinforcement drawings
|
|
\par Basic scheduling
|
|
\par Scheduling is specific to each country
|
|
\par Opportunity for third party developers to use the 3D rebar model to generate DWG schedules and import them back as a drafting view in Revit Structure
|
|
\par Rebar
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Relationship Between Topics
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Rebar
|
|
\par Generate rebar and define rebar shape
|
|
\par Extract rebar information
|
|
\par Truss
|
|
\par Detailing
|
|
\par Generate a section view
|
|
\par Generate a drafting view
|
|
\par Create a sheet
|
|
\par Import and export external file formats (e.g., dwg)
|
|
\par Add text, dimensioning and annotations
|
|
\par Rebar
|
|
\par Here are some relationships between these rebar topics and the rebar workflow: after the structural framing analysis part is done, an engineer will take the va
|
|
lues of the load and stress information for each element and design the rebar for each element. You design the size of the column, number of rebars, and number of rib-bars. Based on this information, a rebar can be generated externally. It may need modifi
|
|
c
|
|
ation, which requires extraction and analysis of existing information. The extracted information may also be used for estimation purposes. To show the rebar placement in a column or beam, you need a section view. The Revit SDK samples CreateSimpleAreaRein
|
|
|
|
and CreateComplexAreaRein generate reinforcement elements, and can be used to demonstrate the kinds of section view required. For structure detailing, we need a drafting view where we may want to import a dwg file. Adding text, annotations and dimensionin
|
|
g is further typical detailing functionality. Some of the items listed here are general, but especially useful as part of the rebar workflow for structural detailing. The underlined topics are new or updated in Revit 2009.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Generate Beam or Column Re
|
|
\hich\af31502\dbch\af31501\loch\f31502 bar
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Changed in 2009
|
|
\par Sample: Reinforcement
|
|
\par Create reinforcement bars in selected non-reinforced concrete beam or column
|
|
\par Beam rebar: top, bottom or transverse
|
|
\par Column rebar: transverse or vertical
|
|
\par Class
|
|
\par Autodesk.Revit.Elements.Rebar
|
|
\par Methods
|
|
\par Rebar
|
|
\par // rebar creation in 2008:
|
|
\par Rebar r = doc.Create.NewRebar( rebarType, startHook, endHook, m_hostObject,
|
|
\par ref origin, ref normal, curves, (int)startOrient, (int)endOrient );
|
|
\par // two overloaded functions in 2009
|
|
\par // useExistingShapeIfPossible, createNewShape
|
|
\par // demonstrated in NewRebar sample
|
|
\par Rebar r = doc.Create.NewRebar( RebarStyle.Standard, rebarType, startHook, endHook,
|
|
\par m_hostObject, normal, curves, (int)startOrient, (int)endOrient, false, true );
|
|
\par r = doc.Create.NewRebar( barShape, barType, m_rebarHost, origin, xVec, yVec );
|
|
\par We can use the Revit SDK sample Reinforcement to demonstrate the creation of new reinforcement elements. It creates a bar set in a selected concrete beam or column element that
|
|
does not have any reinforcement. Three kinds of beam rebar are created: top, bottom and transverse rebar. Two kinds of column rebar are created: transverse and vertical. It uses the Autodesk.Revit.Creation.Document.NewRebar() method to create rebar for t
|
|
he selected host. The NewRebar() method expects two parameters RebarBarType and RebarHookType. Suitable values for these two parameters can be retrieved by iterating the active document elements.
|
|
\par [MH] This sample shows how to create Rebar in concrete elemen
|
|
t (Beam or Column) which does not have any reinforcement. The method used to create Rebar, Create.NewRebar, has been changed in 2009. The first argument RebarStyle.Standard is an enumeration value - you can choose either standard/stirrupTie (stirrup or t
|
|
ie bar). The style affects the bend radius and the set of allowable hooks. It also affects the rebar instance auto-constraining behavior. ...
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Reinforcement Implementation
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 FrameReinMakerFactory class manages all the work
|
|
\par Precondition checks
|
|
\par Is the selected object a beam or column?
|
|
\par Is it made of concrete?
|
|
\par Does it already contain any rebar elements?
|
|
\par Create a corresponding FrameReinMaker and the reinforcement rebars
|
|
\par Host-dependant working classes
|
|
\par BeamFramReinMaker and ColumnFramReinMaker
|
|
\par GeomUtil
|
|
\par Basic geometric utility methods
|
|
\par GeometrySupport
|
|
\par Base class for BeamGeometrySupport and ColumnGeometrySupport, manages the solid of beam or column, the extend or sweep path of the beam or column, the beam or column direction vector, lists to store the edges and points, the transformation etc.
|
|
\par ParameterUtil
|
|
\par Utility methods find or set certain parameter
|
|
\par Rebar
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Generate Rebar Demo
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Ensure only one beam or column is selected
|
|
\par Retrieve all rebar types and all hook types
|
|
\par Retrieve and analyse member geometry
|
|
\par Run worker method
|
|
\par Rebar
|
|
\par This is demonstrated by the sample Reinforcement. The sample can create rebar for both beam and column.
|
|
\par Register the command:
|
|
\par [ExternalCommands]
|
|
\par ECCount = \tab 16
|
|
\par ECName16=Rebar - Reinforcement
|
|
\par ECClassName16 = Revit.SDK.Samples.Reinforcement.CS.Command
|
|
\par ECAssembly16 = C:\\a\\lib\\revit\\2008\\sdk\\Samples\\Reinforcement\\CS\\bin\\Debug\\Reinforcement.dll
|
|
\par ECDescription16 = Create bar set in a selected concrete element (beam or column) that does not have any reinforcement.
|
|
\par Draw a Concrete Beam or Column elements without any reinforcement and select it.
|
|
\par Please make sure the beam or column section size is big enough, e.g. for column it can be 24x32.
|
|
\par Run the command.
|
|
\par Set the parameters for the rebar in the pop up dialog.
|
|
\par Click Ok, Rebar for the selected element (Beam or Column) will be created.
|
|
\par If you want to debug, this can be done from SDKSamples10.0.sln.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Rebar API Enhancement in 2009
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Rebar is an instance of RebarShape in 2009
|
|
\par Added
|
|
\par Revit.Symbols.RebarShape - topological layout of rebar
|
|
\par Revit.Symbols.RebarShapeDefinition(ByArc/BySegments)
|
|
\par - helper class to define RebarShape
|
|
\par Revit.Symbols.RebarCoverType - rebar cover setting, name and value pair
|
|
\par Revit.Elements.RebarHostData - helper class to access to a host cover setting
|
|
\par Changed
|
|
\par Revit.Symbols.RebarType - cleaned up, no new functionality
|
|
\par Samples: NewRebar
|
|
\par Rebar
|
|
\par RebarHostData and RebarCoverType: Clear cover is now associated with individual faces of valid rebar hosts. Access to the cover settings of a host i
|
|
s through the Autodesk.Revit.Elements.RebarHostData object. A simpler, less powerful mechanism for accessing the same settings is provided through parameters. Cover is defined by a named offset distance, modeled as an element Autodesk.Revit.Symbols.RebarC
|
|
overType.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 NewRebar Sample
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Rebar
|
|
\par Create a Rebar
|
|
\par Define a custom Rebar shape
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 NewRebar Sample (cont.)
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Rebar
|
|
\par Instructions under
|
|
\par NewRebar/CS/Customize RebarShapes Step by step
|
|
\par Arc with radius(*)
|
|
\par (*) known issues - places rebar out side of a host objects both in UI and API
|
|
\par Collection of straight segments
|
|
\par Arc with chord length (*)
|
|
\par Lapped circle (*)
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 NewRebar Sample (cont.)
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Rebar
|
|
\par RebarShapeDefinitionBySegments
|
|
\par Create a RebarShape
|
|
\par RebarShape myShape = rvtDoc.Create.NewRebarShape()
|
|
\par Create a RebarShapeDef
|
|
\par RebarShapeDefinitionBySegment myDef
|
|
\par = myShape.NewDefinitionBySegments(segmentCount)
|
|
\par Add shared parameters by external def
|
|
\par myDef.AddParamater( externalDef, value )
|
|
\par Add constraints to shape definition
|
|
\par myDef.AddConstraintToSegment
|
|
\par myDef.AddConstraintParallelToSegment
|
|
\par myDef.AddBendDefaultRadius
|
|
\par myDef.SetSegmentFixedDirection
|
|
\par myDef.AddListingDimentionBendToBend
|
|
\par Set Hook to RebarShape
|
|
\par myShape.set_HookAngle
|
|
\par myShape.set_HookOrientation
|
|
\par ExternalDefinition
|
|
\par The parameter. To obtain this object, the following calls are required: Application.OpenSharedParameterFile(); Parameters.DefinitionFile.Groups.get_Item() or .create(); and Parameters.DefinitionGroup.Definitions.get_Item() or .create().
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Generate Floor or Wall Rebar
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Changed in 2009
|
|
\par Sample: NewPathReinforcement
|
|
\par Create path reinforcement
|
|
\par Class
|
|
\par Autodesk.Revit.Elements.Rebar
|
|
\par Method
|
|
\par Rebar
|
|
\par XYZ p1, p2; Line curve;
|
|
\par CurveArray curves = m_appCreator.NewCurveArray();
|
|
\par for( int i = 0; i < points.Count - 1; ++i )
|
|
\par \{
|
|
\par p1 = new XYZ( points[i].X, points[i].Y, points[i].Z );
|
|
\par p2 = new XYZ( points[i + 1].X, points[i + 1].Y, points[i + 1].Z );
|
|
\par curve = rvtDoc.CreateNewLine( ref p1, ref p2, true );
|
|
\par curves.Append( curve );
|
|
\par \}
|
|
\par // type is no longer needed, default is used in 2009:
|
|
\par return rvtDoc.Create.NewPathReinforcement( m_host, curves, flip );
|
|
\par We can use the Revit SDK sample NewPathReinforcement to demonstrate how to create a new PathReinforcement element through the API. The PathReinforcement host is a floor or a wall. The method used is
|
|
\par NewPathReinforcement( PathReinforcementType, Element, CurveArray, bool );
|
|
\par We can use Document.Create.NewPathReinforcementType() method to create a PathReinforcementType if there is none in current document. The Element argum
|
|
ent is the host of the PathReinforcement. The CurveArray stores its path. The Boolean value indicates which side of the path the PathReinforcement is located on.
|
|
\par To run the sample, draw a Structure wall or slab, select it, and run this command. Draw the path of PathReinforcement you want to create. You can click right mouse button to finish drawing. Click the "Preview" button to preview the path reinforcement to b
|
|
e
|
|
created. Select or unselect the "Flip" check box to create the PathReinforcement on the left or right side of the path. Click the "Create" button to create the PathReinforcement. You can clean and redraw the sketch of the path using the "Clean" button. H
|
|
ere is the central code snippet given an array of points defining the path.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Extract Rebar Information
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 AreaReinParameters Sample
|
|
\par Provides starting point
|
|
\par Extended to list rebar information
|
|
\par Uses built-in parameters
|
|
\par BarDescriptions Sample
|
|
\par AreaReinforcement has a BarDescription property
|
|
\par Same functionality as above
|
|
\par Generic Tools
|
|
\par BuiltInParameterChecker
|
|
\par RvtMgdDbg
|
|
\par Rebar
|
|
\par All the generic data extraction and debugging utilities such as RvtMgdDbg and BuiltInParameterChecker can be used to read parameters and other information from a rebar element.
|
|
\par In addition, the Revit SDK sample AreaReinParameters shows how to use the API to display and modify AreaReinforcement parameters. We have expanded the sample to list rebar elements and their parameters as well in a sepa
|
|
rate command RebarParas. The enhanced sample is included in the presentation material.
|
|
\par Another sample for extracting rebar information is the BarDescriptions sample. It shows how to find all BarDescriptions in the project, display their properties in a Dat
|
|
aGridView, and export their parameter information to an external comma delimited *.csv file. BarDescription is a property of an AreaReinforcement element, so some AreaReinforcement elements should be drawn first.
|
|
\par Some rebar information is accessible throug
|
|
h built-in parameters and can be determined using BuiltInParameterChecker, some is accessible only through hard-coded localised parameter names. The AreaReinParameters sample only works with floor or wall area reinforcements, not with rebar. Not all rebar
|
|
parameters are accessible as built-in parameters. We can however retrieve almost all necessary information with its instance parameters, hence the RebarParas enhancement.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Rebar Information Demo
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Rebar
|
|
\par Register the command:
|
|
\par [ExternalCommands]
|
|
\par ECName32 = RebarParas
|
|
\par ECClassName32 = Revit.SDK.Samples.AreaReinParameters.CS.RebarParas
|
|
\par ECAssembly32 = C:\\Revit\\SDK\\Samples\\AreaReinParameters\\CS\\bin\\Debug\\AreaReinParameters.dll
|
|
\par ECDescription32 = Show parameters of a rebar
|
|
\par Select a rebar.
|
|
\par Run this command.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Truss
|
|
\par \hich\af31502\dbch\af31501\loch\f31502 Truss
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 New in 2009
|
|
\par RST, C#
|
|
\par Create a truss of a selected truss type
|
|
\par Change beam types
|
|
\par Edit the profile of the truss
|
|
\par Truss
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Detailing
|
|
\par \hich\af31502\dbch\af31501\loch\f31502 Detailing
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Detailing
|
|
\par Generate a section view
|
|
\par Generate a drafting view
|
|
\par Create a sheet
|
|
\par Import and export external file formats, e.g. dwg
|
|
\par Add text, dimensioning and annotations
|
|
\par Enhanced standard Revit SDK samples
|
|
\par Included in normal Revit 2009 SDK distribution
|
|
\par Detailing
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Generate Section View
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Demonstrate creation of a Detail View
|
|
\par Using NewViewSection()
|
|
\par Creates detail view across the midpoint of selected element
|
|
\par Works on linear elements such as slab, wall and beam
|
|
\par Create and initialise a bounding box
|
|
\par Detailing
|
|
\par // create a BoundingBoxXYZ and set the Max and Min properties:
|
|
\par BoundingBoxXYZ m_box = new BoundingBoxXYZ();
|
|
\par m_box.Enabled = true;
|
|
\par m_box.Max = new XYZ(LENGTH, LENGTH, 0);
|
|
\par m_box.Min = new XYZ(-LENGTH, -LENGTH, -HEIGHT);
|
|
\par // setting the Transform property is the most important thing.
|
|
\par // it defines the origin and the directions RightDirection,
|
|
\par // UpDirection and ViewDirection) of the created view:
|
|
\par Transform transform = GenerateTransform();
|
|
\par if (null == transform)
|
|
\par \{
|
|
\par return false;
|
|
\par \}
|
|
\par m_box.Transform = transform;
|
|
\par // Create a section view, pass the bounding box.
|
|
\par ViewSection section = m_project.Create.NewViewSection(m_box);
|
|
\par The Revit SDK sample CreateViewSection demonstrates the creation of a detail view. Given a linear element such as a wall, floor or beam, it generates a section view across the midpoint of the element using the N
|
|
ewViewSection() method. It performs the following steps:
|
|
\par Retrieve the selected linear element
|
|
\par Generate a BoundingBoxXYZ instance to be used in NewViewSection()
|
|
\par Set its Max and Min properties
|
|
\par Generate a Transform instance for the BoundingBoxXYZ Transform property, which defines the origin and directions of the created view, including RightDirection, UpDirection and ViewDirection
|
|
\par Create the section view using the BoundingBoxXYZ.
|
|
\par The NewViewSection method takes a parameter of type BoundingBoxXYZ. The key part
|
|
of the code is actually to create the box. And the key part for the box is to create its transform matrix. The actual matrix generated depends on the selected element type. Separate implementations are provided for beam, floor and wall. These are called f
|
|
rom within GenerateTransform().
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Generate Section View Demo
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Detailing
|
|
\par Use the Revit SDK sample CreateViewSection to demonstrate this.
|
|
\par Register the command:
|
|
\par ECName19=Rebar - CreateViewSection
|
|
\par ECClassName19=Revit.SDK.Samples.CreateViewSection.CS.Command
|
|
\par ECAssembly19=C:\\a\\lib\\revit\\2008\\sdk\\Samples\\CreateViewSection\\CS\\bin\\Debug\\CreateViewSection.dll
|
|
\par ECDescription19=Create a section view across the mid point of the selected wall, floor or beam
|
|
\par Launch Revit Structure 2008.
|
|
\par Open the project Rebar.rvt.
|
|
\par Select a beam or column with rebar.
|
|
\par Execute the external command.
|
|
\par Note that a new section view is added to the detail views in the project explorer.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Generate Drafting View
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Code
|
|
\par Document doc = commandData.Application.ActiveDocument;
|
|
\par // Create a drafting view
|
|
\par ViewDrafting drafting = doc.Create.NewViewDrafting();
|
|
\par Detailing
|
|
\par The NewViewDrafting() method does not take any parameters. It creates an empty drawing view. We have added a second external command CreateDraftingView to the Revit SDK sample CreateViewSection to demonstrate this.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Import DWG
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Import
|
|
\par Detailing
|
|
\par DWGImportOptions opts = new DWGImportOptions();
|
|
\par opts.Placement = ImportPlacement.Centered; // Origin, Center, Shared
|
|
\par // other possible options.
|
|
\par opts.ColorMode = ImportColorMode.Preserved; // BlackAndWhite, Inverted, Preserved
|
|
\par //opts.CustomScale = 1;
|
|
\par opts.OrientToView = true; // true or false
|
|
\par opts.ThisViewOnly = false; // imports dwg, dgn, and dxf into active view only?
|
|
\par opts.Unit = ImportUnit.Default;
|
|
\par opts.View = m_revitApp.ActiveDocument.ActiveView;
|
|
\par opts.VisibleLayersOnly = false; // true or false
|
|
\par Revit.Element newElement = new Revit.Element();
|
|
\par rvtDoc.Import( dbox.FileName, opts, ref newElement );
|
|
\par Importing and exporting
|
|
DWG files is demonstrated by the Revit SDK sample ImportExportDWG. It shows how to export the current project to dwg files and import a dwg file into Revit. It also demonstrates how to and provides a user interface to set up the import and export options
|
|
appropriately. To run it, start up Revit, open a suitable project, and execute the command.
|
|
\par To export, check the radio button "Export". In the next dialog, specify the file name to export as, set the common options and click the "Option..." button to set t
|
|
he lower priority options; click the "Select..." button to select multi-views to export. Then click the "Save" button to perform the export.
|
|
\par To import, check the radio button "Import". In the next dialog, specify the file to import from and set the other options. Then click the "Open" button to perform the import.
|
|
\par The last parameter of the Import() method is an element. It is not neccessary to create a new element prior calling the Import() method. You can simply pass a variable of type Element and it can b
|
|
e null. This provides a possibility to return the element that was just imported, so that it can be accessed and modified after the import. For example, if you import an image, the import method gives you no scaling nor rotating options. If you would need
|
|
this functionality, you can achieve it by manipulating the image after the import.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Export DWG
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Export
|
|
\par Detailing
|
|
\par opts dwgExportOptions = new DWGExportOptions();
|
|
\par opts.ExportingAreas = false; // export room and areas
|
|
\par opts.FileVersion = ACADVersion.R2007; // acad file version
|
|
\par opts.LayerMapping = "AIA"; // layer standard: AIA/CP83/BS1192/ISO13567
|
|
\par opts.LineScaling = LineScaling.ModelSpace; // or PaperSpace/ViewScale
|
|
\par opts.MergedViews = true;
|
|
\par opts.PropOverrides = PropOverrideMode.NewLayer; // or ByLayer/ByEntity
|
|
\par opts.SharedCoords = true;
|
|
\par opts.TargetUnit = ExportUnit.Millimeter;
|
|
\par opts.ExportOfSolids = SolidGeometry.ACIS;
|
|
\par exported = rvtDoc.Export( folder, name, views, opts );
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Import and export DWG Demo
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Detailing
|
|
\par We use the Revit SDK sample ImportExportDWG to demonstrate this.
|
|
\par Register the command:
|
|
\par ECName21=ImportAndExportForDWG
|
|
\par ECClassName21=Revit.SDK.Samples.ImportAndExportForDWG.CS.Command
|
|
\par ECAssembly21=C:\\a\\lib\\revit\\2008\\sdk\\Samples\\ImportExportDWG\\CS\\bin\\Debug\\ImportAndExportForDWG.dll
|
|
\par ECDescription21=Export current project to dwg files and import a dwg file into revit
|
|
\par Open Revit application and execute the command.
|
|
\par To export, check the radio button "export". In the next dialog, specify the file name to export as, set the common options
|
|
and click "Option..." button to set the lower priority options, click "Select..." button to select multi-views to export. Then click "Save" button to perform export.
|
|
\par To import, check the radio button "import". In the next dialog, specify the file to import from and set the other options. Then click "Open" button to perform import
|
|
\par I exported the level 1 in the attached test revit project.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 ImportExport
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 All, C#
|
|
\par ImportExportDWG was enhanced to handle additional file formats
|
|
\par Export - dwg, 2D and 3D dwf and dwfx, gbxml and FBX
|
|
\par Import - dwg and image file
|
|
\par New API classes added
|
|
\par Detailing
|
|
\par One sample was changed after beta1 build.
|
|
\par The ImportExportDWG sample was renamed to ImportExport in the RTM build.
|
|
\par More file formats rather than just DWG format were supported in this sample. That is why the DWG suffix has been removed from the sample name.
|
|
\par This sample is written in C# and applies to all Revit platforms.
|
|
\par The changed name was changed from ImportExportDwg to ImportExport. It supports not only DWG format but also DWF, FBX, and gbXml.
|
|
\par More specifically, it demonstrates how to export the current Revit model to ... and import ... into ...
|
|
\par Many import/export related classes are used in the sample. For example, ...
|
|
\par Instructions:
|
|
\par 1. Open Revit application and execute the command.
|
|
\par 2. To export, check the radio button "export", select the format to export and click "OK" button. The 3D DWF(x) and fbx formats will be available only when current view is a 3D view.
|
|
\par 3. To export dwg or 2D DWF(x) formats Specify the file name t
|
|
o export to, set the common options and click "Option..." button to set the lower priority options, click "Select..." button to select multi-views to export. Then click "Save" button to perform export.
|
|
\par 4. To export 3D DWF(x), gbxml or fbx formats
|
|
\par Specify the file name to export to and click "Save" button to perform export.
|
|
\par [NOTE]To export fbx format successfully, the Revit render appearance library must have been installed.
|
|
\par To import, check the radio button "import" and click "OK" button. The image format will be available only when current view is not 3D view.
|
|
\par To import dwg format, Specify the dwg file to import and set the other options. Then click "Open" button to perform import.
|
|
\par To Import image format, Specify the image file to import and click "Open" button to perform import.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Create New dimensioning
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Create a dimension between two references
|
|
\par CreateDimensions sample
|
|
\par Detailing
|
|
\par XYZ p1 = newLine.get_EndPoint(0);
|
|
\par p1.X += 5;
|
|
\par p1.Y += 5;
|
|
\par XYZ p2 = newLine.get_EndPoint(1);
|
|
\par p2.X += 5;
|
|
\par p2.Y += 5;
|
|
\par Line newLine2 = app.Create.NewLine( ref p1, ref p2, true );
|
|
\par // set the references
|
|
\par . . .
|
|
\par // create a dimention
|
|
\par Dimension newDimension = rvtDoc.Create.NewDimension(
|
|
\par rvtDoc.ActiveView, newLine2, referenceArray );
|
|
\par New dimenioning can be generated through the API using the NewDimension() method. Searching globally through all the samples discovers one single instance of this method, in the CreateDimensions sample. This sample adds a command
|
|
taking a selection of basic structural walls and adds dimensioning from the start to the end of each. Dimensioning is created between graphical references stored in a ReferenceArray instance. The key part is the creation of the reference array. Once the r
|
|
eference array has been set up, the creation of the dimensioning is simple.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Dimensioning Reference Array
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Create a reference array for a structural wall
|
|
\par Detailing
|
|
\par ReferenceArray referenceArray = new ReferenceArray();
|
|
\par Options options = rvtApp.Create.NewGeometryOptions();
|
|
\par options.ComputeReferences = true;
|
|
\par options.View = rvtDoc.ActiveView;
|
|
\par Revit.Geometry.Element geomElem = wallTemp.get_Geometry(options);
|
|
\par GeometryObjectArray geoObjectArray = geomElem.Objects;
|
|
\par for (int j = 0; j < geoObjectArray.Size; j++)
|
|
\par \{
|
|
\par GeometryObject geoObject = geoObjectArray.get_Item(j);
|
|
\par Curve curve = geoObject as Curve;
|
|
\par if (null != curve)
|
|
\par \{
|
|
\par //find the two upright lines beside the line
|
|
\par if (Validata(newLine, curve as Line))
|
|
\par \{
|
|
\par referenceArray.Append(curve.Reference);
|
|
\par \}
|
|
\par if (2 == referenceArray.Size)
|
|
\par \{
|
|
\par break;
|
|
\par \}
|
|
\par \}
|
|
\par \}
|
|
\par For the basic wall, the location line of the wall is used to discover the two vertical edges at each end of one side of the wall. Some calculation and comparison work needs to be done in order to find the two right reference lin
|
|
es. For each of these two curves, a reference is added to the reference array. Note that the geometry options for obtaining the wall geometry have options.ComputeReferences set to true.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Dimension Creation Tips
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Extend the sample to work with other elements than structural wall
|
|
\par Architectural wall cannot get reference from edge
|
|
\par Use face instead - not all geometry has reference
|
|
\par Detailing
|
|
\par Solid solid = geoObject as Solid;
|
|
\par if(null != solid)
|
|
\par \{
|
|
\par FaceArrayIterator faceItor = solid.Faces.ForwardIterator();
|
|
\par while (faceItor.MoveNext())
|
|
\par \{
|
|
\par PlanarFace face = faceItor.Current as PlanarFace;
|
|
\par if (null != face)
|
|
\par \{
|
|
\par // find the two upright lines beside the line.
|
|
\par // NOTE: overloading this function. We pick up the face in term of its Normal.
|
|
\par if (Validata(newLine, face.Normal))
|
|
\par \{
|
|
\par referenceArray.Append(face.Reference);
|
|
\par \}
|
|
\par if (2 == referenceArray.Size)
|
|
\par \{
|
|
\par break;
|
|
\par // . . .
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Rebar dimensioning
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Extending the sample to work with rebar
|
|
\par Need to dig into geometry elements ...
|
|
\par SPR #125909 API wish: create dimension between a column edge and a rebar center
|
|
\par Detailing
|
|
\par // get rebar reference
|
|
\par if (m_rebar != null)
|
|
\par \{
|
|
\par Revit.Geometry.Element gelement = m_rebar.get_Geometry(options);
|
|
\par GeometryObjectArray geoObjectArray = gelement.Objects;
|
|
\par // enum the geometry element
|
|
\par for (int j = 0; j < geoObjectArray.Size; j++)
|
|
\par \{
|
|
\par GeometryObject geoObject = geoObjectArray.get_Item(j);
|
|
\par Line line = geoObject as Line;
|
|
\par if (line != null && line.Reference != null)
|
|
\par \{
|
|
\par referenceArray.Append(line.Reference);
|
|
\par \}
|
|
\par \}
|
|
\par \}
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Add Tags
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Simple Tag sample in RvtMgdDbg's Test Framework
|
|
\par Detailing
|
|
\par if( elem is Rebar )
|
|
\par \{
|
|
\par // Cast to Rebar and get its first curve
|
|
\par Revit.Elements.Rebar rebar = elem as Rebar;
|
|
\par Revit.Geometry.Curve curve = rebar.Curves.get_Item(0);
|
|
\par // Create a rebar tag at the first end point of the first curve
|
|
\par IndependentTag tag = revitDoc.Create.NewTag(
|
|
\par view, // view to place the tag
|
|
\par rebar, // host object to tag
|
|
\par true, // have a leader?
|
|
\par TagMode.TM_ADDBY_CATEGORY, // mode by category, multi-category or material
|
|
\par TagOrientation.TAG_HORIZONTAL, // orientation: vertical/horizontal
|
|
\par curve.get_EndPoint(0) ); // location point
|
|
\par \}
|
|
\par The NewTag method signature and its parameters:
|
|
\par public IndependentTag NewTag(
|
|
\par View dbview,
|
|
\par Element objelem,
|
|
\par bool leader,
|
|
\par TagMode tagmode,
|
|
\par TagOrientation tagorientation,
|
|
\par XYZ pnt
|
|
\par );
|
|
\par Parameters
|
|
\par dbview
|
|
\par The view in which the dimension is to be visible.
|
|
\par objelem
|
|
\par The host object of tag
|
|
\par leader
|
|
\par whether have leader
|
|
\par tagmode
|
|
\par the mode of tag. Add by Category, add by Multi-Category and add by material
|
|
\par tagorn
|
|
\par The Orientation of the Tag
|
|
\par pnt
|
|
\par The position of the Tag
|
|
\par I used category tag mode and horizontal tag orientation here.
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Add Text
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Detailing
|
|
\par if( elem is Rebar )
|
|
\par \{
|
|
\par // cast to Rebar and get its first curve
|
|
\par Revit.Elements.Rebar rebar = elem as Rebar;
|
|
\par Revit.Geometry.Curve curve = rebar.Curves.get_Item(0);
|
|
\par // calculate arguments
|
|
\par Revit.Geometry.XYZ origin = curve.get_EndPoint(0);
|
|
\par origin.X += curve.Length * 10; // draw the text at the right size
|
|
\par Revit.Geometry.XYZ baseVec = new Revit.Geometry.XYZ(1,0,0);
|
|
\par Revit.Geometry.XYZ upVec = new Revit.Geometry.XYZ(0,0,1);
|
|
\par double textSize = curve.Length / 10;
|
|
\par double lineWidth = curve.Length / 50;
|
|
\par string strText = "This is " + rebar.Category.Name + " : " + rebar.Name;
|
|
\par // create the text
|
|
\par Revit.Elements.TextNote text = revitDoc.Create.NewTextNote(
|
|
\par view, origin, baseVec, upVec, textSize, lineWidth,
|
|
\par Revit.Enums.TextAlignFlags.TEF_ALIGN_CENTER
|
|
\par | Revit.Enums.TextAlignFlags.TEF_ALIGN_MIDDLE, strText );
|
|
\par text.Width = curve.Length * 10; // set the width of the text
|
|
\par \}
|
|
\par public TextNote NewTextNote(
|
|
\par View pView,
|
|
\par XYZ origin,
|
|
\par XYZ baseVec,
|
|
\par XYZ upVec,
|
|
\par double textSize,
|
|
\par double lineWidth,
|
|
\par TextAlignFlags textAlign,
|
|
\par string strText
|
|
\par );
|
|
\par Parameters
|
|
\par pView
|
|
\par Current DBView
|
|
\par origin
|
|
\par origin of the TextNote
|
|
\par baseVec
|
|
\par baseVec parameter of the TextNote.
|
|
\par upVec
|
|
\par upVec parameter of the TextNote.
|
|
\par textSize
|
|
\par text size.
|
|
\par lineWidth
|
|
\par line width of the out rectangle.
|
|
\par textAlign
|
|
\par align style.
|
|
\par strText
|
|
\par text.
|
|
\par TextNote is just text. The textSize parameter of the NewTextNote method is actually not used and can be ignored Tao says 'Our developer has confirmed that this param is no use at all for the internal behavior has been changed. The actual size value comes
|
|
from Font (family type). So this param should be removed. Our developer will fix it.'
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Learning More
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Online Help and SDK Samples
|
|
\par DevTV Introduction to Revit 2008 Programming
|
|
\par http://adn.autodesk.com/adn/servlet/item?siteID=4814862&id=10194238&linkID=4901650
|
|
\par Recording of Revit 2009 Programming Introduction Webcast
|
|
\par http://adn.autodesk.com/adn/servlet/index?siteID=4814862&id=5475217&linkID=4901650
|
|
\par http://www.adskconsulting.com/adn/cs/api_course_sched.php
|
|
\par Discussion Groups
|
|
\par http://discussion.autodesk.com > Revit API
|
|
\par API Training Classes
|
|
\par http://www.autodesk.com/apitraining
|
|
\par Autodesk Developer Network
|
|
\par http://www.autodesk.com/joinadn
|
|
\par DevHelp Online for ADN members
|
|
\par http://adn.autodesk.com/
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Learning More
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 www.autodesk.com\\devcamp2008
|
|
\par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb200\keep\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \ab\af31503\afs22\alang1025 \ltrch\fcs0
|
|
\b\fs20\cf19\lang2057\langfe1033\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31503 \ltrch\fcs0 \insrsid4066187 \hich\af31502\dbch\af31501\loch\f31502 Thank you very much!
|
|
\par }\pard\plain \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4066187 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507
|
|
\ltrch\fcs0 \insrsid4066187 Thank you for your interest and attention!
|
|
\par }\pard \ltrpar\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1800260 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid1800260
|
|
\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4066187 \sect }\sectd \ltrsect\sbknone\linex0\headery709\footery709\cols2\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sectrsid4066187\sftnbj \pard\plain \ltrpar
|
|
\ql \li0\ri0\sb120\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid1800260 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0
|
|
\insrsid4066187\charrsid8087796
|
|
\par }{\*\themedata 504b030414000600080000002100828abc13fa0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb6ac3301045f785fe83d0b6d8
|
|
72ba28a5d8cea249777d2cd20f18e4b12d6a8f843409c9df77ecb850ba082d74231062ce997b55ae8fe3a00e1893f354e9555e6885647de3a8abf4fbee29bbd7
|
|
2a3150038327acf409935ed7d757e5ee14302999a654e99e393c18936c8f23a4dc072479697d1c81e51a3b13c07e4087e6b628ee8cf5c4489cf1c4d075f92a0b
|
|
44d7a07a83c82f308ac7b0a0f0fbf90c2480980b58abc733615aa2d210c2e02cb04430076a7ee833dfb6ce62e3ed7e14693e8317d8cd0433bf5c60f53fea2fe7
|
|
065bd80facb647e9e25c7fc421fd2ddb526b2e9373fed4bb902e182e97b7b461e6bfad3f010000ffff0300504b030414000600080000002100a5d6a7e7c00000
|
|
00360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4fc7060abb08
|
|
84a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b63095120f88d94fbc
|
|
52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462a1a82fe353
|
|
bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f7468656d652f7468
|
|
656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b4b0d592c9c
|
|
070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b4757e8d3f7
|
|
29e245eb2b260a0238fd010000ffff0300504b03041400060008000000210096b5ade296060000501b0000160000007468656d652f7468656d652f7468656d65
|
|
312e786d6cec594f6fdb3614bf0fd87720746f6327761a07758ad8b19b2d4d1bc46e871e698996d850a240d2497d1bdae38001c3ba618715d86d87615b8116d8
|
|
a5fb34d93a6c1dd0afb0475292c5585e9236d88aad3e2412f9e3fbff1e1fa9abd7eec70c1d1221294fda5efd72cd4324f1794093b0eddd1ef62fad79482a9c04
|
|
98f184b4bd2991deb58df7dfbb8ad755446282607d22d771db8b944ad79796a40fc3585ee62949606ecc458c15bc8a702910f808e8c66c69b9565b5d8a314d3c
|
|
94e018c8de1a8fa94fd05093f43672e23d06af89927ac06762a049136785c10607758d9053d965021d62d6f6804fc08f86e4bef210c352c144dbab999fb7b471
|
|
7509af678b985ab0b6b4ae6f7ed9ba6c4170b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83a6569632cd467faddec9699640f671
|
|
9e76b7d6ac355c7c89feca9cccad4ea7d36c65b258a206641f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd5868b37a088d1
|
|
e4600ead1ddaef67d40bc898b3ed4af81ac0d76a197c86826828a24bb318f3442d8ab518dfe3a20f000d6458d104a9694ac6d88728eee2782428d60cf03ac1a5
|
|
193be4cbb921cd0b495fd054b5bd0f530c1931a3f7eaf9f7af9e3f45c70f9e1d3ff8e9f8e1c3e3073f5a42ceaa6d9c84e5552fbffdeccfc71fa33f9e7ef3f2d1
|
|
17d57859c6fffac327bffcfc793510d26726ce8b2f9ffcf6ecc98baf3efdfdbb4715f04d814765f890c644a29be408edf3181433567125272371be15c308d3f2
|
|
8acd249438c19a4b05fd9e8a1cf4cd296699771c393ac4b5e01d01e5a30a787d72cf1178108989a2159c77a2d801ee72ce3a5c545a6147f32a99793849c26ae6
|
|
6252c6ed637c58c5bb8b13c7bfbd490a75330f4b47f16e441c31f7184e140e494214d273fc80900aedee52ead87597fa824b3e56e82e451d4c2b4d32a423279a
|
|
668bb6690c7e9956e90cfe766cb37b077538abd27a8b1cba48c80acc2a841f12e698f13a9e281c57911ce298950d7e03aba84ac8c154f8655c4f2af074481847
|
|
bd804859b5e696007d4b4edfc150b12addbecba6b18b148a1e54d1bc81392f23b7f84137c2715a851dd0242a633f900710a218ed715505dfe56e86e877f0034e
|
|
16bafb0e258ebb4faf06b769e888340b103d3311da9750aa9d0a1cd3e4efca31a3508f6d0c5c5c398602f8e2ebc71591f5b616e24dd893aa3261fb44f95d843b
|
|
5974bb5c04f4edafb95b7892ec1108f3f98de75dc97d5772bdff7cc95d94cf672db4b3da0a6557f70db629362d72bcb0431e53c6066acac80d699a6409fb44d0
|
|
8741bdce9c0e4971624a2378cceaba830b05366b90e0ea23aaa241845368b0eb9e2612ca8c742851ca251ceccc70256d8d87265dd96361531f186c3d9058edf2
|
|
c00eafe8e1fc5c509031bb4d680e9f39a3154de0accc56ae644441edd76156d7429d995bdd88664a9dc3ad50197c38af1a0c16d684060441db02565e85f3b966
|
|
0d0713cc48a0ed6ef7dedc2dc60b17e92219e180643ed27acffba86e9c94c78ab90980d8a9f0913ee49d62b512b79626fb06dccee2a432bbc60276b9f7dec44b
|
|
7904cfbca4f3f6443ab2a49c9c2c41476dafd55c6e7ac8c769db1bc399161ee314bc2e75cf8759081743be1236ec4f4d6693e5336fb672c5dc24a8c33585b5fb
|
|
9cc24e1d4885545b58463634cc5416022cd19cacfccb4d30eb45296023fd35a458598360f8d7a4003bbaae25e331f155d9d9a5116d3bfb9a95523e51440ca2e0
|
|
088dd844ec6370bf0e55d027a012ae264c45d02f708fa6ad6da6dce29c255df9f6cae0ec38666984b372ab5334cf640b37795cc860de4ae2816e95b21be5ceaf
|
|
8a49f90b52a51cc6ff3355f47e0237052b81f6800fd7b802239daf6d8f0b1571a8426944fdbe80c6c1d40e8816b88b8569082ab84c36ff0539d4ff6dce591a26
|
|
ade1c0a7f669880485fd484582903d284b26fa4e2156cff62e4b9265844c4495c495a9157b440e091bea1ab8aaf7760f4510eaa69a6465c0e04ec69ffb9e65d0
|
|
28d44d4e39df9c1a52ecbd3607fee9cec7263328e5d661d3d0e4f62f44acd855ed7ab33cdf7bcb8ae889599bd5c8b3029895b6825696f6af29c239b75a5bb1e6
|
|
345e6ee6c28117e73586c1a2214ae1be07e93fb0ff51e133fb65426fa843be0fb515c187064d0cc206a2fa926d3c902e907670048d931db4c1a44959d366ad93
|
|
b65abe595f70a75bf03d616c2dd959fc7d4e6317cd99cbcec9c58b34766661c7d6766ca1a9c1b327531486c6f941c638c67cd22a7f75e2a37be0e82db8df9f30
|
|
254d30c1372581a1f51c983c80e4b71ccdd28dbf000000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f74
|
|
68656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f24
|
|
51eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198
|
|
720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528
|
|
a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100828abc13fa0000001c0200001300000000000000000000000000
|
|
000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b000000000000000000000000
|
|
002b0100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000140200007468
|
|
656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210096b5ade296060000501b000016000000000000000000
|
|
00000000d10200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b010000270000000000
|
|
00000000000000009b0900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000960a00000000}
|
|
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
|
|
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
|
|
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
|
|
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
|
|
{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
|
|
\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;
|
|
\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;
|
|
\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdpriority20 \lsdlocked0 Emphasis;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdpriority1 \lsdlocked0 No Spacing;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdpriority30 \lsdlocked0 Intense Quote;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdpriority21 \lsdlocked0 Intense Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdpriority31 \lsdlocked0 Subtle Reference;
|
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdsemihidden0 \lsdunhideused0 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}
|
|
{\*\datastore 0105000002000000180000004d73786d6c322e534158584d4c5265616465722e352e30000000000000000000000e0000
|
|
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
fffffffffffffffffdffffff04000000feffffff05000000fefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffff01000000ec69d9888b8b3d4c859eaf6cd158be0f000000000000000000000000208f
|
|
b84203b5c8010300000080020000000000004d0073006f004400610074006100530074006f0072006500000000000000000000000000000000000000000000000000000000000000000000000000000000001a000101ffffffffffffffff020000000000000000000000000000000000000000000000208fb84203b5c801
|
|
208fb84203b5c80100000000000000000000000030005900c100d400d900c00046004f00da00d4004f00d3005a00d400da005a004e00df0030004c00550041003d003d000000000000000000000000000000000032000101ffffffffffffffff030000000000000000000000000000000000000000000000208fb84203b5
|
|
c801208fb84203b5c8010000000000000000000000004900740065006d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000201ffffffff04000000ffffffff000000000000000000000000000000000000000000000000
|
|
00000000000000000000000000000000cd00000000000000010000000200000003000000feffffff0500000006000000070000000800000009000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c623a536f757263657320786d6c6e733a623d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f6269626c696f6772617068792220786d6c6e733d
|
|
22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f6269626c696f677261706879222053656c65637465645374796c653d225c4150412e58534c22205374796c654e616d653d22415041222f3e000000000000000000000000000000
|
|
0000000000000000000000000000000000000000000000000000000000000000000000003c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d226e6f223f3e0d0a3c64733a6461746173746f72654974656d2064733a6974656d49443d227b45363734
|
|
383836392d344530312d343345422d423336372d3445393933374636384235307d2220786d6c6e733a64733d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f637573746f6d586d6c223e3c64733a736368656d61526566733e3c
|
|
64733a736368656d615265662064733a7572693d22687474703a2f2f736368656d61732e6f70656e500072006f007000650072007400690065007300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff000000000000
|
|
0000000000000000000000000000000000000000000000000000000000000400000055010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000
|
|
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000
|
|
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff
|
|
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f6269626c696f677261706879222f3e3c2f64733a736368656d61526566733e3c2f64733a6461746173746f
|
|
72654974656d3e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}} |