Dynamo; deel 2

Door Teun Renders.

De laatste tijd zien we steeds meer projecten met USO (Uniforme Sparings Opgave), wat inhoudt dat sparingen vastgelegd worden in een aspectmodel. Het probleem waar we tegenaan lopen is dat we de sparingen in het aspectmodel niet direct kunnen gebruiken in ons Revit model. Omzetten van de USO kan handmatig, maar ik laat liever de computer het werk doen. Daarom heb ik een script geschreven dat de Generic Models omzet naar een sparing en deze uit de wanden knipt. Let op: Het vervolg is een stap voor stap uitleg voor het bouwen van een Dynamo script, dit is leesvoer dat niet voor iedereen geschikt is ;). Het onderstaande script is gemaakt voor dit specifieke project, met wat creativiteit is het aan te passen voor andere projecten en sparingen.

1. Selecteer de linked file en haal daar Generic Models uit.

Als eerste beginnen we met het selecteren van het ingeladen IFC model en de onderdelen die gebruikt zijn als sparingsvoorziening, in dit geval Generic Models. De laatste Node is een custom node uit de archi-lab.net Package. Resultaat stap 1: Een selectie van alle Generic Models uit het USO model.

2. Filter Generic models.

We hebben niet alle Generic models uit de IFC nodig, alleen sparingen zijn bruikbaar voor ons. Daarvoor zoeken we naar een gemene deler van de Generic models die gebruikt zijn als sparingsvoorziening, in dit geval hebben ze allemaal een parameter waarin “SPARINGSBLOK” voorkomt. Deze filter zul je per project opnieuw in moeten stellen. Resultaat stap 2: Een lijst met alle Generic Models die gespaard dienen te worden uit de wanden.

3. Plaats de sparingsfamily.

We hebben nu alle elementen die gespaard gaan worden, hiermee kunnen we family gaan plaatsen die we kunnen gebruiken om gaten in de wanden te knippen. Als eerste zetten we de elementen om naar een geometrie die Dynamo kan lezen, een Solid. Op het middelpunt van deze solid plaatsen we een family. Deze family is speciaal gebouwd voor dit script, het is een void gemaakt met een extrusion waarbij de afmetingen te beïnvloeden zijn met een instance parameter.

De afmeting van de sparen onderdelen bepalen we door een Boundingbox te maken die net zo groot is als de Generic models. Met de Minpoint en de Maxpoint bepalen we de breedte, diepte en hoogte van de sparingen.

De laatste stap van de sparings family bestaat uit het aanpassen van de Sparingsfamily zodat deze exact even groot is als de sparingsopgave. Resultaat Stap 3: Sparingen op exact dezelfde positie en met dezelfde grootte als de opgave.

4. Selecteer de wanden.

Bij stap 4 selecteren we de elementen waar gaten in moeten komen, in dit geval zijn dit de wanden. Om de doorlooptijd te verkorten bouwen we een extra stap in. Met de Geometry.DoesIntersect node, daaruit komt een lijst met wanden die gespaard gaan worden. Let op; zet de node op Cross Product lacing. Dit doe je door rechtermuisknop op de node te klikken, ga naar lacing en dan naar Cross Product. Door deze instelling maakt Dynamo alle mogelijke combinatie tussen de sparingen en de wanden; in dit geval 107 sparingen x 223 wanden = 23861 mogelijkheden. Het is verstandig dit nu te doen omdat dit sneller is dan het in stap 5 te doen. Resultaat Stap 4: Een lijst met wanden die gespaard gaan worden.

5. Spaar de wanden.

Als laatste knippen we de gaten in de wanden. We hebben een lijst met wanden die gespaard gaan worden en een lijst met de sparingen, deze voeren we in de Element.CutGeometry node. Voor de laatste bewerking staat een Passthrough node, die zorgt er voor dat het script in de juiste volgorde wordt uitgevoerd. Beide node komen uit de Clockworck package. Vergeet niet de Element.CutGeometry op Cross Product te zetten. Resultaat Stap 5: Gaten in wanden

Het script kun je hier vinden. Bedankt voor jullie aandacht. Ik vond het ontzettend leuk om het script te schrijven en ik hoop dat ik iemand verder heb kunnen helpen. Dynamo on!

Deel dit

2 gedachten over “Dynamo; deel 2

  1. Martijn Gielkens Bericht auteurBeantwoorden

    Te gek!
    Dit kan, met het nodige aanpaswerk, ook iets zijn voor vloerleveranciers. Doorgaans komt daar een veelvoud van verschillende opgave langs!

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *