How to add JavaScript code to HTML5

let's start from opening a text editor, copy/past the code below and save as "MyTest.html". Here a very basic HTML5 code:

<!doctype html> 
<html> 
<head>   
    <title>Great Home Page in HTML5</title>   
    <meta charset="utf-8"> 
    
    <!--CSS-->   
    <link rel="stylesheet" href="css/styles.css">
    
</head> 
<body>

<!-- replacing DIV with the new HEADER element --> 
<header id="header" role="banner">   
    <h1><a href="/">Great Home Page in HTML5</a></h1> 
</header>

<nav id="nav" role="navigation">   
    <ul>       
        <li><a href="/about" id="about">About</a></li>     
        <li><a href="/articles">Articles</a></li>       
        <li><a href="/staff">Staff</a></li>       
        <li><a href="/contact">Contact</a></li>
        <li><a href="
http://bim.rootiers.it" id="bim.rootiers">bim.rootiers.it</a></li>    
    </ul> 
</nav>

<!-- replacing DIV with the new ARTICLE element --> 
<article id="main" role="main"> 
    [content here] 
</article>

<!-- replacing DIV with the new FOOTER element --> 
<footer id="footer" role="contentinfo">   
    <p>&copy; 2015 MABdesign site</p>  
</footer>

<script src="js/script.js"></script>

</body> 
</html> 

You can see the result by opening "MyTest.html" in your internet Browser

1_12.JPG

 like in CSS, there are a few ways you can apply JavaScript to an HTML document. We’re going to talk about three ways:   

  • Inline JavaScript
  • Embedded JavaScript
  • External JavaScript

Inline JavaScript

like inline CSS, is when you attach JavaScript directly in the HTML.  One of the most common applications of inline JavaScript is adding a click behavior to an element. “Click” is a JavaScript event that executes when a user clicks, and you can tie certain behaviors to it. Code example:

<nav id="nav" role="navigation">   
    <ul>       
        <li><a href="/about" id="about">About</a></li>     
        <li><a href="/articles">Articles</a></li>       
        <li><a href="/staff">Staff</a></li>       
        <li><a href="/contact">Contact</a></li>
        <li><a href="http://bim.rootiers.it" onclick= " alert('stai per essere indirizzato al sito web bim.rootiers.it'); ">bim.rootiers.it</a></li>    
    </ul> 
</nav>

In this example, when the user clicks “bim.rootiers.it” a JavaScript alert will pop up saying, “stai per essere indirizzato al sito web bim.rootiers.it” and then execute the normal link behavior of visiting the About page. 

Embedded JavaScript   

is JavaScript that is inside an HTML document, but contained within a <script>   element and executed only on that page. In  next code we are going to add an ID of "bim.rootiers"   to the last anchor (the last link) in the navigation. This was done because it is valid HTML, still remains semantic, and now you can easily target that link without adding any JavaScript inline to the document. Code example:

<nav id="nav" role="navigation">   
    <ul>       
        <li><a href="/about" id="about">About</a></li>     
        <li><a href="/articles">Articles</a></li>       
        <li><a href="/staff">Staff</a></li>       
        <li><a href="/contact">Contact</a></li>
        <li><a href="http://bim.rootiers.it" id="bim.rootiers">bim.rootiers.it</a></li>    
    </ul> 
</nav>

<script>
/* The Function, define the thing you want to happen */
function doTheThing(){   alert('stai per essere indirizzato al sito web bim.rootiers.it'); }
/* The Variable, get the element you want to do it on */ 
var elem = document.getElementById("bim.rootiers");
/* The Event Listener, set up something to listen for the event you want, then execute the function */
elem.addEventListener("click", doTheThing, false);
</script>

 when the user clicks “bim.rootiers.it” a JavaScript alert will pop up saying, “stai per essere indirizzato al sito web bim.rootiers.it”. IT's the same function before but in an embedded style

External JavaScript  

Making a JavaScript file external isn’t that different from doing the same to a CSS file. The <script> element you learned about in the previous section has an available attribute called src   (source), which allows you to pull an external JavaScript file into an HTML document and execute the containing functions. Code example:

<script src="js/script.js"></script>
</body>

</html>

Linking your JavaScript file at the bottom of the document rather than at the top will let you control the rendering of the page a little better. It can technically be linked from anywhere in the HTML document.

Contents of script.js

/* The  Function, define the thing you want to happen */
function BimRootiers(){   alert('stai per essere indirizzato al sito web bim.rootiers.it'); }
/* The  Variable, get the element you want to do it on */ 
var elem = document.getElementById("bim.rootiers");
/* The  Event Listener, set up something to listen for the event you want, then execute the function */
elem.addEventListener("click", BimRootiers, false);

you can see that the contents of "script.js" are the same as the last code.

 

Gio, 12/02/2015 - 22:03
Facciata parametrica con Dynamo pt.1

Tentata la strada (fallimentare) della famiglia partendo da Revit per creare il pattern di cui forati, ho provato a studiare le opzioni che fornisce l'Add-in di visual scripting nodale Dynamo 0.7.6.4045.

Dynamo possiede le funzioni base dello scripting classico però in forma visuale, rappresentata da un nodo con un input e un output, in modo che il fruitore possa concentrarsi sulle relazioni fra i parametri che intende utilizzare.

Ho iniziato riparametrizzando il mio cubo forato in liguaggio Dynamo:

 Il nodo Cuboid.ByLengths permette di parametrizzare i due volumi (cubo esterno e vuoto interno) in funzione delle lunghezze come accadeva, per gli stessi, in Revit. Lo stesso nodo quindi richiedeva un punto di Origine nel quale posizionare i due solidi: con la funzione Coordinate System.Identity si possono quindi associare semplicemente al WCS (World Coordinates System) fissato in 0,0,0.

Una volta generati i due solidi dobbiamo creare una differenza booleana per far si che il volume interno venga sottratto a quello esterno ottenendo così il cubo forato desiderato. Importante sottolineare che la visibilità di alcuni elementi dev'essere disattivata per poter vedere il prodotto della differenza senza interferenze, perciò sui due cuboidi di partenza va tolta la spunta Preview e va mantenuta sulla Solid.Difference. 

 

La prima difficoltà incontrata su Revit è stata generare una serie planare dei componenti base della facciata parametrica. Su Dynamo ho pensato di creare una superficie e di suddividerla in quadrati uguali, con i lati legati al numero dei parametri U e V. Il comando Surface.ByPerimeterPoints permette, dati i quattro vertici di un quadrilatero, di generare una superficie. Generati i quattro punti occorreva raccogliere le informazioni delle loro coordinate in una lista da inserire nell'input della funzione Surface.ByPerimeterPoints (più sotto).

Abbiamo la nostra Superficie!

Ho cercato nel browser di Dynamo varie funzioni che trasformassero la mia superficie in un componente regolato da U e V o soluzioni alternative utilizzando più nodi concatenati...

                  

Niente da fare...Comincio a chiedere aiuto al web scrivendo "Dynamo U V divided surface" ed arrivo quasi subito sul blog dei Dynamo Packages: http://dynamopackages.com/# nel quale cercando un po' si arriva a questa serie di Packages di nodi customizzati molto interessanti:

 

Quello che risulta calzante è Quad Points on Face che crea una griglia regolare di punti su una superficie con un pattern quadrato. In input chiede una superficie e un numero (possibilmente intero) per il conteggio dei parametri U e V dando in uscita una griglia di punti equidistanti fra loro.

 

 

Ho quindi generato la mia griglia di punti la quale non può che essere il centro di ogni singolo cubo forato del mio pattern.

 

Ora manca solo la variazione della foratura in funzione della posizione.

To be continued...

Mer, 11/02/2015 - 00:23
parete Cortina

Ciao a tutti,

Ecco la mia consegna sulla parete cortina. Vorrei ringraziare a Manuel per il suo aiuto. È stato fondamentale per riuscire a completare di forma perfetta la mia idea, che é creare 3 modulli di parete cortina: una parete opaca ( che ho diviso in 2 modulli: una bianca con spessore maggiore e una rossa minore), 1 modullo di balcone e 1 modullo di schermo verticale. Vediamo il passo a passo:

1) Cominciamo generando una famiglia di Pannello di parete cortina per fare il primo modullo.4.01.jpg

2)prima di cominciare la modelazione, ho creato una serie di parametri condivisi per ogni modullo, di maniera a non perdere tempo con tutto il processo

4.02.jpg

3) Dopo di fare i piani di riferimenti , faccio una estrusione e blocco con i piani di forma a manipolare facilmente utilizzando il parametro di spessore, dopo di fare una quota tra i piani di riferimenti ( mi dispiace spiegare di maniera veloce questa parte ma penso che ho già fatto questo processo nelle etape anteriore ) 

4.03.jpg

4.04.jpg

4) dopo di creare ed includere i parametri nelle quote, creo due tipi di famiglie come già avevo detto prima: una bianca più grossa e una rossa più leggera. e così finallizzo il mio primo modullo4.05.jpg

5) Il secondo modullo è un balcone: como abbiamo da fare le gambe per il parapetto, ho bisogno prima di fare una nuova famiglia basata sul un modello metrico generico appoggiato sull'una faccia.

4.46.jpg

6) Genero i parametri per le gambe e applico sul modello

4.47.jpg

4.48.jpg

7) Creo anche un parametro di materiale per controllare più facilmente questa proprietà

4.49.jpg

8) Con il modello finito già posso creare il modullo 2 del balcone...

4.50.jpg

9) Carico la gamba nella famiglia di pannello di parete cortina e faccio un array di maniera a comporre il perimetro del balcone. Utilizzo anche un parametro per l'array con formula di " =VIT_Larghezza balcone/15cm "..

4.08.jpg

4.09.jpg

10) Comincio a disegnare il solaio del balcone faccendo una estrusione e bloccando suoi lati nei piani di riferimenti creato e "non creato", ossia, già datto per la interface di modellazione di famiglia di pannello di parete cortina.4.11.jpg

11) e poi la metto un parametro di spessore di solaio

4.12.jpg

12) Di seguito, creo più piani di referimenti e li collego con i piani di riferimenti datto per la famiglia di pannello di parete cortina di maniera a creare un rapporto che fará con che il parapetto accompagni la lunghezza del balcone. 4.14.jpg

13) finito il balcone, facciamo lo stesso processo per il modullo 3: come si tratta di un schermo verticale, ho bisogno di fare prima un modello di Schermo e poi spostalo alla mia famiglia di pannello..

4.15.jpg

14) Questo è un disegno sbagliato di quando ho fatto lo schermo dentro famiglia di pannello di pareti cortina. L'ho messo perché ho dimenticato di fare i "printscreen" della modellazione giusta. Ma il processo é lo stesso della gamba del balcone.

4.20.jpg

15) dopo di inserire lo schermo nella famiglia facciamo un array con formula "=VIT_lunghezza/30cm" 

4.23.jpg

4.25.jpg

16) Adesso possiamo caricare nostro 3 modulli sul progetto e finire il lavoro. Scegliamo il pulsante "Parete" e poi "parete cortina" per fare la parete nel nostro progetto.

4.27.jpg

17) Selezioniamo la vista 3d per disegnare lo schema di griglia ed asse della nostra parete.4.29.jpg

18) posso utilizzare il comando " uno segmento " per disegnare linee che non si definiscono con i suoi termini nell'estremità della parete cortina.

4.31.jpg

19) Posso anche cambiare la forma della parete faccendo un "doppio-clic" ( non lo so si questa espressione esiste in italiano )

4.34.jpg

20) Finito tutto, inserisco i 3 modulli della maniera che mi piace.

4.44.jpg

 

21) il modello finale non è bello ma sempre cerco come priorità imparare il meccanismo i tutte possibilità di forme di parametrizziazione. Per me è stato un buono esercizio. Ciao tutti ed a prossima consegna! 

4.45.jpg

Mar, 10/02/2015 - 20:15

Pagine