• Suite 7/438 Forest Road Hurstville NSW 2220 AUSTRALIA
  • (+61) 2 95863111

The 7 Person-Centred Design Principles for Robust SDA – Homes Victoria 2021 Applied in NSW

The NDIS Specialist Disability Accommodation (SDA) Robust design category delivers resilient, impact-resistant housing for participants with extreme functional impairment or very high support needs who display behaviours of concern. While the national NDIS SDA Design Standard (Edition 1.1, 2019) sets the baseline for durability and basic access, leading practice goes further.

Homes Victoria’s landmark 2021 report Designing person-centred robust Specialist Disability Accommodation provides the missing layer: seven evidence-based, person-centred design principles developed through stakeholder, resident, and family consultation plus a deep-dive literature review. These principles are now being successfully applied by our team across New South Wales to create homes that are not only robust but genuinely therapeutic, homelike, and life-enhancing.

access4

The 7 Good-Practice Design Principles (Directly from Homes Victoria 2021, Part B)

  1. Enable a person-centred co-design approach Involve the future resident, family/carers, behaviour support practitioners, occupational therapists, and our access consultants from day one. In NSW projects we run structured co-design workshops that feed directly into DA documentation and Performance Solutions.
  2. Create a homelike space that is not institutional in design No “prison-like” finishes. Use residential-scale materials, soft furnishings chosen by the resident, and streetscape-friendly fencing. Our NSW homes feature neutral palettes, resident-selected artwork, and curved pathways that feel welcoming rather than clinical.
  3. Maximise independence and freedom, minimising restrictive practices Predictable layouts, clear wayfinding with colour zoning, sensor lighting, and individual climate controls let residents self-regulate. This reduces the need for locked areas or 24/7 line-of-sight supervision.
  4. Maximise safety and comfort of residents, staff, visitors and neighbours Induction cooktops, rounded edges, secure but discreet staff retreat spaces, and multiple exit points are standard. We balance safety with dignity under current NCC requirements.
  5. Support resident choice and options for interaction Multiple living zones, private ensuites, quiet retreats, and generous outdoor sensory gardens give residents control over social contact. Single-person or small-cluster models are often preferred in NSW.
  6. Enable (but not replace) effective supports Design supports SIL delivery — island benches for easy supervision, technology integration for alerts — without turning the home into a clinical facility.
  7. Maximise the adaptability and flexibility of the building design Future-proofing with modular walls, ceiling tracks ready for hoists, and adaptable bathrooms ensures the home can evolve with the resident or suit future occupants.

How these principles are delivered in New South Wales Our team translates the Homes Victoria principles into compliant NSW projects under the current National Construction Code (NCC 2022 Amendment 1), SEPPs, DCPs, and NDIS SDA pricing. We prepare detailed access and SDA compliance reports, Performance Solutions where needed, and work closely with architects and builders to achieve certification.

Local Mid North Coast expertise Alexandra (Sandy) Grey, our Qualified Access Consultant and architect based full-time at Black Beach on the Mid North Coast, brings deep local knowledge to every project in the region. Whether it’s a new robust SDA build, major refurbishment, or access audit, Sandy ensures the seven principles are applied with genuine understanding of Mid North Coast lifestyles, council requirements, and community expectations. Her availability for local site visits and workshops helps boost timely, high-quality delivery for clients on the coast.

Why this matters for NSW SDA providers and participants Applying these principles reduces behaviours of concern, lowers long-term maintenance and SIL costs, improves resident outcomes, and increases property value and re-usability — exactly what the NDIS and NSW market demand.

Ready to apply person-centred robust SDA principles to your next NSW project? Our national team, including Sandy Grey on the Mid North Coast, is here to help.

Access Consultant's Journal

Attempted to load class "CliDumper" from namespace "Symfony\Component\VarDumper\Dumper". Did you forget a "use" statement for another namespace? (500 Whoops, looks like something went wrong.)

ClassNotFoundError

HTTP 500 Whoops, looks like something went wrong.

Attempted to load class "CliDumper" from namespace "Symfony\Component\VarDumper\Dumper".
Did you forget a "use" statement for another namespace?

Exception

Symfony\Component\ErrorHandler\Error\ ClassNotFoundError

  1.      * DataFormatter constructor.
  2.      */
  3.     public function __construct()
  4.     {
  5.         $this->cloner = new VarCloner();
  6.         $this->dumper = new CliDumper();
  7.     }
  8.     /**
  9.      * @param $data
  10.      * @return string
  1.      * @return DataFormatter
  2.      */
  3.     public static function getDefaultDataFormatter(): DataFormatter
  4.     {
  5.         if (self::$defaultDataFormatter === null) {
  6.             self::$defaultDataFormatter = new DataFormatter();
  7.         }
  8.         return self::$defaultDataFormatter;
  9.     }
AbstractDataCollector::getDefaultDataFormatter() in /home/sydneya1/public_html/plugins/system/debug/src/AbstractDataCollector.php (line 65)
  1.      * @return DataFormatter
  2.      */
  3.     public function getDataFormatter(): DataFormatter
  4.     {
  5.         if ($this->dataFormater === null) {
  6.             $this->dataFormater self::getDefaultDataFormatter();
  7.         }
  8.         return $this->dataFormater;
  9.     }
  1.                 $value '***redacted***';
  2.             });
  3.             foreach ($data as $key => $value) {
  4.                 $this->sessionData[$key] = $this->getDataFormatter()->formatVar($value);
  5.             }
  6.         }
  7.         return ['data' => $this->sessionData];
  8.     }
  1.     public function __construct($params$collect false)
  2.     {
  3.         parent::__construct($params);
  4.         if ($collect) {
  5.             $this->collect();
  6.         }
  7.     }
  8.     /**
  9.      * Called by the DebugBar when data needs to be collected
SessionCollector->__construct(object(Registry), true) in /home/sydneya1/public_html/plugins/system/debug/src/Extension/Debug.php (line 299)
  1.             if ($this->params->get('request'1)) {
  2.                 $this->debugBar->addCollector(new RequestDataCollector());
  3.             }
  4.             if ($this->params->get('session'1)) {
  5.                 $this->debugBar->addCollector(new SessionCollector($this->paramstrue));
  6.             }
  7.             if ($this->params->get('profile'1)) {
  8.                 $this->debugBar->addCollector((new ProfileCollector($this->params))->setRequestEndTime($endTime));
  9.             }
  1.             foreach ($this->listeners[$event->getName()] as $listener) {
  2.                 if ($event->isStopped()) {
  3.                     return $event;
  4.                 }
  5.                 $listener($event);
  6.             }
  7.         }
  8.         return $event;
  9.     }
  1.             $dispatcher $this->getDispatcher();
  2.         } catch (\UnexpectedValueException $exception) {
  3.             return null;
  4.         }
  5.         return $dispatcher->dispatch($eventName$event ?: new ApplicationEvent($eventName$this));
  6.     }
  7.     /**
  8.      * Method to run the application routines.
  9.      *
AbstractApplication->dispatchEvent('onAfterRespond', object(AfterRespondEvent)) in /home/sydneya1/public_html/libraries/src/Application/CMSApplication.php (line 349)
  1.         // Send the application response.
  2.         $this->respond();
  3.         // Trigger the onAfterRespond event.
  4.         $this->dispatchEvent(
  5.             'onAfterRespond',
  6.             new AfterRespondEvent('onAfterRespond', ['subject' => $this])
  7.         );
  8.     }
CMSApplication->execute() in /home/sydneya1/public_html/includes/app.php (line 58)
  1. // Set the application as global app
  2. \Joomla\CMS\Factory::$application $app;
  3. // Execute the application.
  4. $app->execute();
require_once('/home/sydneya1/public_html/includes/app.php') in /home/sydneya1/public_html/index.php (line 284)
  1.  * define() is used rather than "const" to not error for PHP 5.2 and lower
  2.  */
  3. define('_JEXEC'1);
  4. // Run the application - All executable code should be triggered through this file
  5. require_once dirname(__FILE__) . '/includes/app.php';

Stack Trace

ClassNotFoundError
Symfony\Component\ErrorHandler\Error\ClassNotFoundError:
Attempted to load class "CliDumper" from namespace "Symfony\Component\VarDumper\Dumper".
Did you forget a "use" statement for another namespace?

  at /home/sydneya1/public_html/libraries/vendor/maximebf/debugbar/src/DebugBar/DataFormatter/DataFormatter.php:28
  at DebugBar\DataFormatter\DataFormatter->__construct()
     (/home/sydneya1/public_html/plugins/system/debug/src/AbstractDataCollector.php:80)
  at Joomla\Plugin\System\Debug\AbstractDataCollector::getDefaultDataFormatter()
     (/home/sydneya1/public_html/plugins/system/debug/src/AbstractDataCollector.php:65)
  at Joomla\Plugin\System\Debug\AbstractDataCollector->getDataFormatter()
     (/home/sydneya1/public_html/plugins/system/debug/src/DataCollector/SessionCollector.php:87)
  at Joomla\Plugin\System\Debug\DataCollector\SessionCollector->collect()
     (/home/sydneya1/public_html/plugins/system/debug/src/DataCollector/SessionCollector.php:58)
  at Joomla\Plugin\System\Debug\DataCollector\SessionCollector->__construct(object(Registry), true)
     (/home/sydneya1/public_html/plugins/system/debug/src/Extension/Debug.php:299)
  at Joomla\Plugin\System\Debug\Extension\Debug->onAfterRespond(object(AfterRespondEvent))
     (/home/sydneya1/public_html/libraries/vendor/joomla/event/src/Dispatcher.php:454)
  at Joomla\Event\Dispatcher->dispatch('onAfterRespond', object(AfterRespondEvent))
     (/home/sydneya1/public_html/libraries/vendor/joomla/application/src/AbstractApplication.php:99)
  at Joomla\Application\AbstractApplication->dispatchEvent('onAfterRespond', object(AfterRespondEvent))
     (/home/sydneya1/public_html/libraries/src/Application/CMSApplication.php:349)
  at Joomla\CMS\Application\CMSApplication->execute()
     (/home/sydneya1/public_html/includes/app.php:58)
  at require_once('/home/sydneya1/public_html/includes/app.php')
     (/home/sydneya1/public_html/index.php:284)