<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>technical architecture. &#187; Architecture</title>
	<atom:link href="http://buchhofer.com/category/architecture/feed/" rel="self" type="application/rss+xml" />
	<link>http://buchhofer.com</link>
	<description>Maxscript, Architecture, 3D, 3DSMax, Unity3D</description>
	<lastBuildDate>Mon, 30 Apr 2012 00:46:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Architecture &#8211; Revit to Max to Unity</title>
		<link>http://buchhofer.com/2011/12/uni/</link>
		<comments>http://buchhofer.com/2011/12/uni/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 21:42:19 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Unity3D]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=318</guid>
		<description><![CDATA[Here is a Revit -> 3dsmax -> Unity project that we worked on earlier this year. the videos below are captured in HD in unity directly from some premade itween paths Exterior axo from Dave Buck on Vimeo. Realtime HD Architecture, Captured in Unity3D from Dave Buck on Vimeo. Basic workflow was to export out [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a Revit -> 3dsmax -> Unity project that we worked on earlier this year.</p>
<p>the videos below are captured in HD in unity directly from some premade itween paths</p>
<p><iframe src="http://player.vimeo.com/video/31943486?title=0&amp;byline=0&amp;portrait=0" width="400" height="225" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/31943486">Exterior axo</a> from <a href="http://vimeo.com/vsai">Dave Buck</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p><iframe src="http://player.vimeo.com/video/31940365?title=0&amp;byline=0&amp;portrait=0" width="400" height="225" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/31940365">Realtime HD Architecture, Captured in Unity3D</a> from <a href="http://vimeo.com/vsai">Dave Buck</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Basic workflow was to export out the WorkSets from Revit as individual FBX files<br />
Import them into 3dsmax with the file link manager, usually set to combine objects by material<br />
from there run a set of scripts that collapsed / welded / AutoSmoothed / split meshes that were too large (65k verts is a pain) cleans up the layers, replaces materials, and exports the now unity friendly layers into different FBX&#8217;s for unitys consumption</p>
<p>Inside unity there are a few small steps needed, done mostly with AssetPostProcessors that hook up any external lightmaps that we generated in max, replace/reconnect any materials that are in our standard material library, and attach any components that are supplied in the max user properties fields.</p>
<p>bake the lighting to suit, (In this case, just give us some AO and Sunlight since we needed to be able to turn around revit design changes -> working webplayer overnight with minimal user babysitting.)</p>
<p>this workflow allowed the building owner to &#8216;walk&#8217; around the design very rapidly after it was changed.</p>
<p>There are a few more captures up at http://vimeo.com/vsai/videos/ for anyone interested.</p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2011/12/uni/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unity per project compiler options, -unsafe</title>
		<link>http://buchhofer.com/2011/11/unity-per-project-compiler-options-unsafe/</link>
		<comments>http://buchhofer.com/2011/11/unity-per-project-compiler-options-unsafe/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 22:31:30 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[csharp]]></category>
		<category><![CDATA[Unity3D]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=316</guid>
		<description><![CDATA[I had to integrate a small set of third party code that calls down to some win32 dllimport bits, to do this I needed to be able to work with some pointers. which in c# need to be declared in an unsafe function, so that it knows to be unmanaged. Slightly awkward, but it turns [...]]]></description>
			<content:encoded><![CDATA[<p>I had to integrate a small set of third party code that calls down to some win32 dllimport bits, to do this I needed to be able to work with some pointers. which in c# need to be declared in an unsafe function, so that it knows to be unmanaged.</p>
<p>Slightly awkward, but it turns out that there is an -unsafe compiler option that needs to be turned on in unity/mono, and that you can do this very easily on a per project basis by adding a file &#8216;smcs.rsp&#8217; to the root of your assets dir, and in there you can add the text &#8216;-unsafe&#8217; to add this to the compiler commandline.</p>
<p>Reference threads: <a href="http://forum.unity3d.com/threads/41592-Setting-Compiler-Options">Setting Compiler Options</a>, <a href="http://forum.unity3d.com/threads/7009-Unsafe-code-in-Unity">Unsafe code in Unity</a>, <a href="http://forum.unity3d.com/threads/71445-How-To-Set-Project-Wide-pragma-Directives-with-JavaScript">How To: Set Project-Wide #pragma Directives with JavaScript</a></p>
<p>Other apparent uses stated in the threads are setting project wide defines and pragmas</p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2011/11/unity-per-project-compiler-options-unsafe/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ArtBreak, MiLB Stadium</title>
		<link>http://buchhofer.com/2011/11/artbreak-milb-stadium/</link>
		<comments>http://buchhofer.com/2011/11/artbreak-milb-stadium/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 19:55:34 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Rendering]]></category>
		<category><![CDATA[Stills]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=310</guid>
		<description><![CDATA[A little Art break, here&#8217;s a few shots from a recent set of renderings done for a minor league baseball stadium.]]></description>
			<content:encoded><![CDATA[<p>A little Art break, here&#8217;s a few shots from a recent set of renderings done for a minor league baseball stadium.</p>
<p><iframe align="center" src="http://www.flickr.com/slideShow/index.gne?group_id=&#038;user_id=11168326@N03&#038;set_id=72157628115392905/show&#038;text=" frameBorder="0" width="500" height="500" scrolling="no"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2011/11/artbreak-milb-stadium/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ignore file for Mercurial and Unity</title>
		<link>http://buchhofer.com/2011/11/ignore-file-for-mercurial-and-unity/</link>
		<comments>http://buchhofer.com/2011/11/ignore-file-for-mercurial-and-unity/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 15:38:38 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Unity]]></category>
		<category><![CDATA[Unity3D]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=301</guid>
		<description><![CDATA[here&#8217;s a working ignore file for use of Unity and Mercurial simple, but slightly different from the instructions posted in the current docs, so figured i&#8217;d pass it on for anyone else who cares to check it out. placed in a plain text file named .htignore in your project directory syntax: glob *.tmproj *.pidb *.sln *.userprefs [...]]]></description>
			<content:encoded><![CDATA[<p>here&#8217;s a working ignore file for use of Unity and <a href="http://mercurial.selenic.com/" target="_blank">Mercurial</a> simple, but slightly different from the instructions posted in the current docs, so figured i&#8217;d pass it on for anyone else who cares to check it out.</p>
<p>placed in a plain text file named .htignore in your project directory</p>
<pre>syntax: glob

*.tmproj
*.pidb
*.sln
*.userprefs
*.csproj
*.unityproj

AnnotationManager
assetDatabase3
AssetImportState
assetservercachev3
AssetVersioning.db
BuildPlayer.prefs
BuildSettings.asset
EditorSettings.asset
EditorUserBuildSettings.asset
expandedItems
FailedAssetImports.txt
guidmapper
InspectorExpandedItems.asset
MonoManager.asset
ScriptMapper

cache/*
Temp/*
metadata/*
ScriptAssemblies/*
previews/*</pre>
<p><a href="http://hgbook.red-bean.com/read/mercurial-in-daily-use.html">The Mercurial in Daily Use guide</a> seems to be a good list of things that you might wish to do</p>
<p>&nbsp;</p>
<p>Some notes for myself, but might be useful to someone else getting started also.</p>
<p>edit: To start a local serve on my workstation that my laptop can push to, use the command line</p>
<address>hg serve &#8211;config web.push_ssl=No &#8211;config &#8220;web.allow_push=*&#8221;</address>
<p>to pass your changes up from the laptop to the workstation:</p>
<address>hg push http://workstationname:8000</address>
<p>and on the workstation use:</p>
<address>hg update</address>
<p>to get the latest updated file revisions locally..</p>
<p>and you&#8217;re sync&#8217;d. fun times.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2011/11/ignore-file-for-mercurial-and-unity/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>What have you done for me lately?</title>
		<link>http://buchhofer.com/2011/06/what-have-you-done-for-me-lately/</link>
		<comments>http://buchhofer.com/2011/06/what-have-you-done-for-me-lately/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 17:10:09 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Interactive]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Unity3D]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=286</guid>
		<description><![CDATA[I&#8217;ve been working on this tool for a while now, here&#8217;s a quick captured demo of some of the features of my hospital room design application in action. Interactive 3D OR/ICU design tool from Dave Buck on Vimeo. here&#8217;s a current video of my OR/ICU design project, created in unity3d, with fully configurable parametric models [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on this tool for a while now, here&#8217;s a quick captured demo of some of the features of my hospital room design application in action.</p>
<p><iframe src="http://player.vimeo.com/video/24523384?title=0&amp;byline=0&amp;portrait=0" width="400" height="205" frameborder="0"></iframe>
<p><a href="http://vimeo.com/24523384">Interactive 3D OR/ICU design tool</a> from <a href="http://vimeo.com/vsai">Dave Buck</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>here&#8217;s a current video of my OR/ICU design project, created in unity3d, with fully configurable parametric models rigged with both IK and FK, and a tool to quickly draw out any layout of walls, windows and doors to spatially visualize the placement and reach of equipment needed in an operating room space.</p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2011/06/what-have-you-done-for-me-lately/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Some Useful Unity3D resources</title>
		<link>http://buchhofer.com/2011/02/some-useful-unity3d-resources/</link>
		<comments>http://buchhofer.com/2011/02/some-useful-unity3d-resources/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 15:40:30 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[Unity3D]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=259</guid>
		<description><![CDATA[Since I&#8217;m doing a lot of unity here lately, and starting to lay down some teaching to coworkers, here are a couple useful references for unity3d stuff that aren&#8217;t too commonly thrown out there. http://feedity.com/rss.aspx/unifycommunity-com/UVtQUlVb &#8211; RSS feed that updates when new scripts are added to the community WIKI (And feedity in general is pretty [...]]]></description>
			<content:encoded><![CDATA[<p>Since I&#8217;m doing a lot of unity here lately, and starting to lay down some teaching to coworkers, here are a couple useful references for unity3d stuff that aren&#8217;t too commonly thrown out there.</p>
<p><a href="http://feedity.com/rss.aspx/unifycommunity-com/UVtQUlVb">http://feedity.com/rss.aspx/unifycommunity-com/UVtQUlVb</a> &#8211; RSS feed that updates when new scripts are added to the community WIKI (And feedity in general is pretty nifty.)</p>
<p><a href="http://www.google.com/cse/home?cx=002470491425767499270:iugs1ezlsfq">http://www.google.com/cse/home?cx=002470491425767499270:iugs1ezlsfq</a> a google custom search engine maintained by some anonymous saint, searches the unity references, answers, forums, and a few other popular blogs.</p>
<p><a href="http://www.google.com/cse/home?cx=001712401338047450041:csfhqk-trfa">http://www.google.com/cse/home?cx=001712401338047450041:csfhqk-trfa</a> a second google CSE that includes MSDN and the wiki among others, for when you need that extra bit of microsoft reference.</p>
<p>Also, don&#8217;t neglect the boys in irc.freenode.net #unity3d, definitely the single most useful resource @ <a href="http://webchat.freenode.net/">http://webchat.freenode.net/</a> or your friendly neighborhood irc client.</p>
<p><em>*Oops! bolger fail. edit to fix the links.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2011/02/some-useful-unity3d-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unity: toying with Scriptable Objects</title>
		<link>http://buchhofer.com/2010/10/unity-toying-with-scriptable-objects/</link>
		<comments>http://buchhofer.com/2010/10/unity-toying-with-scriptable-objects/#comments</comments>
		<pubDate>Tue, 19 Oct 2010 20:11:40 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Unity3D]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=247</guid>
		<description><![CDATA[In architecture there is often a need to keep track of and have handy many different viewpoints of a model at a time. with my early unity experiments, I made the mistake of creating a Camera for every Viewpoint that I wanted to have available in my scene. this was faulty for several reasons, not [...]]]></description>
			<content:encoded><![CDATA[<p>In architecture there is often a need to keep track of and have handy many different viewpoints of a model at a time. with my early unity experiments, I made the mistake of creating a Camera for every Viewpoint that I wanted to have available in my scene. this was faulty for several reasons, not the least of which was that <strong>every </strong> &#8216;Camera&#8217; object in a scene is actually rendering everything in the scene at once. Each camera has a few fun/useful options in the Clear Flags that makes this useful for things like rendering UI overlays with 3d objects and other assorted multipass ideas, but thats a whole &#8216;nother story.</p>
<p>Next attempt was to just import a large list of dummy objects in from 3dsmax that would represent camera orientations and allow the end user to select from these dummys and align the camera with the dummy objects using some UI bits in unity. This worked fine, but there is the base problem that the user cannot modify/edit these objects easily and have the changes save across play sessions.</p>
<p>This is where Scriptable Objects started to come in to play. (Taken partly from the unity Character Demo where they were explaining some of the joys of AssetBundles if you wish to look up more in depth examples.) this may not be the most useful demo of Scriptable objects, but this is a case study for when you are trying to store Runtime data for use at editortime.</p>
<p>There are several parts: First and probably the only important part is the Holder, this is really just a list of &#8216;Somethings&#8217; that we save to disk. in our case, CameraLocations.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">//CameraLocationHolder.cs</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.Collections.Generic</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">UnityEngine</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> CameraLocationHolder <span style="color: #008000;">:</span> ScriptableObject <span style="color: #008000;">&#123;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> List<span style="color: #008000;">&lt;</span>CameraLocation<span style="color: #008000;">&gt;</span> content<span style="color: #008000;">;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> CameraLocationHolder<span style="color: #008000;">&#40;</span>List<span style="color: #008000;">&lt;</span>CameraLocation<span style="color: #008000;">&gt;</span> content<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span><span style="color: #0000FF;">content</span> <span style="color: #008000;">=</span> content<span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>the above empty list consists of &#8216;CameraLocation&#8217;s which is just a simple class I used to store a few variables that are needed to re-create a Viewpoint. Camera locations is a Serializable Class (Serializable in this case means that its viewable in the inspector in Unity the same way you would view for instance a Vector3..) and it has some default values in there of pulling the maincameras location/rotation and field of view.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">//CameraLocation.cs</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">UnityEngine</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.Collections</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #008000;">&#91;</span><span style="color: #000000;">System</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Serializable</span><span style="color: #008000;">&#93;</span>
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> CameraLocation
<span style="color: #008000;">&#123;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> name <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;New Camera&quot;</span><span style="color: #008000;">;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">float</span> fov <span style="color: #008000;">=</span> Camera<span style="color: #008000;">.</span><span style="color: #0000FF;">main</span><span style="color: #008000;">.</span><span style="color: #0000FF;">fov</span><span style="color: #008000;">;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> Vector3 position <span style="color: #008000;">=</span> Camera<span style="color: #008000;">.</span><span style="color: #0000FF;">main</span><span style="color: #008000;">.</span><span style="color: #0000FF;">transform</span><span style="color: #008000;">.</span><span style="color: #0000FF;">position</span><span style="color: #008000;">;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> Quaternion rotation <span style="color: #008000;">=</span> Camera<span style="color: #008000;">.</span><span style="color: #0000FF;">main</span><span style="color: #008000;">.</span><span style="color: #0000FF;">transform</span><span style="color: #008000;">.</span><span style="color: #0000FF;">rotation</span><span style="color: #008000;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Now, we create an asset in the editor where we will store our list of CameraLocation&#8217;s, this can be placed anywhere, its a small file so i tend to just store it in Resources for easy finding later.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">//CreateCameraLocationAsset.cs</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">UnityEngine</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">UnityEditor</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.Collections.Generic</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> CreateCameraLocationAsset
<span style="color: #008000;">&#123;</span>
    <span style="color: #008000;">&#91;</span>MenuItem<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Custom/Cameras/Create camera location holder&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">void</span> CreateMyAsset<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        List<span style="color: #008000;">&lt;</span>CameraLocation<span style="color: #008000;">&gt;</span> content <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> List<span style="color: #008000;">&lt;</span>CameraLocation<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        CameraLocationHolder asset <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> CameraLocationHolder<span style="color: #008000;">&#40;</span>content<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>  <span style="color: #008080; font-style: italic;">//scriptable object </span>
        AssetDatabase<span style="color: #008000;">.</span><span style="color: #0000FF;">CreateAsset</span><span style="color: #008000;">&#40;</span>asset, <span style="color: #666666;">&quot;CameraLocationDatabase&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        AssetDatabase<span style="color: #008000;">.</span><span style="color: #0000FF;">SaveAssets</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        EditorUtility<span style="color: #008000;">.</span><span style="color: #0000FF;">FocusProjectWindow</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        Selection<span style="color: #008000;">.</span><span style="color: #0000FF;">activeObject</span> <span style="color: #008000;">=</span> asset<span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Now you have an &#8216;Asset&#8217; where you can store/load/erase/whatever in a list of CameraLocations at runtime, and the results will still be available at Editor time, and at future Runs of the application.</p>
<p>For instance, you can browse around your scene as you would normally with your FlyingCameraScriptOfDoom, and occasionally call a script to add your current camera.main viewpoint to the list.</p>
<p>or accessing it as a runtime resource for use by a normal GUI pulldown:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">//Excerpts from CameraListBox.cs</span>
&nbsp;
<span style="color: #008080; font-style: italic;">//declaring a list of stuff</span>
            <span style="color: #0600FF; font-weight: bold;">public</span> List<span style="color: #008000;">&lt;</span>CameraLocation<span style="color: #008000;">&gt;</span> camList <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> List<span style="color: #008000;">&lt;</span>CameraLocation<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">//Declare our list of stuff</span>
&nbsp;
<span style="color: #008080; font-style: italic;">//....</span>
&nbsp;
<span style="color: #008080; font-style: italic;">//somewhere in Start() we load the list from the DB</span>
            <span style="color: #6666cc; font-weight: bold;">Object</span> o <span style="color: #008000;">=</span> Resources<span style="color: #008000;">.</span><span style="color: #0000FF;">Load</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;CameraLocationDatabase&quot;</span>, <span style="color: #008000;">typeof</span><span style="color: #008000;">&#40;</span>CameraLocationHolder<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            CameraLocationHolder CameraLocationDB <span style="color: #008000;">=</span> <span style="color: #008000;">&#40;</span>CameraLocationHolder<span style="color: #008000;">&#41;</span>o<span style="color: #008000;">;</span>
<span style="color: #008080; font-style: italic;">//fill our list of stuff, with the content from the Holder in the asset</span>
            camList <span style="color: #008000;">=</span> CameraLocationDB<span style="color: #008000;">.</span><span style="color: #0000FF;">content</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">//....</span>
&nbsp;
<span style="color: #008080; font-style: italic;">//and somewhere in our OnGUI()</span>
            GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">BeginVertical</span><span style="color: #008000;">&#40;</span>GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Width</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">120</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">int</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&lt;</span> camList<span style="color: #008000;">.</span><span style="color: #0000FF;">Count</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Button</span><span style="color: #008000;">&#40;</span>camList<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">name</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
                <span style="color: #008000;">&#123;</span>
                    SelectedListItem <span style="color: #008000;">=</span> i<span style="color: #008000;">;</span><span style="color: #008080; font-style: italic;">//Set the index for our currrently selected item</span>
                    CameraLocation cam <span style="color: #008000;">=</span> camList<span style="color: #008000;">&#91;</span>SelectedListItem<span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span>
                    StartCoroutine<span style="color: #008000;">&#40;</span>SmoothMoveCamLoc<span style="color: #008000;">&#40;</span>cam<span style="color: #008000;">.</span><span style="color: #0000FF;">position</span>, cam<span style="color: #008000;">.</span><span style="color: #0000FF;">rotation</span>, cam<span style="color: #008000;">.</span><span style="color: #0000FF;">fov</span>, duration<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                   <span style="color: #008000;">&#125;</span>
            <span style="color: #008000;">&#125;</span>
            GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">EndVertical</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">//the SmoothMoveCamLoc just lerps between the current positions/rotations/fov's </span>
<span style="color: #008080; font-style: italic;">//and the desired ones that were stored in the CameraLocation.</span>
<span style="color: #008080; font-style: italic;">//although mine has a few other random logic items in there to decide</span>
<span style="color: #008080; font-style: italic;">//which style of camera i have currently and deal with any parents/targets/initializing/etc</span>
<span style="color: #008080; font-style: italic;">//needed if we move the camera.</span></pre></td></tr></table></div>

<p>For instance, editing the list by an Editor script, that builds a list for you to Add/Remove/Rename/and Re-Order the list, because thats oddly hard to do with the built in object interface? Maybe this is where a custom inspector should be for the .asset type? hmm! things to play with in the future.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">//CameraListboxWizard.cs</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">UnityEngine</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">UnityEditor</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.Collections.Generic</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> CameraListboxWizard <span style="color: #008000;">:</span> ScriptableWizard
<span style="color: #008000;">&#123;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> DBLocation <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Assets/Resources/CameraLocationDatabase.asset&quot;</span><span style="color: #008000;">;</span>
    <span style="color: #0600FF; font-weight: bold;">private</span> CameraLocation camLocation<span style="color: #008000;">;</span>
    <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">Object</span> dbaseAsset<span style="color: #008000;">;</span>
    <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #0600FF; font-weight: bold;">private</span> CameraLocationHolder db<span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #008000;">&#91;</span>MenuItem<span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Custom/Cameras/CameraListBox - Database Helper&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span>
    <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">void</span> DoSet<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        ScriptableWizard<span style="color: #008000;">.</span><span style="color: #0000FF;">DisplayWizard</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Add view to CameraListBox&quot;</span>, <span style="color: #008000;">typeof</span><span style="color: #008000;">&#40;</span>CameraListboxWizard<span style="color: #008000;">&#41;</span>, <span style="color: #666666;">&quot;DONE&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #6666cc; font-weight: bold;">void</span> OnWizardUpdate<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        helpString <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;This will control the Camera Location asset database<span style="color: #008080; font-weight: bold;">\n</span>, and allow you to 'save' the Camera.main's position<span style="color: #008080; font-weight: bold;">\n</span> while in the player mode<span style="color: #008080; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">;</span>
&nbsp;
        UpdateMyAssetLocation<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #6666cc; font-weight: bold;">void</span> AddExistingCameras<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #6666cc; font-weight: bold;">int</span> count <span style="color: #008000;">=</span> Camera<span style="color: #008000;">.</span><span style="color: #0000FF;">allCameras</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Length</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">int</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&lt;</span> count<span style="color: #008000;">;</span> <span style="color: #008000;">++</span>i<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #008080; font-style: italic;">//except for the main camera, which we'll use to transition between the others</span>
            <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>Camera<span style="color: #008000;">.</span><span style="color: #0000FF;">allCameras</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #008000;">!=</span> Camera<span style="color: #008000;">.</span><span style="color: #0000FF;">main</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                camLocation <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> CameraLocation<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                camLocation<span style="color: #008000;">.</span><span style="color: #0000FF;">name</span> <span style="color: #008000;">=</span> Camera<span style="color: #008000;">.</span><span style="color: #0000FF;">allCameras</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">name</span><span style="color: #008000;">;</span>
                camLocation<span style="color: #008000;">.</span><span style="color: #0000FF;">fov</span> <span style="color: #008000;">=</span> Camera<span style="color: #008000;">.</span><span style="color: #0000FF;">allCameras</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">fov</span><span style="color: #008000;">;</span>
                camLocation<span style="color: #008000;">.</span><span style="color: #0000FF;">position</span> <span style="color: #008000;">=</span> Camera<span style="color: #008000;">.</span><span style="color: #0000FF;">allCameras</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">transform</span><span style="color: #008000;">.</span><span style="color: #0000FF;">position</span><span style="color: #008000;">;</span>
                camLocation<span style="color: #008000;">.</span><span style="color: #0000FF;">rotation</span> <span style="color: #008000;">=</span> Camera<span style="color: #008000;">.</span><span style="color: #0000FF;">allCameras</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">transform</span><span style="color: #008000;">.</span><span style="color: #0000FF;">rotation</span><span style="color: #008000;">;</span>
                AddCamera<span style="color: #008000;">&#40;</span>camLocation<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #008000;">&#125;</span>
        <span style="color: #008000;">&#125;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #6666cc; font-weight: bold;">void</span> OnWizardCreate<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        Debug<span style="color: #008000;">.</span><span style="color: #0000FF;">Log</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;done&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #6666cc; font-weight: bold;">void</span> AddCamera<span style="color: #008000;">&#40;</span>CameraLocation cam<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        db<span style="color: #008000;">.</span><span style="color: #0000FF;">content</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span>cam<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        EditorUtility<span style="color: #008000;">.</span><span style="color: #0000FF;">SetDirty</span><span style="color: #008000;">&#40;</span>dbaseAsset<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #6666cc; font-weight: bold;">void</span> OnGUI<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        EditorGUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">BeginVertical</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
         EditorGUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">BeginHorizontal</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Label</span><span style="color: #008000;">&#40;</span>name, GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">MaxWidth</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        DBLocation <span style="color: #008000;">=</span> EditorGUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">TextField</span><span style="color: #008000;">&#40;</span>DBLocation<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Button</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Browse&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            DBLocation <span style="color: #008000;">=</span> EditorUtility<span style="color: #008000;">.</span><span style="color: #0000FF;">OpenFilePanel</span><span style="color: #008000;">&#40;</span>name, DBLocation, <span style="color: #666666;">&quot;asset&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            UpdateMyAssetLocation<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
        EditorGUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">EndHorizontal</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Button</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Update Database Location&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            UpdateMyAssetLocation<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
&nbsp;
        EditorGUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Space</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Button</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Add current Camera.main position&quot;</span>, GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Height</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">50</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            camLocation <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> CameraLocation<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            AddCamera<span style="color: #008000;">&#40;</span>camLocation<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
        EditorGUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Space</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        DisplayCurrentCamList<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        EditorGUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Space</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Button</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Add all existing 'Cameras' to the list<span style="color: #008080; font-weight: bold;">\n</span> this can 'import' max camera locations&quot;</span>, GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Height</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">50</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            AddExistingCameras<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
        EditorGUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">EndVertical</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #6666cc; font-weight: bold;">void</span> DisplayCurrentCamList<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">int</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&lt;</span> db<span style="color: #008000;">.</span><span style="color: #0000FF;">content</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Count</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span> <span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            EditorGUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">BeginHorizontal</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            db<span style="color: #008000;">.</span><span style="color: #0000FF;">content</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">name</span> <span style="color: #008000;">=</span> GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">TextField</span><span style="color: #008000;">&#40;</span>db<span style="color: #008000;">.</span><span style="color: #0000FF;">content</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">name</span>, GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Width</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">200</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Button</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;UP&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>i <span style="color: #008000;">&gt;</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">&#41;</span>
                <span style="color: #008000;">&#123;</span>
                    CameraLocation item <span style="color: #008000;">=</span> db<span style="color: #008000;">.</span><span style="color: #0000FF;">content</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span>
                    db<span style="color: #008000;">.</span><span style="color: #0000FF;">content</span><span style="color: #008000;">.</span><span style="color: #0000FF;">RemoveAt</span><span style="color: #008000;">&#40;</span>i<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    db<span style="color: #008000;">.</span><span style="color: #0000FF;">content</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Insert</span><span style="color: #008000;">&#40;</span>i <span style="color: #008000;">-</span> <span style="color: #FF0000;">1</span>, item<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                <span style="color: #008000;">&#125;</span>
            <span style="color: #008000;">&#125;</span>
            <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Button</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;DN&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>i <span style="color: #008000;">&lt;</span> db<span style="color: #008000;">.</span><span style="color: #0000FF;">content</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Count</span><span style="color: #008000;">&#41;</span>
                <span style="color: #008000;">&#123;</span>
                    CameraLocation item <span style="color: #008000;">=</span> db<span style="color: #008000;">.</span><span style="color: #0000FF;">content</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span>
                    db<span style="color: #008000;">.</span><span style="color: #0000FF;">content</span><span style="color: #008000;">.</span><span style="color: #0000FF;">RemoveAt</span><span style="color: #008000;">&#40;</span>i<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                    db<span style="color: #008000;">.</span><span style="color: #0000FF;">content</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Insert</span><span style="color: #008000;">&#40;</span>i <span style="color: #008000;">+</span> <span style="color: #FF0000;">1</span>, item<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
                <span style="color: #008000;">&#125;</span>
            <span style="color: #008000;">&#125;</span>
            <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>GUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">Button</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Remove&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                db<span style="color: #008000;">.</span><span style="color: #0000FF;">content</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Remove</span><span style="color: #008000;">&#40;</span>db<span style="color: #008000;">.</span><span style="color: #0000FF;">content</span><span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #008000;">&#125;</span>
            <span style="color: #008080; font-style: italic;">//db.SetDirty();</span>
            EditorUtility<span style="color: #008000;">.</span><span style="color: #0000FF;">SetDirty</span><span style="color: #008000;">&#40;</span>dbaseAsset<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            EditorGUILayout<span style="color: #008000;">.</span><span style="color: #0000FF;">EndHorizontal</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">void</span> UpdateMyAssetLocation<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        dbaseAsset <span style="color: #008000;">=</span> AssetDatabase<span style="color: #008000;">.</span><span style="color: #0000FF;">LoadAssetAtPath</span><span style="color: #008000;">&#40;</span>DBLocation, <span style="color: #008000;">typeof</span><span style="color: #008000;">&#40;</span>CameraLocationHolder<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        CameraLocationHolder CameraLocationDB <span style="color: #008000;">=</span> <span style="color: #008000;">&#40;</span>CameraLocationHolder<span style="color: #008000;">&#41;</span>dbaseAsset<span style="color: #008000;">;</span>
        db <span style="color: #008000;">=</span> CameraLocationDB<span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">void</span> CreateMyAsset<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        List<span style="color: #008000;">&lt;</span>CameraLocation<span style="color: #008000;">&gt;</span> content <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> List<span style="color: #008000;">&lt;</span>CameraLocation<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        CameraLocationHolder asset <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> CameraLocationHolder<span style="color: #008000;">&#40;</span>content<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>  <span style="color: #008080; font-style: italic;">//scriptable object </span>
        AssetDatabase<span style="color: #008000;">.</span><span style="color: #0000FF;">CreateAsset</span><span style="color: #008000;">&#40;</span>asset, <span style="color: #666666;">&quot;CameraLocationDatabase&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        AssetDatabase<span style="color: #008000;">.</span><span style="color: #0000FF;">SaveAssets</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        EditorUtility<span style="color: #008000;">.</span><span style="color: #0000FF;">FocusProjectWindow</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        Selection<span style="color: #008000;">.</span><span style="color: #0000FF;">activeObject</span> <span style="color: #008000;">=</span> asset<span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2010/10/unity-toying-with-scriptable-objects/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Interactive Lab Demo</title>
		<link>http://buchhofer.com/2010/02/interactive-lab-demo/</link>
		<comments>http://buchhofer.com/2010/02/interactive-lab-demo/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 12:56:28 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[Unity3D]]></category>
		<category><![CDATA[editorscripting]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=228</guid>
		<description><![CDATA[Here is another Architectural interactive test project. This time, a laboratory setup, a tighter interior space, set up without any real lighting (1 direct light + ambient colors + Ambient Occlusion currently) created with the goal of customizing the unity asset pipeline to be a little more friendly for architectural work. First, the Project, roughly [...]]]></description>
			<content:encoded><![CDATA[<p>Here is another Architectural interactive test project. This time, a laboratory setup, a tighter interior space, set up without any real lighting (1 direct light + ambient colors + Ambient Occlusion currently) created with the goal of customizing the unity asset pipeline to be a little more friendly for architectural work.</p>
<p>First, the Project, roughly 6mb, clicking on the screenshot will open the project in a new window. its another quickly evolving work in progress, Warning: No consideration has been taken currently for speed on older hardware, ~100fps on an 8800GT was the target.<br />
<a title="3d demo" href="http://www.buchhofer.com/upload/files/labs/lab/default.html" target="_blank"><img src="http://www.buchhofer.com/upload/files/labs/lab/labshot_210_01.jpg" alt="Screenshot" /></a></p>
<p>Some findings and random ramblings on arch and interactive 3d:</p>
<ul>
<li>unlike with general gaming, with architecture you are in most cases going to already have a model provided in some form or another. odds are, the model is going to be pretty horrific, as arch models tend to be built for the purpose of either:
<ul>
<li>A: Viz&#8230; the Viz model will require a lot of cleanup in terms of material work, and stripping down a lot of the high poly fluff required for rendering.</li>
<li> B: Design Development&#8230; the DD model is normally plagued more by bad modeling conventions, no naming, poor materials, materials not fully assigned, or mangled geometry due to being stretched and squished for days on end to keep up with a design.</li>
</ul>
</li>
<li>you will probably still want to break up the file by some logical layer type system, by default this will land you with a unique material for each material of each fbx file</li>
<li>a small AssetPostProcessor script that works on the OnMaterialAssign function can make the process of sharing materials across multiple FBX files much easier to handle, with the added bonus of being able to easily progressively build up a library of reusable realtime materials</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">&nbsp;
<span style="color: #008080; font-style: italic;">//file: MaterialsPostProcessor.cs</span>
<span style="color: #008080; font-style: italic;">//goal: Share a library of materials across different assets based on the name of material supplied in the FBX file</span>
<span style="color: #008080; font-style: italic;">// Dave Buchhofer - 02.10.2010</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">UnityEngine</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">UnityEditor</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.Collections</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> MaterialsPostProcessor <span style="color: #008000;">:</span> AssetPostprocessor
<span style="color: #008000;">&#123;</span>
    Material OnAssignMaterialModel <span style="color: #008000;">&#40;</span>Material material, Renderer renderer<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #008080; font-style: italic;">//The path where you keep your &quot;Standard&quot; library of materials</span>
        <span style="color: #6666cc; font-weight: bold;">string</span> StandardMatPath <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Assets/DMGStandardMaterials/&quot;</span> <span style="color: #008000;">+</span> material<span style="color: #008000;">.</span><span style="color: #0000FF;">name</span> <span style="color: #008000;">+</span> <span style="color: #666666;">&quot;.mat&quot;</span><span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #008080; font-style: italic;">//the path where you want to keep your &quot;temp&quot; materials, that weren't found above</span>
        <span style="color: #008080; font-style: italic;">//So you have a logical place to look for materials that need editing and tweaking for realtime work.</span>
        <span style="color: #6666cc; font-weight: bold;">string</span> TemporaryMatPath <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Assets/Mesh/Materials/&quot;</span> <span style="color: #008000;">+</span> material<span style="color: #008000;">.</span><span style="color: #0000FF;">name</span> <span style="color: #008000;">+</span> <span style="color: #666666;">&quot;.mat&quot;</span><span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #008080; font-style: italic;">//Check for it in the standard </span>
        <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>AssetDatabase<span style="color: #008000;">.</span><span style="color: #0000FF;">LoadAssetAtPath</span><span style="color: #008000;">&#40;</span>StandardMatPath, <span style="color: #008000;">typeof</span><span style="color: #008000;">&#40;</span>Material<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            Debug<span style="color: #008000;">.</span><span style="color: #0000FF;">Log</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;FOUND: &quot;</span> <span style="color: #008000;">+</span> StandardMatPath<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #008000;">&#40;</span>Material<span style="color: #008000;">&#41;</span>AssetDatabase<span style="color: #008000;">.</span><span style="color: #0000FF;">LoadAssetAtPath</span><span style="color: #008000;">&#40;</span>StandardMatPath, <span style="color: #008000;">typeof</span><span style="color: #008000;">&#40;</span>Material<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #008080; font-style: italic;">//Else check to see if we've already built one in the temp path</span>
        <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>AssetDatabase<span style="color: #008000;">.</span><span style="color: #0000FF;">LoadAssetAtPath</span><span style="color: #008000;">&#40;</span>TemporaryMatPath, <span style="color: #008000;">typeof</span><span style="color: #008000;">&#40;</span>Material<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            Debug<span style="color: #008000;">.</span><span style="color: #0000FF;">Log</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;FOUND temp: &quot;</span> <span style="color: #008000;">+</span> TemporaryMatPath<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #008000;">&#40;</span>Material<span style="color: #008000;">&#41;</span>AssetDatabase<span style="color: #008000;">.</span><span style="color: #0000FF;">LoadAssetAtPath</span><span style="color: #008000;">&#40;</span>TemporaryMatPath, <span style="color: #008000;">typeof</span><span style="color: #008000;">&#40;</span>Material<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
        <span style="color: #008080; font-style: italic;">//Or create it?</span>
        material<span style="color: #008000;">.</span><span style="color: #0000FF;">shader</span> <span style="color: #008000;">=</span> Shader<span style="color: #008000;">.</span><span style="color: #0000FF;">Find</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Diffuse&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        AssetDatabase<span style="color: #008000;">.</span><span style="color: #0000FF;">CreateAsset</span><span style="color: #008000;">&#40;</span>material, TemporaryMatPath<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        Debug<span style="color: #008000;">.</span><span style="color: #0000FF;">Log</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;CREATED temp: &quot;</span> <span style="color: #008000;">+</span> TemporaryMatPath<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF; font-weight: bold;">return</span> material<span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>also check out the previous arch experiment a few posts down:<a href="http://buchhofer.com/?p=216"> Basketball Arena</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2010/02/interactive-lab-demo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Architectural Interactive Demo</title>
		<link>http://buchhofer.com/2009/12/architectural-interactive-demo/</link>
		<comments>http://buchhofer.com/2009/12/architectural-interactive-demo/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 06:11:09 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[Unity3D]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=216</guid>
		<description><![CDATA[Here&#8217;s a current work in progress Interactive Architectural type demo of a college Basketball Arena it hasn&#8217;t been terribly optimized yet, so it requires a fairly hefty video card to play smoothly, that said, it runs at ~150fps on my 8800GT here, but at 5fps on my parents 3 year old dell. So your mileage may vary while I [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a current work in progress Interactive Architectural type demo of a college Basketball Arena</p>
<p>it hasn&#8217;t been terribly optimized yet, so it requires a fairly hefty video card to play smoothly, that said, it runs at ~150fps on my 8800GT here, but at 5fps on my parents 3 year old dell. So your mileage may vary while I experiment!</p>
<p><a href="http://www.buchhofer.com/upload/files/labs/drexel/">http://www.buchhofer.com/upload/files/labs/drexel/</a> ~5mb</p>
<p><a href="http://buchhofer.com/wp-content/uploads/2009/12/basketball_wip_screen.jpg"><img style="display: block; margin-left: auto; margin-right: auto; border: 0px initial initial;" title="screenshot" src="http://buchhofer.com/wp-content/uploads/2009/12/basketball_wip_screen-300x205.jpg" alt="screenshot" width="300" height="205" /></a></p>
<p>Everything has been done with ingame lighting and shaders, nothing is baked, and was meant as a test specifically for that purpose, to see how far it can be pushed before requiring Texture Baking on a fair sized scene. (With the aim to be able to quickly iterate models in earlier phases of design without having to unwrap and bake!)</p>
<p>To the game! There is a quality button on the lower left that toggles between various settings of Anti Aliasing, Shader Quality, Shadow Quality.. so you can tailor it to a point to your hardware.</p>
<p>On the upper left is a selection of preset Camera views, clicking and dragging the mouse button in the viewport anywhere will &#8216;look&#8217; the camera from the preset view.</p>
<p>On the upper right is some fun stuff, toggles for Ambient occlusion, Bloom shaders (glow) and a couple of sliders to adjust those primary values</p>
<p>there is also an alternate Daylighting scheme, if you do this i suggest toggling the roof, then you can adjust the time of day with the &#8216;TimeOfDay&#8217; slider, and the ambient lighting with the ambient.</p>
<p>the rest are just toggles to show/hide various layers of objects</p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2009/12/architectural-interactive-demo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Revit-&gt;FBX-&gt;Max, Collapsing large numbers of meshes</title>
		<link>http://buchhofer.com/2009/03/revit-fbx-max-collapsing-large-numbers-of-meshes/</link>
		<comments>http://buchhofer.com/2009/03/revit-fbx-max-collapsing-large-numbers-of-meshes/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 19:48:17 +0000</pubDate>
		<dc:creator>Dave Buchhofer</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Batching]]></category>
		<category><![CDATA[maxscript]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[utility]]></category>

		<guid isPermaLink="false">http://buchhofer.com/?p=187</guid>
		<description><![CDATA[Well, lets just say that dealing with large Revit files can get a little ugly for visualization purposes to say the least. there are several fundamental issues currently, ranging from workflows in building usable familys inside of revit, to dealing with the geometry after the fact for rendering. I had the pleasure to again deal [...]]]></description>
			<content:encoded><![CDATA[<p>Well, lets just say that dealing with large Revit files can get a little ugly for visualization purposes to say the least. there are several fundamental issues currently, ranging from workflows in building usable familys inside of revit, to dealing with the geometry after the fact for rendering.</p>
<p>I had the pleasure to again deal with a fairly large Revit model. It only weighed in at about 300mb to start! for working on final renderings thats all well and good, and not a real issue to deal with, but for mid project progress renders it can get a bit painful doing a lot of the deconstruction needed to make it useful to work in in 3dsMax. spending several hours &#8216;cleaning&#8217; a revit model in max so that you can get any sort of rendering done is lets say, a bit depressing, when you know you&#8217;ll have to do the same process again in 2 weeks.</p>
<p>all that said, I started looking for some solutions to one small facet of the problem, and found some <a href="http://www.keyframesandcode.com/code/development/maxscript/time-stamper-meshopsattach-case-study/">good case study testing </a>on efficiently attaching a ton of meshes done by <a href="http://www.keyframesandcode.com/code/">Dave Stewart</a> and also a fair number of tips from the <a href="http://forums.cgsociety.org/showthread.php?f=98&amp;t=635477">Maxscript crew at CGTalk</a></p>
<p>So I did a  small adaptation of Dave&#8217;s attachment script above, which can be found here: <a href="http://www.buchhofer.com/upload/files/Scripts/CollapseSelected-inParts5.ms">CollapseSelected-inParts5.ms</a> Its not pretty, but we&#8217;ll get there soon enough.</p>
<p>It takes your current selection, and simplifies the number of objects by the square root (Dave&#8217;s tested optimal amount for speed collapsing!) its a work in progress, and i figure i&#8217;ll take this, combined with set of other tools for collapsing either by Selected Material, Similar Objects+Instances, Layer, and some name filtering. that should take the day long revit cleanup jobs and compress them down to an hour or so.</p>
<p>Yay.</p>
]]></content:encoded>
			<wfw:commentRss>http://buchhofer.com/2009/03/revit-fbx-max-collapsing-large-numbers-of-meshes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

