Published: Feb 15, 2016 by Maarten Vroegindeweij
Stramienen in 3D
Stramienen in 3D in Revit met behulp van Dynamo.
In Revit kun je normaal geen stramienen in 3D laten zien. Onderstaand een stukje dynamocode waarin dit wel mogelijk is.
We gaan er stap voor stap doorheen. Eerst even het resultaat.
De dynamonode is hier te downloaden
Het project met de stramienlijnen en de stramienbolfamily is hier te downloaden.
De dynamocode kijkt naar de aanwezige stramienen in het project. Er worden modellines geplaatst op de plaats van de grid-curve. Verder wordt er een generic-model geplaatst in de vorm van de stramienbol.
Deze family omvat een modelline en een modeltext die doorgelinkt is aan de parameter ‘Text’.
Bovenstaand de dynamocode
1 Categories: Hier wordt een revit-category geselecteerd. In dit geval ‘Grids’
2 All Elements of Category: Alle elementen van deze category worden geselecteerd.
3 Grid.Curve: Dit is node die van de geselecteerde stramien een ‘curve’ maakt
Group 4 plaatst de stramienbollen en stelt de parameter ‘Text’ in overeenkomstig met het stramiennummer.
4.1 Curve.StartPoint: Deze node geeft als resultaat de xyz-coördinaat van het begin van de curve.
4.2 Family Types: Hier wordt de family uit het project gekozen die geplaatst gaat worden(de stramienbol)
4.3 FamilyInstance.ByPoint: Deze node plaatst daadwerkelijk de family op het weergegeven punt.
4.4 Family.Name: Deze node selecteerd de familyname van de grids(de familyname van het grid is namelijk het stramiennummer.
4.5 String: Dit is de naam van de parameter uit de stramienbolfamily die het stramiennummer moet gaan bevatten.
4.6 Element.SetParameterByName: Deze node gaat een bepaalde eigenschap instellen van een aantal families. In dit geval de stramienbollen.
Group 5 plaatst 3D-modellines op de plaats van de stramienen en stelt de juiste linestyle in.
5.1 Element Types: Deze node selecteerd een eigenschap die ingesteld moet worden namelijk ‘GraphicStyle. Dit is de linestyle van de nog te plaatsen modelline.
5.2 Code Block: Een string in een Code Block plaats je tussen “..”. Dit is de naam van de linestyle.
5.3 All Elements of Type: Deze selecteerd alle linestylen uit het project.
5.4 Elements.FilterByName: Deze node filtert uit de lijst van alle linestyle de ID van de linestyle die de naam heeft conform 5.2
5.5 Boolean: Een boolean is een yes/no parameter. In dit geval ‘No’
5.6 Code Block: Dit is de naam van de parameter die gesteld moet worden. Dit is dus een eigenschap van de modelline.
5.7 ModelCurve.ByCurve: Deze node plaatst een modelline op basis van een ‘curve’.
5.8 Element.SetParameterByName: Deze node neemt alle geplaatst modellines en stelt de eigenschap van de Line Style in.
Group 6 draait de stramienbol zodat deze in lijn ligt van de stramienlijn.
6.1 Vector.ByTwoPoints: Hier wordt een vector gemaakt die de richting weergeeft van de stramien. Een vector is een lijn met een bepaalde lengte in een bepaalde richting. Deze bestaat uit een x,y,z component.Wikipedia. Het is erg handig om hoeken in de ruimte mee uit te rekenen. Hier wordt een vector gemaakt op basis van 2 coördinaten.
6.2 Curve.EndPoint: Deze node geeft de coördinaat van het einde van de stramienlijn.
6.3 Vector.XAxis: Dit is de eenheidsvector van de x-as(1,0,0).
6.4 Vector.AngleBetween: Deze node berekent de hoek tussen 2 vectoren.(hier wordt gebruikt gemaakt van het scalair product.)
6.6: De hoek wordt vermenigvuldigd met -1 omdat de family in lijn moet staan met de gridline.
6.7 FamilyInstance.SetRotation: met deze node worden de geplaatste stramienbollen geroteerd.
Je kunt in de je viewtemplate een filter maken zodat deze lijnen en 3D-stramienbollen uit staan. Anders zie je ze in plattegrond dubbel en in de doorsnede.
De volgende stap is maatvoeren. Dit lijkt alleen nog wat ingewikkelder te zijn.