<?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>Studio4D &#187; Bentley GenerativeComponents</title>
	<atom:link href="https://studio4d.nl/tag/bentley-generativecomponents/feed/" rel="self" type="application/rss+xml" />
	<link>https://studio4d.nl</link>
	<description>Experts in CAD/CAM-software</description>
	<lastBuildDate>Tue, 09 Dec 2014 17:14:45 +0000</lastBuildDate>
	<language>nl-NL</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.41</generator>
	<item>
		<title>GenerativeComponents tutorial</title>
		<link>https://studio4d.nl/generativecomponents-tutorial/</link>
		<comments>https://studio4d.nl/generativecomponents-tutorial/#comments</comments>
		<pubDate>Sun, 07 Oct 2007 17:54:25 +0000</pubDate>
		<dc:creator><![CDATA[Johan Vreede]]></dc:creator>
				<category><![CDATA[Bentley Systems]]></category>
		<category><![CDATA[CAD-magazine publicatie]]></category>
		<category><![CDATA[CAD-software]]></category>
		<category><![CDATA[Bentley GenerativeComponents]]></category>

		<guid isPermaLink="false">http://studio4d.nl/?p=5163</guid>
		<description><![CDATA[Inleiding Deze beschrijving van het aanmaken van een transactionscript voor GenerativeComponents is een vrije interpretatie op basis van een voorbeeldscript van Axel Kilian, een van de “early adapters” van GenerativeComponents. Het bevat een stapsgewijze uitleg van uit te voeren handelingen en aandachtspunten daarbij. De tekst is gebaseerd op het gebruik van GenerativeComponents.software versie 08.09.04.73 met [&#8230;]]]></description>
				<content:encoded><![CDATA[<h2>Inleiding</h2>
<p>Deze beschrijving van het aanmaken van een transactionscript voor GenerativeComponents is een vrije interpretatie op basis van een voorbeeldscript van Axel Kilian, een van de “early adapters” van GenerativeComponents.<br />
Het bevat een stapsgewijze uitleg van uit te voeren handelingen en aandachtspunten daarbij. De tekst is gebaseerd op het gebruik van GenerativeComponents.software versie 08.09.04.73 met MicroStation 08.09.04.51 en Triforma.</p>
<p>Uiteraard kan vaardigheid in het gebruik van GenerativeComponents alleen bereikt worden door zelf veel uit te proberen. Niet alle mogelijkheden van de gebruikte commando’s en features zijn dan ook in deze tekst opgenomen. Daarvoor verwijzen wij naar de helpbestanden van GenerativeComponents en de voorbeeldscripts die door Bentley aangeboden worden.</p>
<h2>De opdracht en de basispunten</h2>
<p>De bedoeling is een eenvoudig bouwwerk te creëren, met een min of meer rechthoekige plattegrond, waarbij een van de lange gevels zowel horizontaal als verticaal gekromd is.<br />
Bovendien moeten zowel de hoogte van het bouwwerk als de kromming van de gevel traploos variabel zijn.<br />
De basis van een model van is de toepassing van een aantal basispunten om de vorm te sturen en een aantal punten die daarvan afgeleid zijn. Voor deze opgave zijn dus deze basispunten nodig en zullen een aantal afgeleide vormen en puntenseries gebruikt worden. Allereerst zijn een aantal punten in het grondvlak nodig. Voor de gekromde gevel worden 5 punten op zigzagwijze geplaatst. Deze zullen de basis vormen van de Bspline die de vorm van de gevel bepaalt. Twee andere punten bepalen de (rechte) andere lange gevel en daarmee zijn ook de (rechte) kopgevels bepaald. Tot slot bepalen drie andere punten de hoogte van het bouwwerk en de uitstulping van de gekromde gevel.<br />
Punten 8 en 9 behoren precies boven punten 1 en 6 te liggen: deze geven de hoogte van het bouwwerk aan en worden in dit geval even hoog gedefinieerd. Punt 10 ligt precies op halve hoogte tussen punt 1 en punt 9 en ligt daarmee vast, maar het punt moet wel naar binnen en buiten verplaatst kunnen worden zodat de verticale bolling van de gevel variabel blijft.</p>
<h2>De werkomgeving</h2>
<p>Het scherm van GenerativeComponents laat zowel de logische relaties in het model zien als de grafische vorm die dit opgeleverd heeft. Het is aan te bevelen om zowel de Symbolic View als de Graphic View in beeld te hebben. Daar overheen ligt dan het menuvenster van GenerativeComponents. Het zal duidelijk zijn dat een dubbelscherm oplossing hier erg prettig is.</p>
<h2>Starten</h2>
<p>Om te starten met onze opgave dienen we eerst een werkbestand aan te maken. Start de GenerativeComponents software en maak een nieuwe Designfile aan. Gebruik GCSeed.dgn als seedfile als deze beschikbaar is, maar een willekeurige andere seedfile kan ook.<br />
Als je deze file opent zal GenerativeComponents geladen worden. NB:De dgn-file wordt automatisch geleegd!<br />
Vervolgens moet een transactiescript geladen worden of een nieuw script aangemaakt worden. Gebruik de knop en geef het script een logische naam. Let op waar het script terecht komt, meestal in de map C:\Documents and Settings\All users\Application Data\bentley\Workspace\GenerativeComponents\Transaction Files</p>
<p>Elke keer als het transactiescript opgeslagen wordt, wordt een “stap” in het script toegevoegd, waarin de laatste wijzigingen in het model opgenomen zijn (dit kunnen dus meerdere features en/of handelingen zijn) Geef zo’n transactie-stap een logisch naam zodat duidelijk is wat de bedoeling is</p>
<p>Nu kunnen we beginnen met het modelleren. Zoals gezegd moeten eerst de basispunten ingebracht worden.</p>
<p>Het plaatsen van punten in GenerativeComponents gebeurt met de knop CreatePoint (geel vierkantje met streep erdoorheen)<br />
Een punt in het 3D-model ziet er als volgt uit. De stip-uiteinden geven de vrijheidsgraden aan, waarover later meer.</p>
<p>De eerste vijf punten kunnen willekeurig &#8211; bijvoorbeeld in zigzagvorm – in het veld geklikt worden. Ze komen automatisch op hoogte 0 terecht. Punten 6 en 7 kunnen eveneens willekeurig ingegeven worden op enige afstand van de overige 5 punten.<br />
De laatste 3 punten zijn wat bewerkelijker. In dit geval zorgen we dat bepaalde coördinaten van deze punten gelijk zijn aan ander coördinaten. Zo dienen de X- en Y- coördinaat van de punten 8 en 9 gelijkte zijn aan die van de punten 6 en 1. De z- waarde is vrij, met dien verstande dat de z-waarde van punt 9 gelijk is aan de z-waarde van punt 8. Tot slot punt 10. Daarvan is de x-waarde gelijk aan de x-waarde van punt 1, is de y waarde vrij en is de z-waarde gelijk aan de helft van de z-waarde van punt 9.</p>
<p>Het wijzigen van gegevens van een punt gebeurt door de knop “Edit Feature” te gebruiken en het betreffende punt aan de klikken. De (nieuwe) X-, Y- of Z- waarde kan dan ingevuld worden en de vrijheid in elke richting kan beperkt worden (free/lock) Verwijder de tekst en vul voor de nieuwe waarde het overeenkomstige deel in van het punt waaraan dit punt gerelateerd moet zijn, bijvoorbeeld “plane01.X” (dit is de x-coördinaat van punt1)</p>
<p>De tweede stap is het creëren van basisdoorsneden met behulp van deze basispunten.<br />
Allereerst een bspline op basis van de punten in het grondvlak.<br />
Je doet dit door een nieuwe Feature aan te maken. Kies het feauter-ikoon en kies vervolgens in de lijst voor BsplineCurve. Er zijn een aantal mogelijkheden om zo’n bspline te maken. In dit geval kiezen we voor ByPoints.<br />
Kies het onderdeel” Points: IPoint[] (repl)“en beweeg met de cursor en ctrl-toets ingedrukt over de punten. Klik als het bedoelde punt oplicht (met een flyout tekst). De naam van dat punt verschijnt nu in het invulveld. Zorg dat alle bedoelde punten (in ons geval 1 t/m 5) geselecteerd zijn</p>
<p>De tweede bspline is bedoeld voor de verticale doorsnede van de gevel. Maak opnieuw op dezelfde manier een BsplineCurve-Feature aan en gebruik de punten 1, 10 en 9. Punt 9 is verplaatsbaar naar boven en beneden en naar voren en achteren en regelt zo de verticale kromming van de gevel.</p>
<p>Vervolgens wordt deze laatste curve gekopieerd naar alle secundaire punten.<br />
Kopiëren gebeurt met het commando “Copy Feature”. Daartoe moet aangegeven worden wat gekopiëerd moet worden, en van welk basispunt en doelpunt(en) gebruik gemaakt moet worden.</p>
<p>Dit is een van de krachtige functies van GenerativeComponents. Door een punt van de hele groep aan te wijzen en de index te verwijderen wordt duidelijk gemaakt dat de actie voor alle punten herhaald moet worden. Men kan nu de vormvrijheid al testen door de punten 8 en 9 te bewegen.</p>
<p>De gekleurde lijnen en punten bij een PointSymbol in het model geven de verplaatsingsvrijheden aan. De magenta kleur is bedoeld voor verticale bewegingen, de rode kleur voor bewegingen in x-richting en de groene kleur voor bewegingen in y-richting. De gekleurde lijnen die een winkelhaak vormen geven de verplaatsingsmogelijkheden in hun respectievelijke vlak aan (XY, YZ, of XZ-richting) Dor het punt hier aan te klikken kan men de bewegingsrichting sturen. Als een punt een bepaalde kleur niet heeft betekent dat, dat bewegingsvrijheid in die richting niet toegestaan is. Secundaire punten hebben deze kleurcodering niet en zijn dus niet vrij beweegbaar.</p>
<p>Tot slot in deze stap een lijn tussen punten 6 en 8, en een lijnstring tussen 1, 6, 7 en 5. Maak weer een nieuwe feature aan. Kies voor Line of LineString en de methode ByPoints.<br />
Uiteindelijk wordt deze curve omhoog gekopieerd zodat dezelfde curve op hoogte door punt 8 gaat Het punt 8 is verticaal vrij verplaatsbaar en regelt zo de hoogte van de gevel<br />
Het raamwerk is nu klaar. We kunnen nu de gevel gaan modelleren.</p>
<p>In de volgende stap worden nog enkele extra verticale secundaire punten toegevoegd en wordt op basis van alle secundaire punten een vlakkenfiguur (bspline surface) gemaakt.<br />
Deze vlakkenfiguur dient om de voorgevel een primaire vorm te geven die later meer in detail ingevuld kan worden</p>
<p>Uiteraard kunnen ook de rechte gevels van vlakken voorzien worden. Daartoe moeten opnieuw lijnen en secundaire punten toegevoegd worden, waarna weer vlakken (in dit geval polygons) gegenereerd worden.</p>
<p>In de volgende stap worden een aantal grafische elementen tijdelijk onzichtbaar gemaakt met het commando “Toggle Visibility”</p>
<p>Met de knop ToggleVisibility kunnen bepaalde delen van het model (tijdelijk) onzichtbaar gemaakt worden. Dit kan het overzicht van het model en het selecteren van elementen in het model sterk verbeteren. De onderdelen die onzichtbaar worden krijgen in het symbolisch model een grijze kleur. Door op de grijze symbooldelen te klikken kan de zichtbaarheid weer aangezet worden.</p>
<p>In de volgende stap in het script wordt een nieuw element gecreëerd dat als zelfstandig GC component gebruikt zal gaan worden. Daarvoor worden 4 nieuwe punten geplaatst en wordt een vlak met de vier hoekpunten gedefinieerd en worden gekruist buiselementen geplaatst per twee hoekpunten. Op deze manier ontstaat een element dat als repeterend gevelelement gebruikt kan worden.</p>
<p>Een belangrijke stap is het genereren van een eigen GC feature uit de zojuist getekende geometrie. Nadat men het commando “Generate Feature Type” gestart heeft moet men aangeven welke onderdelen van deze geometrie als input beschouwd wordt en welke als output. Met andere woorden op basis van welke gegevens moet het nieuwe element geplaatst worden en wat moet van dat nieuwe element zichtbaar zijn. In dit geval zijn de vier hoekpunteninput en zijn het vlak en de buizen output let er op dat bij de input de optie “Replicatable” moet aanstaan. Desgewenst kan men bij de output enkele delen onzichtbaar maken door deze als “construction” aan te duiden.</p>
<p>Na OK is het nieuwe element als GC Feauture beschikbaar. Plaatsen van het nieuwe element gebeurt door het feauture te kiezen en de plaatsingsmethode “by default” te kiezen. Vervolgens moeten de punten die gebruikt moeten worden als input geselecteerd worden (in dit geval point02)<br />
De beschrijving van de nieuwe feature is als CS-bestand (LOL1.CS) nu aanwezig in de map .. GC_Default\Features. Let op: bij herhalen van dit script zal dus opnieuw getracht worden een component aan te maken met dezelfde naam. Dat kan uiteraard niet omdat deze al bestaat: Schakel deze stap in het script zonodig uit maar zorg wel dat het component geladen is (via Tools -&gt; Manage loaded feature types)</p>
<p>In de laatste stap kan nu dit nieuwe feature toegepast worden in ons eigen model</p>
<h2>Variaties in het model</h2>
<p>Om de totale vorm van het model te kunnen variëren zijn controlepunten ingebracht in het model. Door deze punten te verplaatsen zal de vorm van het model veranderen.<br />
Kies de knop Move Feature en klik een van de controlepunten, bijvoorbeeld een van de basispunten van de bsplinevorm van de voorgevel of het punt in de zijgevel waarmee de bolling van de voorgevel gestuurd kan worden.<br />
(Hier blijkt dat de rekenkracht van de PC aangesproken wordt en ook de snelheid waarmee de grafische processor kan reageren.)<br />
Om de modelvorm ook parametrisch te kunnen behandelen zijn parameters nodig.(variabelen), bijvoorbeeld voor de verdiepingshoogte, het aantal verdiepingen of de verdeling in de gevel (aantal tussenpunten)</p>
<p>Kies uit het pulldownmenu Graph-&gt;Manage Graph Variables. Met Add voeg je uiteraard en variabele toe en kun je een beginwaarde invullen.<br />
Door rechtsonder ‘Limit value to range’ te kiezen kun je een schuifbalk invoegen die je de mogelijkheid geeft de waarde “dynamisch” aan te passen.</p>
<p>Let op dat het gebruik van de getalvariabele in een transactie betekent dat die variabele dan bekend moet zijn. Het instellen van de variabelen dient dus in principe aan het begin van het totale script te gebeuren.</p>
<h2>Het GC-model en de MicroStation-tekening</h2>
<p>Via het File menu van GenerativeComponents kunnen tekeningen als MicroStation tekening geïmporteerd of geëxporteerd worden, of kan een tekening als referencefile gekoppeld worden. Dit is uiteraard erg handig wanner een basisvorm van het model al beschikbaar is.</p>
<h2>Gegevens uit het model halen</h2>
<p>Met de speciale DataExporter is het bijvoorbeeld mogelijk de coördinaten van alle punten of de maten van alle elementen of de aantallen van deze elementen en hoeveel maal dezelfde vorm voorkomt op te slaan in ASCII-bestanden, spreadsheet-bestanden of databases.<br />
In dit geval wordt gekozen om de coördinaten van alle point02 op te slaan in een Access-bestand GC_Points_database.mdb. De feature maakt zelf een tabel Table1 aan en scrijft daarin de coördinaten weg.</p>
]]></content:encoded>
			<wfw:commentRss>https://studio4d.nl/generativecomponents-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GenerativeComponents – concreet voorbeeld</title>
		<link>https://studio4d.nl/generativecomponents-concreet-voorbeeld/</link>
		<comments>https://studio4d.nl/generativecomponents-concreet-voorbeeld/#comments</comments>
		<pubDate>Sun, 07 Oct 2007 17:49:26 +0000</pubDate>
		<dc:creator><![CDATA[Johan Vreede]]></dc:creator>
				<category><![CDATA[Bentley Systems]]></category>
		<category><![CDATA[CAD-magazine publicatie]]></category>
		<category><![CDATA[CAD-software]]></category>
		<category><![CDATA[Bentley GenerativeComponents]]></category>

		<guid isPermaLink="false">http://studio4d.nl/?p=5160</guid>
		<description><![CDATA[Inleiding Al eerder heb ik in een artikel in CADmagazine de globale werking van GenerativeComponents beschreven. Toch is de werking van GenerativeComponents het beste te beschrijven aan de hand van een concreet voorbeeld. In dit artikel volgt dan ook de beschrijving van een uitgewerkt voorbeeld. Meer gedetailleerde instructies en aanwijzingen – om zelf met de [&#8230;]]]></description>
				<content:encoded><![CDATA[<h2>Inleiding</h2>
<p>Al eerder heb ik in een artikel in CADmagazine de globale werking van GenerativeComponents beschreven. Toch is de werking van GenerativeComponents het beste te beschrijven aan de hand van een concreet voorbeeld. In dit artikel volgt dan ook de beschrijving van een uitgewerkt voorbeeld. Meer gedetailleerde instructies en aanwijzingen – om zelf met de software aan de gang te gaan &#8211; zijn te vinden op www.cadmagazine.nl</p>
<h2>Wat is GenerativeComponents?</h2>
<p>Om nog even kort terug te grijpen op het vorige artikel: GenerativeComponents is een belangrijke nieuwe ontwikkeling van Bentley op het gebied van …<br />
Een groep vooraanstaande ontwerpers van bekende Architecten- en Ingenieursbureaus onder leiding van Robert Aish, Bentley’s Director of Research, houdt zich bezig met de ontwikkeling van ontwerpgereedschap dat het mogelijk moet maken de ontwerpvoorwaarden te beschrijven en variaties te onderzoeken. Vastgelegd worden daarbij enerzijds de ontwerpregels die de ontwerper in zijn ontwerp van belang vindt en anderzijds de relaties die tussen structuuronderdelen in het bouwwerk bestaan. Bentley en Robert Aish hebben deze techniek de naam GenerativeComponents gegeven.</p>
<p>Met GenerativeComponents wordt 3D-geometrie parametrisch ingebracht in een MicroStation DGN. Door middel van het invoeren van een aantal basisparameters en het combineren van deze parameters met vooraf gedefinieerde gedragsregels, ontstaan zogeheten ‘features’, die onderling weer gecombineerd kunnen worden en waarbij aan de combinaties weer nieuwe gedragregels gekoppeld kunnen worden.</p>
<p>Het 3D-model is uiteindelijk opgebouwd uit een aantal componenten die met behulp van zogeheten’ transacties’ tot stand gekomen zijn.<br />
Het model heeft dus een soort logische hiërarchie, die globaal als volgt omschreven kan worden:</p>
<ul>
<li>Het model, dat het resultaat is van alle transacties</li>
<li>De transacties die de afzonderlijke stappen in het ontwerpproces weergeven</li>
<li>De stappen, een verzameling van ‘features’ die tezamen het model vormen</li>
<li>De relaties tussen de verschillende features en de ingevoerde parameters</li>
</ul>
<p>De interface waarmee de GenerativeComponents software werkt kent een symbolic view (Symbolic Dependancy Graph) en een 3D model view. Met behulp van de Symbolic View is het mogelijk de relaties tussen de componenten in beeld te brengen en eventueel te wijzigen. Wijzigingen hebben in de regel tot gevolg dat het transactionscript opnieuw “afgespeeld” moet worden (vanaf het begin doorlopen).</p>
<p>De opzet van een model voor GenerativeComponents is gebaseerd op zogeheten TransactionScripts. Dit betekent dat alle handelingen en bewerkingen geregistreerd en opgeslagen worden. Dit betekent ook meteen dat de bewerkingen “teruggedraaid” kunnen worden of later “opnieuw afgespeeld”.</p>
<p>In onderstaand voorbeeld worden enkele van de mogelijkheden toegepast. Dit eenvoudig model is opgezet naar voorbeeld van een van de vele voorbeeldscripts die door Bentley en door geïnteresseerde gebruikers (“early adapters”) gemaakt zijn, in dit geval van Axel Kilian.</p>
<h2>De opdracht en de basispunten</h2>
<p>De bedoeling is een eenvoudig bouwwerk te creëren, met een min of meer rechthoekige plattegrond, waarbij een van de lange gevels zowel horizontaal als verticaal gekromd is.<br />
Bovendien moeten zowel de hoogte van het bouwwerk als de kromming van de gevel traploos variabel zijn.<br />
De basis van een model van is de toepassing van een aantal basispunten om de vorm te sturen en een aantal punten die daarvan afgeleid zijn. Voor deze opgave zijn dus deze basispunten nodig en zullen een aantal afgeleide vormen en puntenseries gebruikt worden. Allereerst zijn een aantal punten in het grondvlak nodig. Voor de gekromde gevel worden 5 punten op zigzagwijze geplaatst. Deze zullen de basis vormen van de Bspline die de vorm van de gevel bepaalt. Twee andere punten bepalen de (rechte) andere lange gevel en daarmee zijn ook de (rechte) kopgevels bepaald. Tot slot bepalen drie andere punten de hoogte van het bouwwerk en de uitstulping van de gekromde gevel.<br />
Punten 8 en 9 behoren precies boven punten 1 en 6 te liggen: deze geven de hoogte van het bouwwerk aan en worden in dit geval even hoog gedefinieerd. Punt 10 ligt precies op halve hoogte tussen punt 1 en punt 9 en ligt daarmee vast, maar het punt moet wel naar binnen en buiten verplaatst kunnen worden zodat de verticale bolling van de gevel variabel blijft.</p>
<p>Het is dus erg belangrijk goed vast te leggen hoe de vorm gestuurd wordt. In dit geval is voor een 9-tal basispunten gekozen en in de verdere uitwerking zal blijken dat tevens voor een aantal getalparameters gekozen is. Het is overigens wel degelijk mogelijk achteraf stuurelementen toe te voegen (getalvariabelen zijn eenvoudiger dan controlepunten) maar dit betekent in de regel dat het gehele transactiescript opnieuw doorlopen moet worden.</p>
<p>Uiteindelijk is het de bedoeling dat de gevel opgebouwd wordt uit gevelelementen. Daarin zit de kracht van GenerativeComponents. Het is mogelijk een eigen component aan te maken dat toegepast kan worden op alle daarvoor aangewezen plekken.</p>
<h2>De verschillende stappen in het transactionscript</h2>
<p>Het model wordt in een aantal opeenvolgende stappen opgebouwd</p>
<ul>
<li>In stap 1 wordt een tiental basispunten aangeven, waarna een bspline door de punten 1 t/m 5 de gekromde basisvorm van de voorgevel oplevert. Langs deze bspline worden 10 secundaire punten gegenereerd zijn die nodig zijn om de verdeling van de gevel vorm te kunnen geven. Nadat deze grondvorm gekopieerd is naar de maximale hoogte wordt een tweede bspline gegenereerd op basis van 3 verticale punten. Deze vericale bspline wordt gekopieerd langs alle secundaire punten van de horizontale bspline. Dit is een van de krachtige functies van GenerativeComponents. Door een punt van de hele groep aan te wijzen en de index te verwijderen wordt duidelijk gemaakt dat de actie voor alle punten herhaald moet worden. Men kan nu de vormvrijheid al testen door de punten 8 en 9 te bewegen. Tot slot wordt in deze stap een rechthoekige grondvorm met een linestring bepaald.</li>
<li>In stap 2 van het script wordt de vormvrijheid getest door basispunten te verplaatsen.</li>
<li>In stap 3 worden 20 secundaire punten langs de verticale curven toegevoegd, en op basis van de verticale en horizontale hulppunten wordt een bsplinesurface gegenereerd.</li>
<li>In stap 4 worden zijgevel en bovenvlak gegeneerd met een verticale lijn die hetzelfde aantal secundaire punten bevat als de verticale curve.</li>
<li>In stap 5 wordt de zichtbaarheid van hulppunten tijdelijk uitgeschakeld.</li>
<li>In stap 6 in het script wordt een nieuw element gecreëerd dat als zelfstandig GC component gebruikt zal gaan worden. Dit basiselement (een zelfgemaakte component dus) zal als invulling voor de gevel gebruik worden.</li>
<li>Stap 7 is een belangrijke stap omdat hier een eigen GC feature uit de zojuist getekende geometrie gegenereerd wordt. Hier wordt ook vastgelegd welke onderdelen van deze geometrie als input beschouwd wordt en welke als output. De setting “replicatable” is hierbij van groot belang.</li>
<li>Tot slot wordt het zelf gecreëerde element in de gevel ingevoegd. Daarbij zal de geometrie van het element zich aanpassen aan de stuurelementen (punten of vlakken) die in de beschrijving van het element benoemd zijn.</li>
</ul>
<h2>Variaties in het model</h2>
<p>Uiteindelijk is het natuurlijk de bedoeling dat de vorm gevarieerd kan worden. Daarvoor kunnen de controlepunten bewogen worden. Door een van de controlepunten te bewegen, bijvoorbeeld een van de basispunten van de bsplinevorm van de voorgevel of het punt in de zijgevel kan de bolling van de voorgevel gestuurd worden. Hier blijkt dat de rekenkracht van de PC aangesproken wordt en ook de snelheid waarmee de grafische processor kan reageren.</p>
<p>Een andere manier van variëren is de het werken met een getal-variabele. Deze kan bijvoorbeeld gebruikt worden voor de verdiepingshoogte, het aantal verdiepingen of de verdeling in de gevel (aantal tussenpunten)<br />
Met behulp van het pulldownmenu Graph-&gt;Manage Graph Variables kunnen parameters ingebracht worden. Door hier eventueel gebruik te maken van ‘Limit value to range’ kun je een schuifbalk invoegen die je de mogelijkheid geeft de waarde “dynamisch” aan te passen.</p>
<h2>Gegevens uit het model halen</h2>
<p>Met een dergelijk parametrisch en wiskundig samengesteld model moet het mogelijk zijn een groot aantal gegevens automatisch uit het model te destilleren. Uiteraard kan dat. Daarvoor zijn speciale “features” beschikbaar die je bijvoorbeeld de mogelijkheid geven de coördinaten van alle punten of de maten van alle elementen of de aantallen van deze elementen en hoeveel maal dezelfde vorm voorkomt op te slaan in ASCII-bestanden, spreadsheet-bestanden of databases</p>
<h2>GenerativeComponents en MicroStation</h2>
<p>De relatie tussen een GenerativeComponents model en een MicroStation tekening is beperkt. Ten eerste wordt het model (de tekening) door het script steeds op nieuw opgebouwd zodat het dgn-bestand dat bewaard is niet meer dan een stand van zaken aangeeft en ten tweede is de intelligentie die in de tekening zit alleen te gebruiken met de GenerativeComponents software. De MicroStation tekening bevat in essentie cellen en curves met intelligentie die alleen door GenerativeComponents software gebruikt kan worden Wel is het de bedoeling dat steeds meer Bentley producten die op MicroStation gebaseerd zijn deze techniek gaan ondersteunen. Een ander aspect van de scheiding tussen GenerativeComponents en MicroStation is het feit dat de interface van MicroStation teruggebracht is tot een enkel pulldownmenu (wel met alle opties). Het is de bedoeling dat wijzigingen in het model met de interface van GenerativeComponents gebeurt en niet met MicroStation. Dit zou onvoorspelbare gevolgen kunnen hebben. Er is overigens wel degelijk een duidelijke mogelijkheid aanwezig om tekeningen als MicroStation tekening te importeren of exporteren of om een tekening als referencefile te gebruiken.</p>
<h2>Tot slot</h2>
<p>Dit artikel is voornamelijk bedoeld om zelf aan de slag te gaan en de eigen creativiteit met deze software te testen. Behalve dit voorbeeld zijn diverse voorbeelden te vinden bij de websites van Bentley en andere “early adapters”. En dan nog dit: elke overeenkomst tussen de vorm van dit model en andere gebruiksvoorwerpen of kledingstukken berust louter op toeval?</p>
]]></content:encoded>
			<wfw:commentRss>https://studio4d.nl/generativecomponents-concreet-voorbeeld/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GenerativeComponents</title>
		<link>https://studio4d.nl/generativecomponents/</link>
		<comments>https://studio4d.nl/generativecomponents/#comments</comments>
		<pubDate>Wed, 18 Oct 2006 17:15:06 +0000</pubDate>
		<dc:creator><![CDATA[Johan Vreede]]></dc:creator>
				<category><![CDATA[Bentley Systems]]></category>
		<category><![CDATA[CAD-magazine publicatie]]></category>
		<category><![CDATA[CAD-software]]></category>
		<category><![CDATA[Bentley GenerativeComponents]]></category>

		<guid isPermaLink="false">http://studio4d.nl/?p=5157</guid>
		<description><![CDATA[Hoewel de software nog steeds alleen als beta-software beschikbaar is begint GenerativeComponents zijn vleugels steeds meer uit te slaan. Deze nieuwe techniek voor parametrisch ontwerpen werd al met succes toegepast in enkele bekende gebouwen en biedt veel mogelijkheden voor het ontwikkelen van ontwerp-alternatieven. Naar verwachting zal deze nieuwe techniek toegepast worden in alle ontwerpsoftware van [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><em>Hoewel de software nog steeds alleen als beta-software beschikbaar is begint GenerativeComponents zijn vleugels steeds meer uit te slaan. Deze nieuwe techniek voor parametrisch ontwerpen werd al met succes toegepast in enkele bekende gebouwen en biedt veel mogelijkheden voor het ontwikkelen van ontwerp-alternatieven.</em><br />
<em> Naar verwachting zal deze nieuwe techniek toegepast worden in alle ontwerpsoftware van Bentley waar parametrisch construeren aan de orde is.</em></p>
<p>Sinds een aantal jaren is Bentley Systems – bekend van MicroStation en ProjectWise – bezig met baanbrekend onderzoek op het gebied van parametrisch ontwerpen van (bouw-) constructies. Langzamerhand verschijnen er softwareproducten die de resultaten van dit onderzoek in zich hebben. Een belangrijke ontwikkeling op dit gebied is de techniek die door Bentley GenerativeComponents genoemd wordt, voorheen SmartGeometry geheten.<br />
Een groep vooraanstaande ontwerpers van bekende Architecten- en Ingenieursbureaus onder leiding van Robert Aish, Bentley’s Director of Research, houdt zich bezig met de ontwikkeling van ontwerpgereedschap dat het mogelijk moet maken de ontwerpvoorwaarden te beschrijven en variaties te onderzoeken. Vastgelegd worden daarbij enerzijds de ontwerpregels die de ontwerper in zijn ontwerp van belang vindt en anderzijds de relaties die tussen structuuronderdelen in het bouwwerk bestaan.<br />
Dit houdt in dat zowel de vorm als de technische hoofdstructuur in parameters opgeslagen is, en men door de parameters te veranderen het ontwerp kan wijzigen met inachtneming van de eigen uitgangspunten en daarbij direct de technische consequenties kan overzien. Filosofen zouden kunnen zeggen dat zo in feite een dialoog tussen estheticus en technicus ontstaat. Of, zoals Robert Aish en consorten zelf zeggen: GenerativeComponents heeft de potentie om het ontwerpproces van conceptontwerp tot digitaal gestuurde fabricage te ondersteunen.</p>
<p>Dit zijn uiteraard nogal hoogdravende woorden, maar het kan niet ontkend worden dat GenerativeComponents een duidelijke bijdrage levert aan een manier van computergesteund ontwerpen die voor de ontwerper veel mogelijkheden biedt.<br />
De nadruk ligt dan ook op het streven om de ontwerpregels (eenvoudig wijzigbaar) vast te leggen. Daarbij wordt het 3D-model in een eenvoudig bouwmodel (structurele componenten en ruimtebegrenzingen) vastgelegd zodat simulaties en analyses op dit model losgelaten kunnen worden.</p>
<h2>Adapatie en voorbeelden</h2>
<p>Het zal de oplettende lezer wel duidelijk zijn: De software zou complex genoemd mogen worden, is zeer wiskundig en is heel erg gericht op programmeertechnische beschrijvingen van geometrie.<br />
Toch is het al door veel bekende architecten- en ingenieursbureau’s over de hele wereld geadopteerd, waaronder klinkende namen als Foster &amp; Partners, KPF (KohnPedersenFox), Grimshaw, NBBJ (NaramoreBainBradyJohanson) en het Nederlandse ONL (OosterhuisLénard) en verschillende bouw- en architectuuropleidingen zoals Georgia Tech en MIT en onze eigen University of Delft.</p>
<p>Intussen zijn er al diverse zeer imponerende bouwwerken mee gerealiseerd, waaronder het dak van de overkapping van het British Museum in London, zoals te zien is op bijgaande fotos. In dit bouwwerk is de overgang van de centrale ronde vorm naar de rechthoekige vorm die door de omliggende gebouwen van het museum gevormd worden beslist indrukwekkend en een zeer goed voorbeeld van de toepassing van SmartGeometry. Bij wijze van proef is ook Waterloo Station in London met de software (opnieuw) getekend). De verlopende blob-achtige vorm van Waterloo Station toont aan welke variaties in bouwelementen mogelijk zijn bij gelijkblijvend hoofdconcept van de constructie. De ingenieurs van Grimhaw hebben meermalen laten weten dat ze de techniek van GenerativeComponents maar wat graag hadden gehad rijden het ontwerp…</p>
<h2>GenerativeComponents en BIM</h2>
<p>Het gebruik van technieken als GenerativeComponents sluit nauw aan bij het concept van BIM (Bouw Informatie Model), dat wordt gezien als de nieuwe manier om het ontwerp en documentatie van bouwprojecten te benaderen. In BIM wordt rekening gehouden met de gehele levenscyclus van een gebouw (ontwerp/bouw/onderhoud). Alle informatie over het gebouw en zijn levenscyclus zit in het model. Bij het definiëren en simuleren van het gebouw wordt zo veel mogelijk gebruik gemaakt van geïntegreerde softwarehulpmiddelen. En op dat laatste onderdeel is GenerativeComponents bij uitstek van toepassing.</p>
<h2>Gebruik van de software</h2>
<p>Met GenerativeComponents wordt 3D-geometrie parametrisch ingebracht in een MicroStation DGN. Door middel van het invoeren van een aantal basisparameters en het combineren van deze parameters met vooraf gedefinieerde gedragsregels, ontstaan zogeheten ‘features’, die weer gecombineerd kunnen worden en waarbij aan de combinaties weer nieuwe gedragregels gekoppeld kunnen worden. Ook eenvoudige ‘lijn-geometrie’ kan geïmporteerd worden en opgewaardeerd tot ‘feature’.<br />
GenerativeComponents beschikt over een uitgebreide set van vooraf gedefinieerde geometrische vormen. Doordat deze vormen parameters hebben kunen ze als het ware ‘gekneed’ kunnen worden. Bovendien kunnen ze gecombineerd worden en kunnen de onderlinge relaties vastgelegd worde,. Het geheel geeft het de mogelijkheid om het ontwerpmodel heel systematisch vast te leggen. Bovendien kunnen eigen geometrische vormen toegevoegd worden, zodat de ontwerper zijn eigen ‘standaardcomponenten’ kan aanmaken en gebruiken, en dus op geen enkele manier beperkt wordt door de vooraf beschikbare componenten. Features en feature-typen kunnen uiteraard ondergebracht worden in een bibliotheek.</p>
<p>Het past immers in de definitie van baanbrekend ontwerpen de mogelijkheid te hebben om concepten verder door te voeren dan tot nu toe gedaan is. Dit betekent in dit geval de mogelijkheid hebben om uitgangspunten (licht of drastisch) te wijzigen en zo de gevolgen voor het ontwerp in beeld te brengen. En daarmee nieuwe kansen creëren.<br />
GenerativeComponents heeft al deze mogelijkheden in zich. Zoals bekend is in het begin van het ontwerpproces zeer gedetailleerde maat-informatie niet beschikbaar en kan dus ook niet ingevoerd worden. Op dat moment zou een ‘globale maat’ ingevoerd moeten kunnen worden die later aangepast zou moeten kunnen worden.<br />
Tevens biedt dit ook de mogelijkheid om met het model ‘te spelen’. Door de parameters en maten te wijzigen worden onmiddellijk consequenties voor de vorm zichtbaar. Er kan als het ware aan het model worden ‘geduwd en getrokken’.</p>
<p>De geometrie wordt als het ware in wiskundige termen beschreven. Een voorbeeld:</p>
<ul>
<li>De horizontale gevellijn van deze gevel bevindt zich tussen punt X1Y1 en X2Y2 en heeft een kromming van K1 (variabel, tussen een gegeven minimale en maximale waarde, en eventueel variabel per verdieping)</li>
<li>Het aantal kolommen over deze gevellijn is K2 (variabel)</li>
<li>De verdiepingshoogte is Z1 (variabel), maar voor de begane grond geldt dat deze minstens 850 millimeter hoger moet zijn dan de andere verdiepingen</li>
<li>Het aantal ‘tussenkolommen’ op de verdiepingen is afhankelijk van de kozijnmaat M1, waarbij de ‘restmaat’ zich aan weerszijden van de hoofdkolom bevindt</li>
<li>Etc.</li>
</ul>
<p>Het 3D-model is uiteindelijk opgebouwd uit een aantal componenten die met behulp van zogeheten’ transacties’ tot stand gekomen zijn.<br />
Het model heeft dus een soort logische hiërarchie, die globaal als volgt omschreven kan worden:</p>
<ul>
<li>Het model, dat het resultaat is van alle transacties</li>
<li>De transacties die de afzonderlijke stappen in het ontwerpproces weergeven</li>
<li>De stappen, een verzameling van ‘features’ die tezamen het model vormen</li>
<li>De relaties tussen de verschillende features en de ingevoerde parameters</li>
</ul>
<p>De interface kent een symbolic view (Symbolic Dependancy Graph) en een 3D model view. Dit zijn in feite twee MicroStation Models in de designfile waarin gelijktijdig gewerkt wordt. In het ene venster worden de stappen aangegeven die in de creatie van het model doorlopen worden, in de ander kan men de resultaten van het model zien. In het symbolische venster worden de stappen met cirkels aangegeven en de relaties ertussen met lijnen.</p>
<p>In de software is sprake van ‘transacties’ en ‘transactiescripts’ Dit houdt in dat het creëren van het 3D model gezien wordt als een aantal manipulatiestappen die achtereenvolgens doorlopen worden. Dit houdt ook in dat de ‘tekening’ (het 3D-model) slechts een weergave is van datgene wat door het script op dat moment is uitgevoerd, of andersom: het model kan op elk gewenst moment opnieuw gegenereerd worden door het script af te spelen.</p>
<p>GenerativeComponents en andere software</p>
<p>De techniek van Generative Components is een krachtig hulpmiddel bij (alle) applicaties, waar parametrische geometrie en relaties tussen objecten vastgelegd moeten worden, en dat is in de ingenieurswereld het overgrote deel van de software. Diverse Bentley producten zullen de filosofie op korte termijn adopteren met als voorlopers Bentley Triforma en Bentley Structural.<br />
De mogelijkheden van deze techniek zijn globaal te beschrijven met:</p>
<ul>
<li>Vorm zoeken</li>
<li>Calculeren en analyseren</li>
<li>Productievoorbereiding</li>
</ul>
<p>GenerativeComponents maakt gebruik van de nieuwste programmeertechnieken, waarbij Microsoft .NET en C# een belangrijke rol spelen. De feitelijke beschrijving van het model en de uitgevoerde bewerkingsacties zijn vastgelegd in XML-formaat in zogeheten transactiescipts.</p>
<p>De kritische noot</p>
<p>De software biedt een heel wiskundige benadering van een bouwkundig probleem. Alle maten en objecten kunnen parametrisch worden vastgelegd en vooral de relaties tussen die objecten kunnen wiskundig vastgelegd worden. Daarmee is het heel goed mogelijk analyses te doen, vooral ook in de zin van calculatie van hoeveelheden of sterkteberekening. De toepassingen zijn uiteindelijk vooral gericht op bouwproductie en daarvoor kan het een bijzonder krachtig systeem zijn. Voor de (vormtechnische) ontwerper is de waarde minder direct zichtbaar. Hoewel de interface steeds meer mogelijkheden biedt, zal toch eerst een belangrijk deel van de geometrie volgens bepaalde regels ingevoerd moeten worden, en dit kan een psychologische barrière vormen voor de vormgever, die in de regel behoorlijk wars is van wiskunde.</p>
<p>De architect is eerder geneigd naar nog meer intuïtieve hulpmiddelen te grijpen, zoals het steeds meer bekend rakende Google SketchUp. Toch kan hij, als de vorm eenmaal is ingevoerd, met behulp van de parameters (soms met schuifmeters) ‘kneden’ aan de vorm. Daarbij zijn de bouwtechnische consequenties meteen duidelijk. Deze techniek heeft dan ook naar mijn persoonlijke mening de meeste waarde op het moment dat de ‘vorm’ overgedragen wordt van de conceptuele ontwerper aan de technische ontwerper, maar wellicht zijn er onder u die hierover een geheel ander mening hebben. Ik nodig u uit die met mij te delen, zodat de waarde van dit soort software nog beter tot zijn recht kan komen.</p>
]]></content:encoded>
			<wfw:commentRss>https://studio4d.nl/generativecomponents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
